release: v5.12.3 — "Phantom agents" (M-BUG-3/4/5: enumerateAgents counts only CC-registered agents)
Releases commit 7f097d5. enumerateAgents now counts only the agents Claude Code
actually registers: recurse into agent subdirs (M-BUG-3), dedupe project==user
path when the scope root is $HOME (M-BUG-4, root cause — also fixed rules and
output-styles), and require valid name+description frontmatter before counting a
file (M-BUG-5). Real-machine verify: user-agent count 13->0 (all 12 user agents
plus REMEMBER.md are frontmatter-less, so CC registers none), HOME project-dup
13->0; corrected always-loaded baseline is ~53, not 66. No count change (scanners
16, agents 7, commands 21); agent enumeration is machine-dependent and absent
from the frozen snapshots, so v5.0.0 + SC-5 + default-output stay byte-stable.
1305 tests.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EnUvKEqyEa1m9gy6Aqhdqq
This commit is contained in:
parent
7f097d524f
commit
4ad1875b31
3 changed files with 34 additions and 3 deletions
30
CHANGELOG.md
30
CHANGELOG.md
|
|
@ -5,6 +5,36 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [5.12.3] - 2026-06-26
|
||||
|
||||
### Summary
|
||||
"Phantom agents" — fixes `M-BUG-3/4/5` (dogfooding finds) in `scanners/lib/active-config-reader.mjs`
|
||||
so that `enumerateAgents` counts only the agents Claude Code actually **registers**. Per the official
|
||||
subagents documentation, an agent file must carry valid `name`+`description` frontmatter, and CC
|
||||
scans the agents directory **recursively** while silently skipping frontmatter-less files. The reader
|
||||
violated all three rules: it counted every `.md` regardless of frontmatter (`M-BUG-5`), never recursed
|
||||
into agent subdirectories (`M-BUG-3`), and double-counted entries when the project directory equals the
|
||||
user directory — the case when the scope root is `$HOME` (`M-BUG-4`, the root cause, which also affected
|
||||
rules and output-styles). Real-machine verify: the user-agent count dropped **13→0** (all 12 user
|
||||
agents plus `REMEMBER.md` are frontmatter-less, so CC registers none of them) and the HOME `project`
|
||||
duplicate dropped **13→0**; the corrected always-loaded baseline is ≈ **53**, not 66. Agent enumeration
|
||||
is machine-dependent and therefore absent from the frozen snapshots, so the v5.0.0 + SC-5 +
|
||||
default-output snapshots stay byte-stable; no count change (scanners **16**, agents **7**, commands
|
||||
**21**). **1305** tests (+4).
|
||||
|
||||
### Fixed
|
||||
- **`active-config-reader` agent enumeration (`M-BUG-3/4/5`).** Three surgical fixes:
|
||||
- `listMarkdownFiles` gains an opt-in `recursive` flag so agent enumeration descends into
|
||||
subdirectories the way Claude Code does (`M-BUG-3`).
|
||||
- `configDirs` now de-duplicates the project and user paths when they resolve to the same directory
|
||||
(the case when the scope root is `$HOME`), the root cause that also double-counted rules and
|
||||
output-styles (`M-BUG-4`).
|
||||
- `enumerateAgents` requires a valid `name`+`description` frontmatter block before counting a file,
|
||||
matching CC's actual registration rule — frontmatter-less files are silently skipped (`M-BUG-5`).
|
||||
- Added a `hasText` frontmatter helper. TDD: 4 failing tests (one per bug) → fix → full suite
|
||||
1305/0, frozen v5.0.0 + SC-5 + default-output snapshots untouched (agent enumeration is
|
||||
machine-dependent and never seeded into a snapshot).
|
||||
|
||||
## [5.12.2] - 2026-06-24
|
||||
|
||||
### Summary
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue