Andrey Epifancev 98f00c0faa docs: change retry-recognition-and-edit-osv-header, README и CLAUDE.md — DBML v5.21 (ревью #161)
Дельта data-model переименована на v5.21, пакет — только файлы в ERROR,
tasks — ссылки на docs PR #157 и задачи ревью; config.yaml — DBML v5.21.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 17:13:41 +04:00

61 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Proposal
## Why
AURORA-1442: после TIMEOUT/NO_ACK аналитик не может повторить обработку уже загруженного файла;
ошибочный период или счёт ОСВ нельзя уточнить через API. DBML v5.20 и решение OQ-161 от 21.10.2026 уже задают
хранение исходных значений рядом с исправленными и правила снятия подтверждения.
## What Changes
- Завершение остатка Среза 2c (§9.4–9.5 правил), с интеграцией с версиями Среза 4: ручной повтор одного файла
и подходящих файлов пакета версии. Новое recognition_job с новым id и attempt + 1, прежнее остаётся в истории.
- Повтор только tabular после timeout/TIMEOUT или dlq/NO_ACK, до max_attempts; OCR и другие причины исключены.
- PATCH /api/v1/documents/{id}/osv-header по §9.5 п.12: период и счёт меняются на месте, исходные четыре поля
сохраняются в document.original_values; копий document и правок file_ordinal нет.
- DBML v5.20: четыре колонки document, одна добавочная миграция; сброс подтверждения и снятие привязок,
ручное переподтверждение, аудит RECOGNIZED_DATA_EDIT. Строки osv_entry и первичка в S3 неизменны.
- DBML v5.21: отдельная миграция enum audit_action с FILE_REPROCESS по §9.5 п.13.
- Документировать новые API, ошибки и ограничения; временный CONSOLIDATION_PERIOD_FROM_VERSION сохраняется.
## Capabilities
### New Capabilities
Нет: расширяются существующие возможности.
### Modified Capabilities
- `primary-files`: API ручной повторной обработки одного файла и пакета версии, права и ограничения.
- `recognition-job-exchange`: новая попытка через существующий outbox, сохранение истории и защита от старых ответов.
- `documents-api`: уточнение шапки ОСВ, сохранение исходных значений, сброс подтверждения и привязок.
- `data-model`: переход к DBML v5.21 через отдельные миграции v5.20 (document) и v5.21 (audit_action).
- `audit-trail`: RECOGNIZED_DATA_EDIT для шапки ОСВ и согласованный FILE_REPROCESS для каждого ручного повтора файла.
## Impact
Реализация — arm-core; документация — arm-ka-docs (`../docs`), отдельный согласованный docs change/PR для уточнения
§9.4–9.5 (п.12–13) и frontend-api-guide. Схема для ОСВ утверждена в v5.20, аудит повтора — в v5.21;
целевой источник истины — model/data-model-v5.21.dbml и entities-v5.21.md;
упоминания v5.17 в конфигурации OpenSpec устарели и не отменяют явно запрошенные пользователем v5.20 и v5.21.
Таблицы: document (четыре новых поля), recognition_job, stored_file, consolidation_document, audit_event;
consolidation_version/member читаются для статусов и периметра. Новых таблиц не требуется.
Схема и аудит реализуются по опубликованным версиям: v5.20 — четыре поля document,
v5.21 — FILE_REPROCESS в audit_action. Дополнять старую v5.20 новым enum не требуется.
Отдельная миграция v5.21 добавляет только значение enum; откат запрещён при наличии событий FILE_REPROCESS.
Согласованный пакет версии: файлы с stored_file.consolidation_id консолидации выбранной версии и ЮЛ из её
периметра, подходящие по текущему заданию и лимиту попыток. Версии одной консолидации могут видеть те же файлы.
Код: api/src/{models,schemas,domain,services,repositories,api/endpoints/files,api/dependencies/files.py},
api/alembic/versions, api/tests, Makefile, README. Контракты парсеров и фронтенд не меняются.
Основание: §9.4, §9.5 п.6–7,12–13; правила привязок §3; OQ-161 закрыт вариантом 2, OQ-55 относится к автоматическому обмену.
## Non-goals
- UI повторной обработки и правки ОСВ (отдельные задачи фронта, в том числе AURORA-1679).
- Повтор OCR, error результата сервиса, ошибок маппинга, автоматический retry с увеличением attempt.
- Копирование документов, перенос ручных правок на повторное распознавание, изменение строк ОСВ при смене счёта шапки.
- Отмена временного флага периода, изменение §7 ББ/ОФР, новые механизмы доставки NATS.