fix(claude-ops): series-agnostic changelog grep, raw-md channel, ultracode lane effort - #1945
Conversation
…, ultracode lane effort The changelog skill's status action pinned the CC 2.1 series in its git-log greps and fetched the 511KB HTML page rather than the deterministic raw .md channel. The lanes launcher rejected `ultracode`, which `--effort` accepts, so an ultracode lane was silently unlaunchable. Observability's cost section now carries the list-rate caveat the costs page states for subscription users. Doc-alignment rows 62, 77, 86. UNVERIFIED: the producer and its verifier were both killed by a usage limit before the verification gate ran. Needs a fresh-context verifier pass before merge. Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
Claude finished @kyle-sexton's task in 4m 10s —— View job Claude finished the code review
SummaryReviewed the diff ( Findings1. The CHANGELOG.md#L23-L27, also SKILL.md#L31, SKILL.md#L168, read-actions.md#L11 The changelog entry claims the rendered HTML page (~2.7MB) gets silently truncated by WebFetch, "losing deep versions," and that switching every fetch reference to the This suggests the root cause isn't rendered-HTML-vs-markdown format, but WebFetch's own size-based summarization (its docs note "results may be summarized if the content is very large") — and 511KB may still be well past that threshold. If so, this fix doesn't actually close the bug it's filed against; deep versions would still silently vanish from Per CLAUDE.md's fresh-docs mandate, this is exactly the kind of claim that needs to be confirmed against a live fetch this session rather than reasoned about — and a live fetch appears to contradict it. Given the PR is already flagged "unverified" pending a fresh-context verifier pass, I'd treat this as the one item that specifically needs re-testing (e.g., fetch a version range spanning older entries and confirm it actually resolves) before merge. 2. CHANGELOG.md#L28-L32, config.md#L38 Both say "verified 2026-08-04 against the CLI reference" but never link 3. Unverified claim about older-CLI fallback behavior "an older CLI rejects the value and starts the session at default effort" describes behavior of a pre-2.1.203 CLI given an effort value it doesn't recognize. The current CLI reference page only documents current behavior, not this historical fallback — so this specific clause looks like an assumption rather than something confirmed from a fetched page this session. If it's wrong (e.g., an old CLI actually errors out and never starts the session, rather than silently falling back to default effort), an operator reading this doc would be misled about the actual failure mode. Low severity since it's just a doc caveat, not launcher logic, but worth a quick sanity check or softening to "may reject/ignore the value" if unconfirmed. 4. Tests not executed I was unable to run Everything else checked out
|
|
Claude finished @kyle-sexton's task in 1m 5s —— View job Security review
No security issues found. This PR is a small, contained fix touching
Nothing here touches authz/access control, secrets/token handling, or GitHub Actions workflow files, and no new external input reaches a shell/eval/path-construction sink. |
|
Claude has reviewed this PR 4 times. The lane skips further automatic reviews after 5; deleting this comment resets the count. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c8ec46dca9
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…ng old-CLI behavior Adding `ultracode` to the static effort allowlist let it pass the launch-input preflight on any CLI. That preflight exists precisely so `restart` can reject a bad lane BEFORE stopping it; `ultracode` is the one effort upstream version-gates, so a machine below the floor would have had its healthy lane stopped and then failed to relaunch. The preflight now checks the installed `claude --version` against the documented v2.1.203 floor and skips the lane below it. Version comparison reuses the awk component-wise form context-guard already uses — `sort -V` is GNU-only and this repo's portability lane rejects it. Also drops the claim that an older CLI "rejects the value and starts the session at default effort". The CLI reference documents the version floor but not what an older binary does with the value, so the launcher refuses rather than guessing. lane-launcher.test.sh: 177 cases pass, including the new below-floor skip, at-floor launch, and the restart case proving a refused lane stays up. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 2m 58s —— View job Claude finished the code review
SummaryThis is a re-review after the new commit ( The
The implementation itself ( Still open — the changelog Test execution: same sandbox limitation as the prior review — Everything else checked out
|
|
Claude finished @kyle-sexton's task in 1m 27s —— View job Security review
No security issues found. Reviewed
Nothing here touches authz/access control, secrets/token handling, or GitHub Actions workflow files, and no new external/untrusted input reaches a shell/eval/path-construction sink. |
… truncation-claim corrections Both changelog channels truncate identically under WebFetch, so the raw-markdown switch is now described as a size and cleanliness win rather than a depth one, and the read paths warn never to call a version absent on a truncated fetch. The ultracode refusal is re-grounded on model-config, which documents that a pre-2.1.203 binary prints `Unknown --effort value ultracode` and starts at the default effort, replacing the claim that upstream left the behavior undocumented. The two gates that could not fail are now armed: the restart gate drops --dry-run so the stop actually reaches the stub, and the effort gate asserts the real launch line instead of an info echo printed before validation. cli_version is genuinely memoized via the cache global and honors require_claude's dry-run exemption. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 5m 11s —— View job Claude code review (re-review after commit
|
|
Claude finished @kyle-sexton's task in 1m 19s —— View job Security review
No security issues found. This run adds one new commit (
No |
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 1m 17s —— View job Claude code review (re-review after commit
|
|
Claude finished @kyle-sexton's task in 1m 2s —— View job Security review (re-review after commit
|
Brings the branch current with 1e08c6a. Only claude-ops conflicted: main's #1945 shipped claude-ops 0.27.1, the number this branch had taken, so the two 0.27.1 entries collided. Resolved the same way as the first merge -- main's CHANGELOG structure kept verbatim, this branch's entry re-inserted above main's newest under 0.27.2, and the manifest is main's with the version line alone advanced. An equal version is invisible to check-changelog-parity --check-bump (an unchanged version reads as "not bumped", so the entry check is skipped), so the collision was caught by comparing every plugin's version against main's directly rather than by the gate. The other fifteen remain strictly greater than main. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
No linked issue.
Doc-alignment roster row(s) 62, 77, 86. Version claim: claude-ops 0.27.0 -> 0.27.1.
STATUS: NOT READY TO MERGE — unverified. The producing agent (and in most cases its verifier) was terminated mid-run by a model usage limit on 2026-08-04. This PR exists so the work is durable on the remote rather than stranded in a local worktree. Before merge it needs a fresh-context verifier pass with the rationale withheld, per the campaign's producer-never-self-certifies rule.
Related
.work/doc-alignment/MERGE-RUNBOOK-2026-08-04.md(memory-tier, machine-local)🤖 Generated with Claude Code