Skip to content

fix(chat): align Qwen ACP with 0.24.0 - #1263

Merged
arul28 merged 5 commits into
mainfrom
ade/provider-upgrade-qwen-0-24-0-f4c21923
Sep 19, 2026
Merged

arul28 merged 5 commits into
mainfrom
ade/provider-upgrade-qwen-0-24-0-f4c21923

Conversation

@arul28

@arul28 arul28 commented Sep 19, 2026

Copy link
Copy Markdown
Owner

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

  • Refresh the real initialize fixture and ACP assertions to Qwen 0.24.0.
  • Propagate ADE's selected reasoning effort at startup and on a live reused Qwen session, including the Qwen default reset sentinel.
  • Distinguish unsupported-option rejection from transient ACP failures; transient failures invalidate the runtime for recreation and repeated selections retry.
  • Update desktop Settings/model-picker copy, CLI/TUI guidance, and ACP verification/spec docs.
  • Qwen remains an external CLI; ADE does not install, pin, or write Qwen's config.

Verification

  • Isolated Qwen 0.24.0 ACP initialize/auth probe: initialize succeeds; unauthenticated session/new returns the expected auth error.
  • Focused ACP tests: 144 passed.
  • Qwen chat runtime test: 1,061 passed, including live high/default updates and transient retry without an unnecessary new session.
  • Desktop affected shards 3/8, 4/8, 8/8: 1,571 passed/4 pre-existing skips; 2,027/3; 2,728/2.
  • CLI/TUI parity tests: 32 passed.
  • Desktop and CLI typechecks: passed.
  • Docs validator remains blocked by the pre-existing lane baseline mismatch (CHANGELOG.md 1.2.73 vs latest tag v1.2.74); no unrelated release files changed.

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-responses auth, reasoning_effort instead of thinking on session/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 default sentinel). 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 extra session/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

    • Added support for configuring Qwen’s reasoning effort, including updates to active sessions without restarting them.
    • Added support for Qwen’s openai-responses authentication method alongside the existing OpenAI-compatible option.
  • Improvements

    • Updated Qwen setup guidance to require Qwen Code 0.24.0.
    • Clarified authentication commands, required environment variables, optional proxy configuration, and configuration-file behavior.

@vercel

vercel Bot commented Sep 19, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
ade Ignored Ignored Preview Sep 19, 2026 5:26am UTC

@coderabbitai

coderabbitai Bot commented Sep 19, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

Warning

Review limit reached

Next included review available in 28 minutes.

Check out review usage here.

View limit details

Limit 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.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Repository: arul28/ADE/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 4032c32d-b028-4cc2-b48d-78202aa0c998

📥 Commits

Reviewing files that changed from the base of the PR and between ecc1fd8 and 0076d60.

📒 Files selected for processing (3)
  • apps/desktop/src/main/services/chat/acpHost/acpRuntimeCoordinator.ts
  • apps/desktop/src/main/services/chat/agentChatService.test.ts
  • apps/desktop/src/main/services/chat/agentChatService.ts
📝 Walkthrough

Walkthrough

Qwen ACP support now targets version 0.24.0. The dialect exposes reasoning_effort and openai-responses. ACP runtime creation and updates apply reasoning effort, with updated fixtures, tests, comments, and setup guidance.

Changes

Qwen ACP support

Layer / File(s) Summary
Qwen dialect and fixture contracts
apps/desktop/src/main/services/chat/acpHost/acpDialects/qwen.ts, apps/desktop/src/main/services/chat/acpHost/fixtures/*, apps/desktop/src/main/services/chat/acpHost/*test.ts, apps/desktop/src/main/services/chat/acpHost/acpHostTypes.ts
Qwen references now use version 0.24.0. The dialect replaces thinking with reasoning_effort. Fixtures and tests include the openai-responses authentication method.
Reasoning-effort runtime flow
apps/desktop/src/main/services/chat/acpHost/acpRuntimeCoordinator.ts, apps/desktop/src/main/services/chat/acpHost/index.ts, apps/desktop/src/main/services/chat/agentChatService.*
ACP runtime creation and reused-session updates apply reasoning_effort. The coordinator classifies rejected and transient update failures without blocking session startup.
Qwen authentication guidance
apps/ade-cli/src/..., apps/desktop/src/main/services/ai/*, apps/desktop/src/renderer/components/settings/providers/acpProviders.tsx, apps/desktop/src/renderer/components/shared/ModelPicker/providerEmptyState.tsx, apps/desktop/src/shared/acpProviderMetadata.ts
Comments and provider guidance reference Qwen 0.24.0 and document qwen --auth-type=openai-responses.

Priority: ➖ Normal

Estimated code review effort: 3 (Moderate) | ~25 minutes

Change: Feature

Suggested labels: desktop, docs

Merge Risk: 🟡 Moderate · up to ecc1f

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)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning 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: … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely identifies the main change: aligning the Qwen ACP integration with version 0.24.0.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

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 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cursor

cursor Bot commented Sep 19, 2026

Copy link
Copy Markdown
Contributor

Bugbot couldn't run - usage limit reached

Bugbot 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)

devin-ai-integration[bot]

This comment was marked as resolved.

@arul28 arul28 changed the title provider-upgrade-qwen-0.24.0 -> Primary fix(chat): align Qwen ACP with 0.24.0 Sep 19, 2026
devin-ai-integration[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

@arul28
arul28 force-pushed the ade/provider-upgrade-qwen-0-24-0-f4c21923 branch from 43ae2f0 to ecc1fd8 Compare September 19, 2026 04:54
@cursor

cursor Bot commented Sep 19, 2026

Copy link
Copy Markdown
Contributor

Bugbot couldn't run - usage limit reached

Bugbot 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)

devin-ai-integration[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 new potential issue.

Devin Review

Comment on lines +51869 to +51876
if (
managed.acpReasoningEffortInvalidated
&& runtime.session.connection.isAlive()
&& !runtime.processFailed
) {
managed.runtimeInvalidated = false;
}
managed.acpReasoningEffortInvalidated = false;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

@arul28
arul28 merged commit 12413bc into main Sep 19, 2026
40 checks passed
@arul28
arul28 deleted the ade/provider-upgrade-qwen-0-24-0-f4c21923 branch September 19, 2026 22:03
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