Skip to content

Pin the review model, and stop hiding the error that explains a failure - #111

Merged
JohnCampionJr merged 1 commit into
tomlm:mainfrom
JohnCampionJr:fix-claude-review
Aug 30, 2026
Merged

JohnCampionJr merged 1 commit into
tomlm:mainfrom
JohnCampionJr:fix-claude-review

Conversation

@JohnCampionJr

Copy link
Copy Markdown
Collaborator

claude-review has failed on every PR since it was added — in under half a second, with nothing in the log but is_error:true.

The init line had the answer: left to default, the CLI resolved to claude-opus-5[1m] — the 1M-context variant, which this repo's API key cannot use — so the first API call died. Zero cost, empty modelUsage, 421 ms. Neither repo pins a model anywhere a workflow reads, so the resolution happened inside the CLI and could drift again.

Two changes, both workflows:

  • --model claude-opus-5 in claude_args, explicit rather than resolved.
  • show_full_output: true — the default redaction reduced this failure to one boolean, and the diagnosis had to be reconstructed from cost and timing. On a public repo whose prompts are already in the workflow file, an unreadable error is not a security property worth having.

This PR proves itself: pull_request runs take the workflow from the merge ref, so the claude-review check on this very PR runs the pinned model. Green check here = fixed.

Same fix going to Iciclecreek.Avalonia.Terminal, which has the identical pair of workflows and the identical failure.

🤖 Generated with Claude Code

claude-review has failed on every pull request since it was added, in under half a
second, with nothing in the log but is_error:true. The init line had the answer:
left to default, the CLI resolved to claude-opus-5[1m] -- the 1M-context variant,
which this repository's API key cannot use -- so the first API call died. Zero
cost, empty modelUsage, one turn, 421 ms.

Neither repo pins a model anywhere a workflow reads, so the resolution happened
inside the CLI and could change again. It is now explicit: --model claude-opus-5 in
claude_args, in both workflows, ahead of the flags they already pass.

And show_full_output is on. The default redaction reduced this failure to a single
boolean; the actual error message never reached the log, and the diagnosis had to
be reconstructed from the cost and the timing. An error that cannot be read is not
a security property worth having on a public repository whose prompts are already
in the workflow file.

The fix proves itself the way the CI-gate fix did: pull_request runs take the
workflow from the merge ref, so this PR's own claude-review run executes the pinned
model.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@JohnCampionJr
JohnCampionJr merged commit 875b9d3 into tomlm:main Aug 30, 2026
4 checks passed
JohnCampionJr added a commit to JohnCampionJr/Iciclecreek.Avalonia.Terminal that referenced this pull request Aug 30, 2026
Same fix as tomlm/XTerm.NET#111, same failure: every claude-review run died in
under half a second with is_error:true and nothing else. The init line had it --
left to default, the CLI resolved to claude-opus-5[1m], the 1M-context variant this
key cannot use, so the first API call failed. Zero cost, empty modelUsage.

This repo already had show_full_output switched on "temporarily, for diagnosis" by
a parallel investigation; the cause is now known, so the switch stays and the
diagnostic comment becomes the explanation. The model is pinned explicitly in both
workflows -- the resolution happened inside the CLI, nowhere a workflow reads, and
could drift again.

Proves itself as the CI-gate fix did: pull_request runs take the workflow from the
merge ref, so this PR's own claude-review runs the pinned model.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
JohnCampionJr added a commit to JohnCampionJr/Iciclecreek.Avalonia.Terminal that referenced this pull request Aug 30, 2026
Same fix as tomlm/XTerm.NET#111, same failure: every claude-review run died in
under half a second with is_error:true and nothing else. The init line had it --
left to default, the CLI resolved to claude-opus-5[1m], the 1M-context variant this
key cannot use, so the first API call failed. Zero cost, empty modelUsage.

This repo already had show_full_output switched on "temporarily, for diagnosis" by
a parallel investigation; the cause is now known, so the switch stays and the
diagnostic comment becomes the explanation. The model is pinned explicitly in both
workflows -- the resolution happened inside the CLI, nowhere a workflow reads, and
could drift again.

Proves itself as the CI-gate fix did: pull_request runs take the workflow from the
merge ref, so this PR's own claude-review runs the pinned model.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
JohnCampionJr added a commit to tomlm/Iciclecreek.Avalonia.Terminal that referenced this pull request Aug 30, 2026
…own (#108)

Same fix as tomlm/XTerm.NET#111, same failure: every claude-review run died in
under half a second with is_error:true and nothing else. The init line had it --
left to default, the CLI resolved to claude-opus-5[1m], the 1M-context variant this
key cannot use, so the first API call failed. Zero cost, empty modelUsage.

This repo already had show_full_output switched on "temporarily, for diagnosis" by
a parallel investigation; the cause is now known, so the switch stays and the
diagnostic comment becomes the explanation. The model is pinned explicitly in both
workflows -- the resolution happened inside the CLI, nowhere a workflow reads, and
could drift again.

Proves itself as the CI-gate fix did: pull_request runs take the workflow from the
merge ref, so this PR's own claude-review runs the pinned model.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
@JohnCampionJr
JohnCampionJr deleted the fix-claude-review branch August 31, 2026 18:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant