Skip to content

feat(submit): rich ingestion summary screen #27

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

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions