You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
UX: signpost the queue + guide the first 60 seconds
The demo was technically rich but hard to read on first contact — a flat queue,
domain jargon undefined, the wow buried behind a hunt. This makes the value land
fast without burying the UI in explanations:
- Queue signposting (lib/display.ts scenarioKind/scenarioBadge + dashboard):
a "Start here" chip on INV-2042 (price mismatch → the full investigate +
pause loop), an "exception"/"blocked" badge on the noteworthy rows, and
NOTHING on clean rows — so the marks draw the eye to the 3-4 cases worth
running, not a wall of colour.
- A one-line idle hint at the top of the trace pane pointing at INV-2042
(the other half of the cue), no second Run button.
- A "How it works" glossary in the header (gate / 2-3-way match / verdict /
investigator), closed by default — zero noise for those who know, one line
each for those who don't, instead of inline tooltips everywhere.
- The approval pause now says WHY: "Paused — Awaiting <approver>. <variance>."
composed from the trace (Zod-validated, no cast).
Balance over volume: clean rows stay unmarked, the glossary stays collapsed, no
intro modal, no queue reordering (would break order-aware duplicate detection).
Verified visually (screenshots) and fixed two placement bugs the render exposed.
Test: lib/display.test.ts pins every seeded scenario to the right signpost.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
? "Hit Run pipeline — the agent investigates the price variance, then pauses for your approval."
498
+
: "New here? Run INV-2042 (the “Start here” row) to see the agent investigate a variance and pause for approval. Clean invoices post straight through."}
return"Paused — this invoice needs a human decision.";
54
+
};
55
+
13
56
/**
14
57
* The execution trace — a vertical timeline streamed in live as the run
15
58
* progresses. Each node is one TraceEvent: the deterministic steps, the
@@ -34,8 +77,8 @@ export const TraceTimeline = ({
34
77
title="Run the pipeline"
35
78
body={
36
79
invoiceLabel
37
-
? `Run ${invoiceLabel} through matching, routing, and reconciliation — live. Pick a flagged invoice (price or quantity mismatch) to watch the investigator agent dig into the variance, then pause for your decision.`
38
-
: "Select an invoice to begin. Flagged ones — a price or quantity mismatch — trigger the investigator agent and pause for your decision."
80
+
? `Run ${invoiceLabel} through matching, routing, and reconciliation — live.`
0 commit comments