CodeIssuesDiscussionsWikiPull RequestsProjectsCommitsActionsReleasesContributorsPulse● GatesSecuritySettingsDeploymentsPipelineInsightsAgents✨ Explain✨ Ask AI✨ Workspace✨ Spec✨ Tests▓ Debt Map✨ NL Search🏛 Archaeology
Blame · Line-by-line history
terminal-debt.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.
| 9dd96b9 | 1 | # Terminal debt |
| 2 | ||
| 3 | Operational paths that still require the terminal because no web UI | |
| 4 | equivalent exists yet (or because the path is genuinely | |
| 5 | bootstrap-only and a web UI would be inappropriate). Each entry is a | |
| 6 | follow-up block. | |
| 7 | ||
| 8 | ## No web UI yet — needs one | |
| 9 | ||
| 10 | - `bun run scripts/reset-admin-password.ts <user> <email> <pw>` — | |
| 11 | recover lost site-admin access. Needs an | |
| 12 | `/admin/users/:id/reset-password` button (only callable by another | |
| 13 | site admin) OR a `/recover` flow with email challenge for the | |
| 14 | "every admin locked out" case. | |
| 15 | ||
| 16 | - `bun run scripts/check-auto-merge-readiness.ts` — readiness preflight | |
| 17 | for the auto-merge flip. `/admin/ops` runs the equivalent inline | |
| 18 | when the operator clicks "Enable AI auto-merge", but there is no | |
| 19 | standalone "run readiness check" button if an operator wants to | |
| 20 | poke the box without flipping anything. Low priority — fold into | |
| 21 | `/admin/ops` as a "Check readiness" link if it gets asked for. | |
| 22 | ||
| 23 | ## Terminal-only by design (bootstrap) | |
| 24 | ||
| 25 | These do **not** need a web UI — they run before the service is up | |
| 26 | or are intended to repair a broken service: | |
| 27 | ||
| 28 | - `bash scripts/bootstrap-hetzner.sh` — first-time box setup. Runs | |
| 29 | before `gluecron` is installed, so there is no `/admin/ops` to | |
| 30 | click. Stay terminal. | |
| 31 | ||
| 32 | - `fly launch` / `fly deploy` (first deploy) — same reason; the box | |
| 33 | doesn't exist yet. | |
| 34 | ||
| 35 | - `ssh root@gluecron.com 'systemctl restart gluecron'` and the | |
| 36 | Hetzner rollback `git checkout <previous-sha> && systemctl restart | |
| 37 | gluecron` — these are documented as fallbacks in `DEPLOY.md` §6 | |
| 38 | under `<details>` blocks for the case where `/admin/ops` itself is | |
| 39 | broken. They must remain terminal-accessible because they are the | |
| 40 | recovery path **for** `/admin/ops`. | |
| 41 | ||
| 42 | - `fly ssh console -C "bun run db:migrate"` and | |
| 43 | `railway run bun run db:migrate` — only invoked manually if the | |
| 44 | release command fails to fire during a deploy and the operator | |
| 45 | needs to re-run migrations out-of-band. The normal path (re-trigger | |
| 46 | deploy from `/admin/ops`) handles this; documented as a fallback in | |
| 47 | `docs/ops/DEPLOYMENT_RUNBOOK.md` Phase 4. |