Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
4.5 KiB
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.
- Wait for the parent's fresh full frozen suite and same-source normal-route archive.
preflight.pyrequires 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. - Inspect native processes, then run one hidden/muted bounded
native_package.py --project core --timeout 300against the frozen tools. Fresh package session:/tmp/erri-package-20261002-gameplay-fixes-final. The canonical direct/tmpsession rule is mandatory; no alternate TMPDIR or symlink workaround. - Retain the native exit and strict package report even if runtime files exist.
assemble.pyrequires 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. - 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 120plus 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. verify.pyindependently 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.- 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.