v1.9.0
Added
- Next-Message Cost & Limit Predictor. A low/mid/high cost band for
your next user message (pure read-side math overtoken_usage, no
proxy required) plus a proxy-only 5h/weekly subscription-limit gauge
read from Anthropic rate-limit response headers. Surfaces:
observer predict <id>(+--json), the session-detail
"Next-message cost predictor" card, andGET /api/session/<id>/predict.
Default-on[predict]config; node-locallimit_snapshots
(migration 049). Distinct from the model-switch cache forecaster. scripts/restart-daemon.sh— a proxy-safe, atomic daemon-restart
helper (route off → stop → relaunch → route on) with--compression on|off. Killing the daemon while a client routes through the proxy
otherwise gives that sessionConnectionRefused. See
docs/daemon-restart-runbook.md.
Fixed
- Conversation compression no longer corrupts large requests. The
forward-path secrets scrubber applied line-oriented regexes across the
whole serialized body; on compact JSON the generictoken:<value>
family's\S+could devour structural bytes to end-of-body, truncating
the request into invalid JSON and triggering an upstream400 unexpected characteron proxied Claude Code once a conversation grew past ~214KB.
Scrubbing is now JSON-structure-aware (scrub.ScrubForward), and the
proxy refuses to forward any compressor output that failsjson.Valid,
falling back to the original body. Verified live on ~1MB requests. - PreToolUse hook fails open on watchdog timeout (exits 0, not
non-zero) so a momentarily busy daemon can never block the host tool and
cascade the session. - Retention size-cap prune no longer sheds recent activity. A 30-day
actionskeep-floor plus aSizeCapUnmetwarning replace the blind
shed that could empty the table chasing a budget dominated by other
tables (token_usage/ cache).
Changed
- Contact email domain migrated
marmut.app→superbased.appacross
documentation, package metadata, and the website source.
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.9.0-linux-x64.tar.gz |
| Linux arm64 | observer-v1.9.0-linux-arm64.tar.gz |
| macOS x86_64 (Intel) | observer-v1.9.0-darwin-x64.tar.gz |
| macOS arm64 (Apple Silicon) | observer-v1.9.0-darwin-arm64.tar.gz |
| Windows x86_64 | observer-v1.9.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.9.0
Org server (Docker)
The self-hosted org server ships as a Docker image and as per-platform observer-org-v1.9.0-* archives (attached below).
docker pull ghcr.io/marmutapp/observer-org:v1.9.0The image is keyless-signed with cosign. Verify it:
cosign verify ghcr.io/marmutapp/observer-org:v1.9.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