Added
- Take control back at your native terminal. The missing leg of the
session-control triangle: after a dashboard Jump-in, just start typing in
the terminal that launched the session (observer claude/codex) — the
daemon returns the writer lease, delivers that keystroke, prints a
one-line notice, and re-pushes your terminal's geometry so a TUI the
dashboard left at foreign dimensions heals in the same gesture. Machine
bytes never reclaim (terminal emulators auto-answer TUI queries on stdin);
arrow keys or a bare ESC alone won't either, by design. Config:
[terminal.attach].reclaim_on_input(default on). The dashboard seat goes
honestly read-only — "control returned to the native terminal — click to
take back". - Original-size restore for broken TUIs. The daemon now tracks each
session's launch-time and current PTY dimensions; every dashboard terminal
gets a fit / original-size toggle that pins the launch geometry (auto-refit
suppressed) to recover a TUI corrupted by resizes, and a seat re-asserts
its own geometry whenever it regains control. - Keyboard shortcuts reach the dashboard terminal. Ctrl+A/E/K/. and
friends now go to the TUI instead of the page while the terminal is
focused; Ctrl+Alt push-to-talk chords pass through untouched;
copy-with-selection stays native. Browser-reserved keys (Ctrl+W/T/N)
honestly can't be intercepted in a normal tab — the new fullscreen
focus mode (Keyboard Lock, Chromium) is where they reach the TUI. - Watch a bare session read-only. Sessions started outside observer
(plainclaude,codex, …) that are actively producing events now show a
"live · watch" badge: a read-only, auto-following view of the conversation
(4s refresh, stick-to-bottom) in the session panel. "Jump in" stays
honestly disabled — a bare launch's terminal belongs to the shell that
started it — with "Watch instead (read-only)" offered in its place. - Collapsible sidebar. The dashboard's left nav collapses to a compact
icon rail on desktop (persisted, tooltips); the mobile drawer is unchanged.
Fixed
- Post-v1.21.0 CI red: six golangci-lint findings in the release's new code
(behavior-preserving refactors) and the missed website version sweep.
Downloads
Pre-built binaries for each supported platform are attached below. Linux variants bundle antigravity-bridge.exe next to the observer binary for WSL2 users of the Antigravity adapter.
| Platform | Asset |
|---|---|
| Linux x86_64 | observer-v1.22.0-linux-x64.tar.gz |
| Linux arm64 | observer-v1.22.0-linux-arm64.tar.gz |
| macOS x86_64 (Intel) | observer-v1.22.0-darwin-x64.tar.gz |
| macOS arm64 (Apple Silicon) | observer-v1.22.0-darwin-arm64.tar.gz |
| Windows x86_64 | observer-v1.22.0-win32-x64.zip |
Verify with sha256sum -c SHA256SUMS (or shasum -a 256 -c SHA256SUMS on macOS) from the directory containing the downloads.
Also available via npm: npm install -g @superbased/observer@1.22.0
Org server (Docker)
The self-hosted org server ships as a Docker image and as per-platform observer-org-v1.22.0-* archives (attached below).
docker pull ghcr.io/marmutapp/observer-org:v1.22.0The image is keyless-signed with cosign. Verify it:
cosign verify ghcr.io/marmutapp/observer-org:v1.22.0 \
--certificate-identity-regexp 'https://github.com/marmutapp/superbased-observer-private/.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.comSupply chain
CycloneDX SBOMs are attached: observer.cdx.json and observer-org.cdx.json.
SLSA Level 3 build provenance for the binaries is attached below as a *.intoto.jsonl attestation. The build runs on the private origin repo, so pass that as the source when verifying an extracted binary with slsa-verifier v2.7.0 or newer (older versions fail with unexpected tlog entry type: expected intoto:0.0.2, got dsse:0.0.1):
slsa-verifier verify-artifact ./observer \
--provenance-path *.intoto.jsonl \
--source-uri github.com/marmutapp/superbased-observer-private