ship: plan & run + reading room v0 (P2) #2
Reference in New Issue
Block a user
Delete Branch "phase/02-plan-run-reading-room"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Phase 2 ship: Plan & Run screen (plan approval UI, scripted live trace with pause/resume/cancel), Reading Room v0 (page-anchored citations with hover/focus quotes, citation ledger panel, real Markdown/JSON exports). Mock multi-run store closes P1-3. REQ-57..59. Gates: typecheck/lint/test(33)/build green. Verify: PASS zero P0, four P1 fixed in-phase.
---ci--- phase: 2 milestone: v0.1 status: execute persona: frontend-engineer task: T-2.1 requirements: covered: [REQ-57] ---/ci--- Map-based run store (closes P1-3: back-nav to earlier runs resolves), approvePlan/cancelRun/completeRun persist status transitions, createRun halts at awaiting_approval, getRunEvents handle gains pause()/resume() with clean timer teardown, exports carry {report, ledger} in JSON with researchx-<id> filenames.---ci--- phase: 2 milestone: v0.1 status: execute persona: frontend-engineer task: T-2.11 requirements: covered: [REQ-57, REQ-58, REQ-59] ---/ci--- run-view: plan renders before approval; approve streams progressively to done with report link; pause halts event count; resume continues; cancel persists + links to /choose. reading-room: parseReportBody segments, markers render, focus reveals exact quote, ledger lists sources, markdown carries real links, JSON round-trips {report,ledger}. mock: multi-run store regression (P1-3 closure), approval persistence, cancel/complete persistence, pause/resume/cancel subscription behavior. Closes P1-4 run-view test gap.---ci--- phase: 2 milestone: v0.1 status: execute persona: ci-lead-developer task: T-2.14 requirements: covered: [REQ-54] ---/ci--- Verified: no component/page imports @/lib/api/mock (production code); all data flows through the ApiClient interface (cancelRun/completeRun added to the interface — maps to POST /api/runs/{id}/cancel in REQ-25); no dangerouslySetInnerHTML — report bodies parsed to React nodes; replay timers cleared on cancel + subscription teardown on unmount; gates re-run green (typecheck, lint, 33/33 tests, build).