Отказ по списку доступа отлаживался вслепую: сервис не сообщал, каким видит
адрес обратившегося. Теперь /health отдаёт your_ip, your_ip_allowed и версию,
не раскрывая при этом сам список.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Обновление перемещало папку app целиком, а код выполняется именно из неё.
Windows не даёт двигать такую папку: перемещение не прошло, откат тоже,
и app исчезла - сервис переставал запускаться.
Теперь папка остаётся на месте: новая версия проверяется во временном
каталоге ДО установки, затем файлы перезаписываются по одному с копией
для отката. Устаревшие модули удаляются, __pycache__ не трогается.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Gitea на приватном репозитории отвечает 404 вместо 403, и сообщение
"404 Not Found" не подсказывало, что дело в токене. Теперь при 401/403/404
объясняется причина и куда вписать токен.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Сервис при запуске проверяет последний релиз и обновляет только папку app -
19 КБ вместо 113 МБ всего пакета. Контрольная сумма, откат при неудачной
проверке, пользовательские файлы не трогаются.
Попутно: ffmpeg ищется лениво, а не в конструкторе Pipeline - его отсутствие
роняло импорт вместо внятного сообщения. Схема API закрыта по умолчанию.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Локальный FastAPI-сервис поверх GigaAM v3 и sherpa-onnx: приём аудио,
очередь задач, разделение по говорящим, постобработка терминов.
Доставка на Windows - ZIP со встроенным Python, без установки чего-либо.
Обновление кода при запуске тянется из релизов Gitea: меняется только
папка app, десятки килобайт вместо всего пакета.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>