Files
T
jakub 6a667d8deb Capture current mission, AI, map and administration development
Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
2026-10-13 22:52:53 +02:00

25 lines
4.5 KiB
Markdown

# Separate gameplay-fixes package preparation
This directory contains a read-only preflight, an emitter, command list and parent-executed assembly/verification helpers. No native process, source edit or target write was performed to prepare them.
The parent-owned source snapshot is `.build/playtest-source-2026-10-02-gameplay-fixes` (420 authored files at freeze). Qualification binds that entire snapshot, not later live edits. The new handoff is `.build/playtest-2026-10-02-gameplay-fixes`. Every previous package remains untouched. Source counts, PAK payload counts and regression-program counts are computed from manifests/results; the helpers do not carry the prior 409/415/417 or 285 counts.
The already-generated `/tmp/erri-playtest-source-20261002-gameplay-fixes.zip` is reused read-only. Preflight and assembly verify unique exact ZIP membership and all bytes against its manifest and the frozen addon source. Do not regenerate it or point the bundle at live source.
## Parent execution order
Use `commands.txt` (exact argv plus output redirection) or `commands.json`. They specify the same `/tmp/erri-headless-compat` owned prefix used by the prior run and the audited installed RHS/WCS/BMP/Parachute closure. The emitter does not establish that the prefix is idle: retain the emitted read-only process inspections and all native runner concurrency/cleanup refusals.
1. Wait for the parent's fresh full frozen suite and same-source normal-route archive. `preflight.py` requires a complete passing suite and normal-route script pass with sealed source, console, external inputs and cleanup. It intentionally refuses the older 415-file reused suite or incomplete quota-limited checks.
2. Inspect native processes, then run one hidden/muted bounded `native_package.py --project core --timeout 300` against the frozen tools. Fresh package session: `/tmp/erri-package-20261002-gameplay-fixes-final`. The canonical direct `/tmp` session rule is mandatory; no alternate TMPDIR or symlink workaround.
3. Retain the native exit and strict package report even if runtime files exist. `assemble.py` requires natural native exit, confirmed cleanup, unchanged input/external/profile source, exact three-file runtime inventory, exact PAK payload hashes and matching normal-route/ZIP source. It creates only the new handoff/evidence directories, refusing existing destinations. Matching bytes may support an explicitly unqualified development candidate; they do not erase the strict packaging failure.
4. Inspect processes again, then run ordinary schema-4 startup: `headless_game.py --project chat --packed-addons NEW/packages --packed-session /tmp/erri-packed-chat-20261002-gameplay-fixes-final --timeout 180 --failure-grace 120` plus exact prefix/external args. No Workbench smoke, synthetic interception, input, camera or flight flags. The runner owns headless Gamescope and `-noSound`/silent-sink audio. Failure grace retains logs within the fixed timeout; it does not waive failures.
5. `verify.py` independently recomputes ordinary packed evidence from the sealed raw console, verifies launch UUID/hash/timestamps and all copied runtime bytes, requires normal mission/local prisoner and zero script errors, and retains the strict failed result and known 17 installed-resource errors. If the error set differs, stop and review it; do not change expected counts to obtain a pass. All source/suite checks run before evidence-directory creation. Schema-4 explicit raw archival is retained because the generic archive helper supports older schemas.
6. Parent final review/doc update may then label only this source-bound candidate. No complete human escape, physical interception/rearming, multiplayer/JIP, comparative FPS or release qualification follows from ordinary packaged startup. Nothing is published or committed.
## Inputs and artifact provenance
`config.json` holds all exact destinations. `template-provenance.json` hashes the prior reviewed assembly/verification templates and emitted files. `prep-review.json` records syntax validation, removal of old handoff identifiers, and verification-before-write ordering. The sole intentionally historical path in verification is the prior installed-error-set comparison (`packed-2026-10-02-owner-fixes`); no old source/suite/build path remains.
`assemble.py` and `verify.py` write new successor handoff/evidence paths only when explicitly run by the parent. They were generated but not executed here. `preflight.py` is read-only. The emitter itself writes only this scratch directory; regenerating it after changing config inputs does not launch commands.