hermes-hub/agents/inbox/2026-08-21-data-truthfulness-and-release-readiness.md
Hermes Team 42eddb3627 fix(quota, oauth): enforce data truthfulness, honest quota sources, and fail-closed OAuth
- Removed fabricated used_percent numbers and fake *_api source tags from quota_collector.py
- Marked quota snapshot sources as baseline/estimated and added visual estimation indicators in accounts_view.py
- Eliminated silent fallback on fake user_code/device_code in codex_oauth.py and grok_oauth.py
- Gated mock OAuth sessions strictly behind HERMES_HUB_DEV_MODE=1 with visible UI warnings
- Documented Google, OpenAI, xAI, and Claude OAuth clients in docs/OAUTH_CLIENT.md
- Relocated unused gui_server.py and gui_cockpit.html to legacy/
- Added test_data_truthfulness_and_oauth_security.py covering fail-closed and source truthfulness invariants
- Verified 98 passed tests (100%) and 7/7 release gate checks
2026-08-20 22:11:57 +07:00

2.6 KiB
Raw Permalink Blame History

Задание: Правдивость данных и готовность к релизу v0.1.1

Дата поступления

2026-08-21

Контекст

По итогам ревью раунда 5 (0d9005f…0c511cd, +6970 строк) выявлены два блокирующих дефекта одного класса: пользователю показываются правдоподобные, но выдуманные данные.

Область задачи (Scope)

  1. P0-1. Сборщик квот не должен выдавать выдуманные числа за данные провайдера

    • В quota_collector.py исключить захардкоженные used_percent под видом *_api.
    • Если данные получены не из прямого API провайдера — источник маркировать как estimated или baseline, а при отсутствии данных — no_data.
    • В UI accounts_view.py показывать честный статус (значок/подпись «оценка» или «нет данных»), не выдавая гипотезы за измерение.
  2. P0-2. Убрать тихий фолбэк на поддельный код авторизации

    • В codex_oauth.py, grok_oauth.py, claude_oauth.py, profile_oauth.py при сбое запроса к серверу авторизации немедленно возвращать ошибку.
    • Генерация локального user_code допустима только при HERMES_HUB_DEV_MODE=1 с явной пометкой тестовой сессии в UI.
  3. P1-3. Документация OAuth-клиентов (docs/OAUTH_CLIENT.md)

    • Добавить разделы по OpenAI Codex, xAI Grok и Anthropic Claude с анализом угроз по RFC 8252/7636.
  4. P1-4. Судьба gui_server.py и gui_cockpit.html

    • Вынести неиспользуемый gui_server.py и gui_cockpit.html в legacy/ (или удалить) и актуализировать зависимости в pyproject.toml.
  5. Тесты и приёмка

    • Разработать тесты, падающие на 0c511cd, подтверждающие отсутствие выдуманных API-квот и тихих фейковых OAuth-сессий.
    • Обеспечить прохождение полного набора pytest в безголовом окружении и релизного гейта.