Problem
After application services run and pass validation on Node.js, the repository still needs one controlled operational cutover. Docker images, CI, mise tasks, migrations, maintenance scripts, health checks, documentation, and deployment configuration currently install or invoke Deno.
Tasks
- Port migrations, key generation, account management, repair tools, translation checks, and health checks to Node.js.
- Make Node.js commands authoritative in
mise.toml.
- Update CI, Docker build stages, runtime images, Compose, deployment manifests, and release metadata.
- Split API, worker, and
web-next runtime targets where that reduces image size and ownership ambiguity.
- Exercise production cutover and rollback.
- Remove Deno tasks, permissions, import maps, workspace configuration, lockfiles, cache layers, dependencies, and documentation.
- Add a repository check that prevents accidental reintroduction of Deno-specific runtime APIs.
Acceptance criteria
- Development, CI, code generation, tests, migrations, API, worker,
web-next, and operational scripts use the pinned Node.js toolchain.
- Production images do not contain Deno or its module cache.
- No
deno.json, deno.lock, Deno task, or maintained Deno.* runtime reference remains.
- The deployed Node.js services pass health checks and production smoke tests.
- The rollback plan has been tested before the Deno deployment path is deleted.
AI assistance: This issue was drafted and organized with Codex after a maintainer-led code audit.
Problem
After application services run and pass validation on Node.js, the repository still needs one controlled operational cutover. Docker images, CI,
misetasks, migrations, maintenance scripts, health checks, documentation, and deployment configuration currently install or invoke Deno.Tasks
mise.toml.web-nextruntime targets where that reduces image size and ownership ambiguity.Acceptance criteria
web-next, and operational scripts use the pinned Node.js toolchain.deno.json,deno.lock, Deno task, or maintainedDeno.*runtime reference remains.