Tasks: a readable session stream, a session tree, and a chat bar
Phase 3 of 3. A DAG, not a list: tasks with the same dependencies can run in any order. Each
_Test:_names a row oftesting-plan.md.
- [x] 1.
transcriptThreadprojection — replacetranscriptTurnsinui/src/api/model.tswith the paired, summarised row model from the design (R1, R2.1). Test: T1. - [x] 2.
components/Transcript.tsx—TranscriptView(collapsed<details>tool rows, thinking, meta) andChatBar(send / disabled-with-reason) (R2, R4.1, R4.4). Test: T3. - [x] 3. Sessions view —
views/Sessions.tsx,#/sessions[/<ref>]route, Nav tab; sidebar fromsessionTree(R3). Test: T2, T8. - [x] 4. WorkItemDetail reuse — trace panel renders
TranscriptView;ChatBarbound to the selected trace tab; delete the supersededTurnRowmarkup. Test: T3. - [x] 5. Projection tests — pairing, orphans, thinking, meta, malformed, summaries (T1 rows) in
model.test.ts. Test: T1. - [x] 6. Reply resolves PR endpoints —
reply_sessionviarecord_owning/endpoint_forwith the closed-endpoint fallback; refusals kept (R4.2, R4.3). Test: T4. - [x] 7. Reply route tests — PR-ref delivery, fallback, kept refusals in
cli/tests/test_ask_reply_integration.py. Test: T4. - [x] 8. OpenAPI prose —
/sessions/replydescription says a PR ref resolves to its endpoint. Test: T7. - [x] 9. Demo fixture — transcript with ids + paired results + thinking + meta; an ad-hoc work item; titles (NFR3). Test: T8.
- [x] 10. Component tests —
Transcript.test.tsxfor collapsed/expanded rows and chat-bar states. Test: T3, T12. - [x] 11.
sessionTreetests — tree shape and ad-hoc flag inmodel.test.ts. Test: T2. - [x] 12. Verification + evidence — run the plan, fill its verification record, commit evidence. Test: T5, T6, T14.
- [x] 13. Capability + user docs —
docs/capabilities/control-plane.md,ui/README.md, execution log's Documentation section.