Capture current mission, AI, map and administration development
Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
This commit is contained in:
@@ -72,3 +72,32 @@ or change audio. These counts are local checks, not native assertions.
|
||||
[091641](evidence/native-2026-09-19-091641/report.json) passes 76 assertions with zero captured errors. Both US and USSR fixture kits execute native initialization and resource subscription, scoped cleanup, duplicate cleanup, callback detachment and delayed-initialization cancellation. Each reports `nativeDamageSources=0`; this run therefore does not dynamically verify damage-listener removal. The same global catalog remains alive and unchanged. Compilation and the targeted injected condition pass at that source; spontaneous catalog expiry and complete companion restart remain separate.
|
||||
|
||||
The [092512 full companion regression](evidence/native-2026-09-19-092512/report.json) then completes two escape/restart rounds, 96 assertions and zero errors, with teardown diagnostics disabled. The earlier failing archive is retained. This is a clean subsequent pair, not evidence of deliberate catalog expiry during those resets or a guarantee against intermittent recurrence.
|
||||
|
||||
## General item-station lifecycle repair — 7 October 2026
|
||||
|
||||
The RKS #2 log `logs_2026-10-07_13-53-05` also contains catalog errors while
|
||||
stock medic equipment is constructed in `PreloadWorld`, before the main game
|
||||
mode exists, and during scenario cleanup after POSTGAME. The older two-kit,
|
||||
off-world, already-initialized fix does not cover those cases.
|
||||
|
||||
`ERR_ItemStationLifecycle.c` records successful native initialization and its
|
||||
actual damage, range-manager and resource-event subscriptions for item stations
|
||||
in Escape-enabled contexts. On deletion it cancels pending initialization and
|
||||
removes those subscriptions exactly once. It does not call a startup validator
|
||||
that requires the dying catalog. A never-initialized item has no subscriptions
|
||||
to undo. Saved manager/resource references are weak and refer to the original
|
||||
owner, so cleanup cannot unregister from the next round's manager.
|
||||
|
||||
Transient off-world equipment can skip initialization when no catalog exists.
|
||||
Main-world startup still calls the complete native validator and still reports
|
||||
missing catalogs or other invalid configuration. The game editor and scenarios
|
||||
that explicitly opt out of takeover retain the original lifecycle. The older
|
||||
stock-kit fallback remains compatible with this broader bookkeeping.
|
||||
|
||||
The [before/after native fixture](evidence/server-lifecycle-fixes-2026-10-07/report.json)
|
||||
uses real stock medical kits in the main Nogova world. Before the change, immediate
|
||||
deletion plus a kit-local expired-catalog injection produced four catalog errors
|
||||
and failed both damage/resource cleanup assertions. With the change, seven native
|
||||
checks pass with zero script errors, including duplicate deletion and unchanged
|
||||
global catalog identity. This proves the exercised cleanup paths; it does not
|
||||
prove every installed mod or reproduce all live-server round-end interleavings.
|
||||
|
||||
Reference in New Issue
Block a user