2.2 KiB
2.2 KiB
Требования к данным / схеме БД — ORCH-036
Work Item: ORCH-036 Stage: architecture Автор: architect
Решение: миграция БД НЕ требуется
Схема SQLite (events, tasks, agent_runs, jobs) не меняется. Обоснование:
- Вердикт деплоя — в
14-deploy-log.md(frontmatterdeploy_status:), как сейчас._parse_deploy_statusне трогаем (AC-10). - 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-обёртка).
- Бюджет finalize-defer считается из существующей таблицы
jobs(task_content LIKE '%deploy-finalize%'), как_merge_defer_countдля merge-gate — restart-safe, без новых полей. - Finalizer-job использует существующую структуру
jobs(agent, repo, task_content, task_id, available_at). Reserved-agentdeploy-finalizer— это значение в колонкеagent, схема не меняется.
Почему файлы, а не БД
- Sentinel должен быть виден И хосту (пишет
result), И контейнеру (читает finalizer); файл на общем mount это обеспечивает, SQLite-запись из host-обёртки — нет. - Зеркалит уже принятый паттерн merge-lease (ORCH-43) — единообразие, restart-safe, crash-реклейм по возрасту файла.
Если разработчик при реализации сочтёт необходимым поле статуса approve в БД — это требует обновления данного ADR с обоснованием; по умолчанию — без миграции (согласовано с TRZ §4).