Files
EscapistsReintroduced/docs/native-companion-packaging.md

7.8 KiB
Raw Permalink Blame History

Five-addon native packaging snapshot

All five successor addons produced native package files in the bounded 11:17:31–11:18:40, 19 September 2026 packaging sequence. Each invocation reported Packaging done. Result: 1, Packaging project successful and native child exit zero, then emitted the same UI resource-leak errors reproduced by the empty-addon control. Every runner result remains validation-failed; no package build or release is qualified. --continue-on-failure deliberately allowed the diagnostic sequence to inspect every addon; it did not change any failure into success.

The complete evidence is preserved in package-2026-09-19-111731-all, with a separate source/content/error comparison. The original temporary session is /tmp/erri-native-package-all-20260919-1115. No engine was launched while preparing this archival review.

Addon Native start PAK bytes Verified PAK entries Runner result
Core 11:17:31 194,081 107 validation-failed
AI 11:17:41 65,724 26 validation-failed
Intel 11:18:00 1,141 1 validation-failed
Map 11:18:20 5,751 5 validation-failed
Chat 11:18:40 14,469 8 validation-failed

Core, AI, Intel, Map and Chat were invoked in dependency order, each against its private copied project, with -wbSilent and backend disabled. Each recorded native child exit and owned display/prefix cleanup completed. All outputs use their existing successor identities and depend on installed vanilla; no Workshop publication or identity replacement occurred.

Captured input and exact PAK comparison

The 179-entry authored source maps in authored-before.json, repository-after.json, every project-specific launch.json and every authored-after.json are identical. Every archived authored source file was rehashed against that map. This establishes equality at the captured boundaries, not the impossibility of an unobserved transient mutation and restoration.

tools/pak_inventory.py inspected all five PAKs read-only, validating the observed FORM/PAC1 structure, indexed data ranges, bounded decompression and actual decompressed content hashes. Across 147 entries, each addon's complete PAK path/hash mapping exactly equals the corresponding captured authored files after excluding .meta files and the separate addon.gproj. No expected payload file is missing, no additional payload file appears and no content hash differs. Each separate output project descriptor also matches its captured authored source. The remaining 32 authored files are the five project descriptors and 27 .meta files; each project's omissions are listed explicitly in review.json.

Full per-entry details are retained in review/core-pak-inventory.json, ai-pak-inventory.json, intel-pak-inventory.json, map-pak-inventory.json and chat-pak-inventory.json. The inspector implementation is archived alongside them and its SHA-256 is recorded. This proves structural/content identity for these exact bytes; it does not establish compiled platform-resource semantics, resource database correctness in the engine, gameplay or compatibility of the companion package closure.

PAK SHA-256 values:

  • Core: 68b0f6888bee3fc97585fd663e265e12da934369ce835454995ef92a31eeb065
  • AI: c37670234ac68d0ea71265365a29a5b0727685adc8db5423b132c96138ba8b98
  • Intel: 362b381f7ec0825613ca985d124c988072bcbf52af1c98b27d2bcaf9f755f404
  • Map: be5b2966e695a6b144b57dec520e8d418eb93994d87c105c0f7d8e0034a3be67
  • Chat: 19989c1f41a5c53696b46b99f021070ed71b12168b64bd164b6b595456b3b506

Shutdown-error comparison

Each of the five raw consoles has 25 error lines: one resource-leak header and 24 distinct resource entries. Removing only the leading timestamp and adjacent whitespace produces exactly the same sorted lines and counts as the empty-addon control. The normalized set's SHA-256 is 0cb40e173c7a02f72123cfc568016556f05fe80457f06cabf6423cc6ce309c60 in every case. Severity, resource-path case, trailing counts and error text are preserved for comparison; archived logs remain byte-exact.

Each project report's 51 aggregate error entries represent the 25 lines repeated in console/error logs plus the runner's Nonempty native error.log check. They are not 51 distinct leaked resources. The empty control establishes that these same failures do not require successor scripts/resources; it does not identify whether Workbench, Proton, the hidden display or their interaction causes them. No line is filtered, downgraded or waived.

Archived payload and remaining qualification

The archive retains all 179 captured authored files, before/after inventories, all five launch/native-exit/environment records and reports, raw console/script/error logs, log-local resource databases, and all fifteen runtime files under packages/{core,ai,intel,map,chat}. Those .gproj, .pak and .rdb bytes total 292,361 bytes. Compressed build caches, profile UI state/profile-local databases, source-adjacent generated databases and the installed-vanilla discovery symlinks are excluded and documented in the review. No installed vanilla package is copied.

archive-sha256.json hashes every retained evidence file other than itself. All 259 indexed files were re-read and verified after copying; the archive contains 260 files including this hash inventory. The runtime payload hashes also agree with each original project report. This archive does not substitute today's checkout for the launch source.

The earlier packed Core 110729 pass consumed a different Core PAK, whose hash begins 90b9be4f; it cannot qualify this new Core PAK or the five-addon closure. A separate ordinary packed-only Chat startup with all five exact artifacts plus vanilla is still required. Full ordinary escape, manual input, multiplayer, FPS and clean packaging/release qualification remain separate. All reports retain their original failed/unqualified flags.

When the parent copies this archive into the actual repository, Git's generated-file rules can ignore .pak files and profile subtrees. Explicitly force-add this exact successor-owned archive directory if committing it; do not broaden ignore rules or add installed vanilla assets. This review neither stages nor commits files and makes no acceptance-ledger change.

Current-source refresh — 13:17

The new package snapshot and independent review retain the same unqualified build verdict: all five native exits are zero, while every runner reports validation-failed with exactly the same 25 UI error lines as the empty-addon control. No build or release flag was promoted.

All 183 captured authored files are unchanged across the five launches and final repository snapshot. Every one of the 151 PAK entries matches its captured authored path and decompressed hash (Core 107, AI 29, Intel 1, Map 6, Chat 8). All fifteen runtime artifact hashes match their native reports. The archive preserves 257 files plus its checksum manifest, excluding installed-vanilla symlinks, generated source databases and compressed build caches.

Those exact artifacts subsequently pass ordinary packed Chat startup 131942: real canonical prisoner, expected header, fifteen-second readiness interval, zero captured errors and owned cleanup. The same artifacts also compile and prepare the empty Linux server 132456, with four vanilla asset errors retained. Successful consumption does not repair or qualify packaging, full gameplay or multiplayer.