Skip to content

JobGhost 0.6.0 — подготовка и память интервью

Pre-release
Pre-release

Choose a tag to compare

@coolmorimer coolmorimer released this 11 Sep 14:48
· 4 commits to main since this 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 или ИИ никогда не ошибается.