• v1.7.0 e9e694c089

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

    ClaudiuSchuster released this 2026-09-24 18:56:52 +00:00 | 117 commits to main since this release

    Hydration prediction per session (residency cycle, lower bound, on-demand recipes), project accent colors + legend, family dots + sortable Parent column (native parent_id + doorbell edges), muted collapsed todo-update/system transcript classes with hide switch, primary Show-response button, SVG pin states with aria-pressed, steer target reasoning level, workspace-sized modal (~88vw) and drawer. Validation: 26/26 CDP checks on fixture DB, pinned Super-Linter slim-v8.7.0 EXIT 0, py_compile.

    Downloads
  • v1.6.0 4a0d671356

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

    ClaudiuSchuster released this 2026-09-24 18:25:33 +00:00 | 118 commits to main since this release

    v1.6.0 — Pending questions: glow + question cards + answering; steers queue-until-idle ❓

    Any session paused on an AskUserQuestion glows amber (row badge, section-header count, new-question toast) — both driving modes, detected from the persisted running tool part. The response modal and transcript drawer render the question card (question, header, options with descriptions, multiSelect hint; answer line once resolved). Dispatch-driven questions are ANSWERED from here (POST /api/session//answer → the dispatcher side-channel, needs zcode-dispatch v0.3.0): option buttons, free text, Decline — forwarded within ~1 s, the turn continues. Steers spawn with the answer channel armed, so questions raised by steered turns wait instead of auto-resolving empty. Desktop-driven questions stay read-only with an honest hint (no external channel into the desktop app private app-server).

    Steering is now race-free by construction: a steer sent to a busy session self-queues (dispatcher notify markers + sweeper) and delivers the prompt VERBATIM as the next sequential turn when idle — the dialog reports busy up front and walks queued (position) → delivered. Verified live on scratch sessions (park → observatory answer → completed turn; queued steer delivered and acknowledged).

    Downloads
  • v1.5.0 630a863b9b

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

    ClaudiuSchuster released this 2026-09-24 17:38:34 +00:00 | 119 commits to main since this release

    v1.5.0 — Archived section, session pinning, hidden-machinery removal 🗄️📌

    A third dashboard section Archived (collapsed by default) lists sessions with a native session.time_archived — with the observatory's first, deliberately narrow DB-write exception: the Archive/Unarchive buttons open a read-write connection for exactly two parameterized UPDATE session SET time_archived statements, nothing else. Pinning: a per-row 📌 toggle in every section floats sessions to the top of their section (observatory-local state, survives restarts; both blocks honor the selected sort, pinned rows stay on page 1). The long-dead hide/unhide machinery is fully removed.

    • POST /api/archive / POST /api/unarchive — native ZCode archive semantics (store list queries hide archived sessions unless includeArchived); 409 while a turn is running, friendly 503 on a locked DB
    • POST /api/pin / POST /api/unpin — local view state in observatory-state.json; pinned + archivedAt in /api/sessions
    • Hidden section, /api/unhide, /api/restore removed; a legacy hidden state key is dropped on first write
    • README: native-semantics forensics (CLI store vs desktop task-index), pin/archive docs, refreshed screenshot

    Upgrade note: restart zcode-observatory after installing — observatory.py changed.

    Downloads
  • v1.4.0 8e7e39a6bc

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

    ClaudiuSchuster released this 2026-09-24 17:10:55 +00:00 | 120 commits to main since this release

    v1.4.0 — steering console + scroll-stable follow output 🎛️

    The observatory's first WRITE-capable action: a prompt dialog in the response modal AND the full transcript drawer runs a follow-up turn through the installed zcode-dispatch — the observatory still never writes the ZCode DB. Plus the scroll fix: both surfaces are now strictly position-stable with a follow-output toggle.

    • POST /api/session/<id>/steer — auto-detects cwd/model like the dispatcher's notify_parent (never guessed), writes the prompt to ~/.config/zcode-dispatch/observatory-steers/, spawns the INSTALLED dispatcher detached (--resume, no --timeout — long turns legal). 400 empty text · 404 unknown session · 409 steer already in flight (one driver per session) · 503 dispatcher missing.
    • GET /api/session/<id>/steer/latest — incremental result JSON + process liveness + exit code + response tail; survives an observatory restart via the newest result file on disk.
    • Prompt dialog (both surfaces) — multi-line (Enter sends, Shift+Enter newline), target line (title · model · cwd basename), send disabled only while steering, status walks sending → turn-running → terminal with the exit-code legend (0 ok · 3 busy/lock/mismatch — session has a running turn · 5 timeout, session intact), response tail (~500 chars) on completion.
    • Scroll stability — refresh cycles without new content never touch scrollTop (content-keyed render skip); follow output toggle top-right of the body in both surfaces: ON auto-scrolls new content, OFF never moves your position. Default ON for running sessions, OFF for terminal ones (persisted per page session); scrolling up pauses follow and shows a ↓ jump-to-latest pill.

    Verified: 22/22 CDP checks (scroll stability, follow semantics, steer lifecycle, busy exit-3, Shift+Enter), fixture API smoke, and a REAL end-to-end steer against a scratch session driven from the drawer UI (turn-running → completed exit 0, tail E2E-STEERED-OK 43). Gates: py_compile + --help, social-preview freshness, Super-Linter slim v8.7.0 EXIT 0.

    ⚠️ Owner action after station update: restart the observatory (zcode-observatory) — this release changes observatory.py, which the running process keeps in memory.

    Downloads
  • v1.3.1 d5a77faa64

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

    ClaudiuSchuster released this 2026-09-24 16:37:15 +00:00 | 121 commits to main since this release

    v1.3.1 — UI bugfix round: copy payload, activity time, spanning project line, modal scroll 🐛

    Four narrow-window defects fixed in the dashboard, each reproduced and verified with a CDP-driven fixture harness (headless Chrome, trusted input events, granted clipboard) at 1280/900/400 px:

    • Copy title — the payload was JSON.stringify'd into a double-quoted onclick attribute, which the HTML parser truncated at the first quote (onclick="copyText(") — the handler never compiled and clicks copied nothing. Payloads now ride in data-copy attributes served by one delegated listener (immune to quotes/entities, survives the 3 s re-renders), with an execCommand fallback; clicking 📋 puts exactly that row's displayed title on the clipboard.
    • Last activity — full datetimes ellipsized to "HH:…" on narrow windows. Now compact and never truncated: relative (8m, 2h 05m) when fresh, Wed 16:10 within the week, Aug 10 18:10 beyond, full timestamp on hover. Pixel-based column widths keep the time readable at any width; model chips abbreviate to the bare model name (full id on hover).
    • Project/worktree line — was squeezed into the name column (wrapping to many lines). Each session renders as a two-row group whose second line spans the full table width via colspan — one clean line down to ~400 px. Below 560 px the models column and the show-button label drop out so everything stays readable.
    • Modal/drawer scroll — dialogs now take focus on open (tabindex="-1" + focus()), their bodies contain overscroll, and the page scroll locks while a dialog is open: the wheel always scrolls the conversation, never the dashboard behind.

    Also fixes a latent layout bug (.models { display:flex } hit the header cell and broke fixed-layout column mapping) and regenerates the README screenshot with the new row layout.

    curl -L -o zcode-dispatch-observatory.tar.gz \
      https://oss-oo.io/OSS-Singularity/zcode-dispatch-observatory/releases/download/v1.3.1/zcode-dispatch-observatory.tar.gz
    tar xzf zcode-dispatch-observatory.tar.gz
    cd zcode-dispatch-observatory
    ./install.sh --target ~/tools/zcode-dispatch-observatory
    zcode-observatory   # http://127.0.0.1:8767
    

    MIT licensed.

    Downloads
  • v1.3.0 ed23cd6df4

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

    ClaudiuSchuster released this 2026-09-24 15:41:15 +00:00 | 122 commits to main since this release

    v1.3.0 — response modal: last-messages quick view per session 📝

    Desktop notifications from zcode-dispatch show only a ~100-char excerpt, and the ZCode desktop chat needs a full app restart to display externally appended turns. v1.3.0 adds the fast reading path: a per-row button opens a modal with the session's recent conversation — the full tail, not just the final response.

    • Every session row in all sections (Running / History / Hidden) carries a button: “Show last output” while running, “Show response” once terminal (completed/failed/timeout)
    • The modal shows the last 15 messages (user + assistant interleaved, oldest → newest, auto-scrolled to bottom) via the existing transcript API (?limit=15) — no server changes
    • Same visual language as the transcript drawer: role labels + timestamps, user/assistant accent cards, reasoning collapsed behind a toggle, tool parts as one subdued ⚙ line, soft blue glow on 🔔 stream doorbell messages
    • Title with status dot; close via ✕, ESC, or backdrop click; footer with message-count context (showing the last 15 of 197 messages)
    • Copy button exports the visible conversation as plain [role] text lines; “Open full transcript” hands over to the full-history drawer
    • While open on a running session the modal re-polls every 5 s and appends new messages; a session with no assistant answer yet opens on a friendly “no output yet” state (the button never dead-ends)
    • Strictly read-only on the ZCode database, stdlib only, localhost-bound
    curl -L -o zcode-dispatch-observatory.tar.gz \
      https://oss-oo.io/OSS-Singularity/zcode-dispatch-observatory/releases/download/v1.3.0/zcode-dispatch-observatory.tar.gz
    tar xzf zcode-dispatch-observatory.tar.gz
    cd zcode-dispatch-observatory
    ./install.sh --target ~/tools/zcode-dispatch-observatory
    zcode-observatory   # http://127.0.0.1:8767
    

    MIT licensed.

    Downloads
  • v1.0.8 5cf2c678e1

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

    ClaudiuSchuster released this 2026-09-24 14:58:29 +00:00 | 123 commits to main since this release

    Fix: driven-detection only marks the newest session per cwd (notification steers were mass-flagging 30+ sessions as running).

    Downloads
  • v1.2.0 a2f8c07066

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

    ClaudiuSchuster released this 2026-09-24 14:52:29 +00:00 | 124 commits to main since this release

    v1.2.0 — session transcript view: no-restart doorbell visibility 🔔

    The ZCode desktop app keeps an open conversation in memory — a 🔔 doorbell rung into an idle-but-open session only shows there after a full app restart (which kills running turns). v1.2.0 closes that gap: the observatory reads the shared session DB live.

    • GET /api/session/<id>/transcript — one session's messages, oldest first: sequence, role, timestamp, joined text parts, part-type hints; step/timeline noise skipped server-side; last 200 messages by default (?limit=N, max 1000)
    • Clicking a session row opens an inline transcript panel that re-polls every 5 s — a freshly arrived doorbell and the wake turn's answer appear without any restart
    • User/assistant accent cards, reasoning collapsed behind a toggle, tool parts as one subdued ⚙ line; doorbell messages get the soft blue glow treatment
    • Strictly read-only on the ZCode database, stdlib only, localhost-bound
    curl -L -o zcode-dispatch-observatory.tar.gz \
      https://oss-oo.io/OSS-Singularity/zcode-dispatch-observatory/releases/download/v1.2.0/zcode-dispatch-observatory.tar.gz
    tar xzf zcode-dispatch-observatory.tar.gz
    cd zcode-dispatch-observatory
    ./install.sh --target ~/tools/zcode-dispatch-observatory
    zcode-observatory   # http://127.0.0.1:8767
    

    MIT licensed.

    Downloads
  • v1.1.0 97add6f749

    v1.1.0
    Some checks failed
    Checks / Functional checks (push) Has been cancelled
    Checks / Super-Linter (push) Has been cancelled
    Stable

    ClaudiuSchuster released this 2026-09-24 12:36:20 +00:00 | 126 commits to main since this release

    v1.1.0 — event webhooks: push instead of poll 🔔

    The observatory now pushes session status changes to registered webhooks:

    • POST /api/webhooks/register — register a callback URL + events
    • GET /api/webhooks / DELETE /api/webhooks/<id>
    • Events: session.completed, session.failed
    • Delivery: background threads, 3 retries, 5s timeout

    Built by the first production Narf-doorbell pinky (dispatched with --notify-parent).

    curl -L -o zcode-dispatch-observatory.tar.gz \
      https://oss-oo.io/OSS-Singularity/zcode-dispatch-observatory/releases/download/v1.1.0/zcode-dispatch-observatory.tar.gz
    tar xzf zcode-dispatch-observatory.tar.gz
    cd zcode-dispatch-observatory
    ./install.sh --target ~/tools/zcode-dispatch-observatory
    zcode-observatory   # http://127.0.0.1:8767
    

    MIT licensed.

    Downloads
  • v1.0.7 6ea806e44c

    v1.0.7
    Some checks failed
    Checks / Functional checks (push) Has been cancelled
    Checks / Super-Linter (push) Has been cancelled
    Stable

    ClaudiuSchuster released this 2026-09-24 08:11:02 +00:00 | 127 commits to main since this release

    v1.0.7 — repository icon asset

    .github/icon.png (the live repo avatar) + .github/generate-icon.py (byte-exact regeneration, PIL, fixed seed).

    curl -L -o dl.tar.gz https://oss-oo.io/OSS-Singularity/zcode-dispatch-observatory/releases/download/v1.0.7/zcode-dispatch-observatory.tar.gz
    

    MIT licensed.

    Downloads