fix(chat): align Qwen ACP with 0.24.0 - #1263
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
|
Warning Review limit reachedNext included review available in 28 minutes. View limit detailsLimit details: You’ve used all 2 included reviews currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Repository: arul28/ADE/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughQwen ACP support now targets version 0.24.0. The dialect exposes ChangesQwen ACP support
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Feature Suggested labels: Merge Risk: 🟡 Moderate · up to Qwen chats that rely on the default model will not receive the reasoning-effort level selected in ADE at session startup, silently using Qwen's own default instead. This should be fixed before merge since it affects a common usage path, though users can work around it by explicitly selecting a model; it does not cause crashes or data loss. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 60.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 13 files. (3 skipped: 3 too large.) ✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_caf32333-8f83-4ff3-bfda-2200baff37ac) |
43ae2f0 to
ecc1fd8
Compare
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_bb280b8a-7b58-418e-a9f1-9d619d9d549c) |
| if ( | ||
| managed.acpReasoningEffortInvalidated | ||
| && runtime.session.connection.isAlive() | ||
| && !runtime.processFailed | ||
| ) { | ||
| managed.runtimeInvalidated = false; | ||
| } | ||
| managed.acpReasoningEffortInvalidated = false; |
There was a problem hiding this comment.
🟡 Concurrent effort updates desynchronize Qwen
Concurrent Qwen updates let an older successful setAcpReasoningEffort clear a newer transient failure. The session retains the newer choice while Qwen retains the older value. The next turn uses the wrong reasoning effort and skips retrying.
Learn more
Each update writes managed.session.reasoningEffort before awaiting its ACP request. The reconciliation state has no generation or requested value, so any successful request can clear an invalidation created by another in-flight request. This matters because desktop, remote, and synced clients can update one chat concurrently.
Example: Update A selects high and starts its RPC. Update B then selects low; B's RPC fails transiently and marks the runtime invalid. A's older RPC then succeeds, clearing that invalidation. ADE stores low, Qwen uses high, and the next send reuses the runtime without applying low.
Recommended fix: Assign a monotonically increasing reasoning-update generation before each RPC. Reconcile only when the completion still matches the latest generation and requested value. A stale success must never clear a newer failure; if desired, a stale failure can be ignored once a newer request has succeeded.
Was this helpful? React with 👍 or 👎 to provide feedback.
Problem
ADE's Qwen ACP dialect and provider guidance still encoded the 0.22.3 handshake while the current @qwen-code/qwen-code release is 0.24.0.
Cause
Qwen 0.24.0 adds the openai-responses auth method, exposes reasoning_effort through session/set_config_option, and keeps that option session-scoped; ADE fixtures, tests, and copy were stale.
Change and boundary
Verification
Model/harness: GPT-5 / Codex app-server in ADE lane f4c21923.
Note
Medium Risk
Touches live Qwen ACP session config and runtime invalidation on effort changes; scope is limited to the Qwen provider path with added tests.
Overview
Aligns ADE’s Qwen ACP integration with Qwen Code 0.24.0: refreshed initialize fixture and assertions for the new handshake (
openai+openai-responsesauth,reasoning_effortinstead ofthinkingonsession/set_config_option).Runtime behavior: ADE now pushes the user’s selected reasoning effort when a Qwen ACP session opens and updates it on an already-open session (clearing uses Qwen’s
defaultsentinel). Unsupported values are treated as non-fatal rejections; transport/server failures invalidate the runtime so the next turn can recreate it and retries don’t force an extrasession/new.Surfacing: CLI/TUI login hints, Settings/model-picker copy, shared metadata, and ACP docs are updated to 0.24.0 and the new auth flags. Qwen remains an external CLI—ADE still does not install or write
~/.qwen.Reviewed by Cursor Bugbot for commit ecc1fd8. Configure here.
Summary by CodeRabbit
New Features
openai-responsesauthentication method alongside the existing OpenAI-compatible option.Improvements