Судья смотрит на ЧУЖОЕ дерево: state.json отдаёт стартовый cwd, а сессия ушла в worktree #3
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Найдено 2026-09-20 20:30 на живом флоте SIEGE.
foreman-attach.pyберёт рабочее дерево какstate.get('worktreePath') or state.get('cwd'). У воркера6ce5556f(SIEGE · арена) в state.jsonworktreePath=None,cwd=/home/a/pro/siege-lines— а сам процесс живёт в/data/siege-arena364(readlink /proc/871385/cwd). То есть судья строит наблюдение по ГЛАВНОМУ чекауту, а воркер коммитит в свой worktree.Последствие тихое и опасное: строка «коммиты от origin/main: нет» при воркере, который в тот же момент делал PR (
detail: Creating PR for 378). Грабля №1 скилла ("наши агенты коммитят, git diff пуст именно когда всё правильно") именно на коммитах и держится — значит судья ослеп ровно на том свидетельстве, ради которого оно клалось в наблюдение.Лечение: определять дерево по ЖИВОМУ процессу сессии —
/proc/<pid>/cwdтого процесса, чей cmdline содержит<sessionId>.jsonl; state.json остаётся фолбэком.