Accelerate rules-first feedback and integrate native Strongholds

Apply user priority: save/recovery/privacy/custody assurance after all rules. Add quick types/lint, concise failure-preserving reporter, verbose mode, actual empty-execution guard, signal handling and focused verify name selection; compact canonical context/handoffs without mass moves. Tooling15, six negative CLI, named/empty source-bound smokes,206 doc links; same15-case278B vs2455B,2.35s vs2.36s no compute speedclaim. Native Advanced Ix/CHOAM47-card Stronghold profile: actual firstMentat/HMS/sixeffects,18native/four legalpolicies,five genuine2..6games3129actions/no rejection, human390px LAUDR2WNv14 bank2/personal1 plan and real battle. Earlier162/6513 checks before assurance amendment; finalquick25/build/guide pass. No new preservation/privacy audit or public/deployed/full-mode claim.
This commit is contained in:
Quintine committed 2026-10-02 09:30:52 +10:00
1 parent af6d27095c
commit e9830b6ced
27 files changed
+2339 -194

No files matched your search

+39 -8
View File
@@ -227,6 +227,17 @@ original-faction retention after death/capture/reassignment is provisional
in this profile; bounded verification is Partial/Development Verified and the existing question stays open.
See the [normal-band source and scope](docs/SPICE_BANKER_RUNTIME.md#normal-income-local-contract--2-october-2026).
For local **Ixians + CHOAM + Stronghold Cards** integration, use
`node --import tsx tools/start-prototype.ts --profile stronghold-factions`
on a fresh ready Advanced native-Ixian/native-CHOAM lobby with unique classic
opponents and exactly `ix,choam` decks. Canonical combined Treachery count is47,
not49; the six separate cards start unowned and use native end-Mentat custody.
The same exact-version/private-backup contract applies. Other rosters/modules,
public expansion starts and existing games are unchanged. Bounded native
rules, legal AI, complete-game and human phone controls are Development Verified;
save/privacy/custody assurance follows all rules under the2 October priority. See the
[bounded integration](docs/STRONGHOLD_CARDS.md#native-ixian-and-choam-integration--2-october-2026).
Above the board, **Treachery draw pile** and **Spice draw pile** show live card
counts separately from hands, auction cards and discards. See
[draw-pile counts](docs/DRAW_PILES.md).
@@ -258,20 +269,40 @@ completes automatically; see [private exchange history](docs/HARKONNEN_EXCHANGE.
## Verify changes
Use the [development guide](docs/DEVELOPMENT.md) for architecture, focused tests
and the [repeatable verification tools](docs/VERIFICATION_WORKFLOW.md). Tests are discovered automatically; the default
suite includes in-memory persistence recovery and needs no server:
Use the [bounded context index](docs/DEVELOPMENT.md#context-index) for canonical
feature/source paths and the [feedback/proof schedule](docs/DEVELOPMENT.md#feedback-and-proof-schedule).
The **2 October 2026** priority implements all rules before comprehensive review
and save/recovery/privacy/custody assurance; those remain final requirements,
not per-prototype gates. Keep legal behavior, usable controls, minimal legal AI
and actual changed-path smoke. Batch related rules with one integration owner;
helpers do not run shared checks while edits are in flight.
```sh
# Inspect file selection, then repair the exact failing case first.
npm test -- ecaz-spice --list
npm test -- ecaz-spice --name 'fallback'
# Run the related union once the batch is coherent.
npm test -- ecaz-collection ecaz-spice
npm run check:quick
# Also exercise the actual changed runtime path.
# Full offline proof after all rules or a justified broad integration check.
npm run check
# App/build/dependency changes also need a build.
npm run build
```
Run `npm run test:integration` against a development server for HTTP/session
changes. `npm run test:multiplayer` remains available for recovery plus HTTP
checks; `npm run test:recovery` runs only in-memory persistence tests. All test
commands accept filename fragments and `--list` after `--`.
Tests are discovered automatically. The offline suite includes in-memory
persistence recovery and needs no server. Run relevant `test:integration` cases
against a development server for changed HTTP/session behavior, not repeated
assurance at every rule checkpoint. `test:multiplayer` retains recovery plus HTTP;
`test:recovery` selects in-memory persistence. Filename fragments form a union;
`--name REGEX` narrows cases. `--list` previews files, not matching case names.
Bad fragments/patterns and zero-executed selections fail. Default output retains
failures, diagnostics and counts; use `--verbose` for full per-pass output.
`check:quick` runs typecheck and lint only; it is not full-suite or release proof.
See [source-bound verification](docs/VERIFICATION_WORKFLOW.md#compact-checks-and-source-evidence)
for private full logs/reports and deferred final audits. Existing games, access
controls, secret protection and CI/deployment/publication gates remain protected.
The production build is written to `dist`. `npm start` runs that build with Wrangler; apply its database migrations to the intended storage environment before use. The included local migration command targets the development database, not a remote deployment.
@@ -287,6 +318,6 @@ See [AI calibration](docs/AI_CALIBRATION.md), [multiplayer audit](docs/MULTIPLAY
The user-authorized 13 September 2026 local reset established a fresh saved-game baseline; see the [reset record](docs/VERIFICATION_WORKFLOW.md#authorized-reset-13-september-2026). Preserve all games created after that checkpoint.
Reuse the running development server. Restart only when a code or configuration change, or an observed server condition, makes leaving it running likely to cause issues; use judgment rather than an hourly schedule. Preserve database state, warn before interrupting human play, and defer until a safe decision point. Verify server health and restoration after a necessary restart. No recurring automation is installed; the user requested leaving it removed. Fix causes of crashes and lost progress rather than relying on restarts.
Reuse the running development server. Restart only for a relevant code/configuration change or observed problem, not an hourly schedule. Preserve database state, warn before interrupting human play and defer to a safe point. Observe health after a necessary local restart; comprehensive restoration assurance follows all rules, while actual production deployments retain their existing safeguards. No recurring automation is installed; leave it removed. Fix crashes and broken rule continuation rather than relying on restarts.
The application bundles its artwork, fonts and rules guidance. Source provenance and third-party notices live in developer documentation; the player-facing reference uses internal links. Publication remains gated on completion and integrated verification of the requested rules, expansions and critical player journeys.