Commit history for src/fns
- Merge fix/verify-gate25d807bf⌁taigrr committed
- Let unverified accounts open the billing portal to cancel or update the card, and fix the rate limiter test fixture for the verified-write guard64b0cda⌁taigrr committed
- Merge fix/verify-gatec201dc1⌁taigrr committed
- Launch Sites custom domains on gitforstatic.dev: SaaS zone, catch-all route, show customers the CNAME target, reserve the fallback host name, and keep the forge app off every host but its own5f8a63e⌁taigrr committed
- Merge feat/remove-pages1823e11⌁taigrr committed
- Merge fix/abuse203118c2⌁taigrr committed
- Merge fix/abuse6c55473⌁taigrr committed
- Merge fix/billing2d2ca7c⌁taigrr committed
- Format merged login limitsfabd02e⌁taigrr committed
- Merge release/ratelimit3638708⌁taigrr committed
- Merge release/scratchcc94bde⌁taigrr committed
- Merge release/abuse38a754f⌁taigrr committed
- Merge release/dofe2c25c⌁taigrr committed
- Merge release/posthogfe357f8⌁taigrr committed
2d7fafa⌁
- 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
- fixup stacks, fns5858d70⌁taigrr committed
425a731⌁
- Add legal pages, signup terms acceptance, self-service account deletion and data export so the public forge meets launch compliance basics; PostHog runs cookieless so no cookie banner is needed.abe2e9c⌁taigrr committed
- Harden email replies, editor container billing and lifecycle, MCP merge/approval confirmation, GitHub pull mirrors and BYOK keys (INT-P2..P21)fa13453⌁taigrr committed
- Reject web and REST settings writes on archived repositories while keeping removals, revokes and make-private available.6c13c42⌁taigrr committed
- Require fork PR approval on push unless author, head owner and pusher are all trusted; record every rerun's parent95f19f9⌁taigrr committed
- Gate remaining admin REST writes on archived repos, hide owner runners from repo admins on the web, and make the last-owner guard atomic.61438e0⌁taigrr committed
- Harden production deploys: config split with boot assertions, admin bootstrap, security headers, error maskinga76edca⌁taigrr committed
- Fix pre-deploy authz findings: transfers need admin on both accounts, archived and scope gates on admin REST writes, inbox and dashboard filtered by current access, revocation purges assignments and notifications, missing rate limits.ed881e4⌁taigrr committed
- Enforce the spending limit across meters inside the reservation transaction so concurrent holds cannot jointly overshoot it, and let admin-set plans stick until an admin hands the account back to Stripe billing.192c134⌁taigrr committed
- Close pre-deploy auth gaps: deploy tokens die with repo transfers, password resets and lost admin; token revocation cascades through every descendant; agent tokens minted over REST stay within the caller's grant; TOTP failures lock out persistently; login, email removal, passkey counters, signing-key lookup and sign-out-everywhere hardened.c9c6455⌁taigrr committed