Files
Dune/docs/FORCE_INSPECTION.md
T
Quintine 537da4a12c 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
2026-09-21 11:07:07 +10:00

50 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.