## Why Решение владельца 09.10.2026: запись входящего файла в горячую папку ИС Сканирование — «как в старом АРМ», где она работала в контуре: `smbclient.open_file('/Input/<имя>', 'wb')` прямо во входящий каталог (`reference-old-arm/api/src/core/clients.py:111`). Нынешняя схема (временный `Tmp/.<имя>.part` + rename без замены, OQ-79, OQ-137) требует от учётной записи шары каталога `Tmp`, прав на его создание и на переименование и в контуре не проверялась. Там же владелец решил: срок ожидания ответа OCR — 20 минут. Issue — RSHB/arm-scan-gateway#26. Вне среза `09-delivery-plan.md` (доработка Среза 3a по эксплуатации). ## What Changes - `put` (режимы `smb` и `local`): файл `.` пишется сразу во входящий каталог, открытием на запись с усечением (`wb`); существующий файл **перезаписывается** (как в старом АРМ). Временного файла, каталога `Tmp` и переименования больше нет. - Настройка шлюза `SCAN_TMP_DIR` удаляется; параметр `tmp_dir` у `SmbHotFolder` удаляется. У `LocalHotFolder` он остаётся только для эмулятора (сборка набора ответа, переменная эмулятора `SCAN_TMP_DIR` не меняется). - Очистка (`SCAN_CLEANUP=true`) больше не удаляет `Tmp/...part`. - `SCAN_TIMEOUT_SECONDS` по умолчанию 300 → 1200 (20 мин) — в паре с `reply_deadline` OCR 20 мин в arm-core (RSHB/arm-core#87). - README, `CLAUDE.md`, `api/.env.example`, тесты — под новую семантику. ## Non-goals - Протокол ответа (`Output//*.json`, стабилизация набора, OQ-78) не меняется. - Эмулятор ИС не меняется: он по-прежнему пропускает `*.part`/`*.tmp`/dot-файлы и собирает ответ через свой `Tmp`. - Аутентификация SMB не меняется: `OPENBAO__SMB__SMB_LOGIN`/`SMB_PASSWORD` уже передаются в сессию и в каждый вызов. - Таймаут вызовов `smbclient` (соединение ~60 с по умолчанию библиотеки) не трогаем. - Таблицы DBML не затрагиваются. ## Capabilities ### New Capabilities ### Modified Capabilities - `image-recognition-gateway`: запись входящего файла без временного файла и с перезаписью; очистка без `Tmp`. ## Impact - ASSUMPTION(OQ-79): ИС Сканирование не берёт файл, пока шлюз держит его открытым на запись (`smbclient.open_file` по умолчанию открывает монопольно), — так работал старый АРМ. Если подтвердится обратное, вернуть запись через временный файл. - Учётной записи шары больше не нужны права на `Tmp` и на переименование; нужна запись в `Input`. - Остатки `Tmp/.*.part` от прежних версий шлюз больше не трогает — убрать вручную.