v2026.5.7 — RLM Search Reliability + Internal Loop Routing
RLM search reliability, single-chunk prep coverage, and internal agent-loop routing.
v2026.5.7 — RLM Search Reliability + Internal Loop Routing
Tag: `v2026.5.7` · Released: 2026-05-15 · npm: `npm install -g [email protected]`
This release closes the RLM search gaps found while auditing loop-structure documentation and updates the `agent-loop` skill so the default path is the current in-session loop. External daemon loops remain available, but they are now an explicit choice instead of the default interpretation.
TL;DR
# Install
npm install -g [email protected]
# Search large docs or repos; --max-parallel is now parsed correctly
aiwg rlm-search "find all references to loop structures" \
--source docs \
--depth 2 \
--max-parallel 4 \
--budget 200000
# Normal loop requests stay in-session
agent-loop "fix the failing tests"
# External/crash-resilient loop remains explicit
agent-loop-ext "run the overnight migration" --completion "all migration tests pass"
What's in the box
1. RLM search option parsing
`rlm-search` now recognizes `--max-parallel` as a first-class alias for concurrency. Before this patch, a command like:
aiwg rlm-search "find all references to loop structures" --source docs --max-parallel 4
could preserve the flag in the parsed argument list and then accidentally treat `4` as the query. The parser now consumes `--max-parallel` correctly and rejects unknown flags instead of letting a later positional value overwrite the user's natural-language query.
2. Single-chunk source coverage
`rlm-prep` now writes a manifest and `chunk-0000.txt` even when a source file fits in one chunk. That matters for docs trees and small source files: they are now included in the prep index and downstream `rlm-search` plan instead of being silently skipped.
Existing prep directories are coverage-checked before reuse. If a prep index does not cover the expected source files, manifests, and chunks, AIWG rebuilds it automatically before search.
3. Agent-loop routing clarity
The `agent-loop` skill source now prefers the internal/in-session loop first. Use the external daemon path only when the user explicitly asks for external, daemon-backed, crash-resilient, detached, or overnight execution.
This matches the operational expectation from recent sessions: `agent-loop` should be an internal loop construct by default, with `agent-loop-ext` / external Ralph used intentionally.
4. External loop observability
The external loop patch line also surfaces captured session logs through status paths when the daemon route is intentionally used. That makes external runs less opaque without changing the default routing decision.
5. Build-time version lockstep
`npm run build:cli` now runs a release-version guard before compiling. The check fails if any of these version surfaces drift:
- `package.json`
- `package-lock.json` top-level `version`
- `package-lock.json` root package `packages[""].version`
- `.claude-plugin/marketplace.json` `metadata.version`
This catches stale lockfiles during normal build verification instead of waiting until tag creation or publish prep.
6. Agent release-signing keyring note
The release docs now call out an operational detail from this release: agent runtimes may set `HOME` to an isolated role directory, which makes `gpg` use a different keyring than the operator's `/home/<user>/.gnupg`. If `cut-tag.sh` cannot see the AIWG release key but the key is present in the operator keyring, run:
GNUPGHOME=/home/<user>/.gnupg tools/release/cut-tag.sh 2026.X.Y
`tools/release/cut-tag.sh` now prints this diagnostic when the configured release key is not found.
Verification
Focused local checks for this release line:
npm run check:versions
npm run test -- test/unit/workspace/check-marketplace-version.test.ts
npm run uat -- test/uat/rlm-cli.uat.ts
npm run build:cli
The RLM UAT suite includes regressions for:
- single-chunk manifest/chunk creation
- single-chunk files appearing in the prep index
- `rlm-search --max-parallel 4` preserving the full query text
- package/lockfile/marketplace release-version drift detection
Compatibility
No breaking changes. `rlm-search --parallel N` continues to work. `--max-parallel N` now works in the CLI as documented by the RLM search skill. Existing `agent-loop` commands keep working; only the default routing preference changed.