Add public force counter inspectors and all-faction gallery

Each player summary opens enlarged original counter diagrams and public physical
pools. The inventory separates reserves, Tanks, board locations and foreign
Homeworld deployments. Native Homeworlds break down existing reserves; elites
and advisor stances remain subsets. The reference gallery covers all twelve
factions, including Suboids/Cyborgs, Sardaukar, Fedaykin and BG advisor faces.

Actual force keys retain unplaced Mobile Stronghold and Discovery groups.
Basic Homeworld special identity comes from public typed pools, not mode alone.
Concealed No-Fields expose only a separate marker/location; no value or future
materialization is inferred. Temporary battle strength creates no physical
counter. Invalid projections show a refresh notice instead of invented totals.
Inspection updates from current props and submits no action or saved mutation.

Independent review found no material issue and clarified No-Field wording:
revelation draws from reserves available then, without earmarking counters.
Eleven new focused cases cover faction identity, typed pools, advisors, genuine
Basic Homeworld public views, native/foreign splits, genuine Ix setup before HMS
placement, a controlled Discovery position, JSON continuation, input immutability,
concealed0/3/5 equivalence, named controls and malformed projection feedback.
A test-only Homeworld projection initially omitted its card identity; corrected
before final checks. Lint's semantic status element was corrected to output.

Types, lint, all 4984 offline tests and production build passed on stable
source. No HTTP/auth/schema/persistence behavior changed, so no additional HTTP
suite was required. Browser QA reused an isolated existing three-human Basic
Nexus without game actions. All three public inspectors showed correct pools;
Escape restored trigger focus, Enter opened inspection and PageDown scrolled the
labelled region. At390px the dialog359px fit, body text16px and Close44px high.
All twelve gallery choices rendered named160px diagrams without gallery overflow.
Internal guide, Back and refresh worked; viewport reset and preview retained.
Screenshot capture timed out. Full visual/screen-reader/200% zoom, manufactured
component fidelity and all-configuration browser acceptance remain open.

All 1499 original rooms, 3171 seats and auxiliary rows are
unchanged; SQLite integrity and foreign keys pass. The healthy server was reused
without restart, migration, reset or automation. AI strategy/calibration remains
deferred until non-AI features are complete; no mode/publication gate was opened.

Private evidence: 20260921-force-inspection.
Verified source tree: 5d7ffd471229faa13224fd5a87d33c3ac5af866446241a7881926a54c1ee49eb
This commit is contained in:
Quintine committed 2026-09-21 11:07:07 +10:00
1 parent 2b071a44a2
commit 537da4a12c
13 files changed
+536 -13

No files matched your search

