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
Move run completion summary from Linear to the cockpit
The per-run completion/blocked summary (outcome, AC evidence, debug bundle
link) was posted as a Linear comment on every run. Move it to the cockpit so
Linear stays a clean control plane: state transitions only, with the "why"
living in the cockpit ticket detail.
- New Cockpit.RunSummaryStore: one markdown per issue under
/opt/symphony/state/run-summaries (SYMPHONY_COCKPIT_SUMMARY_DIR), separate
root from the QA evidence store so the two completion-time writers never race.
- CompletionSummary.publish writes to the store instead of Tracker; build_comment
drops the debug-bundle plumbing. publish_async signature unchanged, so the
WorkpadPrSync caller is untouched.
- DebugBundle deleted: CompletionSummary was its only caller, and the bundle
only existed to attach to the Linear comment. Removed rather than left dead.
- Board reads each issue's summary (local disk, bounded by the board cache) and
exposes it as ticket.summary; cockpit detail renders a "Run summary" section.
- Test stores point at tmp via test_helper so the suite never writes to
/opt/symphony; integration tests assert routing, summary content is unit-tested.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
"- Result: PASS\n\n| Check | Result |\n| --- | --- |\n| debounce fires one request | PASS |\n| no loading flicker | PASS |\n",
54
+
summary:
55
+
"## Ready for review\n\n**Outcome:** Moved to `In Code Review` after PR checks and Symphony gates passed.\n**PR:** https://github.com/schoolsoutapp/fe-next-app/pull/642\n",
54
56
timeline: [
55
57
{label: "Read issue and extracted acceptance criteria",turn: 1,status: "done"},
56
58
{label: "Implemented debounce in SearchInput",turn: 2,status: "done"},
0 commit comments