Add Charity and Revival resource practice

Expand the internal introduction to eleven lessons and nine independent Basic exercises. Charity shows the ordinary top-up to two spice and prevents duplicate claims. Revival lets Atreides, Emperor and Fremen return ordinary forces in batches and revive an eligible leader using the same spice balance. Reuse production charity and revival calculations; only narrow the leader-options TypeScript signature, with no live rules or AI strategy changes.

Version 5 practice saves retain all earlier lesson identities and accepted choices. Replay a bounded, validated history to reconstruct spice, Tanks, reserves, leader custody and turn allowances. Cover first-cycle, surviving-leader and repeat-death rosters, cumulative free allowances, paid returns, the three-force cap, separate leader allowance and unaffordable choices. Seven new tests compare real engine actions, immutable inputs, migration and impossible-save rejection.

Independent review found no material issues. Types, lint, 4941 offline tests and production build passed on stable final source. Browser checks confirm previous alliance migration, keyboard Charity, shared revival spending, refreshed force/leader outcomes, roster restrictions, faction free rates, cap rejection and leader inspection. At390px all observed new controls fit, with 44px or taller targets. Screenshot capture remains unavailable; DOM bounds are narrower evidence. The full curriculum, faction/expansion teaching and rules/publication gates remain incomplete.

Reused the running server. A stale development import for the newly-created file cleared through import-graph invalidation and reload without restarting. All 1337 rooms, 2805 seats and existing recovery, entry, handover, delegation and migration rows remain unchanged. SQLite integrity and foreign keys pass. No database migration/reset, automation, usage check or AI calibration. HTTP/auth/persistence source is unchanged; the required offline suite includes recovery checks and no broad HTTP suite was rerun.

Private evidence: 20260921-resource-practice.
Verified source tree: 40e207a5d46f53501a9ec8f77a8b48a5e4f0b3d67278bf670b1e53050770a40b
This commit is contained in:
Quintine committed 2026-09-21 08:22:06 +10:00
1 parent c4ff75a56d
commit 67e429e32f
16 files changed
+848 -56

No files matched your search

+18 -13
View File
@@ -6,22 +6,27 @@ gated.** Prototypes do not open completion or publication gates.
## Current checkpoint and work
Latest delivered checkpoint: `b7ec940`, [interactive bidding](INTERACTIVE_INTRODUCTION.md).
Types, lint, **4,925 offline tests** and production build passed. All 1,337 rooms,
Latest delivered checkpoint: `c4ff75a`, [interactive alliance practice](INTERACTIVE_INTRODUCTION.md).
Types, lint, **4,934 offline tests** and production build passed. All 1,337 rooms,
2,805 seats and existing recovery/entry/handover/delegation rows stayed unchanged.
The preceding `b9718ac` connects [lobby AI configuration](LOBBY_AI_CONFIGURATION.md)
and `b21b2bc` connects [one-use AI permission](SEAT_AI_PERMISSION.md).
The `8f7a62c` policy checkpoint removed the usage cutoff and deferred AI refinement
until feature completion, with three adjacent 75% win-rate targets. Earlier
evidence remains in the [implementation history](IMPLEMENTATION_STATUS.md).
The stopped server was started against existing state; an existing QA seat restored.
The preceding `b7ec940` connects bidding practice, `b9718ac` connects
[lobby AI configuration](LOBBY_AI_CONFIGURATION.md), and `b21b2bc` connects
[one-use AI permission](SEAT_AI_PERMISSION.md). The `8f7a62c` policy checkpoint
removed the usage cutoff and deferred AI refinement until feature completion,
with three adjacent 75% targets. Earlier evidence remains in the
[implementation history](IMPLEMENTATION_STATUS.md).
Current work: [interactive alliance practice](INTERACTIVE_INTRODUCTION.md) adds
the ninth lesson, ordinary Nexus consent/break choices and later shared stronghold
victory through production quotes. Versioned practice migrates all earlier lesson
positions and choices. No AI strategy is changed. Final independent review,
Current work: [Charity and Revival practice](INTERACTIVE_INTRODUCTION.md) adds two
Basic phase lessons, cumulative free/paid returns, leader eligibility and shared
spending through existing production calculations. Saved choices migrate every
earlier lesson and commitment. No AI strategy changes. Final independent review,
browser/check/build/preservation and Git evidence belong to its private report.
Alliance powers, faction/Advanced/expansion teaching and broader disconnected-seat
acceptance remain unfinished.
A bounded current-state Duke review confirmed revival/loan paths still cross
recorded custody, return and cycle questions; existing identity/price helpers and
non-Ecaz guards are already present. No duplicate ruling or invented outcome.
Storm/spice-blow, full faction/Advanced/expansion teaching and broader
multiplayer acceptance remain unfinished.
A bounded remaining-effect audit found that the reviewed faction/Nexus candidates
still cross recorded pending rulings. Continue independent features rather than