WBML-0002 — addon state остаётся изолированным между сохранениями миров
✅ Verified 🧪 WorldBox Modding Lab WBML-0002
WBML-0002 проверял другой вопрос, чем WBML-0001:
Если два world save используют один addon и одинаковые logical data keys, появится ли addon state одного мира в другом?
Почему потребовался отдельный probe
Заголовок раздела «Почему потребовался отдельный probe»WBML-0001 подтвердил:
тот же save + полный restart процесса → values возвращаютсяНо это не доказывало isolation между разными мирами. Плохая реализация могла выглядеть persistent, одновременно протекая через static/runtime state.
Поэтому WBML-0002 использовал два разных save и две разные current-run signatures.
Исправление harness перед валидным прогоном
Заголовок раздела «Исправление harness перед валидным прогоном»Первая версия 0.0.2 имела методологический баг: провал Step C не запрещал Step D напечатать финальный success.
Этот прогон был отклонён.
0.0.2-fix1 добавил:
строгий state machine A → B → C → Dуникальный run tokenstep flagsfinal gate с A=PASS B=PASS C=PASS D=PASSfailure lockoutProbe становится доказательством только тогда, когда можно доверять его собственной логике verdict.
Проверенная среда
Заголовок раздела «Проверенная среда»WorldBox: 0.51.2build: 719git: build-719@5decNeoModLoader: 1.2.0.1PoliticalWorldAPI: 1.14.0Lab: 0.0.2-fix1Current-run token:
af599151c6daПоследовательность
Заголовок раздела «Последовательность»World A→ записать signature A→ save→ загрузить World B→ подтвердить отсутствие signature A→ записать signature B→ save→ загрузить World A→ подтвердить отсутствие B + возврат values A→ загрузить World B→ подтвердить отсутствие A + возврат values BProbe проверял:
markerintUnicode stringboolfloataddon-private kingdom tagshared kingdom tagРезультаты шагов
Заголовок раздела «Результаты шагов»A — запись World A
Заголовок раздела «A — запись World A»A-IMMEDIATE RESULT: 6/6 DATA PASS | marker=PASS => PASSSTEP A RESULT: PASSB — чистый World B и запись B
Заголовок раздела «B — чистый World B и запись B»До записи B probe проверил 21 kingdom:
WORLD B CLEAN CHECK: PASSno current-run WORLD A signature found across 21 kingdomsЗатем:
B-IMMEDIATE RESULT: 6/6 DATA PASS | marker=PASS => PASSSTEP B RESULT: PASSC — возврат в World A
Заголовок раздела «C — возврат в World A»RETURN A: current-run WORLD B signature absent => PASSA-RETURN RESULT: 6/6 DATA PASS | marker=PASS => PASSSTEP C RESULT: PASSD — возврат в World B
Заголовок раздела «D — возврат в World B»RETURN B: current-run WORLD A signature absent => PASSB-RETURN RESULT: 6/6 DATA PASS | marker=PASS => PASSSTEP D RESULT: PASSИсправленный final gate потребовал успех каждого шага:
FINAL GATE: A=PASS B=PASS C=PASS D=PASSFINAL RESULT: WORLD ISOLATION VERIFIED FOR THIS RUN.Подтверждённый claim
Заголовок раздела «Подтверждённый claim»В проверенной среде kingdom state PoliticalWorldAPI, использованный probe, оставался изолирован между двумя протестированными world save в рамках одного процесса WorldBox.
Current-run signature A не появилась в B, signature B не появилась в A, а собственные values каждого мира возвращались после повторной загрузки соответствующего save.
Граница доказательства
Заголовок раздела «Граница доказательства»Этот result сам по себе не доказывает:
- isolation party-private data;
- точный физический save file/database для каждого value;
- isolation всех возможных типов PoliticalWorldAPI;
- будущие версии WorldBox/NML/Political World;
- isolation в последовательности с полным restart процесса.
Full-process persistence отдельно подтверждён в WBML-0001.
Методологический урок
Заголовок раздела «Методологический урок»Сломанный harness тоже полезен как research material, если ложный verdict отклоняется, а не попадает в Verified.
Правило теперь такое:
final result = conjunction of every required stepа не:
last step passed → whole experiment passedЭто правило относится уже ко всей методологии Lab.