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 protected/capped damage plus exact-actor terminal fixture bypass through delayed native damage, fail-closed ownership and untouched ordinary actor; no native claim
PASS: actual Tick clock initialization admits fractional first ticks and expires without extending the original start
PASS: actual finite conservation/deadline/callback policies; read-only selection, bounded once-only inventory submission and no can refill; native transfer not executed
PASS: actual exact-context membership, bounded identity/reach gates, native start/cache/eligibility ordering and no duplicate/foreign action start; fuel manager identity and empty-can headroom guards checked
PASS: actual detached node/value snapshot and conservation refuse mismatched lengths before indexed reads, retain original identities under native out-array aliasing and log bounded counts once; native cause remains unknown
PASS: actual mine evidence sealing/recovery, historical coarse publication, caps, canonical ownership, marker join retry/owner-change/stop; native arming and replicated vector-array transport untested
PASS: actual full document recovery retains authored/sealed targets, one shared spent ledger, retry/exhaustion semantics and canonical multi-player ownership alongside supplemental mine intel
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: universal connector, embedded/standalone exports, multiple terrains, 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: configured airport parsing, bounded readiness, stale admission rejection and cleanup wiring
PASS: explicit CLI opt-in, disabled/editor guards and mission-header airport precedence
PASS: singleton identity guards, paired faction deserialization and client world-cleanup wiring
PASS: task/map/respawn getters survive delayed old destruction and preserve ordinary-mode behavior
PASS: replication hierarchy refuses absent/aliased nodes and establishes delivery dependencies idempotently
PASS: standalone old faction delegates collected once, with null/deleted owners ignored
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 one-mine original carrier selection, settled startup, shared finite claims, no refund after submission
PASS: actual HQ startup grant readiness forwarding is authoritative and fail-closed
PASS: actual finite PMN4 one-to-two entitlement, pinned original ownership, shared commit, physical custody, callback quarantine/deletion and no retry
PASS: actual bounded empty-return and finite delivery; phase-isolated callbacks, exact ownership proof, stop quarantine and original actor/vehicle boundaries
PASS: actual shared finite identity reservation; competing consumers, submission permanence, stale cleanup and96-item bound
PASS: actual carried-mounted swap, shared committed claim, physical slot reach, exact two-way proof, uncertainty and terminal cleanup
PASS: actual mounted pickup, exact finite ownership, pre-submission commit, physical custody, bounded callback and quarantine lifecycle; no native coverage claim
PASS: actual mounted courier admission, radio, individual orders, two-stage transfer, reboarding, token cleanup and quarantine lifecycle
PASS: actual scoped crew permit and native board completion/failure preserves foreign seats without teleport fallback
PASS: actual shared mounted stock/history ownership, atomic exact HQ pair claim, and bounded stopped-owner proof polling
PASS: actual carried/mounted early ammunition policy and status-first shared uplink; complete threshold, phases, cooldown, failures requested check-ins and non-urgent detached carried-mine status
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
EEEEEEEEEEEEEEEEEE
======================================================================
ERROR: test_candidate_and_copy_mutations_refused (__main__.ExternalPackedTests.test_candidate_and_copy_mutations_refused)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/jakub/devel/escapistsrereintroduced/tests/test_packed_external_game.py", line 36, in setUp
    self.packed=v4.request(self.args,self.root)
                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 58, in request
    require(session.is_absolute() and session.parent==Path('/tmp') and session==session.resolve() and re.fullmatch(r'erri-packed-chat-[A-Za-z0-9_-]+',session.name) and not session.exists() and not session.is_symlink(),'Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session')
    ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 20, in require
    if not condition: raise ValueError(message)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session

======================================================================
ERROR: test_crlf_project_and_exact_multiple_external_paks (__main__.ExternalPackedTests.test_crlf_project_and_exact_multiple_external_paks)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/jakub/devel/escapistsrereintroduced/tests/test_packed_external_game.py", line 36, in setUp
    self.packed=v4.request(self.args,self.root)
                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 58, in request
    require(session.is_absolute() and session.parent==Path('/tmp') and session==session.resolve() and re.fullmatch(r'erri-packed-chat-[A-Za-z0-9_-]+',session.name) and not session.exists() and not session.is_symlink(),'Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session')
    ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 20, in require
    if not condition: raise ValueError(message)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session

======================================================================
ERROR: test_exact_identity_closure_and_no_loose_files (__main__.ExternalPackedTests.test_exact_identity_closure_and_no_loose_files)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/jakub/devel/escapistsrereintroduced/tests/test_packed_external_game.py", line 36, in setUp
    self.packed=v4.request(self.args,self.root)
                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 58, in request
    require(session.is_absolute() and session.parent==Path('/tmp') and session==session.resolve() and re.fullmatch(r'erri-packed-chat-[A-Za-z0-9_-]+',session.name) and not session.exists() and not session.is_symlink(),'Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session')
    ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 20, in require
    if not condition: raise ValueError(message)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session

