Add one-use consent for a named player to start seat AI
Let a human owner authorize another human in the started room to start a fixed difficulty once within 24 hours. The owner retains the seat, cookie, private hand, recovery setup and takeback control. Consent is explicit even while online; neither host status nor inactivity authorizes a takeover. Activation enters the existing paced private-view AI path without strategic changes. Add additive migration 0006, both exact session fences, owner/delegate-only metadata in the authenticated room snapshot, atomic CAS activation and consumption, expiry and terminal retry receipts. Replacement hides older consent; own AI changes invalidate unused consent. Recovery or handover of either bound seat invalidates the grant. Future-version guards prevent stale computed state from overwriting a racing action. Exact browser retry records retain the original operation/version across refresh and cannot rearm old consent. Shared HTTP continuation preserves coalescing across ordinary and control routes. Independent review found no material remaining issue. Revoke messaging accurately handles activation winning the race. Browser QA exercised grant/revoke, preserved consent after refresh, reciprocal fixed-profile activation, consumed receipts, keyboard takeback and private ownership. The panel now remains expanded after success and action buttons are at least 44px. Responsive screenshot acceptance remains open because the browser viewport override targeted a failed secondary-origin tab; desktop controls and no-overflow width were verified. The QA room is stopped at a genuine human setup decision with both seats taken back. Types, lint, all 4906 offline tests, production build and all 45 HTTP tests pass on the stable source fingerprint. Seven new offline cases cover client consent/retry validation and real SQLite privacy, restart, one-use races, future versions, takeback, expiry and both-seat recovery/handover; two new HTTP cases cover authentication, injection, fixed-profile continuation and takeback. The first broad run exposed 68 legacy VM fixtures missing the new production dependency; their mappings were updated and the real shared continuation remains exercised. The historical 0005 migration test verifies backfill before applying 0006 for current code. All 1174 original rooms, 2456 seats and every prior recovery/entry/handover/migration row remain unchanged. SQLite integrity and foreign keys pass; migration and QA added 88 rooms and 188 seats. No reset, server restart, usage check or automation was performed. The current Sites integration has no supported durable Cron/DO provisioning path. Document this platform blocker rather than adding an inert scheduled export; unattended resumption and broader network-failure acceptance remain unfinished. Full rules, component, AI strength and publication gates remain closed. Verified source tree: 2d86fc611e9ef4f5a10db10f96687a31db1ec238908ecf1e9333c50fac9ccaa8
This commit is contained in:
1 parent
e13ad454e2
commit
b21b2bc378
93 files changed
+2996
-72
No files matched your search
+17
-14
@@ -6,26 +6,29 @@ gated.** Prototypes do not open completion or publication gates.
|
||||
|
||||
## Current checkpoint and work
|
||||
|
||||
Latest delivered gameplay checkpoint: `54c8030`, [Sandmaster worm rides](SANDMASTER_WORM.md).
|
||||
Types, lint, **4,894 offline tests**, production build and **43 HTTP tests** passed.
|
||||
Optional native Fremen destination collection connects multi-sector forces,
|
||||
controls, minimal legal AI and saved Bene Gesserit arrival continuation. All 1,140
|
||||
baseline rooms and 2,385 seats stayed unchanged; isolated checks added 34 rooms
|
||||
and 71 seats. No restart was needed. The `8f7a62c` policy checkpoint removed the
|
||||
Latest delivered checkpoint: `e13ad45`, [movement and Traitor practice](INTERACTIVE_INTRODUCTION.md).
|
||||
Types, lint, **4,899 offline tests** and production build passed. Seven lessons
|
||||
and five exercises connect shared rules and migrated browser-local saves. All
|
||||
1,174 baseline rooms and 2,456 seats stayed unchanged; no restart was needed.
|
||||
The preceding `54c8030` connects [Sandmaster worm rides](SANDMASTER_WORM.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).
|
||||
|
||||
Current work: the [interactive introduction](INTERACTIVE_INTRODUCTION.md) adds
|
||||
movement and Traitor practice through shared rules, legal controls and migrated
|
||||
browser-local saves. Broader curriculum remains unfinished. Final verification
|
||||
and delivery belong to the source-bound private report and Git message.
|
||||
Current work: [one-use AI permission](SEAT_AI_PERMISSION.md) connects optional
|
||||
named-player activation at the owner's chosen difficulty, retained ownership,
|
||||
both session fences and saved exact retries. Final independent review,
|
||||
verification and delivery belong to the source-bound private report and Git
|
||||
message. Broader disconnected-seat acceptance remains unfinished.
|
||||
|
||||
A bounded remaining-effect audit found that the reviewed faction/Nexus candidates
|
||||
still cross recorded pending rulings. Continue independent features rather than
|
||||
inventing answers. Durable unattended bot resumption is the next clear backend
|
||||
capability: it needs a platform scheduler and saved due-work metadata; current
|
||||
request/reconnect continuation does not establish it.
|
||||
inventing answers. The [platform audit](AUTOPILOT.md#platform-audit-20-september-2026)
|
||||
found no supported Sites scheduler or Durable Object provisioning contract.
|
||||
Durable unattended bot resumption remains blocked on that capability; current
|
||||
request/reconnect continuation does not establish it. Continue independent
|
||||
player-facing features and integration while preserving pending rules questions.
|
||||
|
||||
The connected [Harass & Withdraw prototype](HARASS_WITHDRAW_RUNTIME.md) supports either
|
||||
battle-card slot, private category inspections, exact undialed normal/elite
|
||||
@@ -87,7 +90,7 @@ These links define bounded working behavior, not complete module certification.
|
||||
| Nexus/Homeworlds | [Decision index](RULE_DECISIONS.md) links each integrated faction family, native/borrowed effects, physical custody, private choices, payments and transport. [CHOAM Collection trade](NEXUS_CHOAM_SECRET_ALLY.md) and [Emperor extra revival](NEXUS_EMPEROR_SECRET_ALLY_RUNTIME.md) are connected; CHOAM inspection and Emperor purchase remain pending. A source audit or helper alone is not a completed effect. |
|
||||
| Truthtrance | [Spice facts](TRUTHTRANCE_SPICE_FACTS.md), [card counts](TRUTHTRANCE_CARD_COUNT.md), [hand inventory](TRUTHTRANCE_HAND_INVENTORY.md), [recorded knowledge](TRUTHTRANCE_KNOWLEDGE.md), and [Basic/no-Guild Advanced reserve-shipment promises](TRUTHTRANCE_SHIPMENT_PROMISES.md) use authoritative private state. Earlier readiness audits do not supersede these follow-ups. |
|
||||
| Other cards | [Sapho runtime](JUICE_OF_SAPHO_RUNTIME.md) includes first among remaining unstarted movement turns after Advanced Guild has finished. [Recruits](RECRUITS_RUNTIME.md) connects clean Revival play; [Harass & Withdraw](HARASS_WITHDRAW_RUNTIME.md) connects the bounded battle return in the same independent three-card preview. Richese card contracts and the checklist identify other connected effects and explicit gaps. |
|
||||
| Multiplayer | Saved rooms/seats, [recovery](../README.md#saved-seats-and-reconnecting), uncertain-request retry, [own-seat AI](AUTOPILOT.md), and [voluntary seat handover](SEAT_HANDOVER.md) have connected controls and recovery evidence. |
|
||||
| Multiplayer | Saved rooms/seats, [recovery](../README.md#saved-seats-and-reconnecting), uncertain-request retry, [own-seat AI](AUTOPILOT.md), [named-player AI permission](SEAT_AI_PERMISSION.md) and [voluntary seat handover](SEAT_HANDOVER.md) have connected controls and recovery evidence. |
|
||||
|
||||
## Remaining readiness
|
||||
|
||||
|
||||
Reference in new issue
Block a user