0.2.3: судить дерево, ГДЕ воркер работает, а не откуда его запустили (#3) #4
Reference in New Issue
Block a user
Delete Branch "fix/worktree-from-live-process-3"
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?
Закрывает kotkan/claude-plugin-foreman-supervisor#3.
Что было. Дерево бралось как
state.get('worktreePath') or state.get('cwd')— то есть стартовый каталог. У сессии, ушедшей в worktree, он указывает на чужой чекаут. Замер на живом флоте 20.09: воркер6ce5556fпо state.json «жил» в/home/a/pro/siege-lines, реально — в/data/siege-arena364. Судья читал коммиты не того дерева и печатал «коммиты: нет» в момент, когда воркер открывал PR #384.Это не косметика: коммиты от базовой точки положены в наблюдение именно потому, что у наших агентов
git diffпуст на ПРАВИЛЬНОЙ работе (грабля №1 скилла). Промах по дереву ослепляет судью ровно на здоровом воркере.Что стало. Дерево — из
/procживой сессии (её транскрипт<sessionId>.jsonlв cmdline); state.json остаётся фолбэком для умершего воркера.Вторая ловушка, оплаченная тем же замером. Транскрипт стоит в cmdline ДВУХ процессов, и первой идёт обёртка
claude bg-pty-host, чей cwd — каталог ЗАПУСКА: 871379 →/home/a/pro/siege-linesпротив 871385 →/data/siege-arena364. Обёртки пропускаются.Пруф. Та же команда до правки: «дерево /home/a/pro/siege-lines», после: «дерево /data/siege-arena364». Тесты 23 зелёных (4 новых,
tests/test_worker_repo.py), прогон~/pro/foreman/.venv/bin/python -m pytest tests/ -q.🤖 Generated with Claude Code