Loading…
Reference in a new issue
No description provided.
Delete branch "fix/review-r1"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The owner reviewed lanes 1–4 on dev (2026-09-25). This batch fixes eight findings. Each has a regression test that failed before its fix.
changesAttention, through the shell'sonApiWrite).NAME/X-WR-CALNAME("Quest Board", and " · Quest Board" for a single session's.ics), with values escaped and folded per RFC 5545.#nnorDnnin visible text./dashboardwhen signed in,/otherwise). This reverses lane 2's analytics-only departure. The auth context was split intohooks/authContext.js, so the crash screen can render it.GET /transcription-languagesreturns{detect, languages}, and the page mapped over the whole object. The test stub was a bare array, which is how the bug got past the tests. Also, the "After a session" section rendered above itsSectionBoundary, so a throw there took down the whole page; it's now its own component, so a failure stays in that section.OneShotSpec.dayfield: with a time, it creates a pencilled-in session with that slot; with a date alone, a pencilled-in session with no slot. No migration.completed_atis set;GET /statestays open for Admin.settle_setup_step)./setupredirects to/admin, and every skipped-step link goes to its Admin tab (?tab=).Also in this PR: D107–D109 in
intro.md, the catalogue rebuilt, and the CHANGELOG.Checked locally:
Not run: the journeys (another branch had the stack), so CI's journeys job is J1's first run since this change.
One call for the owner to confirm: skipping "You" or the key check in the wizard isn't listed in Admin, since nothing in Admin does either step. Ready still states the key skip.
🤖 Generated with Claude Code
"K.map is not a function" on dev was langs.map: GET /api/campaigns/transcription-languages answers { detect, languages }, and the page mapped over the whole object — on every campaign, the moment the answer landed. The test stub had been a bare array, so the suite never saw the server's shape. The page now reads the list from `languages` and takes only an array (languageList); the stub is the server's shape. The second bug: "After a session" had a SectionBoundary, but its JSX was written inline in RecordingForm, so it was evaluated in the form's render and a throw in it went past the boundary to the route. The section's body is its own component (AfterSession) now, so a throw in it fails that section alone and the rest of the page carries on. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>/setup stayed reachable after it was finished, and Admin's "Finish setting up" led back into it. Server: POST /api/setup/steps/{step} and POST /api/setup/finish now refuse with 409 {"detail": ...} once completed_at is set. GET /api/setup/state stays open: Admin reads it. So that Admin's list of what was skipped can still empty (D70), the Admin saves that do each step's job take a skipped step off it (settle_setup_step): backup config -> backups, the retention policy -> retention, bot settings with a transcriber URL -> ai, with a bot token -> discord. Only a skipped step moves, so a server nobody has set up stays pristine and the first-run offer still reads it as such. Web: /setup, at any step, goes to /admin when the server was already set up on arrival; the visit that reaches Ready (and so finishes it) stays on Ready. Ready's and Admin's skipped lists link each step to the Admin tab that does it (Admin's tab is now the address's ?tab=), never back into the wizard; after finishing, the step strip is a record rather than links. "You" and the key's checkbox are only ever asked by the wizard and nothing in Admin does them, so a skip of either is not listed in Admin. J1 (not run here): the first project walks the wizard as before, with Ready's "Set them up" now /admin?tab=backup; later projects on the same database find setup finished and assert /setup -> /admin and Admin's "Set up backups" link instead. D108 recorded in intro.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>