Add durable public and private table discussion
Humans can discuss plans publicly or message another human seat privately while pending game decisions stay intact. The conversation panel provides plain text, explicit recipient names and factions, saved history, private pagination and exact retries through refresh. Human AI-control owners can still talk; bots do not interpret messages or negotiate. Existing game actions execute agreements. An additive indexed D1 message table stores discussion separately from game JSON, versioning, readiness and bot continuation. Every read/insert checks active seat credentials and membership; direct audiences and cursor lookups are filtered before limiting. Public history has no private activity counts or sequential IDs. Recovery/handover inherits seat history while fencing old credentials. Independent review found two retry races: a rotation between a committed insert and receipt read, and stale unmounted completion deleting a newer retry record. Both are fixed with regressions. A prior uncertain retry stays pending on later rejection. The nine focused offline cases and two HTTP cases cover production SQL, concurrent/altered receipts, audience/cursor privacy, rotation/membership races, actual saved-kit recovery and unchanged sealed setup state. Types, lint, all 4963 offline tests, production build and 48 HTTP tests pass on stable source. An initial check caught an invalid checklist status label; that was corrected before the successful final2 verification. Desktop browser checks send public/private messages, receive a peer reply, retain private history after refresh and remove it on channel switch. Literal markup and URLs remain text. Recipient and bystander API reads confirm the browser messages' audiences. Screenshot capture was unavailable and the viewport override did not take effect; mobile, full keyboard/visual and injected browser network-failure acceptance remain open. No final rules, mode, AI or publication gate changes. All 1373 pre-existing rooms, 2883 seats and auxiliary rows are unchanged. SQLite integrity/foreign keys pass; migration 0007 adds messages without replacing data. The healthy server was reused without restart. Private evidence: 20260921-table-talk. Verified source tree: 236dd55b6c15d55dbced735be67427e5fbd7fa348d583f119e67a03894ec21b0
This commit is contained in:
1 parent
b2fcef8d51
commit
7814f740ef
19 files changed
+2303
-17
No files matched your search
+14
-16
@@ -6,26 +6,24 @@ gated.** Prototypes do not open completion or publication gates.
|
||||
|
||||
## Current checkpoint and work
|
||||
|
||||
Latest delivered checkpoint: `66c41b2`, [Kwisatz Haderach inspection](KWISATZ_INSPECTION.md).
|
||||
Types, lint, **4,950 offline tests** and production build passed. All 1,373 rooms,
|
||||
Latest delivered checkpoint: `b2fcef8`, [Storm and Spice Blow practice](INTERACTIVE_INTRODUCTION.md).
|
||||
Types, lint, **4,954 offline tests** and production build passed. All 1,373 rooms,
|
||||
2,883 seats and existing auxiliary rows stayed unchanged. The running server was
|
||||
reused. Earlier checkpoints include `ed53eb7` for Storm Cards, `67e429e` for
|
||||
Charity/Revival practice, `c4ff75a` for alliances, `b7ec940` for bidding,
|
||||
`b9718ac` for lobby AI configuration and `b21b2bc` for one-use AI permission.
|
||||
reused. Earlier checkpoints include `66c41b2` for Kwisatz Haderach inspection,
|
||||
`ed53eb7` for Storm Cards and `67e429e` for Charity/Revival practice.
|
||||
The `8f7a62c` policy checkpoint removed the usage cutoff and deferred AI refinement
|
||||
until feature completion, with three adjacent 75% targets. See the
|
||||
[implementation history](IMPLEMENTATION_STATUS.md).
|
||||
|
||||
Current work: [Storm and Spice Blow practice](INTERACTIVE_INTRODUCTION.md) expands
|
||||
the introduction to thirteen lessons and eleven independent Basic examples.
|
||||
Sealed dials, reveal, sector traversal, shelter, spice accumulation/storm loss,
|
||||
first-turn worm return and later-worm Nexus timing reuse shared live calculations.
|
||||
Version 6 preserves old lesson identities and outcomes. Full faction, Fremen-ride,
|
||||
Advanced and expansion teaching remain unfinished. Source-bound checks, review,
|
||||
browser and preservation/Git evidence belong to the private checkpoint.
|
||||
A bounded Duke review confirmed revival/loan paths still cross recorded custody,
|
||||
return and cycle questions; no duplicate ruling or invented outcome was added.
|
||||
Broader multiplayer and component acceptance remain unfinished.
|
||||
Current work: [table discussion](TABLE_DISCUSSION.md) adds public conversation and
|
||||
private human-seat messages, separate from game state and decision continuation.
|
||||
Durable history, audience-filtered pagination, exact retries and active-session
|
||||
fences support communication through refresh and seat recovery. AI conversation
|
||||
and prose-deal enforcement remain unfinished. Source-bound checks, independent
|
||||
review, browser and preservation/Git evidence belong to the private checkpoint.
|
||||
A fresh bounded Terror/Kull audit confirmed existing pending rulings; independent
|
||||
multiplayer communication proceeds without inventing their outcomes. The full
|
||||
rules, multiplayer and component acceptance gates remain open.
|
||||
|
||||
A bounded remaining-effect audit found that the reviewed faction/Nexus candidates
|
||||
still cross recorded pending rulings. Continue independent features rather than
|
||||
@@ -95,7 +93,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), [named-player AI permission](SEAT_AI_PERMISSION.md) and [voluntary seat handover](SEAT_HANDOVER.md) have connected controls and recovery evidence. |
|
||||
| Multiplayer | [Public and private discussion](TABLE_DISCUSSION.md), 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