Add public faction-sheet inspectors and a twelve-faction gallery

Add an enlarged public sheet beneath each player, available while actions are
pending. Only faction identity and table rules mode enter the reader; it sends
no action and receives no private player data. Basic/Advanced preview explicitly
leaves the table mode unchanged. Native mode control, keyboard scrolling,
Escape/focus restoration and internal links use existing dialog components.
The internal gallery covers all twelve factions with bundled Homeworld artwork.

Share every faction's Basic and Advanced paragraphs with the main reference.
Replace Richese's generic placeholder, centralize Ecaz/Moritani guidance from
settled contracts, correct CHOAM Auditor/Baliset/Jubba availability and align the
Fremen/Ecaz Sietch Tabr exception. Full printed text, unresolved powers and
combined-rule acceptance remain explicit. No new rule, AI strategy or gate.

Four focused tests cover all12 identities, shared paragraphs, artwork files,
internal links, mode separation, gallery defaults and per-viewer busy controls.
The first busy-control assertion falsely matched CSS disabled variants; it now
checks actual disabled attributes. All16 related focused cases pass. Independent
review caught missing Moritani optionality and stale Fremen exception text;
those were fixed and final review found no material issue. Auditor limits and
full actual-card cancellation cost were checked against the existing contract.
Types, lint, all 5000 offline tests and production build pass on stable source.
No API/auth/persistence changes; HTTP tests were not repeated.

Browser QA reused the existing two-player Basic auction without game actions.
Both own and opposing inspectors work; Enter opens, Escape closes and returns
focus, reopening resets Basic, and Advanced preview explicitly preserves the
Basic table. ArrowDown scrolls the focused long sheet. At390px, dialog359x828,
scroll client/width342 without horizontal overflow,16px text and44px controls.
Gallery334px fits without overflow; Richese, Ecaz and Moritani selection and
Advanced paragraphs render, faction change resets Basic and bundled art loads.
Internal help and Advanced Moritani links expand their topics. Back and refresh
preserve four hand cards and the pending minimum bid2; normal viewport restored.
Screenshot capture timed out; full visual/screen-reader acceptance remains open.

All 1539 opening games, 3259 saved seats and auxiliary rows
remain identical, including the QA room. SQLite integrity and foreign keys pass.
No new games, server restart, migration, reset or recurring automation.

Private evidence: 20260921-faction-sheets.
Verified source tree: 6b738958f30fc381d3e9eb26398239bbd88f1d4281f8ff5ff2bb3b3259494a93
This commit is contained in:
Quintine committed 2026-09-21 12:17:06 +10:00
1 parent e3cfd82540
commit c2f24fc546
12 files changed
+341 -38

No files matched your search

