feat(assistant): Квантик-ассистент — Ф0/Ф1 + «Спроси» (правиловый движок)

Плавающий помощник на всех страницах (через sidebar.js + inject в учебник):
контекстные подсказки по странице, проактивные напоминания из реальных данных
(домашка с дедлайном, карточки к повторению, серия под угрозой, квест дня),
поздравления (левелап/серия) и панель «Спроси Квантика» (поиск по FAQ + точка
расширения под локальную модель). Консервативно: дневной лимит, кулдауны,
«не показывать», выключатель в профиле. Лицо — pet-sprite, данные — /api/pet.

Бэкенд: миграция 062 (assistant_enabled + assistant_seen, cross-device «видел»),
GET /api/assistant/context, POST seen/dismiss/ask, PATCH settings — гейт фичи 'pet'.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-06-04 16:17:37 +03:00
parent 26c0ac0e58
commit 3f8009c59d
8 changed files with 599 additions and 0 deletions
@@ -0,0 +1,20 @@
-- ═══════════════════════════════════════════════════════════════
-- 062: Квантик-ассистент — per-user toggle + cross-device "seen" tracking
--
-- Питомец «Квантик» становится сквозным ассистентом (подсказки/напоминания).
-- assistant_enabled — личный выключатель (по умолчанию включён всем).
-- assistant_seen — сколько раз показана подсказка правила и не закрыта ли она
-- «навсегда» (dismissed). Хранится на сервере, чтобы не повторять на других
-- устройствах. Фича-гейт переиспользует существующий feature 'pet'.
-- ═══════════════════════════════════════════════════════════════
ALTER TABLE users ADD COLUMN assistant_enabled INTEGER NOT NULL DEFAULT 1;
CREATE TABLE assistant_seen (
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
rule_id TEXT NOT NULL,
count INTEGER NOT NULL DEFAULT 0,
dismissed INTEGER NOT NULL DEFAULT 0,
last_at TEXT,
PRIMARY KEY (user_id, rule_id)
);