chore(release): bump framework and 8 skills to v4.0.0 (MAJOR — cline removal & hermes modernization)
- Bump MAM_VERSION to 4.0.0 in lib.sh - Bump all 8 skill frontmatter versions to 4.0.0 in 3-way lockstep - Update VERSIONS.md with v4.0.0 changelog, migration guide (B-1..B-5), and skill matrix - Archive multi-agent version upgrade consensus and peer review reports (439 passed, 0 failures)
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
# Report: Job ec388212 — Refined Version Upgrade Plan (Rev.2) per `creator-agy-01` Challenge
|
||||
|
||||
**Durable output (updated in place)**: [.agents/reports/version_upgrade_recommendation.md](../../../.agents/reports/version_upgrade_recommendation.md)
|
||||
|
||||
## Summary
|
||||
|
||||
`creator-agy-01` challenged Rev.1's §6 implementation checklist (job `53b96f7a`) — explicitly reaffirming the v4.0.0 consensus itself, not disputing it. Two blind spots identified. **Both accepted — no `[REBUT:]` filed**, after independently re-verifying each claim against the live codebase rather than trusting the challenge's framing:
|
||||
|
||||
1. **`VERSIONS.md:24` prose desync**: verified `tests/test_version_consistency.py`'s regexes only cover the "현재 버전 개요" header line and the 8-row skill matrix table — confirmed by reading the actual regex patterns (`re.search(r"...프레임워크 버전...")`, `re.findall(r"\|\s*\*\*\`([^\`]+)\`\*\*...")`). Line 24's free-text sentence ("...`v3.1.0`으로 동기화되어 배포됩니다.") is untouched by either regex. **Fixed**: §6 item 2 now names this line as an explicit edit target.
|
||||
2. **Orphaned `cline` session rows surviving the upgrade**: verified `deploy/update.sh` (lines 111–166) explicitly backs up and restores `.mam/agent-sessions.*` across an update — nothing is wiped. Verified `registry.py::agent_of_row()` returns `None` for `agent: cline` rows post-removal (its explicit-field fast path checks `str(explicit).lower() in _ADAPTERS`, and `cline` is no longer a key). Verified `resume_session.sh` hard-rejects `--agent cline` with `exit 2`. Went further than the challenge asked: traced whether `multi-agent-mux-stop --purge-conversation` remains usable — confirmed it handles an already-dead herdr pane fine ("herdr already dead, just updating YAML"), but its `--agent` whitelist is narrowed too, so artifact-aware purge only works **before** upgrading. For rows orphaned *after* upgrading (no adapter left to resolve artifact paths), traced the safe primitive down to `lib.sh::atomic_dump_yaml` / `atomic_yaml.py::atomic_dump_yaml_main()` — confirmed it execs a caller-supplied Python snippet against the `d` dict under an `flock` + SQLite `BEGIN IMMEDIATE` transaction, the same locked path every other skill script already uses. **Fixed**: §6 item 2 now gives a verified pre-upgrade purge command and a verified post-upgrade YAML-only prune one-liner using that exact primitive, rather than inventing new tooling.
|
||||
|
||||
Full Rev.2 text is in the durable plan linked above (new "Rev.2 Changelog" section at the top, plus the rewritten §6 item 2).
|
||||
|
||||
[VERDICT: N/A — planning artifact, review pending]
|
||||
@@ -0,0 +1,61 @@
|
||||
# 🔍 Cross-Code Review — v4.0.0 Version-Bump Implementation (Job 8094e244)
|
||||
|
||||
- **Reviewer**: `planner-reviewer-claude-01`
|
||||
- **Target diff**: implementation of `version_upgrade_recommendation.md` Rev.2's §6 checklist — 9 files (`lib.sh`'s `MAM_VERSION`, 8× `SKILL.md` frontmatters, `VERSIONS.md`) plus 1 new report file.
|
||||
- **Method**: read every changed file's live post-diff state directly, checked the diff against every specific item Rev.2's §6 required (including the two items added under `creator-agy-01`'s challenge in job `ec388212`), ran the 3-way lockstep test and the full suite myself.
|
||||
|
||||
---
|
||||
|
||||
## 1. Fidelity to Rev.2's §6 Checklist
|
||||
|
||||
- **Item 1 (`lib.sh:32`)**: `MAM_VERSION="4.0.0"` — confirmed live in the file, matches exactly.
|
||||
- **Item 2, header**: `**프레임워크 버전**: \`v4.0.0\`` — done.
|
||||
- **Item 2, line 24 prose** (the specific gap `creator-agy-01`'s challenge caught and I required in Rev.2): confirmed live — `"...v4.0.0으로 동기화되어 배포됩니다."` — correctly updated, not left stale.
|
||||
- **Item 2, 8-row skill matrix table**: all 8 cells read `4.0.0`.
|
||||
- **Item 2, new `### v4.0.0` changelog section**: present, with a `⚠️ 동작 변경 및 마이그레이션 안내` block containing B-1 through B-5. Checked each against my Rev.2 spec:
|
||||
- B-1 (what broke) ✅, B-2 (detect-impact grep) ✅ — grep pattern is character-for-character what I specified.
|
||||
- B-3 (pre-upgrade `--purge-conversation` cleanup) ✅ — command matches exactly.
|
||||
- B-4 (post-upgrade `atomic_dump_yaml` YAML-only prune) ✅ — the heredoc mutation snippet is copied verbatim from my Rev.2 text, correctly reusing the existing locked primitive rather than inventing new tooling.
|
||||
- **Gap**: my Rev.2 spec's last bullet — "No forward migration for the adapter itself: git history is the only way to recover `adapters/cline.py`" — did not make it into B-1…B-5. See Finding 4.1 (minor, non-blocking).
|
||||
- **Item 3 (8× `SKILL.md` frontmatter)**: all 8 confirmed at `version: 4.0.0` (`create`, `stop`, `resume`, `status`, `monitor`, `delegate-job`, `loop`, `orc-onboard`).
|
||||
- **Item 4 (lockstep test)**: ran `tests/test_version_consistency.py` myself — `2 passed`.
|
||||
- **Item 5 (commit-message convention)**: not evaluated — no commit exists yet for this diff (working tree only); not applicable to a pre-commit review.
|
||||
|
||||
## 2. Independent Verification (Not Trusting the Diff Text Alone)
|
||||
|
||||
- `git status --short` confirms the live working tree matches the diff shown in the brief exactly — same 9 modified files + 1 untracked report file, no extra changes.
|
||||
- `bash -n .agents/skills/lib.sh` — syntactically valid.
|
||||
- Grepped the whole of `VERSIONS.md` for residual `3.1.0` mentions: all 3 remaining hits are correctly scoped to past-tense history — one inside my own B-3 instruction text ("v3.1.0 상태에서 ... 실행 전"), and two inside the preserved `### v3.1.0` historical changelog section itself. No stray current-version leakage.
|
||||
- Ran the full test suite myself (not the diff's own claim): `439 passed in 656.03s (0:10:56)`, exit code 0. Zero regressions.
|
||||
|
||||
## 3. Finding: Silent Content Loss in the "핵심 아키텍처" Bullet List (유실)
|
||||
|
||||
**`VERSIONS.md`'s "현재 버전 개요" summary silently dropped the "Atomic Safe Paste Insertion & Preserved Diagnostic Dumps" bullet** when the architecture-highlights list was rewritten for v4.0.0. That bullet described a still-live, unmodified feature (`pane send-text`'s single-insertion contract, TUI-not-ready session preservation with `exit 0`, and `.mam/diagnostics/` dump generation on `create_session.sh` failure/timeout) — nothing in this diff removed or changed that functionality, only its mention in the current-release summary. The only surviving trace of it in the whole document is one incidental sentence inside the historical `v3.1.0` changelog body (line 113), not the current-release overview.
|
||||
|
||||
This is not a functional regression — the feature itself is untouched and still tested (part of the 439 passing tests) — but it is a real documentation-accuracy loss: a reader consulting "현재 버전 개요" for the current architecture snapshot would no longer see this capability listed, even though it's still part of the shipped system. **Recommend re-adding it** as a 7th bullet (or folding its description into an adjacent bullet) before this is committed as the release-defining document.
|
||||
|
||||
**Severity: Low-Moderate, not blocking.** Doc-only, no runtime impact, easily fixed in a follow-up edit.
|
||||
|
||||
## 4. Other Findings
|
||||
|
||||
### 4.1 Minor: "no forward migration" note omitted from the B-1…B-5 migration block (Low, not blocking)
|
||||
|
||||
My Rev.2 spec's closing bullet ("git history is the only way to recover `adapters/cline.py` if cline support is ever needed again") isn't present in the implemented B-1…B-5 list. Low severity — informational advisory only, doesn't affect any of the actionable migration steps (detect/pre-upgrade/post-upgrade cleanup are all present and correct), and doesn't create a functional or safety gap. Worth a follow-up touch-up, not blocking.
|
||||
|
||||
## 5. Test Results
|
||||
|
||||
```
|
||||
.venv/bin/python -m pytest tests/test_version_consistency.py -q
|
||||
→ 2 passed
|
||||
|
||||
.venv/bin/python -m pytest tests/ -q
|
||||
→ 439 passed in 656.03s (0:10:56), exit code 0
|
||||
```
|
||||
|
||||
Ran both myself, not taken from the implementation's own claim.
|
||||
|
||||
## 6. Verdict
|
||||
|
||||
Every load-bearing item in my Rev.2 checklist — including both corrections `creator-agy-01`'s challenge required — was implemented faithfully and verifiably: the 3-way lockstep holds, the line-24 prose fix and both purge commands are present and byte-accurate, and the full suite is green with zero regressions. One real but non-blocking documentation-completeness finding (a silently dropped architecture bullet describing a still-live feature) and one minor omitted advisory note are flagged for a quick follow-up fix, neither of which affects correctness, the version contract, or any runtime behavior.
|
||||
|
||||
[VERDICT: PASS]
|
||||
Reference in New Issue
Block a user