Прежняя git-история утрачена при переносе проекта на машину владельца (снапшот без .git). Хэши коммитов в docs/reports/* относятся к утраченной истории. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
4.3 KiB
4.3 KiB
Отчёт сессии 2 (для следующей сессии)
Дата: 2026-08-05 | Ветка: main | Этап 2 (доска Canvas) — завершён
Что сделано
- Контракт packages/board зафиксирован в docs/INTERFACES.md до кода (геометрия, рендер, редьюсер ввода, DOM-адаптер).
- packages/board реализован: geometry.ts (computeGeometry, pointToPixel, pixelToPoint, hoshiPoints 19→9/13→5/9→5), render.ts (render — чистая функция, 11 слоёв в контрактном порядке, дефолтная тёмная тема, координаты без «I», хоси, фантом, метка последнего хода, номера ходов, разметка LB/TR/SQ/CR, заливка территории TerritoryMap, приглушение мёртвых), input.ts (reduceInput: тап → фантом, повторный тап или confirm → ход), dom.ts (setupCanvas с DPR, attachPointerInput с отпиской).
- Тесты: 74/74 (43 core + 31 board): геометрия, таблица переходов редьюсера, инварианты рендера через мок-рекордер ctx, orphan-check.
- Интеграционные правки main loop при приёмке:
- TerritoryMap { black, white } вместо префиксной кодировки "w:x,y" — контракт синхронизирован;
- eslint:
no-undef: offдля TS-файлов (typescript-eslint рекомендация, DOM-глобалы видит только tsc) — костыльные eslint-disable убраны; - в контракте board типы ключей приведены к string (типа PointKey в core нет);
- вычищены пустые мусорные каталоги
{docs…от команды с brace-expansion.
Что НЕ сделано
- Этапы 3–9 не начаты.
- Визуальная проверка кадра, pointer-события, мобильный Safari — смоук этапа 5/7 (записано в матрице «чего НЕ покрывает ни один тест», plan-phase-2).
- CI на GitHub не запускался (репо локальный).
Подводные камни для следующей сессии
- Среда: работать только через
git worktree add $HOME/work-<name> <branch>из /mnt/agents/output/go-learn; $HOME субагента/сессии может быть чистым — worktree пересоздавать (git worktree remove --force <старый путь>если «already checked out»), коммиты в общем .git не теряются. Незакоммиченное теряется — коммитить перед концом работы. Контракты дублировать в тексте задания субагенту, не только файлами. tsc -b --noEmitнесовместим с project references (TS6310, TS 5.9.3) — packages/board без reference на core, резолв через workspace-симлинк. Не «чинить» добавлением reference — сломает гейт с чистого состояния.- docs/*.md коммитить только после prettier --write (format-гейт ловит и md).
- mkdir без фигурных скобок — шелл без brace-expansion плодит мусорные каталоги.
С чего начать продолжение
Этап 3 (ИИ ур. 1–3, эвристика): сначала контракт модуля ИИ в docs/INTERFACES.md (выбор хода по эвристикам: спасти своё атари → забрать чужое → взвешенный случайный ход вблизи хода противника → не заполнять свой глаз → пас; уровни 0.3/0.6/0.9; RNG — createSeededRng из core), затем код. Решить и записать: packages/ai отдельным пакетом или модулем в core — рекомендация: отдельный packages/ai (core остаётся чистыми правилами). Создать docs/plans/plan-phase-3.md.