Add bounded aircraft control and verify current packaged runtime closure
This commit is contained in:
@@ -22,6 +22,16 @@ python3 tools/dedicated_native.py \
|
||||
--route header --seconds 90
|
||||
```
|
||||
|
||||
`--project core` is the default and preserves the original Core command. Select `--project chat --route header` to load `{FA804F411BDDF2C6}` through its existing declared Core/AI/Intel/Map dependencies and start `{C1E20667DCE324ED}Missions/ERR_Everon.conf`. The regular Linux executable still receives the scenario header; no diagnostic world-system override is added. The packed 13:24:56 run below demonstrates integrated Linux compilation and empty-server preparation for its exact fifteen artifacts, with inherited asset errors retained. It does not establish genuine connected-client or multiplayer behavior.
|
||||
|
||||
`--route diag-world --project chat` selects the diagnostic executable with the same Chat addon and the already-authored `{B6C516F86302C679}Worlds/ERR_Everon.ent` plus `{C50579A2EC48E8EF}Configs/Systems/MissionSystems.conf`. Both projects share that Core world; their loaded scripts/resources differ through their dependency closure. Command/result metadata record the selected route and project. All network isolation, private copies, source snapshots, runtime bounds, backend disablement and owned-process cleanup remain unchanged.
|
||||
|
||||
`--route vanilla-everon` remains strictly vanilla: no successor addon or custom system arguments are emitted. Combining it with `--project chat` is an error before any filesystem preparation or subprocess. Vanilla metadata records no successor project.
|
||||
|
||||
Successor input must be runtime-resolvable, not just an authored-source bundle. Before creating the archive or invoking any process, preflight requires `addons/core/addon.gproj` and a **nonempty regular** `addons/core/resourceDatabase.rdb`. Chat additionally requires those two files for `ai`, `intel`, `map` and `chat`. Project GUIDs must match the selected successor identities; linked addon folders/files are refused. The copied private input is checked again before namespace preflight. A private input containing only `addons/<name>/{addon.gproj,data.pak,resourceDatabase.rdb}` is permitted: loose scripts are not required. This check proves file presence and project identity only; it does not establish database validity, compatibility with the PAK/source, successful native resource resolution, or a clean build. Native logs remain decisive. Vanilla control requires no successor RDBs.
|
||||
|
||||
The [13:14:58 Chat attempt](evidence/dedicated-2026-09-19-131458-missing-databases/result.json) exposed this distinction: the engine listed all five successor GUIDs, then warned that **all five resource databases were missing**. Game compilation remained at the installed vanilla count of 5660 files; subsequent loading reported unknown `ERR_GameMode`, wrong resource GUIDs and further errors, with no mission preparation. Its authored-only input had 183 files and zero RDB entries. Before/after manifests matched, the isolated preflight succeeded, and the bounded run ended by supervisor SIGTERM; a read-only host check found its recorded supervisor and all server executable processes absent. The attempt remains failed. This does not demonstrate that Chat's dependency flags are wrong or that integrated Linux scripts compiled. The new early preflight prevents repeating that known incomplete-input launch, and the completed packaged retry below resolves that particular input failure.
|
||||
|
||||
The source, archive and runtime must be separate resolved `/tmp` paths. Archive must be new. Exit zero means bounded diagnostic collection finished, **not** that compilation or acceptance passed. Inspect raw errors and positive mission evidence. The separately enumerated `vanilla-everon` control route loads installed `Missions/21_GM_Eden.conf` without successor addon arguments; see [the resource diagnosis](dedicated-resource-audit.md). The alternative `diag-world` route remains available for a different bounded question but was not needed or executed in this result; it cannot establish ordinary-header startup by itself.
|
||||
|
||||
## Archived observations
|
||||
@@ -46,6 +56,14 @@ Earlier failed isolation checks are preserved. The sandbox-local network namespa
|
||||
|
||||
## Source-local regression scope
|
||||
|
||||
`python3 tests/test_dedicated_native.py` exercises the actual pre-exec isolation gate with substituted namespace/interface/routes and proves refusal happens before `exec`, detects source mutation and rejects linked sources, and checks header versus diagnostic-world CLI separation. It does not execute a server or simulate multiplayer. The native archive separately establishes that the observed regular server startup accepted the header and initialized the mission.
|
||||
`python3 tests/test_dedicated_native.py` exercises the actual pre-exec isolation gate with substituted namespace/interface/routes and proves refusal happens before `exec`, detects source mutation and rejects linked sources, and checks exact Core/Chat identities against authored projects/metadata, their dependency closure, regular header versus diagnostic-world CLI separation, and rejection of Chat plus vanilla before filesystem or process operations, plus missing/empty/linked/wrong-identity addon inputs before archive creation or process launch. Packed-only input is tested without loose scripts; test RDB contents are explicitly synthetic and assert presence checks only. It does not execute a server or simulate multiplayer. The native archive separately establishes that the observed regular server startup accepted the header and initialized the mission.
|
||||
|
||||
The subsequent vanilla-only control reproduced all four initial asset errors without successor addons. This attributes those specific errors to the installed vanilla content; it does not make the first run entirely error-free or close other acceptance requirements. Exact stacks and control limitations are recorded in [the resource audit](dedicated-resource-audit.md).
|
||||
|
||||
## Current packed Chat retry — 13:24:56
|
||||
|
||||
[Independent review](evidence/dedicated-2026-09-19-132456-packed-chat/review.json) records the completed 90-second retry from the [1317 package snapshot](evidence/package-2026-09-19-1317-all/review.json). The input contains exactly fifteen successor runtime files: five project descriptors, five PAKs and five resource databases, with no loose scripts. Every artifact matches the package snapshot and remains unchanged after execution.
|
||||
|
||||
The regular Linux executable loads exactly five successor and two vanilla addon identities, mounts all five PAKs and opens their five databases. Native Game compilation reports 5780 files and 11202 classes; the Chat scenario header and Core MissionSystems load, seven sites and 117 stock entities prepare, and phase 0 transitions to prison phase 1. Native statistics report zero players. No script/VM-pattern failure appears.
|
||||
|
||||
Four native console errors remain. Each also occurs in the earlier vanilla 084040 control, whose complete error set is larger; this is subset attribution, not equality of the two complete runs. No errors are suppressed or waived. The isolated supervisor ends at its 90-second deadline with SIGTERM (`exit=-15`); a read-only process check confirms it and server executable processes are absent. This is artifact-bound integrated server startup/preparation, not a clean native build, graceful shutdown, connected-client qualification or an FPS comparison.
|
||||
|
||||
Reference in New Issue
Block a user