Files
multi-agent-mux/DONE.md
T
Godopu 623eef814b docs: split FUTURE_WORKS.md -> DONE.md (FW-01~16 completed) + new items (FW-N1~N4, FW-L1~L2)
DONE.md: 16/16 items completed, 11 commits, 3-agent verified.
FUTURE_WORKS.md: rewritten with only remaining items:
  - FW-L1: SQLite WAL migration (FW-02 long-term)
  - FW-L2: stop option semantics Step 2 (FW-03/13 follow-up)
  - FW-N1: reconcile.sh idle timeout vs job timeout mismatch (new)
  - FW-N2: wire format compat (HMAC rollout) (new)
  - FW-N3: log message 'auth_token mismatch' -> 'HMAC verify failed' (new)
  - FW-N4: REPORT.md section 2.4 plaintext auth_token -> HMAC (new)
2026-06-21 07:15:53 +00:00

90 lines
5.3 KiB
Markdown

# DONE.md
> 완료된 작업 추적. 모든 항목은 3개 에이전트(agy-new, agy-existing, claude-existing)의 최종 검증을 거쳤음.
> 검증 일시: 2026-06-21
---
## 요약
- **처리 항목**: FW-01 ~ FW-16 (16개)
- **커밋 수**: 11개 (a6f7c04 ~ 9ee9076)
- **변경 규모**: 16 files changed, 557 insertions(+), 53 deletions(-)
- **Working tree**: clean
- **검증 결과**: 16/16 DONE (agy-existing 판정), 15/16 DONE + FW-12 NOT_DONE (agy-new 판정 — .bak 파일은 rm으로 삭제했으나 git 추적 대상이 아니어서 커밋 없음, 사실상 DONE)
---
## 항목별 완료 현황
| 항목 | 내용 | 커밋 | 구현 | 리뷰 |
|---|---|---|---|---|
| FW-01 | MQTT subscriber 자동 재연결 (on_disconnect + reconnect_delay_set + with_retry) | `3677e4a` | agy-new | agy-existing PASS, claude-existing FAIL(on_disconnect 4->5인자) -> Hermes 수정 |
| FW-02 | NFS flock 경고 (_atomic_dump_yaml_check_nfs) | `f1a98be` | agy-new | Hermes 직접 (단기 경고만, SQLite WAL은 장기 과제) |
| FW-03 | delete->stop 명칭 잔재 정리 (REPORT.md + SKILL.md 주석) | `155c6e8`, `5af1387` | Hermes 직접 | 문서 작업 |
| FW-04 | .env 로드 통일 (mqtt_common.py _load_dotenv) | `2cffcc4` | agy-new | Hermes spec 검토 PASS |
| FW-05 | HMAC-SHA256 서명 (publish_event.py + verify_hmac + job_subscriber.py 검증) | `3677e4a` | agy-new | agy-existing PASS, claude-existing FAIL(on_disconnect) -> 동일 수정 |
| FW-06 | agent bootstrap error trap (trap EXIT + publish_event.py --event error) | `2cffcc4` | agy-new | Hermes spec 검토 PASS |
| FW-07 | lib.sh tmux shim 경로 상수화 (_TMUX_SHIM_DIR_PATTERN / _TMUX_SKILLS_BIN_PATTERN) | `4cea114` | agy-new | agy-existing FAIL(슬래시 누락), claude-existing FAIL(:57/:76 잔존) -> Hermes 수정 |
| FW-08 | _delegate_py_bin 캐싱 (AGENT_PYTHON_BIN 셸 변수, export 제거) | `4cea114` | agy-new | 동일 리뷰 (export -> 일반 변수로 수정) |
| FW-09 | monitor status enum 문서화 + reconcile.sh last_visible_note 분리 | `7d925de` | agy-new | Hermes spec 검토 PASS |
| FW-10 | 세션/잡 상태 glossary 추가 (Messaging_System_REPORT.md) | `155c6e8` | Hermes 직접 | 문서 작업 |
| FW-11 | venv 의존성 통합 (pyyaml 추가, requirements.txt) | `f1a98be` | agy-new | Hermes spec 검토 PASS |
| FW-12 | .bak 잔재 파일 정리 (test-sessions.yaml.bak 등 rm) | (커밋 없음) | Hermes 직접 | .gitignore에 이미 패턴 있음, git 추적 대상 아님 |
| FW-13 | stop SKILL.md frontmatter/heading/산문 stop 재작성 | `5af1387` | Hermes 직접 | claude-existing 최종 검증에서 수정 확인 |
| FW-14 | REPORT.md -> Messaging_System_REPORT.md git rename 정규화 | `9334352` | Hermes 직접 | git mv로 정규화 |
| FW-15 | monitor --subscribe 보안 경고 문서화 (SKILL.md Security 섹션) | `7d925de` | agy-new | Hermes spec 검토 PASS |
| FW-16 | 세션 상태 vs 잡 상태 도메인 분리 (glossary) | `155c6e8` | Hermes 직접 | FW-10과 동일 커밋 |
---
## 커밋 히스토리
```
9ee9076 docs(delegate-job): add Subagent Orchestration Pattern section to SKILL.md
f1a98be fix(lib.sh): add NFS flock warning (FW-02) + unify venv deps with pyyaml (FW-11)
7d925de fix(monitor): add status enum docs + subscribe security warning (FW-09, FW-15)
2cffcc4 fix(delegate-job): unify .env loading in Python scripts (FW-04) + trap agent bootstrap errors (FW-06)
155c6e8 docs: fix delete->stop in REPORT + add session/job state glossary (FW-03, FW-10, FW-16)
3677e4a feat(delegate-job): add subscriber auto-reconnect (FW-01) + HMAC-SHA256 event signing (FW-05)
4cea114 refactor(lib.sh): extract hardcoded tmux shim paths to constants (FW-07) + cache _delegate_py_bin result (FW-08)
c68852b docs: add FUTURE_WORKS.md — 3-agent deep analysis results (FW-01~FW-16)
5af1387 refactor(stop): rewrite SKILL.md frontmatter/heading/prose for stop semantics (FW-13, FW-03)
9334352 docs: rename REPORT.md -> Messaging_System_REPORT.md (FW-14)
a6f7c04 feat(delegate-job): bump default --timeout 600s -> 3600s (1h wall-clock budget)
```
---
## 검증 결과 (3개 에이전트 교차)
### agy-new (Gemini 3.1 Pro High)
- 15/16 DONE, FW-12 NOT_DONE (.bak 삭제 커밋 없음 — git 추적 대상 아님)
- 새 발견: FW-02 근본 해결 지연 (SQLite WAL은 장기 과제)
### agy-existing (Gemini 3.5 Flash High)
- 16/16 DONE
- 새 발견 2건:
1. AGENT_PYTHON_BIN export 캐시 오염 위험 -> 이미 수정됨 (export 제거, 일반 셸 변수 사용)
2. reconcile.sh:66 모니터 유휴 타임아웃 600s vs 잡 3600s 불일치 -> 별개 도메인이나 문서화 가치 있음
### claude-existing (Claude Opus 4.8)
- working tree clean 확인, 모든 커밋 반영 확인
- FW-01 on_disconnect 5인자 수정 확인 (이전 FAIL에서 지적한 항목)
- 구문/컴파일/stale 참조/working-tree 전체 검증 통과
---
## 처리 방식
- **Main worker**: agy-new (Gemini 3.1 Pro High) — 6개 배치 구현
- **Reviewers**: agy-existing (Flash High) + claude-existing (Opus 4.8) — 병렬 리뷰
- **Orchestrator**: Hermes — dispatch, diff 검토, fallback fix, commit
- **Batch 구성**: 파일 겹침 없이 2-3항씩 6배치로 그룹핑
- **Hermes fallback**: 리뷰어가 발견한 작은 이슈(슬래시 누락, export 제거, paho 시그니처)를 Hermes가 직접 수정
---
## 날짜
2026-06-21 (Sun) 03:52 ~ 07:00 KST