feat(webapp): names without the AI, the built-in generator in Prep → Names (#1257) #1331
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/1257-names-in-prep"
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?
Closes #1257 (D330, D331; lane 6l). It also carries #1330 (the rating fixes and lanes 6k and 6l) and the D327–D331 decision rows.
The engine is
app/names/, a faithful port of the 44 styles the owner rated on the names page.names.htmlandname-styles.js, so no word is hand-typed. The same patterns, probabilities, join and flow rules, and filters (famous names and places, published names, offensive words across joins) are ported.Never twice in a campaign: a
name_offerstable, from migrationa1257b0c1d2e(revisesf1280a0b1c2d, real downgrade). A draw excludes every name offered before in the campaign and every live page title and alias. Each set is varied, so no two names share a first letter or an ending where avoidable.No AI for names.
namesrun, so Insert, the shelf and History work as before.The drawer follows lane 6l:
Checked
.titleread the title guard flagged, was fixed and the affected set re-run (131 passed). ruff format and check are clean; the version and changelog checks are OK.src/pages/prep, 148 passed. eslint has 0 errors.Left for a follow-up:
audio_service.generate_name_optionsand its prompts are now unused, but were left in place.New wording goes on the Wording Review page before merge.
🤖 Generated with Claude Code
From the render check: History read "Npc names"; it now uses the page type's label ("NPC names"). In the Prep margin the Style choice was cut off side by side ("Human: Hearthla…"); Kind and Style now stack. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>Render check of
b32df951on the seeded journeys stack built from this branch: prep sheet and Planning, light and dark, 1280 and 390, 57 shots. The migration reacheda1257b0c1d2e.Fixed after the check (
be5b72a5): History said "Npc names" and now says "NPC names"; and in the Prep margin the Style choice was cut off ("Human: Hearthla…"), so Kind and Style now stack. Checked: the prep-history, names-routes and title-reader tests (44 passed), the drawer tests (36 passed), and ruff, all clean.Noted, not changed: every draw is a run, so the sheet's History grows quickly with "Another set". Runs already worked this way, but names now cost nothing to draw. A follow-up could keep only runs that are inserted, shelved or saved.
CI: Frontend shard 1 failed on
src/pages/wiki/EditorFacts.test.jsx› "starts a new page with its kind's facts, empty" withExpected container to be an Element … but got null. The test'sfacts()helper found the heading a moment before its section on a slow runner.The test passes locally on this branch and on main (9/9), so this PR didn't break it. The helper now waits for the section itself (
abd61ba6). Both infobox editor test files pass (15).The owner approved wording v-001 to v-006. The PR is set to merge when CI passes.
CI:
tests/wiki/test_body_readers.py(the page-text guard) flaggednames/engine.pymake_orderreadingSOCIETY.body. That was a word list (Circle, Lodge, Covenant…), not a page's text, so it's renamed toSOCIETY.group. No other guarded attribute names (.title,.body,.transcript,.summary,.text,.aliases) are used inapp/names/.CI stops at the first failure, so before pushing I ran the full backend suite on the dev host: 10,721 passed, 0 failed. ruff format and check are clean. The PR is re-scheduled to merge when CI passes.