Skip to content

v1.22.0

Latest

Choose a tag to compare

@marmutapp marmutapp released this 21 Jul 07:55

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
    (plain claude, 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.0

The 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.com

Supply 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