Files
Learn_System/.claude/memory/MEMORY.md
T
Maxim Dolgolyov 8a7091ddec chore(memory): снимок файлов памяти Claude в репозиторий для переноса
Копия пользовательской автопамяти (29 фактов + индекс MEMORY.md) в
.claude/memory/, чтобы переносить между машинами через git.
README.md — как восстановить в пользовательскую папку на другой машине.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 08:32:16 +03:00

79 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# LearnSpace Project Memory
- [project_status.md](project_status.md) — Полный список реализованных фич: все страницы, API, таблицы БД, инструменты доски, стек, деплой (апрель 2026)
- [project_classroom_module.md](project_classroom_module.md) — Оригинальный план classroom-модуля (4 фазы, все реализованы)
- [project_whiteboard_roadmap.md](project_whiteboard_roadmap.md) — Roadmap улучшений доски (7 фаз, утверждён 2026-04-11)
- [project_pet_assistant.md](project_pet_assistant.md) — «Квантик-ассистент» РЕАЛИЗОВАН (commit 3f8009c): Ф0/Ф1/«Спроси-FAQ», правиловый движок, reuse 'pet', assistant_seen, на учебнике тоже. НЕ сделано: Ф2 тур, реальная LLM, activeLesson
- [feedback_no_emoji.md](feedback_no_emoji.md) — Запрет эмоджи в коде, только inline SVG `.ic`
- [feedback_sims_admin_sync.md](feedback_sims_admin_sync.md) — При добавлении симуляции в lab.html → сразу обновить ADMIN_SIMS в admin.html
- [project_ct_seeded.md](project_ct_seeded.md) — Список перенесённых сборников ЦТ/ЦЭ (физика 2024 + матем 2024); правило: 1 вариант из сборника, нет повторов
- [project_hardening_2026.md](project_hardening_2026.md) — 8-task security/architecture hardening plan (started 2026-05-06), executed by Sonnet sessions one task at a time
- [reference_textbook_sources.md](reference_textbook_sources.md) — Расположение PDF учебников Беларуси (физика/алгебра/геометрия 7-11) в `G:\Dev\Тесты\Методички\тест_6 класс\Книги\` + структура §-канвы Исаченковой
- [project_stereo3d_improvements.md](project_stereo3d_improvements.md) — Стереометрия 3D: апгрейд 5 фаз (май 2026) + deep-link фигур `openSim('stereo:<figure>')` / `?stereofig=`
- [reference_sqlite_node.md](reference_sqlite_node.md) — БД на встроенном node:sqlite (НЕ better-sqlite3); живая БД backend/data/learnspace.db; Bash ломает кириллический путь
- [reference_textbook_latex_escaping.md](reference_textbook_latex_escaping.md) — Баг формул = ЛИШНИЕ слэши (over-escape), правило чётности, фикс fix_overescaped_latex.js; БД чиста
- [project_content_access.md](project_content_access.md) — Доступ к учебникам/экзаменам/симуляциям/курсам по классам и ученикам (allowlist, ученик > класс), миграции 040/051/052, /api/access; ревью+переработка done, Фаза 3 (HTML-гейт) отложена
- [project_permissions_rework.md](project_permissions_rework.md) — Ролевые права (registry/role_permissions/user_permissions): Phase A+B+C ВСЕ в master (2026-06-03): зависимости, история, группы, массово по классу, пресеты, временные права, произвольные кастомные роли (конструктор). План plans/permissions-rework/
- [project_optics_constructor.md](project_optics_constructor.md) — Конструктор оптических систем (BenchSim) в режиме «Конструктор» оптической скамьи: общий 2D-трассировщик, элементы/призма/дисперсия
- [project_lab_content_engine.md](project_lab_content_engine.md) — Рефактор лаборатории «симуляции как данные» (LabRegistry); фазы 0-3 done, ветка feature/lab-content-engine
- [project_chemistry7_textbook.md](project_chemistry7_textbook.md) — Новый учебник «Химия 7» (4 гл, 26§): план + статус (Phase 0 done), переиспользует движок Химии 8
- [project_concurrent_sessions_branch.md](project_concurrent_sessions_branch.md) — Несколько сессий коммитят в одну ветку → fetch перед работой, не force-push вслепую, add поимённо
- [feedback_verify_edits_applied.md](feedback_verify_edits_applied.md) — После каждого Edit проверять grep -c маркера; не пушить пакет без поштучной верификации (дважды коммитил сломанное)
- [project_dashboard_rebuild.md](project_dashboard_rebuild.md) — План пересборки dashboard.html по скрину (hero: чтение+лаба+питомец, синхрон питомца); редизайн утерян (был некоммичен)
- [project_phys7_status.md](project_phys7_status.md) — Физика 7: контент ВСЕХ 5 глав готов (рендер из phys7_chN_widgets.js); Шпаргалки наполнены (47 шт, commit c6835cf); учебник функционально полный
- [reference_vex_search.md](reference_vex_search.md) — vex установлен+проиндексирован (semantic); когда vex (semantic/pattern/similar/duplicates), когда ast-index (символы/usages); гочи модели/HEAD
- [project_math6_textbook.md](project_math6_textbook.md) — Учебник «Математика 6» (Герасимов 2022): движок math6_engine.js + Math6 svg (numberLine/plane/pie/venn). ВСЕ 6 глав + курсовой финал ГОТОВЫ на master (тесты 17/17, +полировка 20/20). Осталось только: выдать доступ ученикам (/api/access)
- [project_math5_textbook.md](project_math5_textbook.md) — Учебник «Математика 5» (Герасимов 2020) переиспользует движок math6. НАПОЛНЕН ЦЕЛИКОМ: 3 главы, 44 § (Гл.1 Opus-эталон, Гл.23 Sonnet), хаб+курсовой финал, тест 12/12, всё на master (последний 5a2a1be). Осталось только: выдать доступ ученикам (/api/access). План: plans/textbooks-5/
- [reference_exam_textbook_links.md](reference_exam_textbook_links.md) — Привязка задач экзамена math9 к § учебников: per-task колонки в exam_tasks + классификатор tag-exam-textbook.js (таксономия gen-exam-textbook-sections.js) + починенный deep-link (textbook-deeplink.js). 98% размечено. Готчи: geometry-8 поглавная нумерация, math5/6 движковые
- [reference_svg_drawer.md](reference_svg_drawer.md) — Векторная SVG-рисовалка: виджет js/svg-draw.js (SvgDraw.mount) + санитайзер js/svg-sanitize.js (UMD, клиент+сервер) + блок урока svg-draw (редактор/превью/lesson.html). Переиспользуемо для флешкарт/фигур генератора
- [reference_quick_lesson.md](reference_quick_lesson.md) — «Быстрый урок»: одиночный урок без курса через скрытый личный курс-контейнер (courses.is_personal, POST /api/lessons/quick, кнопка в theory.html). Каталог скрывает контейнеры от всех кроме владельца
- [reference_student_materials.md](reference_student_materials.md) — «Мои материалы»: ученик сохраняет к себе доску(PNG)/заметку из онлайн-урока (миграция 060 student_materials, /api/materials, Whiteboard.exportBlob, страница /my-materials, кнопки в my-lessons.html). Копия переживает удаление сессии
## Stack
- Node.js/Express backend, SQLite (встроенный **node:sqlite** `DatabaseSync`, НЕ better-sqlite3 — см. [[reference_sqlite_node]])
- Frontend: vanilla JS, `window.LS.*` namespace via /js/api.js
- No bundler — plain HTML/CSS/JS served by Express static
- Репо: https://git.dolgolyov-family.by/maxim.dolgolyov/Learn_System (master)
## Key Paths
- Backend: `backend/src/`
- Frontend pages: `frontend/*.html`
- Shared CSS: `frontend/css/ls.css` (design system)
- JS API: `js/api.js``window.LS.*`
- Whiteboard engine: `frontend/js/whiteboard.js` (~3200 строк)
- Server entry: `backend/src/server.js`
## UI Architecture
- Sidebar nav: `.app-layout > .sidebar + .sb-content`
- login.html: split layout `.login-layout > .login-left + .login-right`
- Page transitions: CSS `@view-transition { navigation: auto }`
- Mobile: `.mob-bar` (56px fixed top), sidebar drawer на ≤768px, `/js/mobile.js`
- Notifications dropdown: `left` ставится через `r.right + 8` динамически
## Whiteboard (classroom.html)
- Chalkboard theme: зелёный фон (#2d5a2d), деревянная рамка, chalk-grain
- Tools: pencil (Catmull-Rom), highlighter, laser, eraser, 11 shapes, connector, sticky, text, image, formula (KaTeX), table, coordinate system, number line, compass
- Select tool: move/resize/rotate всех объектов, lasso multi-select, snap guides, copy/paste
- Zoom/Pan: wheel zoom, Space+drag, minimap overlay (bottom-right, при zoom>1)
- Ruler/Protractor: rotation + resize handles, floating props panel
- SSE real-time sync + HTTP polling (since_seq параметр)
- Two-layer canvas: static (_ctx) + dynamic (_dynCtx)
- Multi-page + thumbnail sidebar
## User Roles
- admin: full access
- teacher: classes + board + library + classroom
- student: dashboard + board (только если в классе)
## Icons — КРИТИЧНО
- **⛔ ЗАПРЕТ на эмоджи** — никогда не использовать эмоджи в коде.
- Только inline SVG с классом `.ic` (определён в ls.css).
- На некоторых страницах также Lucide CDN `lucide@0.469.0`.
## Workflow Preferences — КРИТИЧНО
- **⛔ АБСОЛЮТНЫЙ ЗАПРЕТ на Grep tool** — пользователь запретил КАТЕГОРИЧЕСКИ.
- Поиск по коду: `ast-index` (дефолт: символы/usages/callers/outline) + `vex` (semantic/pattern/similar/duplicates) — см. [[reference_vex_search]] / `.claude/rules/search-tools.md`. usages по JS — только ast-index.
- Чтение файлов: ТОЛЬКО `Read` с offset/limit
- Поиск файлов: `Glob` или `ast-index search`
- НЕТ ИСКЛЮЧЕНИЙ. Даже для "быстрой проверки". Даже для верификации.