- Add plan-c107763c (Rev 1 & Rev 2 with creator critique and refinements) - Add report-b11cf3b2 (planner-reviewer-claude-01 PASS) - Add report-c9796d8c (reviewer-creator-grok-01 PASS) - Add report-8e6b346e (reviewer-opencode-01 PASS)
57 lines
5.4 KiB
Markdown
57 lines
5.4 KiB
Markdown
# 🔍 Cross-Review — v4.1.2 Release, Post-Challenge Re-Implementation (Job `b11cf3b2`)
|
||
|
||
- **Reviewer**: `planner-reviewer-claude-01`
|
||
- **Target diff**: cumulative `.agents/skills/lib.sh` + `VERSIONS.md` + 8× `SKILL.md` + `tests/test_c1_tui_readiness.py` + `tests/test_herdr_shim_contract.py` + new `bug-report/*.md` — `creator-agy-01`'s re-implementation of my Rev. 2 refined plan (`plan-c107763c.md`), which itself was written in response to `creator-agy-01`'s own architectural challenge (job `d14ab345`) against my original v4.1.2 fixes (job `c107763c`).
|
||
- **Method**: independently re-verified every claim against live source and by actually running the tests — including deliberately reverting each fix in isolation to confirm the corresponding new test genuinely fails on old code and passes on new (not vacuous), per standing practice of never trusting a diff's self-description.
|
||
|
||
---
|
||
|
||
## 1. Diff fidelity
|
||
|
||
`git diff HEAD -- .agents/skills/lib.sh` is byte-for-byte exactly the 4-hunk change documented in the brief and in my own Rev. 2 plan — no undisclosed edits. `opencode.py` is untouched (correct: Issue 2's `materialized` gate and Issue 3's `ready_tokens` were already resolved/rejected in the original triage and Rev. 2 didn't touch them).
|
||
|
||
## 2. Finding A (idle-pane env-var loss) — correctly implemented
|
||
|
||
Live code at `lib.sh:731-736`:
|
||
```bash
|
||
if [ -n "$idle_pane" ]; then
|
||
target_pane="$idle_pane"
|
||
if [ -n "$final_cmd" ]; then
|
||
idle_env="${env_flags//--env /}"
|
||
idle_env="${idle_env:+$idle_env }HERDR_WORKSPACE_ID=$existing_ws"
|
||
final_cmd="env $idle_env $final_cmd"
|
||
fi
|
||
else
|
||
```
|
||
This is an exact match to the fix I specified in Rev. 2 — `${env_flags//--env /}` correctly strips the `--env ` prefixes via plain parameter expansion, `HERDR_WORKSPACE_ID` is always appended (mirroring what `pane split` injects server-side), and the whole thing only fires when `$idle_pane` was actually found, leaving the split/create paths completely unchanged.
|
||
|
||
**Verified via test, not just reading**: `test_h25_new_session_idle_pane_preserves_env_and_ws_id` seeds an idle pane and a `run_cmd` with a leading `MY_TEST_FLAG=active` token, asserts the recorded agent command contains both `MY_TEST_FLAG=active` and `HERDR_WORKSPACE_ID=w1`. I reverted just this hunk (restoring the pre-fix idle branch with no env handling) and re-ran the test myself — it fails exactly as expected (`AssertionError: Expected MY_TEST_FLAG=active in agent command: --dangerously-skip-permissions`), confirming the test is a real regression guard, not a vacuous pass.
|
||
|
||
## 3. Finding B (`'agent'` key preempting R-1) — correctly implemented
|
||
|
||
Live code at `lib.sh:415`: `for key in ('label', 'name'):` — `'agent'` removed exactly as specified, funneling all kind-based resolution (including a literal bare-kind search) through the R-1-guarded fallback block.
|
||
|
||
**Verified via test**: `test_r3_resolve_pane_id_bare_kind_multiple_panes_fails_closed` — bare-kind target `"agy"` against 2 same-kind panes, asserts fail-closed (RC=1). I reverted just this one-line hunk (restored `'agent'` to the tuple) and re-ran the test — it fails as expected (`RC=0|PID=w1:p1`, i.e. it silently picks the first pane with no ambiguity check), confirming the guard is real and the test actually exercises it.
|
||
|
||
## 4. Full regression sweep
|
||
|
||
Both new tests, plus the untouched Rev-1 tests (`test_r1`, `test_r2`, `test_h24`), pass together. Targeted suite (6 files): **123 passed**. Full suite (`tests/`): **451 passed, 0 failed** (449 prior + these 2 new), 10m37s — no other test was affected by either change, confirming both fixes are surgically scoped as designed.
|
||
|
||
## 5. Documentation / release hygiene
|
||
|
||
- `VERSIONS.md`: v4.1.2 changelog now correctly cites **SemVer 2.0.0 §6 PATCH** from the start (no repeat of the earlier v4.1.1 §8-typo incident), and C-1/C-2 bullets accurately describe both the original and the challenge-driven follow-up fixes in one consolidated entry rather than needing a separate v4.1.3 changelog block for what is still, correctly, one PATCH release.
|
||
- 3-way lockstep verified directly: `lib.sh:32` `MAM_VERSION="4.1.2"`, all 8 `SKILL.md` `version: 4.1.2`, `VERSIONS.md` header/prose/matrix — all consistent (also covered by `test_version_consistency.py`, passing).
|
||
- `plan-c107763c.md` (including the Rev. 2 section) and both `bug-report/*.md` source documents are committed as part of this diff — full audit trail from original report → triage → challenge → refinement → re-implementation is preserved and traceable.
|
||
|
||
## 6. Residual, non-blocking nit
|
||
|
||
The `else` branch inside the `if [ -n "$idle_pane" ]; then ... else` (the pre-existing `sample_pane`/layout/split logic) is not re-indented one level deeper after being wrapped in the new conditional — purely cosmetic, doesn't affect bash semantics (`bash -n` clean), and matches this file's existing tolerance for such diffs elsewhere. Not worth a follow-up commit on its own.
|
||
|
||
---
|
||
|
||
## 7. Verdict
|
||
|
||
Both findings from `creator-agy-01`'s challenge were valid, and both were fixed exactly as specified in my Rev. 2 refined plan — verified not by reading the diff alone but by independently reverting each hunk and confirming the corresponding new test fails on old code and passes on new. The full 451-test suite is green, the diff contains no undisclosed changes, SemVer/lockstep are correct, and the release's documentation accurately reflects the full challenge-and-refinement history. No lint, functionality, or omission defects. No design-level rework needed.
|
||
|
||
[VERDICT: PASS]
|