Commit history for migrations
- Index never-verified users so the unverified-account sweep stops scanning every user85937f6⌁taigrr committed
- Page site reconcile and hosting GC through an indexed scope range instead of listing every site scopee25dacb⌁taigrr committed
- Report offline runners from their owner's AccountState alarm instead of a cron over every account1a51371⌁taigrr committed
- Keep an import's relay window open on every backfill pass, and give pre-existing relay counts a window929f6ea⌁taigrr committed
4fd8e82⌁
- Drop the moved tables from D1; the per-repository and per-account objects are the only copy nowb62048b⌁taigrr committed
f55fdae⌁
- Re-run the scope locator backfill for deployments that applied the earlier 0054; point the advisories binding at the created database9581a6f⌁taigrr committed
- Move CI runs, jobs, statuses, caches, webhooks, secrets, variables, environments and deploy tokens into RepoState1cbb8e5⌁taigrr committed
ba97ae2⌁
0b9a0e7⌁
- Move security data (advisories, alerts, SARIF, dependencies, settings) into RepoState and signing keys into AccountState7794e8f⌁taigrr committed
- Add per-repo RepoState and per-account AccountState SQL stores, the involvement index, scope locators and the migration planc23c430⌁taigrr committed
- kill global search for do search21614f7⌁taigrr committed
- waitlist approval bypass875f546⌁taigrr committed
0c7b2c4⌁
- fixup migrations and push6d8b711⌁taigrr committed
- Remove the security review and triage docs now that every finding is closed, keep operator contacts out of the repo (ABUSE_FORWARD_TO is a secret, ADMIN_EMAIL is unset), and drop the private go-live checklist16fdec6⌁taigrr committed
- Merge feat/remove-pages1823e11⌁taigrr committed
- Merge fix/abuse6c55473⌁taigrr committed
- Merge fix/billing2d2ca7c⌁taigrr committed
- Merge release/ratelimit3638708⌁taigrr committed
- Merge release/billing3619d8b⌁taigrr committed
- Merge release/abuse38a754f⌁taigrr committed
2d7fafa⌁
- Round 3 hosting fixes: backfill only active domains as verified, D1 lease and bounded R2 work for object GC with orphan skipping and admin alerts, safe duplicate add-on cancel, lapse clears after release and restarts on new domains, transfer cap enforcement, and 404 for Pages of deleted repos.f58928e⌁taigrr committed
- Harden hosting cost controls per review: GC re-checks before delete, aborts on unreadable manifests and takes a lease; custom domain grace covers pre-existing and ungranted domains, lapse/reconcile sweeps can't stall, quantity follows transfers and teardown, duplicate add-ons are cancelled, verified domains never expire; Pages follows the current repo owner; aliases are per-PR, reserved and dropped with their preview.9dc4854⌁taigrr committed
- Add hosting cost controls: same-day hard caps from counter flushes, metered Pages traffic with plan caps, resumable R2 object GC, SITES_ENABLED/PAGES_ENABLED kill switches with admin hosting suspension, and a global daily dynamic-site ceiling.1a38b42⌁taigrr committed
- Sell custom domains as a per-domain Stripe add-on: gate new domains on it (or a plan flag/admin grant without billing), cap 25 per account, sync quantity, release domains after a lapsed add-on's grace, and delete Cloudflare hostnames on expired claims, private Pages, repo and org deletion.9a3b4a9⌁taigrr committed
- Add pr-<N> preview aliases that follow a pull request's latest branch preview and drop on close, plus opt-in immutable <sha7> commit previews (last 5 per PR).110dfda⌁taigrr committed