v1.21.0
Added
- Browser-chat capture (opt-in MV3 extension). Full-detail capture of
ChatGPT, Claude.ai, Perplexity, Gemini, and consumer Copilot web sessions
from Chrome (WSL + Windows) via a native-messaging bridge into the new
browserchatadapter — prompts, responses, models, and estimated tokens,
with best-effort redaction and health telemetry (observer browser health).
Load-unpacked only for now. Seedocs/browser-extension.md. - Session attach: join and drive live sessions from the dashboard.
Observer-launchedclaude/codexsessions are daemon-owned PTYs the
dashboard can now join ("live · joinable" badge → Jump in), while your
native terminal stays fully interactive. Closed sessions gain one-click
native Resume (observer claude --resume <id>composed server-side)
from the session panel. Remote (paired-device) viewing of attach/resume
terminals stays deny-by-default behind the new[remote].allow_terminal_view
read opt-in. - Resilient default-on attach. Interactive
observer claude/observer codex
launches attach by default when the daemon is reachable
([terminal.attach].default_on, Settings-togglable;--no-attachopts out
per launch). Graceful daemon restarts stamp a durableend_reason
(migration 072) and the attach client offers prompt-with-timeout
auto-resume onto the same transcript; every skipped default-attach prints
an honest one-line reason. - Terminal Workspace dock grid. The Terminals page is now a workspace:
an auto-compacting responsive grid of live terminals — drag tiles by their
header, resize from edges, add running sessions from the tray, "⊞ Add to
grid" directly on any floating terminal window, "⬈ Open as window" to
undock a tile back into a user-resizable, size-persisted floating
window. Layouts persist server-side (node-localworkspace_layouts,
migration 073) and render read-only on paired remote devices. Honest close
semantics: "Remove from grid" keeps the session running; "Stop & close"
actually ends the process.[terminal].max_concurrentdefault raised to 9.
Existing policy/status/history content lives under a Settings tab. - Standing-access hardening toggle. Opt-in
[remote].revoke_standing_on_takeover: a desktop takeover of a remote
writer that held control through the standing secret also revokes the
standing secret itself (identical teardown to the explicit revoke). Default
stays seamless — takeover revokes only the live lease.
Fixed
- Daemon-down no longer breaks claude launches.
observer initbakes the
proxy route into claude's ownsettings.json, which outranks the process
environment — so a "bare" fallback launch used to route API calls into a
dead proxy. The launchers now resolve the effective route across every
settings scope claude honors (managed/CLI/local/project/user, including
inline-JSON--settingsand--continue-fromworking directories) and
neutralize observer routes with a one-shot CLI-scope--settingsoverride
(signal-safe temp file); un-overridable cases (managed scope, your own
--settings, codex's config-file route) refuse with copy naming the exact
fix. Third-party gateway routes are always honored, never clobbered. - "Stop & close" now actually stops the process. Since detach-replay, a
websocket close only detached the embedded terminal; every stop control now
issues the explicit server-side reap. - Mobile layout no longer breaks on long project paths. One shared
tail-preserving truncation primitive (ellipsis at the head, leaf visible,
full path on hover) across all pages, plus explicit horizontal-scroll
containment on the Overview table. - Terminal runs killed by a daemon shutdown no longer show as running forever
in the run history; floating-terminal resize no longer minimizes the window
on release.
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.21.0-linux-x64.tar.gz |
| Linux arm64 | observer-v1.21.0-linux-arm64.tar.gz |
| macOS x86_64 (Intel) | observer-v1.21.0-darwin-x64.tar.gz |
| macOS arm64 (Apple Silicon) | observer-v1.21.0-darwin-arm64.tar.gz |
| Windows x86_64 | observer-v1.21.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.21.0
Org server (Docker)
The self-hosted org server ships as a Docker image and as per-platform observer-org-v1.21.0-* archives (attached below).
docker pull ghcr.io/marmutapp/observer-org:v1.21.0The image is keyless-signed with cosign. Verify it:
cosign verify ghcr.io/marmutapp/observer-org:v1.21.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