Skip to content

v1.11.0

Choose a tag to compare

@marmutapp marmutapp released this 27 Jun 10:11
· 16 commits to main since this release

Added

  • Proxy routing for many more CLIs. A shared observer <tool> launcher
    family plus a per-provider upstream seam (/up/<id> path prefix +
    [proxy.upstreams]) now route OpenAI- and Gemini-shaped traffic from
    opencode, gemini-cli, copilot-cli, pi, cline-cli, and hermes
    through the proxy for accurate token capture and conversation compression —
    each via its own mechanism (a launch-time base-URL env var, a models.json /
    providers.json custom provider, or a secret-free named provider with
    key_env). The launchers never write an API key. All live-verified.
  • Gemini conversation compressor. A Google generateContent provider lane
    in the proxy (providerForPathparseGeminiResponse / parseGeminiStream,
    accurate usageMetadata capture) plus a generateContent body compressor:
    deep-recursive tool-output compression at any nesting depth, content-addressed
    stash parity, and a pairing/alternation-safe budget drop pass for contents[]
    that never produces an invalid or 400-bound body. Default-off, like all
    conversation compression.
  • Adapter capability registry (internal/integration). One data-owned row
    per adapter declares its proxy / route / hook / MCP / native-console / token
    capabilities; observer init, observer doctor, and the new
    observer adapters support-matrix command all dispatch on capability SHAPE,
    not tool name. Surface-specific routability buckets retire the old
    "permanently impossible" framing.
  • Cache-expiry warning system (cachewarm): classifies live prompt caches
    into ok / soon / critical / cold with value-at-risk, and recommends the
    cheapest content-free keep-warm lever. Surfaced in the dashboard,
    observer cache-status, the MCP cache_status tool, and the VS Code status
    bar.
  • Real-time Live capture. A Linux eBPF process-capture backend (with
    self-capture exclusion + exec-duration fallback), action-derived command rows
    (message↔command capture with no OS polling), all-adapter process attribution,
    and Codex limit tracking — surfaced on the Live page with row-click detail.
  • Broader trace + MCP coverage. A full trace-coverage sweep captures user
    prompts, assistant text, reasoning, system prompts, and per-message
    stop_reason across the non-reference adapters; MCP config is now written for
    cline and opencode (incl. the cross-OS WSL bridge).
  • SuperBased favicons on the local and admin dashboards.

Fixed

  • Token & cost accuracy across adapters: net cached tokens out of gross
    OpenAI-shaped input (gemini-cli), capture Gemini reasoning from the live
    thoughts key, correct the copilot-cli cache-tier ledger, propagate hermes
    session cost, resolve Cursor's real model from store.db when the hook
    reports default, capture the newer Antigravity agy CLI plaintext-SQLite
    conversations, and read OpenClaw's accurate per-call tokens from the
    trajectory trace.
  • Proxy: detect OpenAI-compatible endpoints on non-/v1 paths so custom
    upstreams with an /api/v1 base still capture.
  • Org dashboard: the Projects page no longer crashes when a project has no
    team overlap (a nil teams slice marshaled to JSON null and broke the
    .length read); show the real compression-savings figure in the milestone
    card; COALESCE action-count sums so pruned sessions don't 500.

Notes

  • Conversation compression stays default-off (opt-in); the privacy push seam is
    unchanged. OpenClaw remains a documented runtime-block — routing stalls inside
    the CLI's own --local startup, independent of credentials
    (docs/plans/openclaw-runtime-block-followup-2026-06-27.md).

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.11.0-linux-x64.tar.gz
Linux arm64 observer-v1.11.0-linux-arm64.tar.gz
macOS x86_64 (Intel) observer-v1.11.0-darwin-x64.tar.gz
macOS arm64 (Apple Silicon) observer-v1.11.0-darwin-arm64.tar.gz
Windows x86_64 observer-v1.11.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.11.0

Org server (Docker)

The self-hosted org server ships as a Docker image and as per-platform observer-org-v1.11.0-* archives (attached below).

docker pull ghcr.io/marmutapp/observer-org:v1.11.0

The image is keyless-signed with cosign. Verify it:

cosign verify ghcr.io/marmutapp/observer-org:v1.11.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