diff --git a/TODO.md b/TODO.md index 8532e6b..af92d1a 100644 --- a/TODO.md +++ b/TODO.md @@ -681,3 +681,5 @@ launch `--yolo`, and let the orchestrator walk you through the requirements befo - [x] **feat(web): /docs curated index route + smoke** (#157) (2026-08-09). Phase 3 of web-v2 voyage. New route `/docs` renders a curated three-group index (Get started / Operate it / Contribute) with 6 GitHub-anchored links resolving to real files. `web/src/pages/Docs.tsx` (new), `web/src/App.tsx` (route), `web/src/components/TopNav.tsx` (Docs NavLink, Phase 1 mark preserved), `web/scripts/docs-smoke.mjs` (Playwright smoke, hard-fails on missing docs files, asserts `aria-current="page"`), `web/DEPLOY.md` (smoke URL table row). DEF-001 (stale web/README route table) + DEF-002 (stale nav in logo screenshots) filed + closed in lane. Smoke exit 0; typecheck + build pass. - [x] **fix(web): doc/about GitHub links use master (default branch)** (#158) (2026-08-09). Post-merge fix for #157. `Docs.tsx` (6 links) and `About.tsx` (3 links) used `blob/main`; default branch is `master`, so all 9 links 404'd in production. The original docs-smoke only validated local-file existence, never the URL branch segment, so the bug shipped. Fix: `main` -> `master` in both pages. Harden: `web/scripts/docs-smoke.mjs` + `web/scripts/about-smoke.mjs` get a `DEFAULT_BRANCH` constant, branch-less `REPO_PREFIX` filter, branch-mismatch detector, no-links guard. 3 defects filed + closed in follow-up lane: DEF-001 (docs drift, user-reported), DEF-002 (about drift, qa-found), DEF-003 (smoke filter dropped wrong-branch links before mismatch check, qa negative test). Negative test red on main, green on master. + +- [x] **fix(cli): voyage-handoff uses correct tmux session names; reject voyage- prefixed feature names** (#169) (2026-08-10). `formatHandoffBlock` in `src/handoff.js` now applies the `voyage-` prefix to string inputs and accepts `{voyage, session}` objects for explicit overrides. `voyage-handoff` CLI gains `--session ` flag (both bare and `=` forms) for custom tmux session names. `validateName` in `src/feature-commands.js` rejects names starting with `voyage-` to prevent the double-prefix edge case (`voyage-voyage-foo`). New tests: `tests/handoff.test.js` (11 unit + CLI), `tests/feature-name-validation.test.js` (2). Full suite 597/597 pass. Bug repro: `armada voyage-handoff doc-chat` previously printed `(tmux session: doc-chat)` and `armada voyage attach doc-chat` — both pointed at a non-existent session; the real session was always `voyage-doc-chat`.