======================================================================
ERROR: test_explicit_v4_and_frozen_v2_rejection (__main__.ExternalPackedTests.test_explicit_v4_and_frozen_v2_rejection)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/jakub/devel/escapistsrereintroduced/tests/test_packed_external_game.py", line 36, in setUp
    self.packed=v4.request(self.args,self.root)
                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 58, in request
    require(session.is_absolute() and session.parent==Path('/tmp') and session==session.resolve() and re.fullmatch(r'erri-packed-chat-[A-Za-z0-9_-]+',session.name) and not session.exists() and not session.is_symlink(),'Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session')
    ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 20, in require
    if not condition: raise ValueError(message)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session

======================================================================
ERROR: test_external_link_retarget_refused (__main__.ExternalPackedTests.test_external_link_retarget_refused)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/jakub/devel/escapistsrereintroduced/tests/test_packed_external_game.py", line 36, in setUp
    self.packed=v4.request(self.args,self.root)
                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 58, in request
    require(session.is_absolute() and session.parent==Path('/tmp') and session==session.resolve() and re.fullmatch(r'erri-packed-chat-[A-Za-z0-9_-]+',session.name) and not session.exists() and not session.is_symlink(),'Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session')
    ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 20, in require
    if not condition: raise ValueError(message)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session

======================================================================
ERROR: test_external_loose_source_refused (__main__.ExternalPackedTests.test_external_loose_source_refused)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/jakub/devel/escapistsrereintroduced/tests/test_packed_external_game.py", line 36, in setUp
    self.packed=v4.request(self.args,self.root)
                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 58, in request
    require(session.is_absolute() and session.parent==Path('/tmp') and session==session.resolve() and re.fullmatch(r'erri-packed-chat-[A-Za-z0-9_-]+',session.name) and not session.exists() and not session.is_symlink(),'Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session')
    ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 20, in require
    if not condition: raise ValueError(message)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session

======================================================================
ERROR: test_external_runtime_mutation_refused (__main__.ExternalPackedTests.test_external_runtime_mutation_refused)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/jakub/devel/escapistsrereintroduced/tests/test_packed_external_game.py", line 36, in setUp
    self.packed=v4.request(self.args,self.root)
                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 58, in request
    require(session.is_absolute() and session.parent==Path('/tmp') and session==session.resolve() and re.fullmatch(r'erri-packed-chat-[A-Za-z0-9_-]+',session.name) and not session.exists() and not session.is_symlink(),'Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session')
    ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 20, in require
    if not condition: raise ValueError(message)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session

======================================================================
ERROR: test_mutated_candidate_before_copy_refused (__main__.ExternalPackedTests.test_mutated_candidate_before_copy_refused)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/jakub/devel/escapistsrereintroduced/tests/test_packed_external_game.py", line 36, in setUp
    self.packed=v4.request(self.args,self.root)
                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 58, in request
    require(session.is_absolute() and session.parent==Path('/tmp') and session==session.resolve() and re.fullmatch(r'erri-packed-chat-[A-Za-z0-9_-]+',session.name) and not session.exists() and not session.is_symlink(),'Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session')
    ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 20, in require
    if not condition: raise ValueError(message)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session

======================================================================
ERROR: test_native_errors_are_not_waived (__main__.ExternalPackedTests.test_native_errors_are_not_waived)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/jakub/devel/escapistsrereintroduced/tests/test_packed_external_game.py", line 36, in setUp
    self.packed=v4.request(self.args,self.root)
                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 58, in request
    require(session.is_absolute() and session.parent==Path('/tmp') and session==session.resolve() and re.fullmatch(r'erri-packed-chat-[A-Za-z0-9_-]+',session.name) and not session.exists() and not session.is_symlink(),'Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session')
    ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 20, in require
    if not condition: raise ValueError(message)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session

======================================================================
ERROR: test_policy_and_cache_mutations_refused (__main__.ExternalPackedTests.test_policy_and_cache_mutations_refused)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/jakub/devel/escapistsrereintroduced/tests/test_packed_external_game.py", line 36, in setUp
    self.packed=v4.request(self.args,self.root)
                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 58, in request
    require(session.is_absolute() and session.parent==Path('/tmp') and session==session.resolve() and re.fullmatch(r'erri-packed-chat-[A-Za-z0-9_-]+',session.name) and not session.exists() and not session.is_symlink(),'Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session')
    ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 20, in require
    if not condition: raise ValueError(message)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session

======================================================================
ERROR: test_private_copy_exact_six_links_and_schema (__main__.ExternalPackedTests.test_private_copy_exact_six_links_and_schema)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/jakub/devel/escapistsrereintroduced/tests/test_packed_external_game.py", line 36, in setUp
    self.packed=v4.request(self.args,self.root)
                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 58, in request
    require(session.is_absolute() and session.parent==Path('/tmp') and session==session.resolve() and re.fullmatch(r'erri-packed-chat-[A-Za-z0-9_-]+',session.name) and not session.exists() and not session.is_symlink(),'Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session')
    ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 20, in require
    if not condition: raise ValueError(message)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session

