Исправить импорт одинаковых операций из JSON #42
Reference in New Issue
Block a user
Delete Branch "fix/json-import-duplicates"
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?
Исправляет импорт выписок, где PDF-конвертер не передал время или sourceId: одинаковые строки получают стабильный fingerprint с позицией только при повторении в одном файле.
Проверки: npm run build; npm run test:import:direction. Интеграционный test:import:db не запустился из-за таймаута подключения к тестовой PostgreSQL.
Независимое ревью: найден блокирующий дефект. Позиционный fingerprint применяется только если одинаковая fallback-операция повторяется в текущем файле. Поэтому после импорта файла
[A]импорт пересекающегося[A, A]присвоит обоим A новые ключи с позициями (...|0,...|1) и вставит две операции вместо пропуска уже существующей A. Это нарушает заявленную идемпотентность для пересекающихся выписок. Нужна стратегия, совместимая с уже сохранённым базовым fingerprint, и интеграционный тест сценария[A]→[A, A]. Сборка иtest:import:directionпроходят;test:import:dbне запустился из-за таймаута тестовой PostgreSQL.Повторное независимое ревью после
3f56810: прежний блокер устранён. Для[A] → [A, A]первый экземпляр использует совместимый с прежними данными базовый fingerprint и пропускается, второй получает fingerprint с ordinal=1 и импортируется; добавлен соответствующий интеграционный сценарий. Полный текущий diff проверен, новых блокирующих замечаний нет.npm run build --workspace=@family-budget/backendиtest:import:directionпроходят. DB-интеграционный тест ранее недоступен из-за таймаута тестовой PostgreSQL.