Commit Graph
3 Commits
Author SHA1 Message Date
Neil 20338e08c5 fix(sandbox-control): routine comments mint an issues:write token so plain issues get comments (falls back when the installation lacks it) 2026-11-09 23:05:42 -08:00
Neil 0744798c98 fix(cloud): bind GitHub App installations to Orca accounts; kill switch, caps, rate limit; orphan sweep and retention (#24)
Security (B1): repo tokens were minted for any repo.url where the app was installed. Now an
installation must be bound to the caller's account (signed single-use connect state + OAuth proof
that the installer owns the account or is an org admin), tokens are scoped to the one repo and the
binding is re-checked on cached tokens. Operator binding route for support/dev.

Guardrails (B3/G4): D1 kill switch + static flag refuse create/resume/rollover and drain running
sandboxes; global running cap; 3/seat per-account backstop; per-account create rate limit.

Retention (B4/B6): hourly orphan sweep (stop, then delete after grace; partial listings delete
nothing), 30-day deletion after cancel/unpaid with a T-7 warning hook, 90-day idle retention,
104-day provider snapshot expiry backstop, repo_url tombstoned on destroy.
2026-11-09 02:19:25 -08:00
Neil 6130c4d793 feat(cloud): GitHub App repo tokens + billing dev wiring for the sandbox control plane (#20)
* feat(cloud): GitHub App installation tokens for sandbox git (manifest flow, minter, policy refresh)

* feat(cloud): billing dev wiring — shared control-plane token via service binding, grace-expired suspensions, standard/large only
2026-11-09 02:19:24 -08:00