Skip to content

sprint 021: save schema v1 + world reproducibility + autosave hardening#32

Merged
vladmesh merged 25 commits into
mainfrom
sprint/021-save-schema
Jul 10, 2026
Merged

sprint 021: save schema v1 + world reproducibility + autosave hardening#32
vladmesh merged 25 commits into
mainfrom
sprint/021-save-schema

Conversation

@vladmesh

Copy link
Copy Markdown
Owner

Первый эпик цепочки simulation-core (docs/brainstorms/simulation-core.md): lossless-сейв и воспроизводимый мир.

Phase 1 — RNG threading & determinism

  • DND_WORLD_SEED: слоевые сиды выводятся детерминированно в game_service; слои владеют своими random.Random (погода, политика, roam/retreat/деплит логова, encounter rolls)
  • В layers/ не осталось процесс-глобального random; пин: один сид → идентичный World.save() (test_world_seed.py)

Phase 2 — Unified Pydantic save schema

  • SaveGame(schema_version=1) в storage/save_schema.py; типизированные state-модели слоёв и entity-сейвов (extra="forbid", discriminated union, построение напрямую из объектов)
  • Состояние всех RNG в сейве — загрузка продолжает те же последовательности; combat sides сериализуются (закрыт lossless-пробел); legacy-форматы отклоняются с внятной ошибкой

Phase 3 — Autosave hardening

  • Периодический автосейв в lifespan (DND_AUTOSAVE_SECONDS, cancel до финального сейва), ошибки автосейва логируются вместо suppress
  • Фикс: evict-таймер после явного DELETE больше не падает и не воскрешает сессию из stale-автосейва
  • Интеграционный стек чистит saves/

Gates

  • unit 2429 passed, integration 160 passed (3 прогона на закрытии)
  • E2E: phase 2 полный (6/7, save→load→continue зелёный), close smoke (продуктовые сценарии зелёные)
  • Audit 2026-07-10: 16 находок, 0 архитектурных нарушений, 0 vision-дрифта; триаж в BACKLOG (save-round-concurrency — top-кандидат следующего спринта)

Закрыты backlog: save-schema (must), layer-rng-threading, test-gap-world-rng-determinism, periodic-autosave-scheduler, silent-failure-autosave.

Produced autonomously (координатор + Codex-воркеры по фазам).

vladmesh added 25 commits July 10, 2026 17:29
…ndom, determinism pinned (unit 2398, integration 160)
…tive, e2e 6/7 (unit 2418, integration 160); findings to backlog
@vladmesh
vladmesh enabled auto-merge July 10, 2026 16:54
@vladmesh
vladmesh merged commit 884dc7b into main Jul 10, 2026
4 checks passed
@vladmesh
vladmesh deleted the sprint/021-save-schema branch July 10, 2026 16:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant