mirror of
https://github.com/QwenLM/qwen-code.git
synced 2026-08-06 23:35:34 +00:00
* feat(voice): support trusted private ASR base URLs * fix(voice): address private endpoint review findings * test(voice): cover private endpoint edge cases * test(voice): pin remaining endpoint edge cases * fix(voice): address private endpoint review feedback * fix(voice): clarify allowlist URL and normalize IPv6 * fix(voice): harden NAT64 address validation * fix(voice): address managed endpoint review findings * refactor(voice): extract shared IPv6 transition unwrap ladder (#8350) Deduplicate the IPv6-transition unwrapping sequence (mapped, compatible, NAT64, dotted-quad) that was repeated verbatim between isPrivateNetworkIp and isAlwaysBlockedVoiceAddress on both CLI and Desktop surfaces. A single unwrapIpv6TransitionStep helper now yields the next canonical address (or 'blocked' for unrecognized ::ffff: forms), and each predicate recurses through it, preserving the exact re-check semantics at every unwrap level. * test(voice): cover allowInsecureBaseUrl wiring through desktop default transports (#8350) * fix(voice): add allowlist hint to private-network rejection error (#8350) * fix(voice): reject always-blocked base URLs before offering the allowlist hint (#8350) * fix(voice): resolve exact desktop voice provider before OAuth (#8350) * fix(voice): address review feedback for trusted private base URLs (#8350) * fix(voice): align desktop voice resolution with CLI semantics (#8350) * fix(voice): scope desktop fail-closed resolution to policy-bearing entries (#8350) * fix(voice): address round-8 review findings for trusted private base URLs (#8350) Run the invasive process-global `mock.module('ws')` suite as voice-ws-handler.isolated.ts so the desktop package's single-process `bun test` run no longer leaks the fake socket into unrelated ws consumers; the existing isolated loop runs it in its own process. Shape-guard the desktop provider scan: non-object modelProviders elements are skipped (falling through to OAuth instead of throwing a raw TypeError), and non-string baseUrl/envKey/settings.env values on a voice-model entry now surface the PROVIDER_ENTRY_REMEDY remediation error instead of crashing. Compute the DashScope-compatible /v1 rewrite before any allowlist match in fromExactModelProvider so the stage-1 check, the remediation messages, and the top-level recheck all compare the same final URL and a single allowlist entry converges for split-horizon deployments. Extend the CLI allowlist remediation messages to state which settings scopes honor the entry, since serve mode never shows the interactive workspace-strip warning. Thread providerProtocol through the CLI voice model seams (createVoiceModelSource and the daemon buildModelsConfig) so protocol-mapped custom provider groups resolve like the rest of the CLI model surface, and document the remaining protocol-agnostic desktop scan in the design doc. Correct the getHomeEnvFallback comment: it adopts the narrower getHomeEnvFallbackVars candidate set on purpose. Add multi-record DNS answer tests on both CLI and desktop net guards so the records.some classification is pinned against the array shape defaultLookupHost always produces in production. * fix(voice): address round-9 review findings for trusted private base URLs (#8350) * fix(voice): address round-10 review findings for trusted private base URLs (#8350) * fix(voice): classify desktop voice duplicates before ambiguity check (#8350) * fix(scripts): compare voice guard mirrors as parse trees (#8350) --------- Co-authored-by: rockybot2026 <265985139+rockybot2026@users.noreply.github.com> Co-authored-by: qwen-code-dev-bot <qwen-code-dev@service.alibaba.com> Co-authored-by: qwen-code-ci-bot <qwen-code-ci-bot@users.noreply.github.com> Co-authored-by: qwen-code-dev-bot <qwen-code-dev-bot@users.noreply.github.com> Co-authored-by: Shaojin Wen <shaojin.wensj@alibaba-inc.com> |
||
|---|---|---|
| .. | ||
| audio-capture-prebuilds.yml | ||
| auto-minimize-spam.yml | ||
| build-and-publish-image.yml | ||
| cd-cua-driver.yml | ||
| cd-mobile-mcp.yml | ||
| ci.yml | ||
| codeql.yml | ||
| comment-attachment-guard.yml | ||
| desktop-release.yml | ||
| docs-page-action.yml | ||
| dsw-swe-verified-release.yml | ||
| e2e.yml | ||
| finalize-release.yml | ||
| live-host-release.yml | ||
| live-host.yml | ||
| main-ci-failure-issue.yml | ||
| npm-cache.yml | ||
| pr-force-push-reminder.yml | ||
| pr-self-report-label.yml | ||
| qwen-autofix.yml | ||
| qwen-ci-flaky-rerun.yml | ||
| qwen-code-pr-review.yml | ||
| qwen-fleet-shepherd.yml | ||
| qwen-issue-followup-bot.yml | ||
| qwen-pr-safety-precheck.yml | ||
| qwen-triage-finalize.yml | ||
| qwen-triage.yml | ||
| release-sdk-java.yml | ||
| release-sdk-python.yml | ||
| release-sdk.yml | ||
| release-vscode-companion.yml | ||
| release.yml | ||
| repo-hygiene.yml | ||
| sdk-java.yml | ||
| sdk-python.yml | ||
| serve-ab-publish.yml | ||
| serve-ab.yml | ||
| stale.yml | ||
| sync-cua-driver-to-oss.yml | ||
| sync-release-to-oss.yml | ||
| update-ecs-runner-qwen.yml | ||
| web-shell-visuals-cleanup.yml | ||
| web-shell-visuals-publish.yml | ||
| web-shell-visuals.yml | ||
| windows-runner-smoke.yml | ||