fix(issue-6): fail-closed registry timeout and TUI turn handshake
- Introduce finalize_unfinished in multi-agent-mux-delegate-job for fail-closed atomic transitions - Enforce CAS dispatch_token and attempt_id pinning across engine, CLI, and lifecycle scripts - Integrate Herdr wait_for_agent_idle turn handshake to prevent prompt loss and race conditions - Resolve bash 3.2 set -u empty array expansion compatibility in lib.sh - Preserve Issue #5 R2 contract in CAS transition engine (engine.py, publish_event.py, service.py) - Add comprehensive regression suites (test_issue6_fail_closed.py, test_issue6_turn_handshake.py) - Bump lockstep framework and skills to v4.4.1 across lib.sh, eager.py, VERSIONS.md, 8 SKILL.md - Synchronize documentation (IMPROVEMENTS.md, MESSAGING.md, state-transitions.md, task.md, phase5-e2e.md) - Unanimous PASS achieved across 4 reviewer team leaders (Claude, Codex, OpenCode, Grok) Closes #6
This commit is contained in:
1 parent
7b761be7b8
commit
ec61511699
51 files changed
+3477
-293
No files matched your search
+20
-3
@@ -1,9 +1,9 @@
|
||||
# 🛠️ Multi-Agent Mux 종합 개선 및 미해결 과제 백로그 (`IMPROVEMENTS.md`)
|
||||
|
||||
- **최종 갱신일**: 2026-09-07 (IMPROVEMENTS.md 단일 원장화: §2/§3 완료 항목 §5 이관, 머지 잔재 병합 제거, v4.1.x~v4.4.0 완료 사항 반영)
|
||||
- **최종 갱신일**: 2026-09-08 (IMPROVEMENTS.md 단일 원장화: v4.4.1 Issue #6 Fail-Closed / Turn Handshake 완료 반영)
|
||||
- **통합 관리 대상**: 기존 `CODEBASE_REVIEW_REPORT.md` + `OPTIMIZATION.md` + `NATS_REPORT.md`
|
||||
- **총 추적 미해결 과제**: **5건** (아키텍처 1건: `A-2`, 엣지케이스 및 가용성 3건: `B-16`, `B-17`, `B-18`, 오케스트레이션 1건: `O-5`)
|
||||
- **완료된 과제**: **31건** (B-21, B-20, B-19, B-14, B-15, O-6, A-4, B-9, B-13, B-10, B-5, C-6, P3-1-A4Phase2-C3b, P2-2-C3a-C4-LegacyCleanup, P2-1-DelegateJobSafe-TrapFix, O-4-OrcOnboard, O-2-P0-2, P0-1-B-7, Rev.2-b4a1d094-SessionIdPinning, B-4, O-3, A-1, A-3, C-2, A-5, B-1, B-3, C-1, O-1, Herdr-0.8.0-Compat-SanitizeHash, B-8)
|
||||
- **완료된 과제**: **32건** (Issue-6-FailClosed-TurnHandshake, B-21, B-20, B-19, B-14, B-15, O-6, A-4, B-9, B-13, B-10, B-5, C-6, P3-1-A4Phase2-C3b, P2-2-C3a-C4-LegacyCleanup, P2-1-DelegateJobSafe-TrapFix, O-4-OrcOnboard, O-2-P0-2, P0-1-B-7, Rev.2-b4a1d094-SessionIdPinning, B-4, O-3, A-1, A-3, C-2, A-5, B-1, B-3, C-1, O-1, Herdr-0.8.0-Compat-SanitizeHash, B-8)
|
||||
|
||||
---
|
||||
|
||||
@@ -61,7 +61,23 @@
|
||||
|
||||
---
|
||||
|
||||
## 5. 🎉 완료된 과제 (Completed Tasks — 31건)
|
||||
## 5. 🎉 완료된 과제 (Completed Tasks — 32건)
|
||||
|
||||
### **Issue-6-FailClosed-TurnHandshake (✅ 완료 — 비동기 잡 위임 안정화 및 Fail-Closed / Turn Handshake 구현, v4.4.1)**
|
||||
- **현상**:
|
||||
- 터미널 상태 도달 이후 도착한 이벤트에 의해 상태가 역전되거나 덮어쓰여지는 레이스 컨디션 발생.
|
||||
- Herdr 프롬프트 주입 후 프로세스/뷰포트가 실제 입력 대기(idle) 상태로 전환되는 핸드셰이크 관측이 없어 작업 완료 판정이 불안정.
|
||||
- Loop 모드에서 워커→리뷰어 전환 시 동일 회차 내 재전이 충돌(rc=4 `does not advance past 1`)로 인한 비정상 셸 중단 발생.
|
||||
- Subscriber 비정상 종료(타임아웃 등) 시 레지스트리 레코드가 `pending`/`running` 상태로 방치되어 행(Hang) 발생.
|
||||
- **조치 결과 (완료 — v4.4.1)**:
|
||||
- Phase 1: `engine.py`에 Terminal Immutability(단방향 불변성) 확립, `registry.py close` 서브커맨드 구현, deadline_timeout/abort/error fail-closed 조기 종료.
|
||||
- Phase 2: `lib.sh: wait_for_agent_idle` 및 `lib_py/loop/watcher.py` 구현으로 에이전트 프롬프트 턴 완료 관측 확립 (T2-1 ~ T2-11).
|
||||
- Phase 3: Loop 모드 `attempt_id` 추적 및 안전 전이 규약 도입, 4단계 fail-closed `finalize_unfinished` 확립.
|
||||
- Phase 4: 결정론적 종료 코드 계약(0, 1, 2, 3, 5) 표준화 및 전체 767개+ 회귀 테스트 통과.
|
||||
- **회귀 가드**:
|
||||
- `tests/test_issue6_turn_handshake.py` (11 passed)
|
||||
- `tests/test_issue6_fail_closed.py` (16 passed)
|
||||
- 전체 회귀 테스트 스위트 통과
|
||||
|
||||
### **B-21 (✅ 완료 — `--agent` 플래그 표준화 및 `stop_session.sh`/`update_yaml_resumed.sh` 레지스트리 `agent_of_row` 폴백 통합)**
|
||||
- **현상**:
|
||||
@@ -307,6 +323,7 @@
|
||||
|
||||
### **B-8 (P1-2): agy 주입 시 `return 0` 우회 제거 및 제출 검증 루프 이관** — ✅ 완료
|
||||
- agy 주입 시 `return 0` 우회 제거 및 제출 검증 루프 이관 (`tests/test_b8_send_keys_verification.py` 1/1 PASS).
|
||||
- **Issue #6 단일 주입 계약 (Single Injection Contract)**: `lib.sh:2416`에서 RPC 출력의 빈 문자열(`|| [ -z "$p_out" ]`)에 대한 페이스트 버퍼 폴백을 제거하여 이중 주입 가능성을 원천 차단했습니다. mock herdr 테스트 환경은 지원하지 않는 명령에 대해 `unknown command: agent prompt`를 명시적으로 반환하도록 표준화되었습니다.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in new issue
Block a user