+7
View File
@@ -1,5 +1,12 @@
# Component inventory and verification ledger
**Faction sheets, 21 September 2026:** every table player has an enlarged public
faction guide, with Basic/Advanced preview and an internal twelve-faction gallery.
Shared text and bundled Homeworld artwork preserve public identity; no private
player data enters inspection. Richese guidance and stale Ecaz/CHOAM summaries
are updated from existing contracts. Full printed text and combined rules remain
unfinished. See [faction sheets](FACTION_SHEETS.md).
**Hand browsing, 21 September 2026:** owned cards now have name search, printed
category filters and display sorting, with physical IDs, complete existing card
controls and inspectors retained. Empty results have a clear reset, and current
+16 -14
View File
@@ -6,21 +6,23 @@ gated.** Prototypes do not open completion or publication gates.
## Current checkpoint and work
Latest delivered checkpoint: `14a7800`, [Treachery and Spice draw counts](DRAW_PILES.md).
Types, lint, **4,990 offline tests**, production build and **49 HTTP tests** passed.
All 1,499 opening rooms, 3,171 seats and auxiliary rows stayed unchanged; isolated
HTTP tests brought the baseline to 1,538 rooms and 3,258 seats. Browser counts,
internal guide, keyboard navigation, refresh and 390px layout passed. Screenshot
capture remained unavailable; full visual acceptance is open. The healthy server
was reused. Prior checkpoints include `537da4a` for force inspection, `2b071a4`
for Nexus offers and `91dcca4` for bribes.
Latest delivered checkpoint: `e3cfd82`, [private-hand browsing](HAND_BROWSING.md).
Types, lint, **4,996 offline tests** and production build passed. Search, category
filters, all sort orders, an auction acquisition under an active filter, keyboard
scrolling, internal help, tab reset and refresh passed browser checks. All 1,538
opening rooms, 3,258 seats and auxiliary rows stayed unchanged; the isolated QA
game brought the baseline to 1,539 rooms and 3,259 human seat records. Screenshot
capture timed out; full visual acceptance remains open. The healthy server was
reused. Prior checkpoints include `14a7800` for draw counts, `537da4a` for force
inspection and `2b071a4` for Nexus offers.
Current work: [private-hand browsing](HAND_BROWSING.md) adds name search, printed
category filters and stable display sorting around existing card inspectors and
actions. Physical IDs and saved order remain intact; required choices stay
outside the filtered row. Focused selection/privacy/rendering checks accompany
independent review and private browser, preservation and Git evidence. No game
action or AI strategy changes. The broader game remains unfinished.
Current work: [public faction sheets](FACTION_SHEETS.md) adds a table inspector
and twelve-faction internal gallery with Basic/Advanced preview. Shared guidance
fills Richese’s missing overview, centralizes Ecaz/Moritani and corrects stale
CHOAM/Ecaz summaries from existing contracts. Public ID and mode are the only
inspector inputs; no private state or game action is involved. Focused rendering
checks accompany independent review, browser verification and saved preservation.
Full printed-sheet text and all remaining rules still require completion.
The separate Bureaucrat/Emperor gift question is pending.
The `8f7a62c` policy checkpoint removed usage checks/cutoffs and deferred AI
refinement until feature completion, followed by three adjacent 75% targets.
+55
View File
@@ -0,0 +1,55 @@
# Public faction sheets
Connected inspection prototype, 21 September 2026. Every player card has
**Inspect faction**, available during setup, play and pending decisions. The
internal `faction-sheets` topic also offers a gallery of all twelve factions.
The inspector receives only a public faction ID and Basic/Advanced mode. It
reads no player state, held cards, leader custody, cache or hidden tokens and
sends no action. The enlarged sheet uses existing bundled Homeworld artwork,
crisp text and the same `FACTION_RULES` paragraphs as the internal faction topics.
There are no new images, endpoints, persistence fields or AI decisions.
The initial display follows the table mode. **Include Advanced powers** changes
only the local reference display, with an explicit preview notice when it differs
from the table. Advanced powers follow their underlying Basic powers. Close,
Escape and reopening return to the normal dialog lifecycle; changing faction or
table mode resets the reader. Gallery faction changes start with Basic guidance.
The long sheet has an independently focusable scrolling region, named controls,
44px control targets and 16px body text. Detailed links remain internal.
## Shared guidance and authority
Richese no longer receives a placeholder faction paragraph; Ecaz and Moritani
move from embedded topics into the shared typed twelve-faction map. Existing
contracts supply the new original-language summaries:
- Richese: [auctions](RICHESE_AUCTION_RULES.md),
[acquisition](RICHESE_ACQUISITION_RULES.md) and
[No-Field](RICHESE_NO_FIELD_RULES.md).
- Ecaz: [Ambassadors](ECAZ_AMBASSADORS_RULES.md),
[alliance](ECAZ_ALLIANCE_RULES.md), [Collection](ECAZ_COLLECTION_RULES.md)
and [victory](ECAZ_VICTORY_RULES.md).
- Moritani: [Terror](MORITANI_TERROR_RULES.md) and
[Advanced assassination](MORITANI_ASSASSINATE_LEADERS.md).
- CHOAM: [Auditor](CHOAM_AUDITOR.md) and the existing internal Worthless-card
guides supersede stale claims that Auditor setup, Baliset and Jubba Cloak are
absent. The Auditor inspects up to two unused cards on survival or one on
death; prevention costs one spice per card that would actually be inspected.
The supported Ecaz/Fremen Sietch Tabr exception replaces the old blanket missing
claim. Unfinished Ecaz Advanced powers, Duke/Occupy interactions, Richese card and
auction combinations, Moritani effects and normal-traitor forfeiture remain
explicit. No new source interpretation or mode gate is introduced. These are
readable faction guides; complete printed-sheet text and combined rule acceptance
are still open requirements.
## Verification
`npm test -- faction-inspector` covers all twelve identities, shared reference
text, bundled artwork, valid internal links, Basic/Advanced separation, gallery
defaults, and public table controls for either viewer while actions are busy.
Tests do not claim interactive focus, rule correctness for every paragraph or
full game acceptance. Independent review, browser observations, final check/build,
saved-game preservation and Git delivery belong to the private source-bound
checkpoint. Existing gameplay and minimal legal AI participation are unchanged.
+11
View File
@@ -1,5 +1,16 @@
# Dune implementation status
## 21 September 2026 — public faction-sheet inspection
Every table player now has a public faction inspector and the internal guide
contains a twelve-faction gallery. Basic/Advanced preview uses shared reference
text without changing the game or reading private state. Richese, Ecaz and
Moritani receive shared guidance from settled contracts; stale CHOAM and Ecaz
availability summaries are corrected. [Faction sheets](FACTION_SHEETS.md) records
scope, source boundaries and remaining text/interaction acceptance. Focused
checks and independent review accompany private browser, check/build,
preservation and Git evidence. No AI strategy or release gate changed.
## 21 September 2026 — private-hand browsing
The private hand now supports literal name search, printed-category filtering