chore(memory): снимок файлов памяти Claude в репозиторий для переноса

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

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-06-05 08:32:16 +03:00
parent 13d91714d4
commit 8a7091ddec
31 changed files with 1445 additions and 0 deletions
@@ -0,0 +1,25 @@
---
name: reference_textbook_latex_escaping
description: "Баг формул в учебниках = ЛИШНИЕ слэши (over-escaping), не нехватка; правило чётности и фикс-скрипт"
metadata:
node_type: memory
type: reference
originSessionId: a705e035-e600-43a2-b98c-197923986186
---
Формулы в учебниках (`frontend/textbooks/*.html`) лежат в JS-строковых литералах, рендерит KaTeX через `renderMathInElement`. Симптом «формула печатается текстом» (`dfrac13S_осн`, `sqrtR^2+h^2`, `cdoth` — карточка пирамиды/конуса в geometry_11_ch2) — это **ЛИШНИЕ обратные слэши (over-escaping)**, а НЕ их нехватка. (Первичная гипотеза «не хватает \» была НЕВЕРНА — проверять байты ДО выводов.)
Механика: в литерале `\\\\dfrac` (4 слэша) вместо `\\dfrac` (2). После JS-анескейпа KaTeX получает `\\dfrac` → трактует `\\` как перенос строки, а `dfrac` печатает как обычный текст, поэтому формула разваливается на строки.
**Правило чётности (защищает легитимные `\\` разделители строк):**
- 2 слэша → `\cmd` → ОК
- 4 слэша → `\\`+текст → БАГ → схлопнуть до 2
- 6 слэшей → `\\`+`\cmd` (перенос строки + команда в `\begin{cases}`) → ОК, не трогать
- 8 слэшей → БАГ → до 2
Схлопывать ТОЛЬКО прогоны слэшей, кратные 4, и ТОЛЬКО перед известной LaTeX-командой. Перед `x`/цифрой (настоящие `\\` в cases/array) — не трогать.
**Исправлено 2026-05-30:** 150 правок, 7 файлов (`algebra_11_ch1/ch2/ch3`, `geometry_11_ch1/ch2/ch3/ch4`), коммит 8786cf5 (запушен в master). Скрипт: `backend/scripts/fix_overescaped_latex.js` (идемпотентный, dry-run по умолчанию, `--apply`, с KaTeX-валидацией). algebra_8 / algebra_7_ch4 имели только легитимные `\begin{cases}` → 0 правок.
**БД чиста:** questions колонки `text/explanation/correct_text` (НЕ `payload`!), 1398 вопросов + 5187 options (`options.text`) → 0 багов обеих форм. Баг только в HTML.
Окружение этой сессии: stdout периодически рвался, Read иногда галлюцинировал/дублировал содержимое — надёжно писать результат в файл с маркерами `<<<BEGIN>>>/<<<END>>>` и читать через PowerShell `[IO.File]::ReadAllText`. Bash искажает кириллический путь `Тесты``"5ABK` (ENOENT) — использовать PowerShell. БД — через `node:sqlite` (см. [[reference_sqlite_node]]).