• v1.26.0 d81cff8546

    v1.26.0 — Pinky V: one window, honest dismissal, structural roots
    All checks were successful
    Checks / Functional checks (push) Successful in 16s
    Stable

    ClaudiuSchuster released this 2026-09-26 04:43:00 +00:00 | 93 commits to main since this release

    Round 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
  • v1.25.1 f14cad2ecd

    v1.25.1 — restart script: match the symlink invocation
    All checks were successful
    Checks / Functional checks (push) Successful in 15s
    Stable

    ClaudiuSchuster released this 2026-09-26 00:23:05 +00:00 | 94 commits to main since this release

    One-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 pattern observatory[.]py matched nothing and the old process kept holding port 8767. The restart script now matches both invocation spellings (zcode-observatory at an argv boundary OR observatory.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
  • v1.25.0 7995fc35b8

    v1.25.0 — crash resilience: systemd unit + systemd-aware restart
    All checks were successful
    Checks / Functional checks (push) Successful in 15s
    Stable

    ClaudiuSchuster released this 2026-09-26 00:17:38 +00:00 | 95 commits to main since this release

    The 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-failure systemd user unit, deliberately NOT auto-enabled (owner preference); install.sh templates the ExecStart path, installs the unit into ~/.config/systemd/user/, reloads systemd and prints the enable command without running it (--no-unit opts out)
    • observatory-restart.sh — prefers systemctl --user restart when 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
  • v1.24.0 3bf1e63385

    v1.24.0
    All checks were successful
    Checks / Functional checks (push) Successful in 15s
    Stable

    ClaudiuSchuster released this 2026-09-25 23:26:44 +00:00 | 96 commits to main since this release

    Contract 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
  • v1.23.0 b485b9aa40

    v1.23.0 — row-click interface, transcript button, 1195 px ideal width, steer-answer scroll keeping
    All checks were successful
    Checks / Functional checks (push) Successful in 16s
    Stable

    ClaudiuSchuster released this 2026-09-25 20:49:15 +00:00 | 98 commits to main since this release

    Owner 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
  • v1.22.0 0c43eae84a

    v1.22.0 — delegation topology: child-role rendered everywhere lineage shows
    All checks were successful
    Checks / Functional checks (push) Successful in 16s
    Stable

    ClaudiuSchuster released this 2026-09-25 19:55:24 +00:00 | 99 commits to main since this release

    Pairs 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
  • v1.21.0 b8850e1f2c

    v1.21.0 — FIFO steer delivery, panel view toggle, dock grooming
    All checks were successful
    Checks / Functional checks (push) Successful in 16s
    Stable

    ClaudiuSchuster released this 2026-09-25 18:56:11 +00:00 | 100 commits to main since this release

    Steers 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
  • v1.20.0 5608118061

    v1.20.0 — Graph grooming and 921 px diamond dust
    All checks were successful
    Checks / Functional checks (push) Successful in 15s
    Stable

    ClaudiuSchuster released this 2026-09-25 18:04:50 +00:00 | 101 commits to main since this release

    Polish-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
  • v1.19.0 7e7150fa83

    v1.19.0 — Usage over time: Pinky token graph by Brain + modal info strip
    All checks were successful
    Checks / Functional checks (push) Successful in 14s
    Stable

    ClaudiuSchuster released this 2026-09-25 14:57:44 +00:00 | 102 commits to main since this release

    The 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
  • v1.18.0 602f1c7254

    v1.18.0 — Dispatch lifecycle visibility: pending strip + presumed-dead surfacing
    All checks were successful
    Checks / Functional checks (push) Successful in 14s
    Stable

    ClaudiuSchuster released this 2026-09-25 13:39:55 +00:00 | 103 commits to main since this release

    Three 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/sessions gains dispatches; new POST /api/dispatch/dismiss.

    Verified by unit tests (row derivation, dismissal, state pruning) and live CDP DOM probes in a real browser.

    Downloads