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
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
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
Summaryparser — no parser rewrite.Scope
internal/submit.RenderPanel(or addRenderSummary) to render via the Phase-1uipackage:Summary.HasFailures()or non-zero skips), red (failed).tracebloc/client'sprint_summary.// v0.2TODO already noted insummary.go.dataset pushwatch-completion path (replaces today's box panel).Acceptance criteria
--plain/NO_COLOR.Summaryparser tests untouched and green.make cigreen.Go concepts we'll cover
Summary.HasFailures,SuccessRate).uihelpers.Notes
develop.Part of the UX/interactive epic.
🤖 Generated with Claude Code