+8
View File
@@ -1,5 +1,13 @@
# Component inventory and verification ledger
**Force counter inspection, 21 September 2026:** each public player summary now
opens enlarged faction diagrams and a physical location inventory. All twelve
sets have reference faces; special counters, advisor stances, native Homeworld
reserve breakdowns and foreign deployments retain distinct accounting. Concealed
No-Fields show only a separate marker. This is a connected inspection prototype;
manufactured-face fidelity and full visual/combined-rule acceptance remain open.
See [scope and evidence](FORCE_INSPECTION.md).
**Kwisatz Haderach inspection, 21 September 2026:** original companion artwork,
readable enlargement, private loss tracking and availability guidance now connect
to Atreides controls, authorized plan inspection and the internal reference.
+14 -13
View File
@@ -6,20 +6,21 @@ gated.** Prototypes do not open completion or publication gates.
## Current checkpoint and work
Latest delivered checkpoint: `91dcca4`, [ordinary bribe controls](BRIBE_CONTROLS.md).
Types, lint, **4,968 offline tests**, production build and **49 HTTP tests** passed.
All 1,418 opening rooms, 2,991 seats and auxiliary rows stayed unchanged. Isolated
QA brought the local baseline to 1,459 rooms and 3,081 seats. Browser payment,
refresh, keyboard controls and a 390px layout passed; screenshot capture and full
visual acceptance remain open. The healthy server was reused. Prior checkpoints
include `7814f74` for table discussion and `b2fcef8` for Storm/Spice practice.
Latest delivered checkpoint: `2b071a4`, [live Nexus offer withdrawal](NEXUS_OFFERS.md).
Types, lint, **4,973 offline tests**, production build and **49 HTTP tests** passed.
All 1,459 opening rooms, 3,081 seats and auxiliary rows stayed unchanged. Isolated
QA brought the local baseline to 1,499 rooms and 3,171 seats. Browser proposal,
refresh, keyboard withdrawal, preserved incoming offer, acceptance, break and
390px layout checks passed. Full visual acceptance remains open. The healthy
server was reused. Prior checkpoints include `91dcca4` for bribes, `7814f74` for
table discussion and `b2fcef8` for Storm/Spice practice.
Current work: [live Nexus offer withdrawal](NEXUS_OFFERS.md) connects the existing
unanswered-offer action, shows the recipient and records named proposal/withdrawal
history. Current alliance rules, pending-window locks, readiness and version
fences remain intact. Source-bound checks, independent review, browser and
preservation/Git evidence belong to the private checkpoint. The broader game
remains unfinished. The separate Bureaucrat/Emperor gift question is pending.
Current work: [public force inspection](FORCE_INSPECTION.md) connects enlarged
counters and public location inventories for all factions, with special/advisor
subsets, Homeworld reserve breakdowns and concealed No-Field markers. This is
read-only; source-bound checks, independent review, browser and preservation/Git
evidence belong to the private checkpoint. The broader game remains unfinished.
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.
+49
View File
@@ -0,0 +1,49 @@
# Public force counter inspection
21 September 2026. Each live player summary now opens **Inspect forces**.
The enlarged diagrams and public location list work during other players’
decisions without submitting an action. The internal reference has a faction
selector covering all twelve sets, including special and advisor faces.
The [inventory projection](../game/force-inventory.ts) consumes public player
force fields and the existing public Homeworld table. Reserves, Tanks, nonzero
board groups and foreign Homeworld deployments count physical counters. Elites
are subsets, never additional counters; native Homeworld groups subdivide the
reserve pool. Emperor’s two worlds remain separate in that breakdown. The
existing [Homeworld custody](../game/homeworld-custody.ts) and
[public table](../game/homeworld-game.ts) define those identities.
Ixian ordinary forces are Suboids; special names reuse
[the combat registry](../game/combat.ts). Physical special identity comes from
the public elite pools, including Basic Homeworld games. Ordinary Basic tables
that combine Emperor/Fremen counts do not fabricate a starred distribution.
Bene Gesserit [advisor stance](../game/advisors.ts) applies across a territory’s
sectors and does not create an extra counter. Reserves and Tanks have no deployed
stance. Temporary Sardaukar powers, support, leaders and Kwisatz do not change
this physical inventory.
The projection iterates actual force locations, including the unplaced Mobile
Stronghold during genuine Ix setup and named Discovery locations. It does not
filter away pieces because their location is outside the current map. Native
worlds stay separate from board location keys. Invalid counts or unreconciled
native reserves show a refresh notice instead of invented totals.
A deployed [No-Field](../game/richese-no-field.ts) contributes only a separate
concealed marker and its public location. No hidden face, inventory, last-used
value or future force quantity is read or inferred. Revelation draws from the
reserves available then; it does not reserve particular counters. Effective
presence helpers are deliberately excluded from physical counting.
Focused tests cover twelve faction identities, mixed pools, multi-sector
advisors, native and foreign Homeworlds, actual Basic Homeworld projections,
genuine Ix setup before HMS placement, a controlled Discovery location, identical
0/3/5 concealed-marker results, immutable input and JSON continuation. Rendering
tests cover named live triggers, the reference gallery, readable details and
invalid-state feedback. This is read-only inspection, so no AI action or strategy
was added. Existing legal participation and saves remain authoritative.
Source-bound checks, independent review, browser observations, preservation and
Git delivery are recorded in the private checkpoint. These are original
diagrammatic faces, not certification of the manufactured components’ layout.
Full visual/accessibility acceptance and combined-game verification remain open;
mode and publication gates are unchanged.
+10
View File
@@ -1,5 +1,15 @@
# Dune implementation status
## 21 September 2026 — public force counter inspection
Every player now has **Inspect forces**, with enlarged diagrams, special subsets,
advisor faces, board locations and native/foreign Homeworld accounting. The
reference includes all twelve factions. [Force inspection](FORCE_INSPECTION.md)
excludes concealed No-Field values and temporary strength bonuses from physical
counts. Focused projections, rendering, genuine setup and JSON recovery accompany
independent review and private browser/preservation/Git evidence. No game action,
AI strategy, schema, mode or publication gate changed; the full goal is unfinished.
## 21 September 2026 — live Nexus offer withdrawal
An unallied sender can now see the recipient of its outgoing Nexus offer and