fix(skills): resolve headless layout overflow, reconcile SKILLS_DIR scope, and prompt-injection fast-path gating (B-19)

This commit is contained in:
2026-08-23 17:49:45 +09:00
parent f133e52863
commit 82eecfda24
5 changed files with 262 additions and 13 deletions
+13 -3
View File
@@ -1,9 +1,9 @@
# 🛠️ Multi-Agent Mux 종합 개선 및 미해결 과제 백로그 (`IMPROVEMENTS.md`)
- **최종 갱신일**: 2026-08-23 (`nats-docker` 서브모듈 분리, 프로덕션 Docker 자산 정본화, 가드 D-22~D-30 도입, 306/306 통과 유지)
- **최종 갱신일**: 2026-08-23 (`nats-docker` 서브모듈 분리, B-19 헤드리스 레이아웃/리컨사일/Fast-path 게이팅 개선, 37/37 신규 가드 통과 유지)
- **통합 관리 대상**: 기존 `CODEBASE_REVIEW_REPORT.md` + `OPTIMIZATION.md` + `NATS_REPORT.md`
- **총 추적 미해결 과제**: **5건** (아키텍처 1건: `A-2`, 엣지케이스 및 가용성 3건: `B-16`, `B-17`, `B-18`, 오케스트레이션 1건: `O-5`)
- **완료된 과제**: **27** (A-1, A-3, A-4, A-5, B-1, B-3, B-4, B-5, B-7, B-8, B-9, B-10, B-13, B-14, B-15, C-1, C-2, C-3b, C-6, O-1, O-2, O-3, O-4-OrcOnboard, O-6, Herdr-0.8.0-Compat-SanitizeHash, P2-1-DelegateJobSafe-TrapFix, P2-2-C3a-C4-LegacyCleanup)
- **완료된 과제**: **28** (A-1, A-3, A-4, A-5, B-1, B-3, B-4, B-5, B-7, B-8, B-9, B-10, B-13, B-14, B-15, B-19, C-1, C-2, C-3b, C-6, O-1, O-2, O-3, O-4-OrcOnboard, O-6, Herdr-0.8.0-Compat-SanitizeHash, P2-1-DelegateJobSafe-TrapFix, P2-2-C3a-C4-LegacyCleanup)
---
@@ -25,7 +25,17 @@
---
## 2. 🟠 엣지 케이스 및 런타임 버그 (Edge-case Bugs — 3건)
## 2. 🟠 엣지 케이스 및 런타임 버그 (Edge-case Bugs — 4건 / 완료 3건)
### **B-19 (✅ 완료 — 헤드리스 분할 레이아웃 0×0 예외 처리, reconcile SKILLS_DIR 누락 및 Fast-path 게이팅 보완)**
- **현상**:
1. `lib.sh:449` 헤드리스 환경에서 `herdr pane layout``0×0`을 반환할 때 `overflow`로 오판정되어 새 워크스페이스(`w1, w2, w3`)가 계속 증식하던 결함.
2. `reconcile.sh:814, 816`에서 `SKILLS_DIR`을 전달하지 않아 Python 내에서 상대 경로 조립 실패(`resume dry-run failed: No such file or directory`)가 기록되던 결함.
3. `lib.sh:1667` `send_keys_safe`에서 `herdr agent prompt` Fast-path가 렌더러 안정화 및 다이얼로그 체크 이전에 실행되거나 실패 시 중복 입력이 발생할 수 있던 결함.
- **조치 결과 (완료)**:
- `lib.sh`: `w <= 0 or h <= 0`인 헤드리스 상태일 때 기본 `'right'` 분할 적용. `send_keys_safe`의 Fast-path를 안정화/다이얼로그 확인 후로 배치하고 단일 성공 즉시 `return 0` 처리.
- `reconcile.sh`: `env_python``atomic_dump_yaml` 실행 시 `SKILLS_DIR="$SKILLS_DIR"` 명시 주입 및 3중 fallback 경로 추가.
- 회귀 가드: `tests/test_b19_headless_reconcile_fixes.py` (4개 테스트 신규 작성 및 100% 통과).
### **B-14 (✅ 완료 — F-1 / P1): `publish_event.py` 브로커 장애 시 `return 2` 조기 탈출로 인한 65분 루프 정지**
- **현상**: `publish_event.py`에서 브로커 네트워크 장애 발생 시 `return 2`로 조기 종료되어, 뒤따르는 로컬 레지스트리 상태(`update_job_status(status=completed)`) 및 감사 로그(`append_event`, `registry.append_event`) 갱신이 누락되던 결함.