architect(ET): auto-commit from architect run_id=190
All checks were successful
CI / test (push) Successful in 18s
All checks were successful
CI / test (push) Successful in 18s
This commit is contained in:
34
docs/work-items/ORCH-036/08-data-requirements.md
Normal file
34
docs/work-items/ORCH-036/08-data-requirements.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# Требования к данным / схеме БД — ORCH-036
|
||||
|
||||
Work Item: ORCH-036
|
||||
Stage: architecture
|
||||
Автор: architect
|
||||
|
||||
## Решение: миграция БД НЕ требуется
|
||||
|
||||
Схема SQLite (`events`, `tasks`, `agent_runs`, `jobs`) не меняется. Обоснование:
|
||||
|
||||
1. **Вердикт деплоя** — в `14-deploy-log.md` (frontmatter `deploy_status:`), как
|
||||
сейчас. `_parse_deploy_status` не трогаем (AC-10).
|
||||
2. **Approve / initiated / result-состояние** — restart-safe через **sentinel-файлы**
|
||||
под `<repos_dir>/.deploy-state-<repo>/<work_item_id>/` (паттерн merge-lease
|
||||
`<repos_dir>/.merge-lease-<repo>.json`), а не через новую таблицу/колонку:
|
||||
- `approve-requested` — Фаза A;
|
||||
- `initiated` — Фаза B (idempotency-guard);
|
||||
- `result` — exit-code хука (пишет host-обёртка).
|
||||
3. **Бюджет finalize-defer** считается из существующей таблицы `jobs`
|
||||
(`task_content LIKE '%deploy-finalize%'`), как `_merge_defer_count` для merge-gate
|
||||
— restart-safe, без новых полей.
|
||||
4. **Finalizer-job** использует существующую структуру `jobs` (agent, repo,
|
||||
task_content, task_id, available_at). Reserved-agent `deploy-finalizer` — это
|
||||
значение в колонке `agent`, схема не меняется.
|
||||
|
||||
## Почему файлы, а не БД
|
||||
- Sentinel должен быть виден И хосту (пишет `result`), И контейнеру (читает finalizer);
|
||||
файл на общем mount это обеспечивает, SQLite-запись из host-обёртки — нет.
|
||||
- Зеркалит уже принятый паттерн merge-lease (ORCH-43) — единообразие, restart-safe,
|
||||
crash-реклейм по возрасту файла.
|
||||
|
||||
Если разработчик при реализации сочтёт необходимым поле статуса approve в БД —
|
||||
это требует обновления данного ADR с обоснованием; по умолчанию — без миграции
|
||||
(согласовано с TRZ §4).
|
||||
Reference in New Issue
Block a user