Add CHANGELOG.md
This commit is contained in:
@@ -0,0 +1,92 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
Все заметные изменения проекта `selectel-ml-tui`.
|
||||||
|
|
||||||
|
## [1.0.3] — 2026-08-19
|
||||||
|
|
||||||
|
Полноценный вывод данных из Gateway API ИИ-роутера (IAM).
|
||||||
|
|
||||||
|
### Добавлено
|
||||||
|
- Парсинг реальной схемы Gateway API:
|
||||||
|
- `/overview` → потребление за месяц (сумма в нанорублях, запросы, токены
|
||||||
|
всего, input/output/cache read/cache write), бюджет роутера (лимит/расход/
|
||||||
|
остаток);
|
||||||
|
- `/metrics` → метрики за 24 ч (доступность `success_rate_pct`, TTFT и
|
||||||
|
задержка в секундах→мс, запросы, токены) и `by_model` — по моделям
|
||||||
|
(запросы/доступность/TTFT);
|
||||||
|
- `/keys` → лимиты и расход по API-ключам (имя, префикс, статус, лимит,
|
||||||
|
потрачено, остаток).
|
||||||
|
- Новый экран **«API-ключи и лимиты»** (клавиша `k`) и панель бюджета на
|
||||||
|
главном экране.
|
||||||
|
- Модели: добавлены поля `requests`, `tokens_total`, `avg_latency_ms`; новые
|
||||||
|
модели `ApiKeyUsage`, `BudgetInfo`.
|
||||||
|
|
||||||
|
### Исправлено
|
||||||
|
- «Потрачено за месяц» берётся из Gateway Overview (совпадает с вкладкой
|
||||||
|
«Обзор»), биллинг — фолбэк при отсутствии IAM.
|
||||||
|
- `SettingsScreen` не перезаписывает конфиг, если интервал не менялся.
|
||||||
|
|
||||||
|
## [1.0.2] — 2026-08-19
|
||||||
|
|
||||||
|
Исправление отображения данных и прав на файлы конфигурации.
|
||||||
|
|
||||||
|
### Исправлено
|
||||||
|
- **Сумма за месяц**: раньше `end` обрезался до начала текущего дня — сегодняшние
|
||||||
|
расходы не входили в сумму. Теперь `end` = текущий момент (naive datetime),
|
||||||
|
сумма включает текущий день.
|
||||||
|
- **История**: в историю записывалась месячная сумма как «точка дня». Теперь
|
||||||
|
сохраняется дневная стоимость (отдельно показывается «Сегодня»).
|
||||||
|
- **Токены/модели**: при отсутствии IAM (нет сервисного пользователя) поля
|
||||||
|
Input/Output/Cache больше не показывают вводящие в заблуждение нули — выводится
|
||||||
|
пояснение «Токены и модели — только через IAM».
|
||||||
|
|
||||||
|
### Примечание
|
||||||
|
- Gateway API (токены по моделям, каталог моделей) требует IAM-токен сервисного
|
||||||
|
пользователя. В аккаунте нет сервисных пользователей — необходимо создать его
|
||||||
|
в панели (my.selectel.ru → IAM → Сервисные пользователи) и настроить через
|
||||||
|
`selectel-ml-tui config`.
|
||||||
|
- `credentials.json`/`config.toml` должны принадлежать текущему пользователю
|
||||||
|
(права 0600). Запуск от `root`/`sudo` создаёт файлы с владельцем root, из-за
|
||||||
|
чего обычный запуск падает с `PermissionError` — исправляется `chown`.
|
||||||
|
|
||||||
|
## [1.0.1] — 2026-08-19
|
||||||
|
|
||||||
|
Исправление: крах при запуске, если в `config.toml` (или env
|
||||||
|
`SELCTEL_REFRESH_INTERVAL`) указан `refresh_interval < 10`.
|
||||||
|
|
||||||
|
### Исправлено
|
||||||
|
- `load_settings()` больше не бросает `ValidationError` на некорректных
|
||||||
|
значениях: `refresh_interval` приводится к допустимому диапазону
|
||||||
|
(минимум 10 секунд), мусорные значения — к умолчанию 60.
|
||||||
|
- Мастер `selectel-ml-tui config` отклоняет интервал < 10 (повторный запрос).
|
||||||
|
|
||||||
|
## [1.0.0] — 2026-08-19
|
||||||
|
|
||||||
|
Релиз, готовый к использованию.
|
||||||
|
|
||||||
|
### Добавлено
|
||||||
|
- TUI-дашборд (Textual): потребление за месяц, метрики за 24 часа, таблица
|
||||||
|
«По моделям», статус `online`/`offline` в заголовке, автообновление.
|
||||||
|
- Экраны: **История** (бар-график + таблица по дням, периоды 7/30/90),
|
||||||
|
**Детали модели** (Enter в таблице моделей), **Настройки** (интервал
|
||||||
|
обновления, «Очистить кэш», пути, маскированный токен).
|
||||||
|
- API-клиенты: Billing Statistics (стоимость), Gateway API (токены/метрики),
|
||||||
|
IAM (получение и кэширование токена с автообновлением).
|
||||||
|
- Модели данных (pydantic) с валидацией и форматированием чисел.
|
||||||
|
- Локальный SQLite-кэш: снимки потребления/метрик/моделей, история по дням
|
||||||
|
(upsert), очистка старых записей (TTL 180 дней), экспорт CSV/JSON.
|
||||||
|
- CLI: `config` (интерактивный мастер), `run`, `export`, `doctor`
|
||||||
|
(диагностика окружения); `python -m selectel_ml_tui`.
|
||||||
|
- Адаптация под Ubuntu и macOS: скрипты установки, `scripts/run.sh`,
|
||||||
|
диагностика `TERM`/`LANG`/UTF-8, CI (GitHub Actions: ubuntu + macos).
|
||||||
|
- Упаковка: однофайловый бинарник через PyInstaller (`make build`).
|
||||||
|
|
||||||
|
### Качество
|
||||||
|
- 89 тестов, покрытие 91% (порог 80%).
|
||||||
|
- ruff (flake8/isort/format), mypy strict — без ошибок.
|
||||||
|
- Подсказка при первом запуске без токена, FAQ и troubleshooting в README.
|
||||||
|
|
||||||
|
[1.0.3]: https://github.com/selectel-ml-tui/selectel-ml-tui/releases/tag/v1.0.3
|
||||||
|
[1.0.2]: https://github.com/selectel-ml-tui/selectel-ml-tui/releases/tag/v1.0.2
|
||||||
|
[1.0.1]: https://github.com/selectel-ml-tui/selectel-ml-tui/releases/tag/v1.0.1
|
||||||
|
[1.0.0]: https://github.com/selectel-ml-tui/selectel-ml-tui/releases/tag/v1.0.0
|
||||||
Reference in New Issue
Block a user