Rewrite the percentage-split test and fix two pre-existing stale tests that were masked
behind it (the file is mode:serial, so the first failure hides the rest):
- Percentage split: reorder so no whole-form operation runs between typing and the save
(add rows + toggle to % first, then pick accounts and type 50/50, then save). The old
order typed an amount then added a row, and apply-new-account rebuilds rows from the
stale snapshot -- dropping the typed value (66.67/33.33 instead of 50/50). Same observed
behavior verified, just an ordering that doesn't trip the snapshot round-trip.
- Pre-populate-default-account: read the actual transaction total from the grid instead of
hard-coding $400 for "row index 3" (same-date seed rows have no pinned order).
- openEditModalForTransaction: drop the removed multi-step "Transaction Actions" wizard
navigation; the modal is single-page, action tabs are immediately available.
skill: gotchas.md records the snapshot-operations-drop-live-values bug (heuristic-2 work,
deferred to the wizard->plain-form rewrite) and the two stale-test traps; test-recipes.md
updates the baseline to 38 pass / 1 fail / 0 skip (transaction-edit 8/8, swap 6/6; the one
failure is the unrelated navigation date-range test).
- playwright.config.ts: honor BASE_URL env (and skip the auto-started webServer when
set) so a server booted from a specific worktree on a non-default port can be tested
without fighting over :3333.
- skill test-recipes.md: record the recipe for running e2e from a non-default worktree
(in-process test server + reseed helper) and the measured baseline on the merged
hx-select reference: swap-doctrine 6/6 green; transaction-edit.spec.ts has a
pre-existing Shared-Location save failure that masks 7 via serial mode; full suite
30 pass / 2 fail / 7 skip. Gate for the refactor = swap spec + REPL pure-fn checks.