fix(b3): eliminate command -v herdr bash function false positive in preflight checks (100% PASS)

This commit is contained in:
2026-08-06 21:59:58 +09:00
parent cdeb9e2c8f
commit 0f6dd8ba8b
9 changed files with 818 additions and 14 deletions
+11 -9
View File
@@ -1,9 +1,9 @@
# 🛠️ Multi-Agent Mux 종합 개선 및 미해결 과제 백로그 (`IMPROVEMENTS.md`)
- **최종 갱신일**: 2026-08-06 (O-1 Rebuttal & Re-adjudication Protocol 완료 반영)
- **최종 갱신일**: 2026-08-06 (B-3 herdr real binary preflight verification 완료 반영)
- **통합 관리 대상**: 기존 `CODEBASE_REVIEW_REPORT.md` + `OPTIMIZATION.md`
- **총 추적 미해결 과제**: **16** (아키텍처 2건, 엣지케이스 8건, 오케스트레이션 2건, 레거시 잔재 4건)
- **완료된 과제**: **5** (A-1, A-5, B-1, C-1, O-1)
- **총 추적 미해결 과제**: **15** (아키텍처 2건, 엣지케이스 7건, 오케스트레이션 2건, 레거시 잔재 4건)
- **완료된 과제**: **6** (A-1, A-5, B-1, B-3, C-1, O-1)
---
@@ -25,10 +25,7 @@
---
## 2. 🟠 엣지 케이스 및 런타임 버그 (Edge-case Bugs — 8건)
### **B-3: `command -v herdr` 프리플라이트 무력화**
- `create_session.sh`의 프리플라이트 검사 시 `command -v herdr``lib.sh`에 정의된 bash 함수(`herdr()`)를 호명하여 실제 시스템 `herdr` 바이너리가 없어도 프리플라이트를 무조건 통과해버립니다.
## 2. 🟠 엣지 케이스 및 런타임 버그 (Edge-case Bugs — 7건)
### **B-4: 시프트 `ls`의 `created=0` 하드코딩으로 재개 가드 무력화**
- `herdr ls` 서브커맨드 래퍼가 세션 생성시각을 상수 `0`으로 리턴하여 `reconcile.sh` drift-B 등록 시 epoch 0이 되어 오래된 대화 jsonl 배제 가드가 붕괴됩니다.
@@ -87,7 +84,7 @@
---
## 5. 🎉 완료된 과제 (Completed Tasks — 5건)
## 5. 🎉 완료된 과제 (Completed Tasks — 6건)
### **A-1: 워크스페이스 세션 격리 & drift-B 오등록 방지** — ✅ 완료
- `derive_workspace_slug` 헬퍼 함수를 추가하여 워크스페이스 경로 기반 단일 소켓 슬러그(`mam-<parent>-<work>`) 도출 체계를 구축했습니다.
@@ -100,6 +97,11 @@
- `lib.sh` tier-3 신원 캐시 조회 시 미정의 변수(`db_path`, `yaml_path`) 및 `yaml` import 누락으로 무조건 `NameError` 예외가 발생하던 결함을 해결했습니다.
- DB를 1차 권위 경로로, `$YAML_PATH`를 폴백으로 정제하고 전용 회귀 테스트 `tests/test_b1_tier3_identity.py` (8/8 PASS)를 작성하여 입증했습니다.
### **B-3: `command -v herdr` 프리플라이트 무력화** — ✅ 완료
- `lib.sh``_canonical_file()`, `_is_shim_path()`, `_resolve_real_herdr_path()`, `has_real_herdr()` 헬퍼를 작성하여 `herdr()` bash 함수 오판과 `.mam/shim/herdr` 래퍼 매칭(파일 수준 심링크 포함)을 완전 차단했습니다.
- `create_session.sh`, `multi-agent-mux-delegate-job`, `create/SKILL.md`, `status/SKILL.md` 프리플라이트를 `has_real_herdr`로 전수 교체했습니다.
- 회귀 테스트 `tests/test_b3_herdr_preflight.py` (11/11 PASS)를 작성하여 입증했습니다.
### **C-1: Kanban 문서 29회 언급 vs 실제 구현 0건** — ✅ 완료
- SKILL.md 3종(monitor 22 / status 5 / create 2)과 README 2종의 Kanban 서술을 전면 제거했습니다.
- `multi-agent-mux-monitor` 의 실행 메커니즘 서술을 실제 구현인 `reconcile.sh --subscribe` (MQTT push + 브로커 다운 시 폴링 폴백) 기준으로 재작성했습니다.
@@ -117,4 +119,4 @@
## 6. 결론 및 향후 보완 로드맵
`IMPROVEMENTS.md` 문서에 따라 향후 코드베이스 개편 시 남은 백로그 항목(아키텍처 2건, 엣지케이스 8건, 오케스트레이션 2건, 레거시 잔재 4건)을 일원화된 보완 로드맵으로 관리합니다.
`IMPROVEMENTS.md` 문서에 따라 향후 코드베이스 개편 시 남은 백로그 항목(아키텍처 2건, 엣지케이스 7건, 오케스트레이션 2건, 레거시 잔재 4건)을 일원화된 보완 로드맵으로 관리합니다.