Skip to content

feat(submit): rich ingestion summary screen #27

@aptracebloc

Description

@aptracebloc

Goal

Turn the post-ingestion output into the installer's "success screen": outcome-colored, scannable, with a clear "what's next". Builds on the existing Summary parser — no parser rewrite.

Scope

  • Upgrade internal/submit.RenderPanel (or add RenderSummary) to render via the Phase-1 ui package:
    • Outcome-colored header: green (clean success), yellow (partial — Summary.HasFailures() or non-zero skips), red (failed).
    • Key facts: table / category / intent; Total · Inserted · Skipped · File-transfer failures · DB-insert failures · Success rate; Ingestor ID.
    • A "What to do next" block (dashboard link, how to verify rows) mirroring tracebloc/client's print_summary.
    • Plain-ASCII fallback for non-Unicode / non-TTY — the // v0.2 TODO already noted in summary.go.
  • Wire into the dataset push watch-completion path (replaces today's box panel).

Acceptance criteria

  • Outcome-aware rendering (success / partial / fail) with color aligned to the exit-code contract (0 / 9).
  • Plain fallback when non-TTY / --plain / NO_COLOR.
  • Tests per outcome; existing Summary parser tests untouched and green.
  • make ci green.

Go concepts we'll cover

  • Rendering off an existing struct + its methods (Summary.HasFailures, SuccessRate).
  • Branching presentation by state; reusing the Phase-1 ui helpers.

Notes

  • Depends on #PHASE1. Keep the streaming parser as-is (already solid + tested). Branch off develop.

Part of the UX/interactive epic.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions