Судья смотрит на ЧУЖОЕ дерево: state.json отдаёт стартовый cwd, а сессия ушла в worktree #3

Open
opened 2026-09-20 20:30:52 +03:00 by anton · 0 comments
Owner

Найдено 2026-09-20 20:30 на живом флоте SIEGE.

foreman-attach.py берёт рабочее дерево как state.get('worktreePath') or state.get('cwd'). У воркера 6ce5556f (SIEGE · арена) в state.json worktreePath=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 остаётся фолбэком.

Найдено 2026-09-20 20:30 на живом флоте SIEGE. `foreman-attach.py` берёт рабочее дерево как `state.get('worktreePath') or state.get('cwd')`. У воркера `6ce5556f` (SIEGE · арена) в state.json `worktreePath=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 остаётся фолбэком.
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kotkan/claude-plugin-foreman-supervisor#3