This workstream turns the Phoenix app from a useful demo shell into a real operations console.
Primary inspiration:
attractorfor dashboard and operator-surface thinkingsamueljklee-attractorfor core server and event-stream behaviorkilroyfor runtime state that can support richer introspection
Goal
Ship a first-class live operator surface and debugger that materially exceeds the comparison set.
Operator Surface Priorities
- Subscription-driven updates instead of polling as the primary mechanism
- Deep-linkable run views
- Live pending-question handling
- Searchable and filterable event histories
- Artifact and checkpoint inspection
Debugger Priorities
- Event timeline with typed filtering
- Stage-by-stage execution trace
- Context diff between events and checkpoints
- Retry-chain visualization
- Edge-decision explanation
- Human-gate inbox with answer provenance
- Replay from checkpoint or selected stage
- Compare two runs of the same graph
Work Items
- Make the dashboard subscribe to pipeline updates instead of relying on refresh loops as the default path.
- Add dedicated run detail routes with deep linking.
- Surface event filtering, grouping, and search.
- Add live pending-question updates and immediate answer feedback.
- Add live artifact refresh and checkpoint refresh without full view reloads.
- Add a debugger LiveView with timeline, diffs, and replay controls.
- Add run comparison and repro export workflows.
Deliverables
- Channel-first dashboard updates
- Run detail page
- Debugger LiveView
- Context and checkpoint diff tools
- Replay controls
- Repro export workflow
Success Criteria
This workstream is done when:
- the main operator experience is live by default
- a run can be inspected at event, stage, context, and artifact level
- replay and comparison are operator-visible features rather than internal concepts
- the debugger clearly feels stronger than the operator surfaces in the reference set