Skip to content

fix: make Claude binary provider lanes work with Claude Code 2.1 - #95

Merged
pilotwaffle merged 2 commits into
mainfrom
fix/claude-cli-plan-mode
Oct 24, 2026
Merged

pilotwaffle merged 2 commits into
mainfrom
fix/claude-cli-plan-mode

Conversation

@pilotwaffle

Copy link
Copy Markdown
Owner

Summary

  • Remove --permission-mode plan from the claude argv in the candidate, chat, and live provider adapters. Claude Code 2.1 refuses to emit the requested deliverable in plan mode and returns prose, so every New task build failed with task_provider_output_invalid. Tools are already disabled with --tools "", so plan mode added no containment.
  • State the base_hash contract explicitly in the candidate prompt: null for create, the input file's content_hash for replace. Without it the model sometimes returned a string for new files and the build failed with task_provider_base_hash_invalid.

Verification

  • Reproduced both failures by replaying the server's exact argv, sanitized environment, and prompt through OwnedProcess against claude.exe 2.1.296 under a Claude Max login.
  • After the change: New task end to end in the dashboard (goal -> candidate ready -> structural check exit 0 -> accept -> apply) wrote hello.py to the configured project, and the file runs.
  • python -m pytest full suite: exit 0.

Not covered

  • API-key provider lanes (deepseek, kimi, qwen, zai) are unchanged and were not exercised live.
  • Dashboard UI issues observed during review (Send/Stop inert on a closed run with no feedback, floating chat panel overlapping lanes, idle polling) are out of scope here.

🤖 Generated with Claude Code

Remove --permission-mode plan from the claude argv in the candidate, chat,
and live provider adapters. Claude Code 2.1 refuses to emit the requested
deliverable in plan mode and returns prose instead, so every New task build
failed with task_provider_output_invalid. Tools are already disabled with
--tools "", so plan mode added no containment.

State the base_hash contract explicitly in the candidate prompt (null for
create, the input file's content_hash for replace). Without it the model
sometimes returned a string for new files, failing
task_provider_base_hash_invalid.

Verified end to end on Windows with claude.exe 2.1.296 under a Claude Max
login: goal -> candidate ready -> structural check exit 0 -> accept -> apply
wrote the file to the project. Full pytest suite passes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-24T03:39:51.743966Z 7dd66d0 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@pilotwaffle
pilotwaffle merged commit a8e3f23 into main Oct 24, 2026
24 checks passed
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