Автозамена: предупреждение о выпавших документах (#58) #60
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/58-replace-warning"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #58
Что сделано
supersede_previous(api/src/services/result_mapping.py) принимает необязательныйwarnings; для каждого заменённого файла находит документы, ключа которых (document_type,osv_account_code,period_year,period_quarter, тот же_document_key, что у автозамены) нет среди документов нового файла (документ без года/квартала тоже считается выпавшим), и добавляет одно предупреждение: имя и версия заменённого файла, выпавшие документы «тип счёт период (СТАТУС)» (в т. ч.CONFIRMED), версии консолидации «в работе», с которых сняты привязки именно этих документов, в виде «ГК» год квартал, версия N.map_fileчерез_supersede_and_warnдописывает предупреждение вmetrics.mapping_warningsзадания нового файла; оттуда оно уходит в карточку файла иJobBrief.mapping_warningsбез изменений в схемах. Возвращаемоеmap_fileзначение теперь включает и его.SUPERSEDED,version_no, снятие привязок,FILE_REPLACE(unbound_version_idsпрежний: объединение версий выпавших и остальных документов файла), статусы документов нового файла.api/tests/test_result_mapping.py): книга «ББ + ОФР», ББCONFIRMEDи привязан к версии, затем отдельный файл только с ОФР того же периода (черезprocess_once); автозамена без выпавших документов не даёт предупреждения;supersede_previous(warnings=…)с несколькими выпавшими документами и версией «не в работе». До правки новые тесты падали.openspec/specs/primary-files/spec.md(требование и сценарий) и README (раздел «Удаление и замена»). Гайд фронта (docs/dev/frontend-api-guide.md) не трогал по заданию: его обновит основная сессия после merge.Проверки
make check: ruff + mypy чисто, 1217 passed, 44 skipped.make check-full(сDBML=/COMPOSE_FILE=абсолютными путями иARM_KA_FIXTURES, см. O-1): exit 0; unit 1223 passed, 38 skipped;test-integration820 passed, 1 skipped; dbml-check, check-infra, e2e (skip без профиляservices), docker-build, web-check без ошибок.Rulings I made
document_statusдоку��ентов нового файла (OQ-05 «нет предупреждений маппинга»): оно про прежние файлы, статусы к этому моменту посчитаны. Если ошибка: ОФР нового файла ошибочно уходил бы вNEEDS_CHECK.on_documents_superseded, затем остальные документы файла;unbound_version_idsв аудите — объединение, как раньше). Версии не «в работе» привязок не теряют и в предупреждении не фигурируют. Если ошибка: в предупреждении были бы версии, не связанные с выпавшими документами.mapping_warnings(по-русски, без заглавной буквы).populate_existing, чтобы статусCONFIRMEDбыл свежим после блокировки файла.Находки
make check-fullв worktree.wt/<id>/arm-coreне находит../../docsи compose (Makefile рассчитан на.wt/<срез>/с соседнимdocs);ARM_KA_FIXTURESне выставленextendпо списку, на который уже ссылалось значениеmetrics, не менял JSONB (SQLAlchemy сравнил равные значения). Поймал тестdocs/dev/frontend-api-guide.mdдолжен показать предупреждение (пункт задачи #58)🤖 Generated with Claude Code
https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2