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

28 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Задание: Правдивость данных и готовность к релизу 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 в безголовом окружении и релизного гейта.