-
v1.26.0 — Pinky V: one window, honest dismissal, structural roots
StableAll checks were successfulChecks / Functional checks (push) Successful in 16sreleased this
2026-09-26 04:43:00 +00:00 | 93 commits to main since this releaseRound V of the owner backlog — 39/39 CDP fixture probes green, offline suite green, pinned super-linter green, live-verified on the station (including the popup re-size under Xvfb).
One window for everything
- ONE header selector (24 h / 3 d / 7 d / all, default 3 d, persisted) drives History + Hidden + Archived AND the usage graph; the graph local control is gone, "all" falls back to 7 d there.
- Brain toggles 🧠 brains / 🧠↳ sub-brains (persisted, default off): ON = exempt from the day filter (full history visible regardless of window).
- Running, favorited, docked and open-panel sessions never vanish under the filter.
Honesty fixes
- Dismissing a queued steer chip CANCELS the delivery (queue entry removed + dead-lettered — dismissed means gone).
- Presumed-dead strip rows auto-clear when the session completed a turn after the stamp (the masterbrain live test).
- Fast-lane eligibility by SEND time — the exit-3 re-queue refresh was stalling queued steers ~90 s each (journal-proven).
- Contract banner F1: the CSS display:none trap fixed; the banner finally renders.
Surfaces
- Tokens merged into one cumulative column + Ctx % column (batched steer-line math).
- Structural roots carry their family color + root marker from the first second.
- Hide/Archive buttons off on pinned/favorited rows.
- Sticky header, rainbow title, 1162 px ideal (red ≤ 1160), popup re-click re-sizes to exactly the ideal, phone-width affordances hidden.
- Steer-answer collapsed by default with ● new chip; footer transcript button retired.
- ?session= deep link opens the interface modal (notification clicks land in the cockpit).
Docs
- README gallery refresh at 1162 (9 stills) + 3 GIF loops (hover glow, window selector, dock rhythm).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v1.25.1 — restart script: match the symlink invocation
StableAll checks were successfulChecks / Functional checks (push) Successful in 15sreleased this
2026-09-26 00:23:05 +00:00 | 94 commits to main since this releaseOne-line functional fix caught live during the v1.25.0 station rollout: the dashboard is launched as
zcode-observatory(the ~/.local/bin symlink), so the legacy kill patternobservatory[.]pymatched nothing and the old process kept holding port 8767. The restart script now matches both invocation spellings (zcode-observatoryat an argv boundary ORobservatory.py) while its own hyphenated path still fails both alternatives; the test pins exactly that. The systemd branch (the primary path on unit-equipped stations) is unchanged.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
v1.25.0 — crash resilience: systemd unit + systemd-aware restart
StableAll checks were successfulChecks / Functional checks (push) Successful in 15sreleased this
2026-09-26 00:17:38 +00:00 | 95 commits to main since this releaseThe observatory is a link in the orchestration chain (bells → broker → observatory → owner); its crash during the 2026-09-25/26 triple crisis needed a manual restart. v1.25.0 adds the safety net without changing the opt-in character.
zcode-observatory.service—Restart=on-failuresystemd user unit, deliberately NOT auto-enabled (owner preference);install.shtemplates the ExecStart path, installs the unit into~/.config/systemd/user/, reloads systemd and prints the enable command without running it (--no-unitopts out)observatory-restart.sh— preferssystemctl --user restartwhen the unit exists; the legacy fallback uses a bracketed pgrep pattern (the ps-grep predecessor killed its own shell on the station) and logs under XDG state (never/tmp, which the station wipes on reboot)- managed-parent steer spawns — the send-button and fastlane paths mark their dispatch children so the dispatcher’s v1.0.1 notification scope self-check keeps them in place: the fastlane branches on exit codes and the status view polls liveness, and a re-exec would fake deliveries
- tests pin the unit’s restart/opt-in contract, the restart script’s systemd branch, its self-kill-safe pattern and log location, and install.sh’s never-enables wiring
Pairs with zcode-dispatch v1.0.1 (broker restart policy + watchdog, scoped notification bells, canary infra group — its failures surface in the contract banner here).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v1.24.0
StableAll checks were successfulChecks / Functional checks (push) Successful in 15sreleased this
2026-09-25 23:26:44 +00:00 | 96 commits to main since this releaseContract canary banner + chip (observatory side of the v1.0.0 round). Note: the banner rendering has a known CSS issue (validation F1) — fix incoming.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
v1.23.0 — row-click interface, transcript button, 1195 px ideal width, steer-answer scroll keeping
StableAll checks were successfulChecks / Functional checks (push) Successful in 16sreleased this
2026-09-25 20:49:15 +00:00 | 98 commits to main since this releaseOwner UX redesign round T:
- Row click opens the INTERFACE — clicking anywhere on a session row (where no explicit control sits) opens the response interface (modal + steering console) instead of the full transcript.
- Secondary "Transcript" button — the old mint show button became a plain mini button in the Hide/Archive family that opens the full-transcript drawer (📄 icon on tight rows).
- Ideal width 921 → 1195 px (owner live-measured with the dashboard's own indicator) — popup size, live hint, README wording, and all six curated README screenshots re-shot at 1195 px.
- Tooltip cleanup — the ideal-window button's tooltip no longer references browsersize.com.
- Scroll keeping — a chat that was at its end STAYS at its end when the steer answer's response tail expands, auto-minimizes, the prompt expands, or the target line fills in (synchronous compensation; scrolled-up reading positions are never touched).
Rig: 39/39 CDP checks on the fixture world, including the full steer round trip (send → tail expands → chat end without manual scrolling → auto-minimize → back at the end).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v1.22.0 — delegation topology: child-role rendered everywhere lineage shows
StableAll checks were successfulChecks / Functional checks (push) Successful in 16sreleased this
2026-09-25 19:55:24 +00:00 | 99 commits to main since this releasePairs with zcode-dispatch v0.3.6 (
--child-role {pinky,brain}): brains can dispatch 🧠 brain-children — sub-brains running their own orchestras — and the observatory renders the master → sub-brain → pinkies topology.Every session's payload now carries
role(pinky default / brain = delegation node), resolved by declared precedence: live spawn flag/result childRole → dispatch lifecycle ledger → bell ledger → pinned-title[🧠]prefix (survives ledger rotation). The panel strips badge brain-children as 🧠 BRAIN-CHILD (cyan), the table's brain-child parent links wear the 🧠 glyph + stronger glow, and the usage graph draws brain-child series lines thicker with the 🧠 tooltip marker — the delegation backbone reads apart from the worker swarm.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
v1.21.0 — FIFO steer delivery, panel view toggle, dock grooming
StableAll checks were successfulChecks / Functional checks (push) Successful in 16sreleased this
2026-09-25 18:56:11 +00:00 | 100 commits to main since this releaseSteers now deliver strictly in SEND order per session; the stuck-on-transcript favorite is fixed by a segmented Interface | Full transcript toggle in both panel headers; the info strip rides the transcript drawer; the parent-column copy button, the per-panel copy buttons and the transcript-button glyph are gone (per-message copy icons in); titles strip the leading worktree-slug prefix for display; question-badge rows stay single-line; README shots re-curated for diversity and the popup wording is honest about the outer window. Full details in PR #45.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
v1.20.0 — Graph grooming and 921 px diamond dust
StableAll checks were successfulChecks / Functional checks (push) Successful in 15sreleased this
2026-09-25 18:04:50 +00:00 | 101 commits to main since this releasePolish-dust on the 💎 after the finale, six owner items:
- Graph + legend groom with the tables (fix at the root): the usage graph plots exactly the sessions the tables list — membership evidence minus archived and hidden. Archiving a session away or hiding it away now clears it from the graph and its brain from the legend; the Pinky-count buckets agree too.
- No more phantom brains. The 24 h graph once showed two brains titled Reply with exactly: TURN1-OK that no table listed: six bare e2e scratch sessions from the ghost-delivery repro round (first-input titles, zero dispatcher evidence, hours quiet) whose turn rows the unfiltered graph happily plotted. The tables' prefilter dropped them rightly; the graph now applies the same universe — documented with the forensics in the README.
- Lonely brains glow strongest. Pinned or hovered, a one-member family takes the heaviest stroke of the highlight family (2.8 px) plus a doubled drop-shadow; single-point dots and live markers join the highlight family (they dim and glow with their brain); solo legend swatches shine wider at rest.
- ⤢ expand doubles the prompt — 112 → 224 px (~16 lines), was +1/3.
- All four README screenshots re-shot at exactly 921 px — the owner-measured ideal width (howbigismybrowser.com reference): main dashboard, usage graph (with a pinned solo glowing), steer console (Send tower geometry verified 24×138 px), question modal with the v1.19.0 info strip. Viewport width asserted in the CDP rig; 22/22 functional checks green.
- The ideal window, honest scope. Pages cannot resize your main browser window (why browsersize.com opens a new tab) — so the header now carries a live viewport-width indicator (1366 px · ideal 921 px, mint exactly at 921) and an ⧉ ideal-window button that opens the dashboard in its own popup sized exactly 921 px wide (named window: re-clicks focus it). Documented in the README including the honest limit.
Gates: 20 unit tests green; super-linter (project lane set: BASH, BASH_EXEC, MARKDOWN, PYTHON_PYLINT, PYTHON_RUFF, YAML) EXIT 0.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v1.19.0 — Usage over time: Pinky token graph by Brain + modal info strip
StableAll checks were successfulChecks / Functional checks (push) Successful in 14sreleased this
2026-09-25 14:57:44 +00:00 | 102 commits to main since this releaseThe page now closes with a usage graph (owner request, inspired by ZCode's own per-model usage chart): every session's per-turn tokens as thin lines in their LINEAGE color on a log axis, brain groups HUE-SORTED into a deterministic rainbow flow, and the count of active Pinkies as a softly glowing mint area behind the lines — hand-rolled SVG, zero new dependencies.
- One plot over mini-panels (documented): 10–30 alpha-packed series read as a coherent color wash, and only a single plot lets the global count area sit behind the lines it summarizes.
- Normalized overlay for the count (documented): backdrop texture with exact numbers in the tooltip ("🐺 N Pinkies active · HH:MM"), never a second scale to parse; buckets from turn start/end spans, running turns extended to now.
- Honesty first: completed turns only — running sessions show breathing live dots, fired dispatches without a session show dashed time-axis markers (⏳ amber / 💀 presumed-dead). Never fake data.
- Interaction: hover tooltips with the in/out/reasoning split; legend chips pin-highlight a family like the table rows; window toggle 24 h / 3 d / 7 d (persisted); refresh rides the poll cycle and the chart re-renders only on data change (hover survives).
- API:
GET /api/usage?hours=— lineage-enriched per-session turn series + bucket counts + pending dispatches, capped (200 turns/session, 60 series — running never drops). - Response modal: title-right info strip — 🧠 BRAIN / 🐺 PINKY badge (family color), clickable → parent reference, context %, turns + tokens, age; collapses gracefully at narrow widths.
Verified by unit tests (7 new, 18 total), the pinned super-linter lane set, and CDP DOM probes + screenshots on a synthetic fixture and the real DB across 1920/950/500 px.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v1.18.0 — Dispatch lifecycle visibility: pending strip + presumed-dead surfacing
StableAll checks were successfulChecks / Functional checks (push) Successful in 14sreleased this
2026-09-25 13:39:55 +00:00 | 103 commits to main since this releaseThree dispatchers died young and silently in one day and were only noticed via an empty Running table. This round makes the whole dispatch lifecycle visible in the cockpit, pairing with zcode-dispatch v0.3.4 (lifecycle ledger + silent-death reaper).
- PENDING DISPATCHES strip above Running: fired-but-not-running dispatches as chips (project, model, live age, breathing dot) that resolve by themselves within seconds when the session appears in Running.
- Amber: pending past 120 s (
ZDO_PENDING_DISPATCH_MS) — stuck or dying. - Red: presumed dead (reaper found the process gone without a terminal state) — stays until dismissed (✕, observatory-local state), copy buttons hand the cwd and result-file path to whoever investigates.
- Terminal and session-bearing entries never appear; no ledger (older dispatcher) → empty strip.
- API:
/api/sessionsgainsdispatches; newPOST /api/dispatch/dismiss.
Verified by unit tests (row derivation, dismissal, state pruning) and live CDP DOM probes in a real browser.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads