From a6622085b349c5e10daad3c5e60361254b71568a Mon Sep 17 00:00:00 2001 From: MSCodeBase Agent Date: Sat, 3 Oct 2026 14:49:35 +0300 Subject: [PATCH] docs(known-issues): record the PATH-dependent bash resolver defect negative_controls_runner resolved bash only via shutil.which. From an agent shell Git's bin dir is absent from PATH, so the WSL shim won the lookup and the resolver returned None, marking drift_gate BROKEN and blocking every commit. GitBash was installed all along. --- KNOWN_ISSUES.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/KNOWN_ISSUES.md b/KNOWN_ISSUES.md index 0690e49..72567c5 100644 --- a/KNOWN_ISSUES.md +++ b/KNOWN_ISSUES.md @@ -4,6 +4,23 @@ > Формат: дата | что было | статус | fix --- +## 2026-10-03 — `negative_controls_runner`: bash резолвился только через PATH (Fixed) + +- **Симптом:** pre-commit → `NEGATIVE CONTROLS: FAILED (broken=1, unproven=0)`; `drift_gate` + помечен `[BROKEN]` с пояснением «bash недоступен (нет GitBash; System32\bash.exe — WSL-шим)». + **Все 11 гейтов хука блокировали любой коммит.** +- **Root cause:** `_resolve_bash()` брал только `shutil.which("bash")`. Из агентской оболочки + (PowerShell) каталог Git в PATH отсутствует, поэтому `which` возвращал WSL-шим + `C:\WINDOWS\system32\bash.exe`, который функция справедливо отбраковывала → `None`. + GitBash при этом **установлен** (`C:\Program Files\Git\bin\bash.exe`). Тот же класс, что + «Гейт был непригоден вне папки одного разработчика»: гейт жил только в оболочке автора. +- **Fix:** резолвер дополнительно обходит типовые корни установки Git + (`ProgramFiles/Git/{bin,usr/bin}`) и корень, выведенный из `git` на PATH; WSL-шим + по-прежнему отбрасывается. +- **Guard:** `drift_gate` переходит `[BROKEN]` → `[PROVEN]`, инвентарь даёт + `ALL PROVEN (3)`, rc=0; полный хук — `All pre-commit checks passed`. +- **Класс:** P-022 (состояние, зависящее от контекста запуска: путь, заданный оболочкой автора). + ## 2026-10-03 — Параллельные сессии без границ: 3 инцидента за один день (Open, P1) - **Инцидент 1 (каталог-призрак).** `tools/knowledge/` (15 файлов, включая замороженный тред и referent отрицательного результата D-05) появился в общем дереве, через ~2 минуты