Lane 11 PR 15: Start a character (#737, wave B) #985

Merged
claude-bot merged 15 commits from build/lane11-15-start into main 2026-09-30 21:46:15 +00:00
Collaborator

Lane 11 PR 15 (#737, wave B): Start a character (IS-403, IS-416, IS-417; Q7).

  • Routes #22–25:
    • start a character (for yourself, or a GM for someone else, on an existing character or page);
    • roll a generator (the server rolls and keeps every die, D85);
    • finish (422 names the steps still to do; otherwise the page is made, D202);
    • throw away one still being started.
    • Two additive reads back Members' "Carry on with …": the characters being started, and one of them.
  • Start a character:
    • the steps under a step strip;
    • the PF2e boosts grid;
    • the 5e standard array (drag and tap-both), point buy, 4d6 with the kept rolls, and fixed HP;
    • choices from the loaded content, which also take free text (D250);
    • Finished.
  • Members & characters:
    • "Carry on with …" sits under the character a creation names, matched by id only (no name matching). A creation that names none sits under the person.
    • A character with no sheet gets "Start a character", linking with ?character=<id> (and &for=<user> for a GM).
    • A character's actions wrap as one group.
  • Render-check fixes (390×844 coarse and 1440, both themes):
    • On a phone, each source's name sits above its six 44px targets, so the whole grid, Cha included, fits without scrolling.
    • An unreached step's words are centred in the strip.
    • There is room above the footer under "Throw this character away".
  • SheetEdit's "adds a row" test waited only for the first autosave, which a slow runner sends while the row is half typed. It now waits for the save carrying the whole row; it passed 32/32 three times.

Merging main needed a hand-resolved merge in routers/sheets.py, schemas/sheets.py, api/sheets.js and vocabulary.js, where PR 12's additions sat beside these.

Tests after the merge: backend tests/sheets + characters + demo seed 715 passed; full vitest 3529 passed; ruff 0.4.4 clean.

🤖 Generated with Claude Code

Lane 11 PR 15 (#737, wave B): Start a character (IS-403, IS-416, IS-417; Q7). - **Routes #22–25:** - start a character (for yourself, or a GM for someone else, on an existing character or page); - roll a generator (the server rolls and keeps every die, D85); - finish (422 names the steps still to do; otherwise the page is made, D202); - throw away one still being started. - Two additive reads back Members' "Carry on with …": the characters being started, and one of them. - **Start a character:** - the steps under a step strip; - the PF2e boosts grid; - the 5e standard array (drag and tap-both), point buy, 4d6 with the kept rolls, and fixed HP; - choices from the loaded content, which also take free text (D250); - Finished. - **Members & characters:** - "Carry on with …" sits under the character a creation names, matched by id only (no name matching). A creation that names none sits under the person. - A character with no sheet gets "Start a character", linking with `?character=<id>` (and `&for=<user>` for a GM). - A character's actions wrap as one group. - **Render-check fixes** (390×844 coarse and 1440, both themes): - On a phone, each source's name sits above its six 44px targets, so the whole grid, Cha included, fits without scrolling. - An unreached step's words are centred in the strip. - There is room above the footer under "Throw this character away". - SheetEdit's "adds a row" test waited only for the first autosave, which a slow runner sends while the row is half typed. It now waits for the save carrying the whole row; it passed 32/32 three times. Merging main needed a hand-resolved merge in `routers/sheets.py`, `schemas/sheets.py`, `api/sheets.js` and `vocabulary.js`, where PR 12's additions sat beside these. **Tests after the merge:** backend `tests/sheets` + characters + demo seed 715 passed; full vitest 3529 passed; ruff 0.4.4 clean. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The name-match fallback is gone: a creation that names neither a character
nor a page sits loose under the person. SheetEdit's "adds a row" read the
first autosave, which a slow runner sends while the row is half typed; the
test now waits for the save that carries the whole row (and the inventory
test beside it for the save after the remove).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
# Conflicts:
#	webapp/backend/app/routers/sheets.py
#	webapp/backend/app/schemas/sheets.py
#	webapp/frontend/src/api/sheets.js
#	webapp/frontend/src/vocabulary.js
Lane 11 PR 15: ruff 0.4.4 format after merging main
All checks were successful
CI / Backend lint (ruff) (pull_request) Successful in 30s
CI / Docker image build (pull_request) Successful in 29s
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 55s
CI / Does this change touch the recording path? (pull_request) Successful in 28s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Has been skipped
CI / Bot/backend version sync (pull_request) Successful in 1m4s
CI / Feedback site tests (pull_request) Successful in 1m55s
CI / Bot tests and audit (pull_request) Successful in 2m2s
CI / Frontend (shard 2/2) (pull_request) Successful in 6m51s
CI / Frontend (shard 1/2) (pull_request) Successful in 8m43s
CI / End-to-end journeys (keyboard) (pull_request) Successful in 7m50s
CI / Backend migration, tests, and audit (pull_request) Successful in 18m1s
CI / End-to-end journeys (phone) (pull_request) Successful in 16m59s
CI / End-to-end journeys (desktop) (pull_request) Successful in 18m38s
180f325017
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign in to join this conversation.
No description provided.