- POST /scan: сервис забирает новые прайсы из папки (настройка watch_folder),
журнал ingested_file исключает повторную обработку; вызывается кроном.
- GET /price-changes: услуги, где цена изменилась не меньше порога между прайсами
(детектор аномалий из ТЗ §4.4, вынесенный в интерфейс).
- GET /export.xlsx: единый сравнительный каталог услуг и цен (openpyxl).
- GET/POST /settings: папка авто-загрузки.
- админка: карточки авто-загрузки и изменений цен + кнопка экспорта.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- grid: колонки «Код …» и «№» исключены из кандидатов на колонку названий
(ключ «услуг» ловил «Код услуги») — клиника с 5181 строкой больше не даёт 0.
- vision: авто-добор PDF при пустом или подозрительно низком выходе строк/страницу,
замена недобора полным распознаванием, ретраи на лимиты, лимит размера документа.
- презентация статуса проекта на /day2; маршрут /day2 в Caddy.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>