======================================================================
ERROR: test_profile_contamination_and_vanilla_retarget_refused (__main__.ExternalPackedTests.test_profile_contamination_and_vanilla_retarget_refused)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/jakub/devel/escapistsrereintroduced/tests/test_packed_external_game.py", line 36, in setUp
    self.packed=v4.request(self.args,self.root)
                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 58, in request
    require(session.is_absolute() and session.parent==Path('/tmp') and session==session.resolve() and re.fullmatch(r'erri-packed-chat-[A-Za-z0-9_-]+',session.name) and not session.exists() and not session.is_symlink(),'Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session')
    ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 20, in require
    if not condition: raise ValueError(message)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session

======================================================================
ERROR: test_provenance_tamper_refused (__main__.ExternalPackedTests.test_provenance_tamper_refused)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/jakub/devel/escapistsrereintroduced/tests/test_packed_external_game.py", line 36, in setUp
    self.packed=v4.request(self.args,self.root)
                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 58, in request
    require(session.is_absolute() and session.parent==Path('/tmp') and session==session.resolve() and re.fullmatch(r'erri-packed-chat-[A-Za-z0-9_-]+',session.name) and not session.exists() and not session.is_symlink(),'Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session')
    ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 20, in require
    if not condition: raise ValueError(message)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session

======================================================================
ERROR: test_redirected_profile_refused (__main__.ExternalPackedTests.test_redirected_profile_refused)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/jakub/devel/escapistsrereintroduced/tests/test_packed_external_game.py", line 36, in setUp
    self.packed=v4.request(self.args,self.root)
                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 58, in request
    require(session.is_absolute() and session.parent==Path('/tmp') and session==session.resolve() and re.fullmatch(r'erri-packed-chat-[A-Za-z0-9_-]+',session.name) and not session.exists() and not session.is_symlink(),'Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session')
    ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 20, in require
    if not condition: raise ValueError(message)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session

======================================================================
ERROR: test_request_gates (__main__.ExternalPackedTests.test_request_gates)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/jakub/devel/escapistsrereintroduced/tests/test_packed_external_game.py", line 36, in setUp
    self.packed=v4.request(self.args,self.root)
                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 58, in request
    require(session.is_absolute() and session.parent==Path('/tmp') and session==session.resolve() and re.fullmatch(r'erri-packed-chat-[A-Za-z0-9_-]+',session.name) and not session.exists() and not session.is_symlink(),'Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session')
    ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 20, in require
    if not condition: raise ValueError(message)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session

======================================================================
ERROR: test_runtime_evidence_rejects_redirects_extra_missing_and_loose (__main__.ExternalPackedTests.test_runtime_evidence_rejects_redirects_extra_missing_and_loose)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/jakub/devel/escapistsrereintroduced/tests/test_packed_external_game.py", line 36, in setUp
    self.packed=v4.request(self.args,self.root)
                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 58, in request
    require(session.is_absolute() and session.parent==Path('/tmp') and session==session.resolve() and re.fullmatch(r'erri-packed-chat-[A-Za-z0-9_-]+',session.name) and not session.exists() and not session.is_symlink(),'Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session')
    ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 20, in require
    if not condition: raise ValueError(message)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session

======================================================================
ERROR: test_saves_addon_and_native_provenance_tamper_refused (__main__.ExternalPackedTests.test_saves_addon_and_native_provenance_tamper_refused)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/jakub/devel/escapistsrereintroduced/tests/test_packed_external_game.py", line 36, in setUp
    self.packed=v4.request(self.args,self.root)
                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 58, in request
    require(session.is_absolute() and session.parent==Path('/tmp') and session==session.resolve() and re.fullmatch(r'erri-packed-chat-[A-Za-z0-9_-]+',session.name) and not session.exists() and not session.is_symlink(),'Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session')
    ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 20, in require
    if not condition: raise ValueError(message)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session

======================================================================
ERROR: test_valid_full_nine_mount_database_proof (__main__.ExternalPackedTests.test_valid_full_nine_mount_database_proof)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/jakub/devel/escapistsrereintroduced/tests/test_packed_external_game.py", line 36, in setUp
    self.packed=v4.request(self.args,self.root)
                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 58, in request
    require(session.is_absolute() and session.parent==Path('/tmp') and session==session.resolve() and re.fullmatch(r'erri-packed-chat-[A-Za-z0-9_-]+',session.name) and not session.exists() and not session.is_symlink(),'Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session')
    ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/packed_external.py", line 20, in require
    if not condition: raise ValueError(message)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: Packed v4 requires a new canonical /tmp/erri-packed-chat-<name> session

----------------------------------------------------------------------
Ran 18 tests in 0.075s

FAILED (errors=18)
PASS: 35 prefabs have unique saved root entity IDs
PASS: 299 original script entries tracked across 18 unfinished responsibilities
PASS: 1 isolated addons, acyclic dependencies, 56 unique resources, exact vanilla/authorized external references
Traceback (most recent call last):
  File "/home/jakub/devel/escapistsrereintroduced/tools/check.py", line 79, in <module>
    if __name__=='__main__':check()
                            ~~~~~^^
  File "/home/jakub/devel/escapistsrereintroduced/tools/check.py", line 77, 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_packed_external_game.py']' returned non-zero exit status 1.
