Перейти к содержимому

WBML 0.6.0 — Entity Lifecycle Atlas

Финальный статус: CLOSED PASS
Canonical probe: 0.6.0-fix5
Run: d3e2a6ed626f
Final matrix: 34 PASS / 0 FAIL / 0 SKIP, P–F PASS.

Что происходит с Building, Actor, City и Kingdom после их natural high-level lifecycle path, и как ведут себя manager/owner/registry references во время cleanup?

Выбраны victim kingdom и независимый control kingdom. fix5 закрепил provenance до destructive observation:

actorManager:F:units_only_alive
cityManager:F:dict
kingdomManager:F:dict
buildingManager:F:dict
kingdomCities:F:cities
cityActors:P:units
cityBuildings:F:buildings
domains ready/classified 4 / 4
full removal verified 2
non-terminal windows 2
destroy invoked 4
manager removed 2
owner removed 2
still registered 2
reintroduced 0
same-ID new reference 0
stale read failures 0
control failures 0
cleanup failures 0
engine exceptions 0
game exceptions 0

Outcomes:

  • Building: Building.kill()VERIFIED-NONTERMINAL-WINDOW, в pinned manager+owner 30 frames.
  • Actor: Actor.dieSimpleNone()VERIFIED-LIFECYCLE, manager+owner+registry removed, 50/50 stale reads.
  • City: City.destroyCity()VERIFIED-LIFECYCLE, manager+owner+registry removed, 50/50 stale reads.
  • Kingdom: все пять remaining cities уничтожены City.destroyCity()5→0; Kingdom ещё 120 frames в KingdomManager F:dictVERIFIED-EMPTY-REGISTERED-WINDOW.

Первый package не компилировался (ModDeclare namespace и yield внутри try/catch) — это не research run.

Direct BuildingManager.destroyObject, manager removal и Kingdom.Dispose() fallback повредили runtime. Repeated NullReferenceException прошли через KingdomManager.removeObject → WorldLog.logKingdomDestroyed → Kingdom.get_name, Clan/BuildingZone/SimObject-zone paths. В corrupted session перестал работать Escape. Мир был discarded.

Lesson: generic manager destruction/removal и Dispose()не safe universal lifecycle fallbacks.

Natural entry points убрали corruption, game exceptions мониторились, но harness всё ещё требовал immediate manager removal для каждого valid lifecycle. Building/Kingdom это опровергли.

Уничтожен один city, но owner count показал 5→4. Kingdom conclusion invalid.

Membership helper мог между frames переключить collection и ложно увидеть City «removed then returned». Этот result отвергнут.

Manager/owner sources pin один раз. City вернулся к чистому VERIFIED-LIFECYCLE, remaining cities реально исчерпаны, Kingdom дал валидный bounded empty-registered window.

Machine data: /worldbox-modding-docs/data/wbml/0600-entity-lifecycle-atlas.json
Evidence: /worldbox-modding-docs/evidence/wbml-0600-result.txt

Detailed lifecycle · Quick Kingdom · Quick Building