[Add] New Tasks (The tasks have not been verified)
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
---
|
||||
id: TASK-0018
|
||||
title: Добавить миграции формата сохранений между версиями
|
||||
summary: Реализовать BackLog-задачу на версионирование save format и безопасные миграции world save и player save между версиями проекта.
|
||||
priority: Medium
|
||||
area: persistence
|
||||
owner: unassigned
|
||||
created: 2026-03-30
|
||||
updated: 2026-03-30
|
||||
execution_time: 1d
|
||||
depends_on:
|
||||
- TASK-0004
|
||||
- TASK-0006
|
||||
canonical_docs:
|
||||
- docs/tasks/Index.md
|
||||
related_files:
|
||||
- Assets/Scripts/WorldGen/InfiniteWorldGenerator.cs
|
||||
---
|
||||
|
||||
# TASK-0018 - Добавить миграции формата сохранений между версиями
|
||||
|
||||
## Status
|
||||
|
||||
Статус задачи ведется в `docs/tasks/Index.md` и является каноническим там.
|
||||
|
||||
Допустимые значения статуса:
|
||||
|
||||
- `BackLog`
|
||||
- `ToDo`
|
||||
- `InProgress`
|
||||
- `Review`
|
||||
- `Done`
|
||||
|
||||
## Why
|
||||
|
||||
Миграции save format важны для долгоживущего проекта, но не блокируют первый MVP. Поэтому задача вынесена в `BackLog`.
|
||||
|
||||
## Expected Outcome
|
||||
|
||||
Система сохранений имеет version field и pipeline миграций, позволяющий безопасно читать старые world/player save после изменений схемы.
|
||||
|
||||
## Current Context
|
||||
|
||||
Базовая схема сохранений и enemy bitmask должны быть определены раньше. Иначе мигрировать будет нечего.
|
||||
|
||||
## Source Of Truth
|
||||
|
||||
- `docs/tasks/items/TASK-0004.md`
|
||||
- `docs/tasks/items/TASK-0006.md`
|
||||
- future save schema docs
|
||||
|
||||
## Read First
|
||||
|
||||
- `docs/tasks/items/TASK-0004.md`
|
||||
- `docs/tasks/items/TASK-0006.md`
|
||||
|
||||
## Scope In
|
||||
|
||||
- versioning для world/player save
|
||||
- up-migration pipeline
|
||||
- базовые правила обратной совместимости чтения
|
||||
- обработка ошибок и fallback policy
|
||||
|
||||
## Scope Out
|
||||
|
||||
- cross-game import/export tools
|
||||
- поддержка всех исторических pre-release форматов без ограничений
|
||||
|
||||
## Constraints
|
||||
|
||||
- миграции не должны молча повреждать данные
|
||||
- player и world save мигрируются независимо, но по общим правилам versioning
|
||||
|
||||
## If You Find Drift
|
||||
|
||||
- если save schema меняется без version bump, это нарушение задачи
|
||||
|
||||
## Suggested Approach
|
||||
|
||||
1. Добавить version field в save schemas.
|
||||
2. Описать up-migration pipeline по шагам версий.
|
||||
3. Подготовить тестовые старые примеры сохранений для проверки.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- save format имеет версию
|
||||
- старый save может быть прочитан и мигрирован в текущую схему
|
||||
- ошибки миграции не приводят к тихой потере world/player state
|
||||
|
||||
## Verification
|
||||
|
||||
- ручной тест чтения старого save fixture после изменения схемы
|
||||
|
||||
## Risks / Open Questions
|
||||
|
||||
- нужно определить политику для несовместимых breaking changes worldgen или enemy slot layout
|
||||
|
||||
## Human Decisions Needed
|
||||
|
||||
- none currently
|
||||
|
||||
## Decision Log
|
||||
|
||||
- `2026-03-30` - задача добавлена в `BackLog` по явному запросу пользователя.
|
||||
|
||||
## Handoff Notes
|
||||
|
||||
Пока задача в `BackLog`, новые persistence changes все равно должны по возможности закладывать version field заранее.
|
||||
Reference in New Issue
Block a user