chore: восстановление репозитория из снапшота v0.3.1
Прежняя git-история утрачена при переносе проекта на машину владельца (снапшот без .git). Хэши коммитов в docs/reports/* относятся к утраченной истории. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
commit
1c85091186
184 changed files with 33303 additions and 0 deletions
54
docs/reports/session-2.md
Normal file
54
docs/reports/session-2.md
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
# Отчёт сессии 2 (для следующей сессии)
|
||||
|
||||
Дата: 2026-08-05 | Ветка: main | Этап 2 (доска Canvas) — завершён
|
||||
|
||||
## Что сделано
|
||||
|
||||
1. **Контракт packages/board** зафиксирован в docs/INTERFACES.md до кода
|
||||
(геометрия, рендер, редьюсер ввода, DOM-адаптер).
|
||||
2. **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 с отпиской).
|
||||
3. **Тесты: 74/74** (43 core + 31 board): геометрия, таблица переходов редьюсера,
|
||||
инварианты рендера через мок-рекордер ctx, orphan-check.
|
||||
4. **Интеграционные правки 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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue