4.3 KiB
Зависания и грязный main
То, на чём оркестрация этой сессии ломалась. Не чинить «на всякий случай» — только когда симптом совпал.
Транскрипт
Живой агент, а в jsonl только стартовый user-промпт и «читаю скилл» /
GetMcpTools — он не работает. После interrupt снова одна строка —
повторный завис.
Не поллить транскрипты без повода: completion, «завис», «продолжай», тишина заметно дольше обычной фазы.
MCP
GetMcpTools на cursor-app-control и ожидание echovault держали агента
полчаса. В промпте: не звать cursor-app-control; memory — один раз или
без неё.
Interrupt
Короткий промпт: не начинай с нуля, брось MCP, вот ветка и worktree, вот незакоммиченное, которое нельзя выкинуть. Длинный повтор всего скилла снова вешает.
Два зависания подряд — старый уступает («git не трогай»), новый — продолжение
того же 🔄: та же phase/<N>-* и тот же worktree, статус не сбрасывать.
Это не новый захват ⬜ и не второй автор. Пинает координатор, не отдельный агент.
Worktree
Путь вне репозитория. node_modules копировать из основного дерева или
npm ci; копия worktree внутрь себя забивает диск. git worktree remove --force после merge; каталог с битым node_modules может остаться — prune.
Первая сборка в worktree длинная — это не завис.
Грязный main и чужая ветка
merge/lock общий: фаза, баг, ревью, side. Чужой — ждать, не снимать.
phase-work не сливает, если status --porcelain непустой. Портреты, SwarmUI,
чужой WIP на карточке блокировали 32/36/35/38/41.
Основное дерево должно уже стоять на main. Если пользователь на bug/… —
не checkout main: снимешь ему IDE. Merge-агент стоп, слот ждёт.
Пользователь сказал «сливай» — stash -u своим сообщением, merge, pop
только его. Pop с конфликтом: stash живёт, дерево не калечить.
Не stash’ать файлы, которые пишет сосед в основном дереве (он обязан быть в worktree; если нет — merge-агент стоп и отчёт «main занят»).
DLL и тесты хоста
MSB3021/3027: процесс пользователя держит HSchool.Server. Не убивать.
В отчёте: AppHost на main не пересобрался. Весь dotnet test solution
из-за этого не гонять — и так не надо: только проект из Testing policy.
После фазы сессии хостовые тесты логинятся в ResetAsync. Два игрока — две
куки, не общий jar. OpenSchool / часы от гостя не доходят — сокет-тесты
открывают школу владельцем.
Клиент
npm test на Windows иногда падает в параллели — --maxWorkers=1.
vitest зелёный при мёртвом tsc: лови npm run build (дубликат ключа,
неиспользуемый import).
Pause / last wave
Пауза: WIP-коммит на ветке фазы, worktree оставить, main не трогать.
Продолжение: resume с хешем WIP, не git branch заново.
«Остановись» / «закончи с этими»: текущие доводят merge, координатор не открывает следующую ⬜ по completion.