Merge main into the Phase 17 refactor
`main` changed the four files this branch split into packages, so all four came back as modify/delete conflicts. Each change is ported to the module that now holds the code, unchanged in behavior: - `delete_action` moves to `routers/adventures/actions.py`. It reaches the turn lock as `turns.acquire_turn_lock` and `turns._active_turns`, which is the rule this branch set: the package root no longer re-exports the names a test rebinds. - `EMIT_RULE` moves to `worldstate/parse.py`, and `_describe_stat` and `render_reference` to `worldstate/render.py`. - The chip-wrap rules move to `styles/schema-editor.css`, and `StateChangeChips` to `pages/Play/reports.jsx`. `index.css` keeps this branch's import list. `test_delete_state.py` needed four edits to run here. It drops the eight-line database prologue, because `conftest.py` does that once now. It imports the shared `ScriptedProvider` from `fakes.py` instead of carrying a copy. It patches `adventures.turns.OpenAICompatibleProvider` and reaches the lock the same way. And it no longer passes `index=0` when it builds the start action, because migration 71 drops that column. 564 tests pass. `npm run lint` and `npm run build` are clean, and the CSS bundle is 56.71 kB, which is the pre-merge size plus main's new rules. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -53,9 +53,10 @@ function StateChangeChips({ changes }) {
|
||||
// neither an update nor a refusal, and "+0" read as the former.
|
||||
const blocked = c.clamped && d === 0
|
||||
const dir = blocked ? 'refused' : typeof d === 'number' ? (d > 0 ? 'up' : d < 0 ? 'down' : 'flat') : 'flat'
|
||||
const signed = !blocked && typeof d === 'number'
|
||||
const txt = blocked
|
||||
? 'no change — at its limit'
|
||||
: typeof d === 'number' ? (d > 0 ? `+${d}` : `${d}`) : `→ ${c.value}`
|
||||
: signed ? (d > 0 ? `+${d}` : `${d}`) : `→ ${c.value}`
|
||||
const title = blocked
|
||||
? c.fix || 'The story asked to change this and it is already at the limit the scenario allows.'
|
||||
: c.clamped
|
||||
@@ -63,7 +64,7 @@ function StateChangeChips({ changes }) {
|
||||
: undefined
|
||||
return (
|
||||
<span key={i} className={`chg chg-stat chg-${dir}`} title={title}>
|
||||
{nice(c.label)} <span className="chg-val">{txt}</span>
|
||||
{nice(c.label)} <span className={signed ? 'chg-val chg-num' : 'chg-val'}>{txt}</span>
|
||||
{c.clamped && !blocked ? <span className="chg-limited"> (limited)</span> : null}
|
||||
</span>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user