JobGhost 0.6.0 — подготовка и память интервью
Pre-release
Pre-release
Приёмка контекста и подготовки — 2026-09-11
Реализовано
- Локальные материалы (резюме/проекты/опыт/вакансия), выбор источников, удаление и редактирование через удаление/повторное добавление.
- Qdrant RAM + реальная multilingual FastEmbed модель, фрагменты и источники в ответе.
- Общий Context Builder для API и browser-канала; API-сессии с отдельной ролью и bounded history.
- История только по явному opt-in, просмотр и удаление; звук и изображения не сохраняются модулем памяти.
- AI Coach с оценкой и рекомендациями; формат и диапазоны валидируются.
- Чтение ссылки HH без отклика, план 30 вопросов/ответов и чеклист, экспорт Markdown.
- Для структурированных задач OpenRouter отбирает бесплатные модели с поддержкой схемы; нет скрытого перехода на платную модель. Один этап ограничен 120 секундами.
Выполненные проверки
- Backend: 88 тестов; Ruff без ошибок. Имеются 267 deprecation warnings прежних datetime/Starlette APIs.
- Frontend: 30 тестов, ESLint и production build.
- Extension: 41 тест; Desktop: 14 unit-тестов. Всего 173 автоматических теста.
- Реальный RU/EN-поиск: обе формулировки выбрали PostgreSQL-фрагмент вместо React; cosine score 0.643 / 0.683.
- Реальные OpenAI API: Coach прошёл (примерно 6 секунд), последовательный вопрос сохранил тему PostgreSQL; план 30/30 за 48.9 секунды. Повторный прогон со строгой схемой: Coach 5.68 секунды, план 30/30 и 48 пунктов чеклиста за 25.73 секунды на синтетической вакансии.
- Реальные OpenRouter: Coach и последовательные вопросы прошли; полный план не прошёл из-за нестабильного формата/сетевого таймаута. После обнаружения проблемы добавлены строгая схема, фильтр совместимости моделей, общий timeout и непустое сообщение сетевой ошибки. Полный успешный план OpenRouter не заявляется.
- Playwright: добавление материала через реальные поля, нормальная и узкая ширина 640px, снимки просмотрены. Ошибки соединения в консоли соответствовали намеренным перезапускам тестового backend, не JS-исключениям интерфейса.
- Финальный упакованный backend (
build-bba77a6c70084b4eb7f70ed30e80486b) запущен отдельно на 127.0.0.1:8766 и успешно загрузил multilingual FastEmbed:/api/preparation/loadвернулready: true.
Все внешние запросы содержали синтетический текст. Рабочая БД, резюме и очередь HH пользователя не использовались. Установленное приложение не обновлялось автоматически.
Сборка установщика
Inno Setup завершился успешно: releases/JobGhost-Setup-0.6.0.exe, 2 066 606 874 байта. SHA-256: b8ead4da3703862eafe49a6400d06ac875600f2dab3652e14047a027c340274f. Упакованный server.exe совпадает по SHA-256 с проверенным frozen backend. Новая версия пока не опубликована в GitHub Releases и не установлена поверх рабочей версии.
Production TODO / ограничения
P0
- Подтвердить реальные HH-отклики с точным резюме и письмом на явно согласованной цели. Старый неопределённый отклик остаётся NEEDS_REVIEW; не повторять. Этот блокер не относится к новой подготовке по ссылке, которая только читает страницу.
- Приёмка установщика на чистой Windows без dev-зависимостей и обновление поверх текущей пользовательской версии с резервной копией БД.
- Полный план на доступной бесплатной модели OpenRouter; стабильность и скорость пула не гарантируются.
P1
- Продолжение плана с последнего успешного блока вместо повторной генерации всего плана после сетевой ошибки.
- Калибровка RU/EN retrieval на большем наборе резюме и вопросов, оценка фактической точности и prompt injection.
- Проверка реального микрофона/loopback и Content Protection в конкретных Zoom/Teams/OBS — ранее открытые задачи, в этой доработке аудио и native capture не изменялись.
- Подпись установщика и повторяемая сборка с lock-файлами зависимостей.
- Автоматическая миграция схемы вместо startup create_all при будущих изменениях существующих таблиц.
P2
- Управление длительностью хранения и шифрование сохранённой истории на диске.
- Редактирование материала на месте, прогресс плана по блокам, сохранение черновика плана по явному согласию.
- Снижение deprecation warnings и нагрузочные проверки большого числа материалов.
Готовность нового кода не означает, что всё приложение стало production-ready или ИИ никогда не ошибается.