release(v4.8.2): bump framework and eight skills to 4.8.2 in lockstep; archive the follow-up loop's reports
PR #41/#43 review follow-ups F1-F6, implemented by creator-claude-01 in a
loop and reviewed by claude, agy, grok and codex: round 1 (@95eabc6)
codex NOT PASS (a failed env load cached as loaded), fixed in 75f364e;
round 2 4/4 PASS. Full suite at 75f364e 1380 passed / 0 failed. Reviewer
reports (round 2 with identity sidecars) and the creator's reports go to
.agents/reports/<session>/.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VCgu9Fa9iT7TbJUSzdq4Ff
This commit is contained in:
1 parent
75f364e4b4
commit
3563a6fc17
30 files changed
+927
-26
No files matched your search
+29
-11
@@ -6,8 +6,8 @@
|
||||
|
||||
## 📌 현재 버전 개요 (Current Release)
|
||||
|
||||
- **프레임워크 버전**: `v4.8.1`
|
||||
- **최신 릴리스 일시**: 2026-10-02 (KST)
|
||||
- **프레임워크 버전**: `v4.8.2`
|
||||
- **최신 릴리스 일시**: 2026-10-03 (KST)
|
||||
- **기준 브랜치**: `main`
|
||||
- **핵심 아키텍처**:
|
||||
- **Terminal 상태 단방향 불변성 (`engine.py`, Issue #6 Phase 1)**: `completed`, `error`, `cancelled` 터미널 상태 진입 후 후속 이벤트나 업데이트에 의한 덮어쓰기를 엄격히 차단(Terminal Immutability). `registry.py close` 서브커맨드 및 fail-closed 조기 종료 도입.
|
||||
@@ -24,23 +24,41 @@
|
||||
|
||||
## 🧭 스킬 패키지 버전 매트릭스 (Skills Version Matrix)
|
||||
|
||||
모든 8개 스킬은 YAML frontmatter 메타데이터(`author`, `version`, `platforms`, `environments`) 표준화를 통해 `v4.8.1`로 동기화되어 배포됩니다.
|
||||
모든 8개 스킬은 YAML frontmatter 메타데이터(`author`, `version`, `platforms`, `environments`) 표준화를 통해 `v4.8.2`로 동기화되어 배포됩니다.
|
||||
|
||||
| 스킬명 | 버전 | 역할 및 주요 책임 | 상태 |
|
||||
| :--- | :---: | :--- | :---: |
|
||||
| **`multi-agent-mux-create`** | `4.8.1` | 에이전트 세션 신규 생성 및 Herdr 컨테이너 격리 스폰 | ✅ 배포 |
|
||||
| **`multi-agent-mux-stop`** | `4.8.1` | 대화 UUID 원자적 캡처 및 세션 안전 종료 (Graceful Stop) | ✅ 배포 |
|
||||
| **`multi-agent-mux-resume`** | `4.8.1` | 온디스크 대화 컨텍스트 기반 Tier-1 초고속 세션 복원 | ✅ 배포 |
|
||||
| **`multi-agent-mux-status`** | `4.8.1` | 실시간 Herdr 세션 및 레지스트리 드리프트 스냅샷 조회 | ✅ 배포 |
|
||||
| **`multi-agent-mux-monitor`** | `4.8.1` | YAML ↔ 런타임 상태 간 자율 조정자 (Reconciler Loop) | ✅ 배포 |
|
||||
| **`multi-agent-mux-delegate-job`** | `4.8.1` | MQTT 이벤트 채널 기반 비동기 단위 작업 위임 | ✅ 배포 |
|
||||
| **`multi-agent-mux-loop`** | `4.8.1` | Planner-Creator-Reviewer 3자 자율 계획·실행·피어리뷰 루프 | ✅ 배포 |
|
||||
| **`multi-agent-mux-orc-onboard`** | `4.8.1` | 오케스트레이터 UUID 격리 등록 및 서브 세션 오염 방지 | ✅ 배포 |
|
||||
| **`multi-agent-mux-create`** | `4.8.2` | 에이전트 세션 신규 생성 및 Herdr 컨테이너 격리 스폰 | ✅ 배포 |
|
||||
| **`multi-agent-mux-stop`** | `4.8.2` | 대화 UUID 원자적 캡처 및 세션 안전 종료 (Graceful Stop) | ✅ 배포 |
|
||||
| **`multi-agent-mux-resume`** | `4.8.2` | 온디스크 대화 컨텍스트 기반 Tier-1 초고속 세션 복원 | ✅ 배포 |
|
||||
| **`multi-agent-mux-status`** | `4.8.2` | 실시간 Herdr 세션 및 레지스트리 드리프트 스냅샷 조회 | ✅ 배포 |
|
||||
| **`multi-agent-mux-monitor`** | `4.8.2` | YAML ↔ 런타임 상태 간 자율 조정자 (Reconciler Loop) | ✅ 배포 |
|
||||
| **`multi-agent-mux-delegate-job`** | `4.8.2` | MQTT 이벤트 채널 기반 비동기 단위 작업 위임 | ✅ 배포 |
|
||||
| **`multi-agent-mux-loop`** | `4.8.2` | Planner-Creator-Reviewer 3자 자율 계획·실행·피어리뷰 루프 | ✅ 배포 |
|
||||
| **`multi-agent-mux-orc-onboard`** | `4.8.2` | 오케스트레이터 UUID 격리 등록 및 서브 세션 오염 방지 | ✅ 배포 |
|
||||
|
||||
---
|
||||
|
||||
## 📋 버전별 상세 변경 내역 (Changelog)
|
||||
|
||||
### 🚀 `v4.8.2` — PR #41·#43 리뷰 후속 정리: 날짜 테스트, 설정 파일 오류 한 줄, BOM, 정수 설정값 규칙 확장, 테스트 훅 제거 (2026-10-03, PR #44)
|
||||
|
||||
> **패치 (PATCH Release)**: v4.8.0(PR #41)·v4.8.1(PR #43) 리뷰에서 비차단으로 남긴 후속 사항을 이 워크스페이스의 루프(creator-claude-01 구현, 네 리뷰어 리뷰)로 처리했다. 동작 변경은 아래 항목에 한정한다.
|
||||
|
||||
#### 🌟 주요 개선 사항
|
||||
1. **F1 날짜 의존 테스트 (`tests/test_issue21_acceptance.py`)**: `test_a8` 가 매달 1~9 일에 실패했다. 테스트가 마커에 쓰는 `ps -o lstart` 는 `Oct 1` 처럼 공백 두 칸인데 `loop_lock.sh` 는 공백을 한 칸으로 줄여 비교한다. 테스트가 제품과 같은 정규화로 쓰고, 두 칸 공백 마커로 날짜와 무관하게 고정하는 테스트를 더했다. 제품 코드는 그대로.
|
||||
2. **F2 Python 진입점의 설정 파일 오류 (`mqtt_common.load_env_or_report`)**: 존재하지만 읽을 수 없는 `.mam.env` 에서 publish_event·registry·job_subscriber·cli·bench·heartbeat·remote 가 트레이스백 대신 `ERROR: <경로>: cannot read (<예외 종류>)` 한 줄과 rc 1. 라이브러리 함수는 종료하지 않는다. 리뷰(codex R1)에서 실패를 "이미 읽음"으로 캐시해 같은 프로세스의 재호출이 검사를 건너뛰던 문제를 찾아, 읽기에 성공했을 때만 캐시한다.
|
||||
3. **F3 `.mam.env` 세부 (`envfile.py`, `.mam.env.example`, `MESSAGING.md`)**: 첫 줄 UTF-8 BOM 을 벗긴다. 한 파일 안 중복 키는 첫 값이 이긴다고 명시. "명시한 `MAM_ENV_FILE` 이 없으면 오류" 설명을 실제(없으면 건너뜀, 있는데 못 읽으면 오류)에 맞췄다.
|
||||
4. **F4 정수 설정값 규칙 확장 (`runner.py`, `lib_int.sh`)**: 러너의 `MAM_WAIT_GRACE_S`·`MAM_CHILD_WAIT_S`·`MAM_JOB_TREE_MAX` 가 `_positive_int` 규칙(잘못된 값은 경고 후 기본값; `MAM_CHILD_WAIT_S=abc` 의 ValueError 제거). `[ -ge ]`/`[ -le ]`/`[ -gt ]`/`sleep` 에 쓰이던 bash 정수 노브도 `mam_int_knob` 으로. `mam_int`/`mam_int_knob` 은 `lib.sh` 없이 source 되는 스크립트도 쓰도록 `lib_int.sh` 로 분리. `MAM_WAIT_GRACE_S` 를 loop SKILL.md 에 문서화.
|
||||
5. **F5 제품 코드의 테스트 훅 제거 (`stall_watch.py`)**: `MAM_TEST_UNRELIABLE_AGENT` 분기를 없애고, S13 은 테스트 seam 으로 같은 상황(`agent_status_reliable=False`)을 만든다.
|
||||
6. **F6 문서·테스트 정밀도**: 감시자 수명 계약의 "≤ 60 s" 를 herdr wait 에 한정. "대기 중 래퍼 소멸" 테스트가 두 번째 wait 안에서 소멸을 일으킨다.
|
||||
|
||||
#### ✅ 품질 검증
|
||||
- **회귀 테스트**: 제품 코드를 바꾸는 항목(F2·F3·F4·F5)은 제품 파일만 main 으로 되돌린 사본에서 47 건 실패(claude 독립 확인). F2 재호출 캐시 회귀는 별도.
|
||||
- **리뷰 (이 워크스페이스, 네 리뷰어)**: 1회차 claude·agy·grok PASS, codex NOT PASS(R1 실패 캐시). 75f364e 에서 수정. 2회차 **4/4 PASS**. 리포트와 2회차 identity 사이드카는 `.agents/reports/<session>/`, creator 리포트는 `.agents/reports/creator-claude-01/`.
|
||||
- **전체 스위트 (브로커 환경변수 없이, 별도 워크트리)**: 75f364e 전체 **1380 passed / 0 failed / 3 skipped**(61 분, MQTT 환경변수 없이). 매달 1~9 일에 실패하던 `test_a8` 이 10월 3일에 통과(F1 확인). 첫 실행은 맥 이동으로 93% 에서 중단돼 다시 돌렸다.
|
||||
- **후속**: `tests/test_o2_race_free_lock.py` 의 호출되지 않는 `get_lstart` 헬퍼(정규화 없음) 정리(claude T1); `reconcile.sh` 내장 구독자는 진입점 목록 밖이라 읽기 실패 시 여전히 트레이스백(claude T2).
|
||||
|
||||
### 🚀 `v4.8.1` — Issue #26 `.mam.env` 를 Python 파서 하나로 읽고, 정수 설정값을 10진수로, 테스트를 로컬 MQTT 브로커로 (2026-10-02, PR #43)
|
||||
|
||||
> **패치 (PATCH Release)**: 같은 `.mam.env` 를 delegate-job 래퍼는 bash `source` 로, Python 도구는 `KEY=VALUE` 로 읽어서, 한쪽에서 정상인 줄(`KEY= value`)이 다른 쪽에서 래퍼를 즉시 종료시키고 값 속 `$(...)` 는 실행되던 문제(Issue #26)를 고친다. 0 으로 시작하는 정수 설정값이 bash 에서 8진수로 읽히던 문제와, 공개 MQTT 브로커에 기대던 테스트도 함께 정리했다.
|
||||
|
||||
Reference in new issue
Block a user