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