v1.0.89: Sonnet Round 2 prompt — PostgreSQL schema, auth.py, dynamic services
This commit is contained in:
@@ -1,5 +1,44 @@
|
||||
# История разработки app-autotest
|
||||
|
||||
## v1.0.89 (27.07.2026) — Sonnet Round 1: архитектурный аудит
|
||||
|
||||
### Результаты анализа
|
||||
Sonnet провёл полный аудит кода и документации. Ключевые выводы:
|
||||
|
||||
**✅ Что хорошо:**
|
||||
- Разделение слоёв (api/operations/routes)
|
||||
- Multi-worker safety через fcntl.flock
|
||||
- Cloud-first подход с tracker-fallback
|
||||
- HTML-экранирование в JS
|
||||
|
||||
**🔴 Критические находки:**
|
||||
1. `_op_results` dict растёт бесконечно — утечка памяти, нужен TTL/очистка
|
||||
2. Cookie токена без `httponly` и `samesite`
|
||||
3. `/api/log` без проверки авторизации
|
||||
|
||||
**🟡 Дублирование:**
|
||||
1. `_client_id()` — идентичный код в main.py и api_test.py
|
||||
2. `_client()` — разное поведение в main.py и api_test.py
|
||||
3. Инлайн `<style>` дублирует `style.css`
|
||||
|
||||
**🟡 Захардкодено:**
|
||||
1. `SVC_ID=1` и список сервисов в HTML — хотя `/api/services` существует
|
||||
2. `create_client()` в main.py vs `_client()` в api_test.py — разные подходы
|
||||
|
||||
**Приоритетный план исправлений:**
|
||||
1. 🔴 `_op_results` — добавить очистку/TTL
|
||||
2. 🔴 Cookie `httponly=True, samesite='Strict'`
|
||||
3. 🟡 Вынести `_client_id()` / `get_token()` в общий модуль `api/auth.py`
|
||||
4. 🟡 Загрузка сервисов из `/api/services` вместо хардкода
|
||||
5. 🟡 Вынести JS в `/static/app.js`
|
||||
6. 🟢 SQLite история запусков
|
||||
7. 🟢 `/api/log` проверка токена
|
||||
|
||||
### Создан запрос Round 2
|
||||
Файл: `DOCS/sonnet-architecture-review-v1.0.89-r2.md` — уточняющие вопросы по реализации.
|
||||
|
||||
## v1.0.89 (27.07.2026) — документация и комментарии кода
|
||||
|
||||
## v1.0.87 (27.07.2026) — документация: ARCHITECTURE.md переписан, legacy-доки помечены
|
||||
|
||||
## v1.0.84 (27.07.2026) — лог-панель скрыта по умолчанию
|
||||
|
||||
Reference in New Issue
Block a user