feat: LLM-анализ — индикатор прогресса, кнопка рескана, статистика на дашборде
- Добавлен статус {"status": "analyzing"} в finding.report на время LLM-анализа
- Кнопка рескана (Retry) под LLM-отчётом в ручном режиме
- LLM-статистика на дашборде: analysed / pending
- Защита от двойного анализа через per-finding asyncio.Lock
- _llm_spinner.html — фрагмент спиннера для состояния analysing
- Удалён мёртвый код: constants, i18n, CSS, queries
- Фиксы: _env_int, индексы БД, UnicodeDecodeError, time.mktime и др.
- Шаблоны: shared includes (_status_badge, _pagination)
- AGENTS.md: workflow (lint, test, commit, rebuild)
This commit is contained in:
@@ -17,14 +17,12 @@ _STRINGS = {
|
||||
"heading_packages": {"en": "Packages", "ru": "Пакеты"},
|
||||
"heading_latest_flagged": {"en": "Latest Flagged", "ru": "Последние обнаружения"},
|
||||
"heading_latest_scans": {"en": "Latest Scans", "ru": "Последние сканирования"},
|
||||
"heading_findings": {"en": "Findings", "ru": "Находки"},
|
||||
"heading_findings_count": {"en": "Findings ({})", "ru": "Находки ({})"},
|
||||
"heading_scans_count": {"en": "Scans ({})", "ru": "Сканирований ({})"},
|
||||
"col_id": {"en": "ID", "ru": "ID"},
|
||||
"col_package": {"en": "Package", "ru": "Пакет"},
|
||||
"col_version": {"en": "Version", "ru": "Версия"},
|
||||
"col_repo": {"en": "Repo", "ru": "Репозиторий"},
|
||||
"col_repository": {"en": "Repository", "ru": "Репозиторий"},
|
||||
"col_status": {"en": "Status", "ru": "Статус"},
|
||||
"col_findings": {"en": "Findings", "ru": "Находки"},
|
||||
"col_time": {"en": "Time", "ru": "Время"},
|
||||
@@ -82,6 +80,11 @@ _STRINGS = {
|
||||
"ru": "⚠ Анализ сгенерирован AI — может содержать неточности. "
|
||||
"Всегда проверяйте находки перед принятием мер.",
|
||||
},
|
||||
"llm_analyzing": {"en": "Analyzing...", "ru": "Анализирую..."},
|
||||
"llm_retry": {"en": "Retry", "ru": "Повторить"},
|
||||
"llm_analyzed": {"en": "LLM analyzed", "ru": "LLM проанализ."},
|
||||
"llm_pending": {"en": "Pending", "ru": "Ожидают"},
|
||||
"not_found": {"en": "Not found", "ru": "Не найдено"},
|
||||
"breadcrumb_home": {"en": "Home", "ru": "Главная"},
|
||||
"breadcrumb_dashboard": {"en": "Dashboard", "ru": "Панель"},
|
||||
"breadcrumb_scans": {"en": "Scans", "ru": "Сканирования"},
|
||||
|
||||
Reference in New Issue
Block a user