chore: archive code-port plan, add plans/todo.md index

Code port (commit bff1d32) is done; move plan to plans/archive/.
New plans/todo.md is the forward-looking index pointing at the active deploy
plan, pre-flight checks, hard gates, and open questions for the operator.
This commit is contained in:
2026-04-26 23:46:22 +07:00
parent 797f040574
commit 00a6415778
7 changed files with 46 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
# Outstanding Work
Quick index of what's left after the Worker code port (commit `bff1d32`).
## Active plan
**[260426-2327-cloudflare-deploy-and-smoke](260426-2327-cloudflare-deploy-and-smoke/plan.md)** — operator-driven; provision Atlas, set CF secrets, run hard gates, deploy, register webhook, smoke-test, write deployment docs.
## Pre-flight (operator)
Before running the deploy plan:
- [ ] `npm install` (first time only — pulls `mongodb` + `wrangler`)
- [ ] MongoDB Atlas account created (free, no credit card)
- [ ] Cloudflare account created (free Workers plan)
- [ ] `npx wrangler login` complete
## Hard gates that can abort the deploy plan
| Gate | Threshold | Pivot if fail |
|---|---|---|
| Bundle size (`wrangler deploy --dry-run`) | ≤ 2.7 MiB (10% headroom under 3 MiB Free cap) | Switch storage to Upstash Redis (no driver, HTTP-only) |
| Cold-start CPU (`/__mongo-ping`) | < 40ms (10ms headroom under 50ms Free cap) | Workers Paid ($5/mo) OR pivot to Upstash |
| Atlas auto-pause | Catchable error within 5s, not a hang | Document catch path; not abort-worthy |
`mongodb` driver is the dominant risk — bundles ~45 MiB compressed against the 3 MiB Free cap. miti99bot has the same risk and has not yet validated the gate end-to-end on real CF Free either.
## Open questions for the operator
1. Atlas account: existing or first-time setup?
2. Bot username for `setMyCommands`: same as `.env.example`?
3. Greenfield Mongo data, or existing data to import? (Existing → schedule a separate import phase.)
4. Custom domain or `*.workers.dev` URL? (Webhook works on either.)
## Backlog (post-deploy, out of current scope)
- [ ] Tests (none exist; original Node port has none either)
- [ ] Quarterly Atlas password rotation reminder
- [ ] Observability dashboard (CF Workers + Atlas charts)
- [ ] CI workflow on push (lint + dry-run bundle size as PR check)
- [ ] Telegram bot description / about-text via `setMyDescription` (post-deploy)
## Reference
- **miti99bot** validated the same stack (CF Workers + Atlas + `nodejs_compat_v2` + `mongodb`): `/config/workspace/tiennm99/miti99bot/plans/260425-1945-mongodb-atlas-migration/`
- **Archived code-port plan** (history of what's now done): [archive/260426-2015-cloudflare-worker-code-port](archive/260426-2015-cloudflare-worker-code-port/plan.md)