Blame · Line-by-line history
LAUNCH_TODAY.md
Each line is annotated with the commit that last touched it. Click any SHA to jump to that commit and see the surrounding change.
| 988380a | 1 | # Pre-launch checklist |
| a64e08d | 2 | |
| 988380a | 3 | The platform is effectively feature-complete — BUILD_BIBLE §2 is almost entirely ✅, and blocks A–J have all shipped bar the one row called out below. This doc tracks the remaining go-live work. |
| a64e08d | 4 | |
| 988380a | 5 | Legend: ✅ done · 🟡 in-flight · ❌ not started |
| a64e08d | 6 | |
| 7 | --- | |
| 8 | ||
| 988380a | 9 | ## Infrastructure |
| 10 | ||
| 11 | - ✅ Deployment target is Crontech (see `DEPLOY.md`). Neon is the database. No Vercel, no Hetzner. | |
| 12 | - ✅ Migrations run via `bun run db:migrate`; release-phase wiring documented. | |
| 13 | - ✅ `/healthz`, `/readyz`, `/metrics` endpoints shipped (BUILD_BIBLE §2.6). | |
| 14 | - ✅ Request-ID tracing on every response (`src/middleware/request-context.ts`). | |
| 15 | - ✅ Rate limiting on `/api/*`, `/login`, `/register` (`src/middleware/rate-limit.ts`). | |
| 16 | - ✅ Persistent-volume story for `/data/repos` captured in `DEPLOY.md`. | |
| 17 | - ✅ Bare-repo backups — filesystem snapshot responsibility documented; Neon PITR for the DB. | |
| 18 | - 🟡 `/metrics` shipping to Grafana / Datadog / Prometheus — endpoint exists, pipe not wired. | |
| 19 | - ❌ Error-tracking (Sentry) wiring. Block F follow-up. | |
| 20 | ||
| 21 | ## Content | |
| 22 | ||
| 23 | - ✅ Landing page — `src/views/landing.tsx` (`LandingPage`), mounted for logged-out `/` via `src/routes/web.tsx` (BUILD_BIBLE §7, shipped this session). | |
| 24 | - ✅ Legal pages — `legal/TERMS.md`, `legal/PRIVACY.md`, `legal/AUP.md`, `legal/SETUP-GUIDE.md`. | |
| 25 | - 🟡 Demo org / sample repos — `src/lib/demo-seed.ts` and the `DEMO_SEED_ON_BOOT=1` boot flag are the deferred item from BUILD_BIBLE §7. Design sketch exists; no code yet. | |
| 26 | - ✅ README reflects shipped feature surface (`README.md`). | |
| 27 | - ✅ Deployment doc reflects Crontech-first reality (`DEPLOY.md`). | |
| 28 | - ✅ GATETEST_HOOK.md documents inbound callback contract. | |
| 29 | ||
| 30 | ## Operational | |
| 31 | ||
| 32 | - ✅ Autopilot ticker (`src/lib/autopilot.ts`) shipped this session. Runs mirror sync, merge-queue peek, weekly digests, advisory rescans every 5 minutes. Opt out via `AUTOPILOT_DISABLED=1`. Test coverage in `src/__tests__/autopilot.test.ts`. | |
| 33 | - ✅ Site admin panel (`/admin`) + bootstrap rule — oldest user becomes admin when `site_admins` is empty (BUILD_BIBLE Block F3). | |
| 34 | - ✅ Billing plans seeded (free/pro/team/enterprise) + quota enforcement (Block F4). | |
| 35 | - ✅ Audit log surfaced per-user (`/settings/audit`) and per-repo (`/:owner/:repo/settings/audit`) (Block A2). | |
| 36 | - ✅ Email notifications + opt-in weekly digest (Blocks A8, I7). | |
| 37 | - ✅ Post-receive pipeline — GateTest, secret scanner, AI security review, CODEOWNERS sync, webhook fan-out (Blocks A1, D, green-ecosystem defaults). | |
| 38 | - ✅ Auto-repair engine runs when `ANTHROPIC_API_KEY` is set. | |
| 39 | - 🟡 Monitoring / on-call rotation — `/metrics` + `/healthz` are live; alerting rules are not. | |
| 40 | - 🟡 Backup restore drill — never rehearsed end-to-end. | |
| 41 | ||
| 42 | ## Communications | |
| 43 | ||
| 44 | - ❌ Launch announcement draft (blog post, social). | |
| 45 | - ❌ Status page / platform-status endpoints surfaced publicly. `CRONTECH_STATUS_URL` / `GLUECRON_STATUS_URL` / `GATETEST_STATUS_URL` env vars + `/admin/platform` widget are shipped; external status page is not. | |
| 46 | - ❌ Changelog or release-notes cadence committed. | |
| 47 | ||
| 48 | ## Legal | |
| 49 | ||
| 50 | - ✅ Terms of Service — `legal/TERMS.md`. | |
| 51 | - ✅ Privacy policy — `legal/PRIVACY.md`. | |
| 52 | - ✅ Acceptable-use policy — `legal/AUP.md`. | |
| 53 | - ✅ License file — `LICENSE` in root. | |
| 54 | - 🟡 Legal audit — `docs/legal-audit.md` tracks outstanding items; review before launch. | |
| 55 | - ❌ DPA template for enterprise SSO customers (Block I10 shipped, customer paperwork did not). | |
| a64e08d | 56 | |
| 57 | --- | |
| 58 | ||
| 988380a | 59 | ## Go/no-go gates (the short list) |
| a64e08d | 60 | |
| 988380a | 61 | 1. Smoke `/healthz` + `/readyz` in production → both green. |
| 62 | 2. Crontech release pipeline runs `db:migrate` successfully on deploy. | |
| 63 | 3. Register → create repo → clone over HTTPS → push → GateTest posts back → webhook fires. End-to-end in prod. | |
| 64 | 4. `AUTOPILOT_DISABLED` decision made explicitly (default: enabled). | |
| 65 | 5. Demo content story resolved — either ship `DEMO_SEED_ON_BOOT=1` wiring or accept an empty home. | |
| 66 | 6. Launch comms drafted and scheduled. | |
| a64e08d | 67 | |
| 988380a | 68 | Anything below these bars is non-blocking polish. |