+Last updated: 2026-06-23 ~19:05Z, @taOS-dev (DECISIONS MVP frontend COMPLETE + OBSERVATORY steer-v1 throttle dial. MERGED since last entry (on dev): #1416 (Decisions app surfaces the L1 supersession lineage -- an expandable history trail on answered cards that have a parent, lazy-fetching GET /api/decisions/{id}/history oldest-first; aliveRef guard vs setState-after-unmount; folded a gitar Bug + kilo order-assert), #1417 (per-project Decisions archive: a read-only Decisions tab in ProjectWorkspace via the generic tab pattern, filtered read of /api/decisions?project_id=, ProjectDecisions panel with shell tokens + cancelled-flag effect; folded a gitar Edge-Case = fetch-fail now shows an error not the empty state, plus kilo clear-on-switch + relativeTime clamp). DECISIONS MVP ALL DONE: 1 data model+API, 2 app surface, 3 notification badge+deep-link (already built -- server-notifications.ts maps source 'decisions' -> action 'decisions'; the non-dismissable blocking treatment is the Jay-gated consent overlay), 4 per-project archive (#1417), 5 answer routing, 6 L1 supersede (#1416). IN FLIGHT (auto-merge armed): #1418 Observatory global concurrency-cap stepper in the steer row (loads/posts /api/observatory/throttle, optimistic, lower floors at 1 + Clear removes, capped at MAX_CAP 50; folded 2 kilo WARNINGs). OBSERVATORY: fleet view + global/per-lane pause + (via #1418) global throttle DONE; remaining = per-lane throttle dial (follow-up, touches ObservatoryApp so HELD until #1418 lands to avoid a conflict), per-agent trace timeline (Observe item 1 second half, reads /api/agents/{name}/trace), notify-on-blocked/silent-fail (MVP item 3). All desktop slices vitest-verified; visual checks deferred to a live session. PENDING-ON-JAY unchanged: grant-on-install consent flow (pending-decisions 28/29). five_hour 14% / seven_day 68%. PRIOR ENTRY BELOW.)
0 commit comments