$ the-wire · showcase
Crabbox revokes Code viewer sessions on logout, adds Scaleway SSH leases
By RepoJournal · Filed · About OpenClaw
Crabbox now revokes Code viewer sessions server-side on GitHub portal logout and adds a direct Scaleway SSH-lease provider, with Cloudflare Access key fetches bounded behind admin auth.
Crabbox closes a session-leak hole: Code viewer tickets and sessions are now bound to the authenticated GitHub portal session, and logout triggers bounded server-side revocation that rejects stale viewer cookies, pending bootstraps, and remint attempts. Active and hibernated Code viewer WebSockets close atomically, the Code agent is notified, and post-logout frame forwarding is blocked. Every newly issued GitHub user token gets a distinct session identity while existing tokens remain accepted. This change fails closed through the ticket validation path [1].
Crabbox adds a direct Scaleway SSH-lease provider built on the official SDK, implementing acquire, resolve, touch, release, cleanup, doctor, claim recovery, per-lease IAM SSH keys, ownership tags, and all-pages inventory. It propagates command contexts into every SDK request, redacts both environment and SDK-profile credentials from validation errors, and preserves ambiguous-create access while reconciling proven key-only rollback claims [2]. Separately, Cloudflare Access JWT verification is deferred until a valid Crabbox admin/shared bearer token is presented, with JWK sets cached per normalized team domain under bounded TTL/LRU storage, single-flight loads, and short failure throttling. One bounded refresh on cached key misses keeps signing-key rotation transparent, and pre-auth, unknown-key, concurrency, rotation, and oversized-input cases are covered [3].
For local benchmarking, Crabbox now offers an opt-in timing ledger around existing TimingReport payloads. New `run --timing-record` plus `bench run`, `bench record`, and evidence-aware `bench report --json` keep observations local, report successful sample and failure counts, and mark insufficient evidence instead of ranking providers globally, while preserving delegated providers' complete timing metadata [4]. In openclaw/openclaw, housekeeping removed two stale shims: the dead qwen model shim [5] and the copied copilot token shim [6]. QA fixes strip control-ui API key params [7] and preserve adjacent control-ui redaction [8], and the SDK now types agent mutation RPC params [9]. The docs repo mirrored five upstream doc states [10][11][12][13][14].
Action items
- → Review logout flows against the new Code viewer session revocation; existing tokens remain accepted but new tokens carry distinct session identities openclaw/crabbox [plan]
- → If you use the local benchmark timing ledger, adopt the new bench subcommands and check evidence-aware reporting openclaw/crabbox [plan]
References
- [1] fix: revoke Code viewer sessions on logout ↗ openclaw/crabbox
- [2] feat(scaleway): add direct SSH lease provider ↗ openclaw/crabbox
- [3] fix: bound Cloudflare Access key fetches ↗ openclaw/crabbox
- [4] feat: add local benchmark timing ledger ↗ openclaw/crabbox
- [5] chore(deadcode): remove stale qwen model shim ↗ openclaw/openclaw
- [6] chore(deadcode): remove copied copilot token shim ↗ openclaw/openclaw
- [7] fix(qa): strip control ui api key params ↗ openclaw/openclaw
- [8] fix(qa): preserve adjacent control ui redaction ↗ openclaw/openclaw
- [9] fix(sdk): type agent mutation RPC params ↗ openclaw/openclaw
- [10] chore(sync): mirror docs from openclaw/openclaw@4a0f497f167fe547c961e1014cafa1ba5768ccac ↗ openclaw/docs
- [11] chore(sync): mirror docs from openclaw/openclaw@e35e5f123ddae0fbcef1d578ada7c06b1647017b ↗ openclaw/docs
- [12] chore(sync): mirror docs from openclaw/openclaw@3fa4fdaec1249752a93d19ddf0fc4f9967b36d82 ↗ openclaw/docs
- [13] chore(sync): mirror docs from openclaw/openclaw@8aa58c5fb0b4c85722a05d4bcf0984808f230d32 ↗ openclaw/docs
- [14] chore(sync): mirror docs from openclaw/openclaw@b677ea6726d7db93cae201fc288ca96f124a1f84 ↗ openclaw/docs