Reconcile radio-delivered body and status casualties by original roster identity
This commit is contained in:
@@ -110,6 +110,67 @@ combat tactics, unloading, automatic scheduling and full-route reliability are
|
||||
still pending. The earlier feature inventory counts remain explicitly baseline
|
||||
counts, not an assertion that this follow-up was present at that older commit.
|
||||
|
||||
## Delivered casualty reconciliation follow-up
|
||||
|
||||
Status snapshots and body observations now carry slots from the same immutable
|
||||
initial formation roster. Watch unions those delivered identities rather than
|
||||
adding aggregate totals: a casualty reported by both its squad and a passing
|
||||
patrol counts once, while a different discovered body adds one. Local death
|
||||
sampling and a queued or interrupted report cannot change HQ's casualty total.
|
||||
|
||||
Body evidence preserves the last actual check-in's ID, observation time and
|
||||
position. A later check-in from a caller who has not seen an outside discovery is
|
||||
still accepted without resurrecting a confirmed casualty. When every original
|
||||
slot has delivered death evidence, Watch can close a wiped formation without
|
||||
inventing a surviving caller. A scalar source/slot snapshot remains usable when
|
||||
the corpse reference disappears during radio transit. Known transfers and player
|
||||
conversions permanently exclude the released slot; another actor cannot replace
|
||||
it. Body evidence with no previous check-in leaves status position and current living/fit
|
||||
counts unknown rather than inventing a corpse-position check-in.
|
||||
|
||||
The full repository checks pass after this integration. The actual Watch,
|
||||
Report.Snapshot and HQ.Accept methods run together in regressions for overlap,
|
||||
disjoint casualties, deletion in transit, new locally uninformed status and wipe
|
||||
closure. Sampler/body tests cover immutable slot ordering, released members and
|
||||
a deleted native group handle with a retained corpse. These adapters are not
|
||||
native LOS or radio evidence; that qualification is tracked separately.
|
||||
The [02:57:26 HQ response regression](evidence/native-2026-09-20-025726-hq-casualty-integration/report.json)
|
||||
compiles these changes and completes35 assertions through actual perception,
|
||||
uplink, HQ receipt, downlink and movement of a distinct original squad. It has no
|
||||
script/runtime failures; the four external localization errors remain. This
|
||||
regression does not yet prove actual corpse observation.
|
||||
|
||||
## Native body and radio follow-up
|
||||
|
||||
[03:05:33 body/radio run](evidence/native-2026-09-20-030533-body-radio-casualties/report.json)
|
||||
completes one scripted round with45 assertions and no script/runtime failures.
|
||||
One existing non-radio enemy was moved once beside another original living guard
|
||||
formation and killed using native character damage. Production BodyObserver's
|
||||
native LOS created the snapshot. The test inspected the actual pending uplink,
|
||||
verified no HQ loss before delivery, then observed precisely one delivered
|
||||
casualty and a low-confidence BODY belief with no fire contact. The victim's
|
||||
surviving caller sent its real cumulative death-slot status afterward; HQ still
|
||||
counted one loss, including twenty further seconds of observation.
|
||||
|
||||
The fixture temporarily postponed that formation's check-in to isolate body
|
||||
report causality, then resumed it. It created no actors, groups or synthetic
|
||||
reports and never injected Watch knowledge. This is an arranged native visibility
|
||||
case, not organic patrol discovery or an all-dead native formation. Scalar
|
||||
in-transit deletion and full-wipe closure remain actual-method regressions.
|
||||
|
||||
The same source includes the reviewed transfer-before-death fix: a retained
|
||||
non-null foreign group releases the old roster slot before either status or body
|
||||
attribution; a null group on a destroyed actor remains valid native detachment.
|
||||
A two-formation regression reproduced the previous double count and now confirms
|
||||
only the destination roster counts the known transferred casualty.
|
||||
|
||||
The four external localization errors still prevent strict native qualification.
|
||||
Source and all external inputs remained unchanged; hidden/muted owned-process
|
||||
cleanup was confirmed. The full repository suite passed after casualty integration;
|
||||
the subsequent transfer guard and fixture additions passed their focused checks,
|
||||
source-bundle preview and native compilation. All533 protected original reference
|
||||
files remained unchanged.
|
||||
|
||||
## Remaining work
|
||||
|
||||
- **T2 presence and a real shared active-agent budget:** materialization,
|
||||
@@ -123,10 +184,10 @@ counts, not an assertion that this follow-up was present at that older commit.
|
||||
roadblocks, planner-selected reconnaissance flights and operational shared-pool
|
||||
air transport were not present in these native snapshots. Independent aircraft
|
||||
experiments and historical courier/mortar tests are not proof of those features.
|
||||
- **Complete loss reconciliation:** another patrol's delivered body discovery
|
||||
currently confirms the body-observer candidate, but does not reconcile the
|
||||
deceased formation's Watch casualty total. An all-dead patrol has no surviving
|
||||
caller; do not manufacture its own status or mark it dead solely from silence.
|
||||
- **Broader loss-reconciliation qualification:** the single arranged native
|
||||
corpse/radio/status-overlap case below passes. Ordinary patrol discovery,
|
||||
deletion during real radio transit, complete native wiped formations and remote
|
||||
ownership still need their own evidence; silence alone never proves casualties.
|
||||
- **Further companion behavior:** full road supply convoys, broader ammunition
|
||||
chains, HQ-deployed mortar sites, aircraft servicing/recovery, improvised-prison/crash starts and
|
||||
optional warned mine-laying remain separate migrations or qualification work.
|
||||
|
||||
Reference in New Issue
Block a user