Catalyst Dev — Change Log
Version 12.5.0 (2026-06-11)
Features
- dev: belief store obs_relation — record blocking edges as facts each tick (CTL-964) (#1690) (df5bd89)
- dev: belief-store Step 1 — per-tick liveness fact collector (CTL-933) (#1630) (bc853c5)
- dev: beliefs SSE endpoint /api/beliefs/stream + BeliefTail cursor (CTL-967) (#1700) (baf71e5)
- dev: BFF10 per-entity host/team/generation (CTL-922) (#1576) (294bd81)
- dev: BFF12 fence-aware Answer/Unblock read-model mutation endpoint (CTL-924) (#1589) (87a4c38)
- dev: BFF2 cluster grouping + liveness overlay (CTL-884) (#1575) (f766acf)
- dev: BFF3 cross-node live-tail SSE fan-in (CTL-885) (#1590) (8d0e0a4)
- dev: BFF5 live EC-worker transcript tail SSE (CTL-887) (#1573) (83332b3)
- dev: BFF8 fence-aware stop-worker mutation (CTL-890) (#1574) (89714a2)
- dev: board shared column headers + single horizontal scroll across swimlanes (CTL-950) (#1656) (6bc5de4)
- dev: board shows one method-correct estimate + dependency chips; estimate read-model projection (CTL-957) (#1685) (5180b85)
- dev: BOARD2 display-options popover — density is a knob (CTL-906) (#1609) (e6e48bb)
- dev: BOARD3 row swimlanes by team / project / host-node (CTL-907) (#1611) (d7984ba)
- dev: BOARD4 dense List view as an alternate board layout (CTL-908) (#1613) (7b4edd5)
- dev: bounded stall-diagnostician wake wiring + evidence capture (CTL-937) (#1641) (410a3ac)
- dev: closed-loop intent layer — stop-storm, fire-once, pager-fail (CTL-936) (#1643) (b4fe04b)
- dev: CTL-1000 — wrappers resolve from healthy pristine checkout (cache fallback + loud warning + —version source) (#1768) (4665b14)
- dev: CTL-1003 ticket detail v3 — Linear-parity chrome, prose, tabs, rail cards, relations (+CTL-999 off-board) (#1758) (ef8a8d9)
- dev: CTL-1012 project branding in lane headers + detail rails (#1769) (b2f8d1f)
- dev: CTL-768 — release parked worker slot (needs-input → hold-stop + revive-with-resume) (#1736) (c59c9be)
- dev: CTL-864 — workers fence irreversible side-effects against cluster takeover (generation token through dispatch + 5 skill guards) (#1780) (f6affb5)
- dev: CTL-966 advance_to phase-prediction shadow comparator (#1704) (c97dee7)
- dev: CTL-981 nav final calibration — weight 500 + contrast /72 for label presence (#1708) (2cf8971)
- dev: CTL-989 unify app shell — single router, AppShell on every screen, URL=source-of-truth (#1735) (74e0a2c)
- dev: CTL-996 ticket detail — Linear-calm reading column + right rail + visible tabs (#1745) (6436f1d)
- dev: DETAIL1 shared detail chrome + pager + keyboard (CTL-912) (#1584) (de7911f)
- dev: DETAIL2 ticket detail page skeleton (CTL-913) (#1597) (9c325f0)
- dev: DETAIL3 worker page skeleton + Loki history tail (CTL-914) (#1600) (a21da5c)
- dev: DETAIL4 wire per-phase model/startedAt/pid/sess_id (CTL-915) (#1602) (84ea09d)
- dev: DETAIL5 re-skinned command palette + cheatsheet (CTL-916) (#1599) (e191d5e)
- dev: DETAIL6 telemetry / burn metrics off OTEL (CTL-917) (#1605) (00f8288)
- dev: DETAIL7 live activity tail (CTL-918) (#1606) (9a4ed26)
- dev: dispatch workers with —plugin-dir from per-host pluginDirs config (#1614) (9f21ff3)
- dev: HOME1 calm master-detail Inbox home (CTL-899) (#1581) (9067471)
- dev: HOME2 status glyph + phase strip (CTL-900) (#1594) (399d1d7)
- dev: HOME3 reframed groups + per-row durations (CTL-901) (#1595) (8129d78)
- dev: HOME4 reading pane — ask/options/About/View-in-Claude (CTL-902) (#1601) (1d5bef0)
- dev: HOME5 one verb clears item + resumes the paused agent (CTL-903) (#1607) (2a53fec)
- dev: HOME6 calm all-clear empty state (CTL-904) (#1593) (b56d511)
- dev: HUD2 terminal HUD consumes the shared read-model (CTL-920) (#1583) (fc7e1f9)
- dev: left-nav restyle v2 — natural-case headers, right twistie, Linear selected state (CTL-977) (#1701) (fbdc1ae)
- dev: LIFECYCLE SPINE real per-phase cost/tokens + artifact links + prominent Gantt (CTL-953) (#1664) (ec1f054)
- dev: Linear-style board scroll — dual-sticky group labels + per-cell overscroll chaining (CTL-958) (#1669) (9463edb)
- dev: list view on TanStack Data Table — default stage/status grouping (CTL-955) (#1663) (c4dc73b)
- dev: live terminal screen pane for pre-transcript workers (CTL-938) (#1629) (78f3edb)
- dev: motion — animate board/list/queue state & position transitions (CTL-952) (#1659) (2c57400)
- dev: nav proportion v3 — 16px icons, muted labels, twistie beside label, Projects heading (CTL-980) (#1706) (5ad727a)
- dev: OBSERVE FinOps surface — cost routes + hero(today-vs-7d + cache-ROI) + breakdowns (OBS-9/10/11) (#1716) (f0615c6)
- dev: OBSERVE FleetOps surface — host health + stuck/dead reap hints + reconcile (OBS-18) (#1719) (1f02983)
- dev: OBSERVE foundation — chart grammar + panel honesty kit + shell (OBS-1/2/5) (#1713) (7603f5f)
- dev: OBSERVE Telemetry surface — hero + live tail + errors/tools/latency + events heatmap (OBS-6/7/8) (#1714) (3cd51ab)
- dev: one-checkout node updates — hotpatch pulls the pluginDirs checkout, parity reports drift (CTL-940, CTL-941) (#1626) (f704bb5)
- dev: one-checkout node updates — hotpatch pulls the pluginDirs checkout, parity reports drift (CTL-940, CTL-941) (#1627) (b61524e)
- dev: one-nav board shell — project-grouped sidebar, quiet display popover, engaged swimlanes, contrast pass (CTL-930, CTL-944) (#1636) (78ec17b)
- dev: per-project nav icons — auto-detect repo favicon + manual override (CTL-961) (#1682) (d310722)
- dev: pristine main-only plugin-source checkout + merge-to-main auto-refresh (CTL-992, CTL-993) (#1743) (0280976)
- dev: queue — group workers by all activity states, blocked pinned bottom with blockers (CTL-947) (#1654) (5372b61)
- dev: React Flow dependency graph — backlog graph + per-ticket dep sub-graph (CTL-948) (#1655) (8a5d697)
- dev: recursive dependency beliefs over obs_relation — blocker_rank/cycle_detected/ready (CTL-965) (#1699) (e360841)
- dev: SHELL2 Dense Board inside the shell (CTL-892) (#1579) (657b740)
- dev: SHELL3 OPERATE/OBSERVE nav IA + brand + footer (CTL-893) (#1580) (32fb41f)
- dev: SHELL5 top strip — single search palette + ’/’ open (CTL-895) (#1588) (ee4607c)
- dev: SHELL6 live nav badges/dots from read-model (CTL-896) (#1591) (05c5b67)
- dev: SHELL7 config-driven workspace switcher (CTL-897) (#1603) (dde9d9f)
- dev: SHELL8 footer per-node cluster health + node filter (CTL-898) (#1604) (da688e3)
- dev: single-click opens detail page, drawer removed, Linear-style pager + Esc-restore (CTL-951) (#1658) (d22b6f3)
- dev: stratified belief rules + provenance + catalyst why (CTL-934) (#1635) (b9231bc)
- dev: supplemental estimate fallback — board shows real Linear estimates for legacy tickets (CTL-974) (#1692) (bbe55d3)
- dev: SURF1 Workers grid grouped/filtered by host node (CTL-909) (#1596) (573bbbc)
- dev: SURF2 wide ranked Queue depth surface (CTL-910) (#1598) (b04c883)
- dev: SURF3 Settings surface (persisted prefs) (CTL-911) (#1585) (5461865)
- dev: ticket detail — real title + Linear-quality markdown description (#1733) (8973797)
- dev: ticket detail v2 — PM status hero + consolidated lifecycle + Cost/Activity tabs (#1730) (9eecfb5)
- dev: triage estimates in the project’s estimation method, cached with TTL — one estimate not two (CTL-954) (#1657) (64b4b14)
- dev: turn-zero gate — stop+replace workers that never start their first turn (CTL-932) (#1631) (0b34dd7)
- dev: worker detail v2 — one rail + ticket link + structured Now view + workflow telemetry (#1729) (5495905)
Bug Fixes
- dev: board surface SkeletonDashboard — free a connection slot for the lazy board chunk (CTL-945) (#1639) (cf44dde)
- dev: board swipe hijack — contain overscroll + edge bump (CTL-973) (#1686) (aeaa4ba)
- dev: board wheel guard froze horizontal scroll at the resting left edge (#1710) (5d8ddd1)
- dev: CTL-1006 — boot-resume on daemon bounces + phase-regression guard (no more restart-manufactured stalls) (#1763) (d8c6d5a)
- dev: CTL-1010 swimlanes fill the board height — flex distribution + lane scroll (#1765) (a9fb26d)
- dev: CTL-1014 — repo-identity resolver honors canonical catalyst.repository key (#1772) (924d65b)
- dev: CTL-926 — eligible projection refreshes when blocked_by relations change out-of-band (#1771) (5cdd6b1)
- dev: CTL-928 truthful queue-board liveness — dead bg-workers excluded, idle-between-phases lane (#1610) (86e09b2)
- dev: CTL-929 exempt zero-dep tickets from the triage→research read-failure fail-safe hold (#1592) (6fe3a83)
- dev: CTL-978 queue must not count dead workers as in-flight (#1703) (2bb64c7)
- dev: CTL-979 ADVA favicon — case-normalize repo key + add monorepo icon paths (#1702) (3283ba1)
- dev: CTL-990 — kill the dirty-worktree rebase loop (root fix + typed precheck + recreate guard + dispatch timeout) (#1734) (cd88a63)
- dev: dedupe obs_relation symmetric edges within a tick (CTL-964 follow-up) (#1711) (33fb204)
- dev: dependency graph — draw edges, scope labels, /dep-graph SPA fallback, knip cleanup (CTL-959) (#1668) (c70c65a)
- dev: detail page fills full viewport height — no white gap (CTL-949) (#1651) (7974c7c)
- dev: escalate stuck once — single escalate_human executor, exactly-once page (CTL-962) (#1693) (9e91c41)
- dev: estimate fallback query uses team+number filter — fixes 400 error (CTL-976) (#1695) (5c17b01)
- dev: FinOps hero + spend cards collapsed to 2px (shrink-0 on scroll-column children) (#1717) (86a2bc6)
- dev: make Linear-audit mitmproxy strictly opt-in, add NO_PROXY safety guard (CTL-946) (#1640) (da51c5a)
- dev: OBSERVE Telemetry Loki queries — model/tool latency + tail field extraction (#1715) (0275934)
- dev: restore board surface + scope + dual-axis scroll on detail return (CTL-971) (#1683) (5edc063)
- dev: turn-zero cap branch is terminal — no post-escalation respawn (CTL-932) (#1633) (8c7d3a0)
- dev: unify board phase with phase-agent-type + remediate column + lens label (CTL-972) (#1687) (09d6e4e)
- dev: wire applyNeedsHuman in scheduler + clean up dead code in diagnostician (CTL-937) (#1642) (2982ba6)
- dev: wire board→detail-page navigation + SPA fallback for /ticket /worker (CTL-942) (#1632) (1532302)
- dev: wire intentDb + appendIntentEvent into runTick; pin bgJobId in kill postcondition (CTL-936) (#1644) (0a4e898)