feat(assistant): авто-переиндексация системы при смене флагов + пометка «без описания»

- updateFeatures вызывает _autoReindexSystem(): при тоггле любого модуля снимок
  знаний о системе обновляется сам (только если уже индексировали — не создаёт
  KB на пустом месте). Кнопку жать больше не нужно после смены флагов.
- getAssistant отдаёт systemUndoc — модули с фича-флагом, но без записи в
  каталоге; админ-карточка показывает «Без описания: …» (пассивная подсказка,
  без пушей), чтобы при желании дополнить «Описание системы».

Проверено: авто-реиндекс (не создаёт пустой / обновляет существующий) + undoc 3/3.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-06-24 21:34:43 +03:00
parent 36eb0b980b
commit 1915026bff
2 changed files with 22 additions and 1 deletions
+4 -1
View File
@@ -148,7 +148,10 @@
'<div class="perm-label"><i data-lucide="boxes" style="width:14px;height:14px;vertical-align:-2px;margin-right:6px"></i>Знания о системе для Квантика</div>' +
'<div class="perm-desc">Снимок включённых модулей + каталог разделов + ваше описание индексируются, чтобы Квантик знал актуальное состояние платформы и не предлагал отключённое. Запускайте после смены фича-флагов.</div>' +
'<textarea id="asst-sysdoc" rows="5" placeholder="Опишите модули/правила платформы своими словами (необязательно) — это тоже попадёт в знания Квантика…" style="' + IN + ';resize:vertical">' + esc(cfg.systemDoc || '') + '</textarea>' +
'<div style="display:flex;gap:8px;flex-wrap:wrap;align-items:center"><button id="asst-index-sys" class="asst-ib primary">Сохранить и проиндексировать систему</button><span id="asst-sysidx-st" style="font-size:.78rem;color:#8a94a6">' + esc(_skInfo) + '</span></div>';
'<div style="display:flex;gap:8px;flex-wrap:wrap;align-items:center"><button id="asst-index-sys" class="asst-ib primary">Сохранить и проиндексировать систему</button><span id="asst-sysidx-st" style="font-size:.78rem;color:#8a94a6">' + esc(_skInfo) + '</span></div>' +
((cfg.systemUndoc && cfg.systemUndoc.length)
? '<div style="font-size:.76rem;color:#b45309;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);border-radius:8px;padding:6px 10px">Без описания (только статус вкл/выкл): <b>' + cfg.systemUndoc.map(esc).join(', ') + '</b>. Опишите их в поле выше, чтобы Квантик отвечал по ним подробно.</div>'
: '');
host.appendChild(skb);
if (window.lucide) lucide.createIcons();