from pathlib import Path import hashlib,json R=Path('/home/jakub/devel/escapistsrereintroduced');E=R/'docs/evidence/recovery-launcher-2026-10-02';assert (E/'review.json').is_file() p=R/'docs/current-status.md';s=p.read_text();head,body=s.split('\n',1) new='''**2 October 2026 — recovery warnings and finite launcher resupply:** unconscious spectators now receive the already-replicated recovery, reconnection or thirty-second defeat warning. Hints refresh when that information changes and clear on awakening. HQ can also arrange supply for a reported empty, supported reloadable launcher using original compatible truck stock, after rifle and mounted demand. Disposable launchers remain excluded. [Implementation and review](evidence/recovery-launcher-2026-10-02/review.json). All **283 registered regression programs pass**. The hidden/muted [observer fixture](evidence/native-2026-10-02-recovery-warning/report.json) passes **29 assertions**, including accepted recovery text and clearing on wake; the [final-source normal escape](evidence/native-2026-10-02-recovery-launcher-normal/report.json) passes **63 assertions and one round**. Both have zero script/runtime failures and **thirteen retained engine errors**, with confirmed cleanup. The observer run predates the four AI changes but uses exactly the final observer/probe code; the normal route binds all 407 final authored files. Actual launcher transfer/reloading, full human play, multiplayer and comparative FPS remain unverified; no release qualification is claimed. The existing 416-file playtest package predates these changes and is unchanged. Original missions and inherited work are preserved; nothing was committed or published. A separate motorized-interception proposal remains design-only. ''' p.write_text(head+'\n\n'+new+body.lstrip('\n')) changes={ 'docs/spectator-guidance.md':'''\n## Recovery warnings while unconscious (2 October 2026) The ordinary phase guide intentionally yields to spectator presentation. The observer now appends the existing replicated `RecoveryStatus`, so an unconscious player receives the same treatment/natural-recovery, possible returning rescuer, or uninterrupted thirty-second medical-defeat warning that conscious players can read in objective details. Medical policy and timing are unchanged. The accepted status joins reason and survivor availability in hint deduplication. A missing hint manager or rejected delivery does not consume the message; an unchanged accepted message does not repeat. Waking, end-of-round cleanup and old-controller ownership checks preserve the existing camera behavior and clear only the owning controller's cache. An actual-method regression fails on the earlier missing-warning behavior and passes with the fix, including status changes, delivery retries and round/controller replacement. The [native camera fixture](evidence/native-2026-10-02-recovery-warning/report.json) accepts the real ongoing-treatment status and clears it on awakening while retaining the earlier camera/recovery checks: 29 assertions, zero script failures and thirteen retained engine errors. This proves the accepted hint path, not full-resolution readability or remote multiplayer presentation. [Review and exact source scope](evidence/recovery-launcher-2026-10-02/review.json). ''', 'docs/infantry-resupply.md':'''\n## Supported carried launcher supply (2 October 2026) HQ now considers supported empty launchers after existing rifle and mounted supply requests and before mine top-ups. Demand requires a fresh, complete delivered launcher snapshot for the entire known living formation, a positive count of reloadable magazine-well muzzles, and zero reported launcher rounds/chambers. The new `LauncherMuzzles` field survives detached status copying and validation. It does not assume an expended rocket/grenade leaves an empty magazine entity behind. Before reserving the original infantry group and ammunition truck, the coordinator requires a compatible, unspent identity in its existing finite stock. The bounded scan covers all 96 stock entries and 32 original members; rifle-only prefixes cannot hide compatible cargo. Native muzzle disposal flags and scripted `CanBeReloaded` restrictions both refuse one-shot weapons. Exact supported wells, carried-weapon ownership and reciprocal loaded-item slots are checked. Installed RPG7/GP25/M203 round prefabs are projectile entities with magazine components; their entity type alone does not exclude them. This adds no stock, replacement actors or virtual ammunition. The existing radio hold, reported rendezvous, physical access, shared spent ledger and native inventory proof govern transfer. Launcher trips do not return empty projectile rounds. Unknown delayed operations retain the original claims; a terminal negative callback releases them only after exact unchanged original source slot/storage, managers and exclusive custody are proved. Submitted stock remains spent even after refusal: no retry or refund. A failed move therefore cannot silently duplicate cargo or permanently pin forces when its unchanged source custody is confirmed. Eleven focused programs pass independently, with failing mutation controls for copied muzzle presence, stock-prefix reachability and terminal refusal settlement. All 283 registered programs pass. The [final-source normal route](evidence/native-2026-10-02-recovery-launcher-normal/report.json) compiles the implementation and completes 63 assertions with zero script failures; thirteen retained engine errors preserve strict failure. Actual launcher walking delivery, subsequent AI reloading/firing, remote inventory behavior and performance remain unqualified. [Source, installed-API review and limits](evidence/recovery-launcher-2026-10-02/review.json). The existing packaged handoff predates this feature. ''', 'docs/next-gameplay-increments.md':'''\n## Latest source changes and next bounded AI feature (2 October 2026) [Recovery warnings and supported launcher supply](evidence/recovery-launcher-2026-10-02/review.json) are now implemented and regression-tested; the latest packaged handoff above predates both. Physical launcher delivery/reloading still needs native qualification. The next identified owned-AI gap is [motorized road interception from delivered travel history](evidence/recovery-launcher-2026-10-02/next-motorized-interception-proposal.json). Current remembered headings can place infantry ahead of travel, but convoy orders only hold/resume authored routes. A first implementation should assign at most one available original armed escort, deliver its order by radio, hold a suitable road and resume the preserved route. It must integrate with the existing convoy waypoint owner and exclude combat/logistics/depot reservations in both directions. This is a design proposal, not implemented behavior or a native driving result. Existing authorization covers later hidden/muted checks; no new permission gate is intended by the archived draft's wording. ''' } for name,text in changes.items(): p=R/name;s=p.read_text();assert text not in s;p.write_text(s+text) files=['docs/current-status.md',*changes] (E/'documentation-after.json').write_text(json.dumps({n:hashlib.sha256((R/n).read_bytes()).hexdigest() for n in files},indent=2)+'\n') print('Updated four current gameplay/status guides.')