Files
multi-agent-mux/FUTURE_WORKS.md
T
Godopu 9b797a5c8c feat(lib): migrate to SQLite WAL backend for robust concurrency (FW-L1)
- Replaces python fcntl.flock with SQLite BEGIN IMMEDIATE.
- Status/Reconcile read from SQLite SSOT, with YAML fallback.
- Explicitly documented tradeoff: YAML is no longer a real-time view.
- Handles PRAGMA wal_checkpoint(TRUNCATE) safely outside transactions.
2026-06-21 08:35:07 +00:00

4.7 KiB

FUTURE_WORKS.md

목적: advanced_multi_agent 프로젝트의 향후 작업 후보를 추적한다. 완료된 항목은 DONE.md를 참조. 최종 갱신: 2026-06-21 (3개 에이전트 최종 검증 완료 후)


1. 장기 과제 (근본적 구조 변경)

FW-L3. SQLite 테이블 정규화 (FW-L1 후속)

  • 상태: 대기
  • 제안: 현재 .db에는 전체 JSON 상태를 하나의 data TEXT 컬럼에 덤프하고 있음. 이를 CREATE TABLE sessions (name TEXT PRIMARY KEY, status TEXT, pane_cwd TEXT, data JSON) 형태로 정규화하면 O(1) 수준의 상태 조회가 가능해짐.
  • 주의: 현재 상태 조회 스크립트(status.sh, reconcile.sh) 역시 SELECT data 후 Python 단에서 전체 JSON을 파싱하는 구조이므로, O(1) 이점을 누리기 위해서는 이 조회 스크립트들도 per-column 쿼리(예: SELECT status FROM sessions WHERE name=?)로 함께 변경해야 함.

FW-L2. stop 옵션 시맨틱 Step 2 (FW-03/FW-13 후속)

  • 상태: Step 1(디렉터리/식별자 rename) + frontmatter/산문 재작성 완료. Step 2 미진행.
  • 남은 작업:
    • --purge-conversation(진짜 삭제)와 --mode soft|hard의 시맨틱 재정의 또는 폐기 검토
    • 하위 호환 코드 제거
    • --mode soft|hard 폐기 후 stop = 기본 동작, --purge-conversation = 파괴적 옵션으로 명확화
  • 작업량: 중 (Medium)
  • 우선순위: 보통 — 현재 동작에 문제 없으나 API 직관성 향상

2. 신규 발견 항목 (최종 검증에서 식별)

FW-N1. reconcile.sh 모니터 유휴 타임아웃 vs 잡 타임아웃 불일치

  • 발견자: agy-existing (최종 검증)
  • 문제: reconcile.shSUB_IDLE_TIMEOUT 기본값 600s가 잡 wall-clock timeout 기본값 3600s와 불일치. 모니터가 잡보다 먼저 타임아웃되어 조기 종료 간섭 가능.
  • 영향 범위: skills/tmux-agent-orchestrate-monitor/scripts/reconcile.sh:66 부근
  • 해결 방안: 모니터 유휴 타임아웃을 잡 타임아웃과 독립적으로 문서화하거나, 기본값을 3600s 이상으로 조정.
  • 작업량: 소 (Small)
  • 우선순위: 낮음 — 별개 도메인(모니터 유휴 vs 잡 wall-clock)이나 문서화 필요

FW-N2. 와이어 포맷 호환성 (HMAC 전환 후 혼합 배포)

  • 발견자: claude-existing (Batch 2 리뷰)
  • 문제: data.auth_tokendata.hmac_sig 와이어 포맷 변경. 구 버전(publish_event.py)과 신 버전(job_subscriber.py)이 혼재하는 롤아웃 시 모든 이벤트가 drop될 수 있음.
  • 해결 방안: 롤아웃 시 전체 노드 동시 업데이트 또는 하위 호환 모드(auth_token + hmac_sig 동시 전송) 추가.
  • 작업량: 소 (Small)
  • 우선순위: 낮음 — 단일 노드 Canary 환경에서는 해당 없음

FW-N3. 로그 문구 "auth_token mismatch" → "HMAC verify failed" 갱신

  • 발견자: claude-existing (Batch 2 리뷰)
  • 문제: job_subscriber.py의 drop 로그가 여전히 "auth_token mismatch"를 사용. HMAC 검증으로 변경되었으나 로그 미갱신.
  • 해결 방안: 로그 문구를 "HMAC verify failed"로 변경.
  • 작업량: 소 (Small)
  • 우선순위: 낮음 — 기능 영향 없음, 디버깅 가독성만

FW-N4. Messaging_System_REPORT.md §2.4 평문 auth_token 기술 갱신

  • 발견자: claude-existing (Batch 2 리뷰)
  • 문제: 보고서 §2.4가 여전히 "plaintext bearer auth_token" 기술. HMAC 서명으로 변경되었으나 문서 미갱신.
  • 해결 방안: §2.4를 HMAC-SHA256 서명 방식으로 갱신.
  • 작업량: 소 (Small)
  • 우선순위: 보통 — 권위 문서의 정확성

3. 분석 인프라 개선 (다음 분석 라운드 시)

근본 원인: pane TUI의 자체적인 위쪽 truncate + subagent의 pane 추출 시점 차이로 긴 응답이 스크롤아웃됨.

검증된 패턴 (delegate-job SKILL.md "Subagent Orchestration Pattern" 섹션에 반영됨):

  1. brief 직후 capture-pane -S -200 즉시 캡처 → 누적 백업
  2. 응답 진행 중 30초마다 >> /tmp/pane-snap.txt 누적
  3. "분석 종료" 직후에도 한 번 더 전체 캡처
  4. 짧은 작업(<5min)은 폴링이 MQTT subscriber보다 안정적
  5. 긴 brief는 파일 경로로 전달 (inline send-keys는 TUI가 swallow)

4. 변경 이력

날짜 변경
2026-06-21 초기 작성 — 3개 에이전트 분석 결과 (FW-01~FW-16)
2026-06-21 FW-01FW-16 전부 완료 -> DONE.md로 이동. 본 파일은 신규 발견 항목(FW-N1N4) + 장기 과제(FW-L1~L2)만 남김.
2026-06-21 FW-L1 구현 완료 (사용자 피드백 재수용: 런타임은 SQLite DB, 종료 시에만 YAML 스냅샷 덤프). 항목 DONE.md로 이동.