PASS: missing, child-only, malformed, zero and duplicate prefab root IDs rejected PASS: delayed scene/inventory arrival, deferred preload, identity checks, stale replies, timeout and observer cleanup PASS: actual inventory manifest, delayed/missing/wrong-owner item links, finite cap, consumed-stock refresh and preload ordering PASS: spawn scene remains held through final acknowledgement and nearby use; leaving, reassignment, disconnect and teardown release it PASS: production prison AI hold/release, repeat activation, authority/faction/player exclusion, dead actor and stop cleanup PASS: actual infantry search suspension, quiet grace, finite resume, expiry/replacement and defensive/ownership boundaries PASS: infantry combat gate precedes radio delivery and preserves non-task transports PASS: actual HQ contact transition wakes only fit squad members, cancels only task orders and logs changes once PASS: actual finite medicine grants, authored stock deduction, full-backpack refusal/pouch fallback, no loot replenishment, unresolved-operation quarantine and ownership/stop guards PASS: only recent native detected/identified threats suspend hunter travel; stale/disarmed/destroyed contacts cannot strand patrols PASS: actual hunter combat transition cancels only its travel once, holds through renewed contact and resumes after quiet; unregistered startup preserved PASS: captured sighting retention, immutable details, expiry, replay rejection, bounded sound uncertainty/cooldown, radio loss, priority and overdue-status fairness PASS: arrow press/release, held keys, opposing keys, disabled/menu input and firearm-only retention PASS: town trigger and hard 700m exclusion for all observers, empty/invalid positions and final-check crossings PASS: exact finite site squads, invalid roster/count rejection, committed-site spacing and safe fallback boundary PASS: mortar couriers use the mobile site team and refuse permanent-only garrisons PASS: omitted preferred mortar depot selects a surviving owned camp/mobile team; no camp, foreign cache and permanent-only sites are unavailable; historical priority retained PASS: real-session mortar deadline, failed-support convoy admission and hunter survivor/recovery gates PASS: native-route retry preserves delivered target, limits attempts and suspends during combat PASS: stale/deleted AI utility cannot receive Complete; mortar HQ preflight withholds unsafe orders; mounted convoy cover never creates infantry Defend PASS: flight crew affiliation and group precede native boarding; preparation remains bounded even while passengers wait PASS: factionless/deleted map targets do not abort perception; faction lookup tolerates teardown; deleting helicopter releases without capture/engine access PASS: shoot adapter waits for a physical round; bounded same-shell retries, interrupted/never-started loads, committed no-retry, order/owner changes and normal native delegation PASS: missing/invalid faction crew defers before any native spawn or allowance insertion; all registered RHS factions have explicit soldier and medic profiles PASS: vehicle radio issued once; pending, refusal and looting cannot duplicate or fabricate a physical radio link PASS: actual vehicle-radio link requires the original seated crew, physical manpack and live uncaptured mission vehicle; looting, dismount, release and teardown remove it PASS: actual hunter release preserves survivors/HQ, releases driving ownership once, delegates capture/teardown, and excludes prison/patrol/mortar from generic objective defence PASS: real opening road geometry enforces wide azimuths; fresh delivered contact preempts patrol cooldown, respects radio failures and does not starve in-flight interception PASS: actual scoped 10% tighter REGULAR aim error and alert perception; preserves equipment multiplier and restores vanilla behavior when unbound PASS: physical inspection and parent-wreck retention; server-only searched/report delivery unlocks native cleanup once with a 300-second delay PASS: bounded same-group empty-spawn retries, no casualty refill, queue retirement, delivery-gated intel, prepared-team reuse, throttled diagnostics and LOD release PASS: production airborne memory confidence, persistence, ground coverage, confirmed losses, artillery veto, cooldown and invalid-input rules PASS: production cover retains the carried HQ target until its deadline; airport reload waits until the drop pass and cover have finished PASS: air logistics reservation preserves delivered search until radio handoff, excludes guards/combat/in-flight orders, and quarantines unresolved native loads/moves PASS: actual ammunition cargo selector handles empty rifle/machinegun/sniper magazines, preserves loaded variants, excludes auxiliary launchers and tolerates missing native metadata PASS: original 15-minute launch/loss cadence, active/captured timer disarm, saved delay reset, stop, 300m orbit and bounded close-contact standoff at 30/60/120 Hz PASS: actual aircraft-removal notification guards owner/server/active/stop and schedules one full delay without replay extension PASS: hill prominence/elevation, actual road edges/heights/bends and server-only finite scout admission, pending stock, timeout and no replacements/refills PASS: mortar duty scope excludes players, other crews, stopped/client/inactive states; only destruction releases an active assignment, while the gunner may approach the gun PASS: random mode restrictions, full numeric ranges, independent calendar dates and strict daylight boundaries PASS: actual killais eligibility includes the 1000m boundary, excludes players/retained bodies/dead/non-character entities and checks full 3D distance PASS: actual generation scheduler bounds each tick, enforces deadline/candidate ceiling, validates fallback, commits only accepted positions, skips only dispensable sites, preserves required objectives/intel, and resets the next search budget PASS: terrain placement samples world bounds, retains streaming candidates, bounds waits/work, rejects foreign fallbacks, preserves objectives/intel and validates completion PASS: actual navigation readiness supports static meshes, yields only for loadable streaming tiles and refuses unreachable positions PASS: terrain adapter resources, dependencies, stable IDs, native nav configs, missing-nav visibility, path validation and overwrite protection PASS: airfield detection accepts physical runways/towers and bounded authored markers, rejects unrelated props, water and out-of-world markers, and samples terrain height PASS: actual faction resolution reserves explicit roles, samples without replacement, substitutes disabled selections, and rejects duplicate/unknown/missing choices and insufficient pools PASS: Random all submits persistent random roles immediately; manual mixed choices, stale/unauthorized UI guards and debounce preserved PASS: actual content policy gates parent packs, individual factions, faction identity and finite group rotation with vanilla fallback PASS: actual delivered road eligibility, ahead projection without chords, reservations, stock road query bounds, terrain/water/obstruction refusal and clean outputs PASS: actual delivered-task lineage, expiry, old-order retention, native commit, release, road precision expiry and duplicate delivery PASS: actual original-roster local handoff,100m3D bound,busy carrier/budget exclusion,origin interruption including deletedsource,normal radio delivery and per-source replay history PASS: actual visual intake retains source/time/position/id, rejects replay, prefers usable own route, excludes simultaneous callers and conservatively resets negative-sweep dwell PASS: actual fixture local/radio gating, immutable source/time/position, interrupted-report exclusion and exact-owner cleanup PASS: local-handoff runner refuses wrong project/round count/insufficient deadline before runtime work PASS: actual fixture allocator terminal/unsubmitted guard, original-group lookup and both candidate gates PASS: actual report-derived waypoint insertion/order and tighter positive radii; no formation navigation claim PASS: actual Place/Stop waits native pose update, bounds four attempts, preserves original position, restores pending/settled placement and respects ownership/accepted-move quarantine PASS: actual fixture current/original recipient ownership, unresolved transfer cleanup, exact-token release and idempotent Stop PASS: actual fixture phased-cargo readiness, bounded callbacks, captured-stock mixed-caliber selection/continuation, reservation cleanup and component magazine counts PASS: actual inventory-fixture setup uses ordinary prison unlock before constructing its convoy-waiting probe; failed unlock cannot run fixture PASS: actual authored storage anchors, native trace flags, own-hierarchy exclusion, external wall/vehicle obstruction, range, unknown geometry and bounded context refusal PASS: actual convoy binding, finite identities, disjoint tokens, shared report replay/cooldown, original recipients and HQ cleanup PASS: actual finite convoy supply pool; immutable slots, shared demand state, sparse/capped discovery and permanent shutdown PASS: actual HQ rotates finite donors, skips unavailable/contacted trucks, uses delivered reports and dispatches at most one trip per planning cadence PASS: actual original turret identity, native/canonical guards, scoped maximum-skill profile, reset, dismount/reboard, requested-skill preservation and restoration PASS: bounded HQ startup/memory windows and outcome-specific full-route deadlines PASS: explicit escape-route skips only administrator stress, preserving original full-fixture wait/failure paths PASS: normal escape route keeps ordinary catalog and generated placement; historical selectors remain unchanged PASS: actual read migrates old valid settings, preserves explicit disabled state, rejects invalid data; next-round feedback and fixed menu remain honest PASS: actual automatic convoy timing/authority/admission/one-attempt/manual-task/stop policy; native deployment unproved PASS: late authoritative failure reason refreshes open result; detach, mode change and success subscriptions preserved infantry resupply actual rules, radio transitions, owned cleanup and unresolved-operation tests passed PASS: actual resupply Roster preserves permanent release, original slot mapping and bounded ownership PASS: actual bounded empty-return and finite delivery; phase-isolated callbacks, exact ownership proof, stop quarantine and original actor/vehicle boundaries PASS: actual early ammunition policy and status-first shared uplink; complete threshold, phases, cooldown, failures and requested check-ins PASS: actual group radio startup preservation, finite native grants, callback quarantine, frozen selection/actor ownership and bounded observation PASS: actual maintenance native-stock check rejects missing/duplicate/wrong-identity/unowned/depleted/malformed stock and is read-only; native runtime not executed .................. ---------------------------------------------------------------------- Ran 18 tests in 0.240s OK PASS: actual radio node rejects current incapacitation, death, ownership and faction changes despite cached inventory; one-second capability refresh remains explicit PASS: one optional Southern transport, unchanged finite clue/maintenance stock, and airfield-only extraction config PASS: optional transport deferred behind required readiness, bounded once-only spawn/omission, isolated cleanup, occupied-candidate retention and required-default preservation PASS: actual diagnostic fallback runs only on failed missing-context call, derives unique native pilot door, preserves stock eligibility and restores prior index on success/failure; diagnostics mutate no game state. PASS: actual native-prelude cleanup restores only original changed damage, refuses stale/incapacitated/aboard teleport; bounded five-seat/four-door fixture wiring checked. Native execution remains pending. PASS: actual CreateTransport requires successful scoped Configure after handbrake, preserves ordinary vehicles, tracks spawned entity before failures and never treats failed lock registration as ready. PASS: actual preparation Configure guards/idempotence/breach preservation, security eligibility/final current-body server mutation and all scoped action guards; all five seat/four door resource overrides. Native hold, prefab merge, replication and boarding remain unverified. PASS: production vehicle alarm single trigger/replica completion/no replay, fixed deadline/readiness wait, failed audio, dedicated server, moving exact handle, destruction/native end/deletion/clock and mission teardown. Native sound and multiplayer delivery require engine qualification. PASS: actual convoy cover observation/snapshot/uplink/HOLD/RESUME/cleanup transitions; native boundaries mocked, non-convoy runner opt-in refused Enemy optics actual-service ownership, preservation, callback, deadline and bounded-inspection policies passed PASS: actual delivered cover freshness/lineage/replay and canonical executor; owned waypoint-only hold, one resume at preserved route index, invalid ownership/crew/ledger refusal and fail-closed native recreation PASS: actual Stinger show/set/help state precise actor-roll effects; read-only help, bounded values, malformed syntax and failed-save preservation; no rerolls/gameplay edits and no native persistence claim PASS: new/retasked search and radio delivery ammo gates; active tasks and delivered release preserved HQ convoy delivered-report planning and downlink regressions passed PASS: actual own-inventory ammo inspection deduplicates loaded/carried/shared wells, separates chambers/launchers, freezes scalar snapshots and treats unsupported/capped/foreign inventory as unknown PASS: actual mounted hierarchy sampling, ownership exclusion, deduplication, completeness/caps, quarter threshold and detached validation; no runtime policy or ammunition mutation PASS: actual HQ original convoy-root admission rejects wrong force/server/group and never supplies replacement lookup PASS: native body fixture uses existing immutable actors, real production LOS/queued uplink, pre-delivery isolation, actual status overlap, bounded cleanup and no fabricated reports/spawns PASS: actual native fixture lookup selects exact BODY kind/identity/message from bounded evaluations, never sighting-only Get PASS: actual ammo snapshot comparison checks every scalar/category flag; native probe requires real roster rescan, loaded-round lower bound and separate immutable pending/Watch objects PASS: actual delivered slot-union bodies preserve overlap/disjoint evidence, replay idempotence, status subset integrity, full-wipe closure and formation-local bounds test_review_added_allowed_media_invalidates_snapshot (__main__.ReviewTests.test_review_added_allowed_media_invalidates_snapshot) ... ok test_review_added_source_directory_rejected (__main__.ReviewTests.test_review_added_source_directory_rejected) ... ok test_review_loose_root_resource_and_symlink_rejected (__main__.ReviewTests.test_review_loose_root_resource_and_symlink_rejected) ... ok test_review_metadata_media_and_sidecars_remain_allowed_and_bound (__main__.ReviewTests.test_review_metadata_media_and_sidecars_remain_allowed_and_bound) ... ok test_review_missing_link_rejected (__main__.ReviewTests.test_review_missing_link_rejected) ... ok test_review_package_guard_sees_new_scripts (__main__.ReviewTests.test_review_package_guard_sees_new_scripts) ... ok test_review_retargeted_private_link_rejected (__main__.ReviewTests.test_review_retargeted_private_link_rejected) ... ok ---------------------------------------------------------------------- Ran 7 tests in 0.057s OK /tmp/err-policy-_pt54z6b/check.cpp: In member function ‘void HQ::StatusReport(ERR_HQUnit*, float)’: /tmp/err-policy-_pt54z6b/check.cpp:152:15: error: ‘struct ERR_HQStatusReport’ has no member named ‘MountedAmmo’ 152 | if (report->MountedAmmo) | ^~~~~~~~~~~ /tmp/err-policy-_pt54z6b/check.cpp:155:16: error: ‘struct ERR_HQStatusReport’ has no member named ‘MountedAmmo’ 155 | if (report->MountedAmmo.Complete) | ^~~~~~~~~~~ /tmp/err-policy-_pt54z6b/check.cpp:156:99: error: ‘struct ERR_HQStatusReport’ has no member named ‘MountedAmmo’ 156 | mounted = Format("%1 weapons, %2/%3 magazine rounds, %4 chambered, %5 low magazines", report->MountedAmmo.Weapons, report->MountedAmmo.Rounds, report->MountedAmmo.Capacity, report->MountedAmmo.Chambers, report->MountedAmmo.LowMagazines); | ^~~~~~~~~~~ /tmp/err-policy-_pt54z6b/check.cpp:156:128: error: ‘struct ERR_HQStatusReport’ has no member named ‘MountedAmmo’ 156 | mounted = Format("%1 weapons, %2/%3 magazine rounds, %4 chambered, %5 low magazines", report->MountedAmmo.Weapons, report->MountedAmmo.Rounds, report->MountedAmmo.Capacity, report->MountedAmmo.Chambers, report->MountedAmmo.LowMagazines); | ^~~~~~~~~~~ /tmp/err-policy-_pt54z6b/check.cpp:156:156: error: ‘struct ERR_HQStatusReport’ has no member named ‘MountedAmmo’ 156 | mounted = Format("%1 weapons, %2/%3 magazine rounds, %4 chambered, %5 low magazines", report->MountedAmmo.Weapons, report->MountedAmmo.Rounds, report->MountedAmmo.Capacity, report->MountedAmmo.Chambers, report->MountedAmmo.LowMagazines); | ^~~~~~~~~~~ /tmp/err-policy-_pt54z6b/check.cpp:156:186: error: ‘struct ERR_HQStatusReport’ has no member named ‘MountedAmmo’ 156 | mounted = Format("%1 weapons, %2/%3 magazine rounds, %4 chambered, %5 low magazines", report->MountedAmmo.Weapons, report->MountedAmmo.Rounds, report->MountedAmmo.Capacity, report->MountedAmmo.Chambers, report->MountedAmmo.LowMagazines); | ^~~~~~~~~~~ /tmp/err-policy-_pt54z6b/check.cpp:156:216: error: ‘struct ERR_HQStatusReport’ has no member named ‘MountedAmmo’ 156 | mounted = Format("%1 weapons, %2/%3 magazine rounds, %4 chambered, %5 low magazines", report->MountedAmmo.Weapons, report->MountedAmmo.Rounds, report->MountedAmmo.Capacity, report->MountedAmmo.Chambers, report->MountedAmmo.LowMagazines); | ^~~~~~~~~~~ Traceback (most recent call last): File "/home/jakub/devel/escapistsrereintroduced/tests/test_hq_uplink_fairness.py", line 29, in run(r''' ~~~^^^^^ #include ^^^^^^^^^^^^^^^^^^ ...<123 lines>... } ^ ''') ^^^^ File "/home/jakub/devel/escapistsrereintroduced/tests/policy_harness.py", line 13, in run subprocess.run(['g++','-std=c++17','-Wall','-Werror',str(p/'check.cpp'),'-o',str(p/'check')],check=True) ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.14/subprocess.py", line 578, in run raise CalledProcessError(retcode, process.args, output=stdout, stderr=stderr) subprocess.CalledProcessError: Command '['g++', '-std=c++17', '-Wall', '-Werror', '/tmp/err-policy-_pt54z6b/check.cpp', '-o', '/tmp/err-policy-_pt54z6b/check']' returned non-zero exit status 1. PASS: 33 prefabs have unique saved root entity IDs PASS: 299 original script entries tracked across 18 unfinished responsibilities PASS: 1 isolated addons, acyclic dependencies, 54 unique resources, exact vanilla/authorized external references Traceback (most recent call last): File "/home/jakub/devel/escapistsrereintroduced/tools/check.py", line 78, in if __name__=='__main__':check() ~~~~~^^ File "/home/jakub/devel/escapistsrereintroduced/tools/check.py", line 76, in check subprocess.run([sys.executable,str(ROOT/'tests'/name)],check=True) ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.14/subprocess.py", line 578, in run raise CalledProcessError(retcode, process.args, output=stdout, stderr=stderr) subprocess.CalledProcessError: Command '['/usr/bin/python3', '/home/jakub/devel/escapistsrereintroduced/tests/test_hq_uplink_fairness.py']' returned non-zero exit status 1.