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:
@@ -0,0 +1,26 @@
|
||||
---
|
||||
name: project_concurrent_sessions_branch
|
||||
description: "По ветке feature/lab-content-engine параллельно коммитят другие сессии — fetch перед работой, не force-push вслепую"
|
||||
metadata:
|
||||
node_type: memory
|
||||
type: project
|
||||
originSessionId: 4e9fb8e3-3745-4f02-9d88-40b13d0cb4ca
|
||||
---
|
||||
|
||||
# Параллельные сессии пишут в ту же ветку
|
||||
|
||||
На 2026-05-30 по ветке `feature/lab-content-engine` одновременно работали несколько сессий Claude: помимо контент-движка лаборатории ([[project_lab_content_engine]]) туда же коммитили biochem (Фазы 2/3/5/6), opticsbench-конструктор, учебники (chemistry-8). Это вызвало реальные проблемы: расхождение local/remote, откат моих правок lab.html (include-теги дважды), потребность в `--force-with-lease`.
|
||||
|
||||
**Why:** Несколько агентов/сессий делят одну git-ветку и рабочее дерево — типичная причина «пропавших» правок и non-fast-forward при push.
|
||||
|
||||
**How to apply:**
|
||||
- Перед началом и перед push: `git fetch` + `git rev-list --left-right --count HEAD...origin/<branch>`.
|
||||
- Если remote ушёл вперёд — НЕ force-push вслепую: сначала понять, что за коммиты (часто чужая сессия), и что local — content-superset.
|
||||
- В рабочем дереве почти всегда лежат чужие незакоммиченные правки (api.js, *.html) — коммитить только СВОИ файлы поимённо, не `git add -A`.
|
||||
- Правки в часто-редактируемых файлах (lab.html) перечитывать прямо перед Edit — линтер/чужая сессия перенумеровывают строки.
|
||||
- Push на git.dolgolyov-family.by иногда даёт транзиентный «Failed to authenticate» — повторить.
|
||||
|
||||
**Реальный инцидент (2026-05-30):** браузерные баги после Фаз 3-4 контент-движка.
|
||||
1. `cirSim is not defined` в `_pauseAllSims()/closeSim()` (lab-init.js): Фаза 3 (ленивая загрузка) обнажила latent-баг — эти «дробовик»-функции ссылаются на глобалы экземпляров симуляций (cirSim/reacSim/newtonSim/…) по голому имени; раньше их объявляли sim-файлы (eager), теперь до открытия симуляции → ReferenceError. Фикс: предсоздать имена как window-свойства (null) в начале lab-init.js. (Изначально я ошибочно подумал, что проблема в theory-data.js/_pilots.js — их НЕ существует, THEORY остаётся inline в lab-init.js; те правки lab.html были no-op.)
|
||||
2. `/api/lab/sims` 500 = `no such table: lab_sims`: миграция 042 применялась к ТЕСТОВЫМ temp-БД, но не к ЖИВОЙ (`backend/data/learnspace.db`). Сервер НЕ авто-мигрирует (только fail-fast проверка). Фикс: `node src/db/migrations-runner.js` на живой БД (применил, 40 строк) + graceful-degradation в lab.js (пустой каталог вместо 500). SQLite: таблица, созданная миграцией, видна работающему серверу без рестарта (DDL закоммичен в файл; prepare происходит на запрос).
|
||||
Уроки: (а) после рефактора с ленивой загрузкой проверять, что глобал-ссылки в «дробовик»-функциях не указывают на now-lazy переменные; (б) НОВАЯ миграция требует прогона на ЖИВОЙ БД (`npm run migrate` в backend), а не только в тестах; (в) не выдумывать причину — сверять с error_log и фактическим наличием файлов.
|
||||
Reference in New Issue
Block a user