qwen-code/packages/cli/src
wenshao 98942178dc fix(attribution): address Copilot review on shell, schema, and totals
Six items called out on PR #3115 by Copilot:

- shell.ts: addAttributionToPR's bash quote escaping doesn't apply to
  cmd.exe / PowerShell, where `\$` and `'\''` aren't honored. Skip the
  PR body rewrite entirely on Windows — losing PR attribution there is
  preferable to corrupting the user-approved `gh pr create` command.

- attributionTrailer.ts + shell.ts call site: buildGitNotesCommand used
  bash-style single-quote escaping on the JSON note, which is broken on
  Windows. Switched to argv form (`{ command, args }`) and routed the
  invocation through child_process.execFile so shell quoting is bypassed
  entirely. Tests updated to assert the argv shape.

- commitAttribution.ts: when a tracked file's aiChars exceeded the diff
  --stat-derived diffSize (long-line edits where diffSize ≈ lines * 40),
  humanChars clamped to 0 but aiChars stayed inflated, leaving aiChars +
  humanChars > the committed change magnitude. Clamp aiChars to diffSize
  so the totals stay consistent.

- shell.ts parseDiffStat: only normalized rename brace notation
  (`{old => new}`). Cross-directory renames emit `old/path => new/path`
  without braces, leaving diffSizes keyed by the full string. Added a
  second normalization step.

- shell.ts: addAttributionToPR docstring claimed `(X% N-shotted)` but
  the implementation only emits `(N-shotted by Generator)`. Updated the
  docstring to match the actual behavior.

- settingsSchema.ts + generator: gitCoAuthor went from boolean to object
  in the V4 migration. The exported JSON Schema now wraps the field in
  `anyOf: [boolean, object]` (via a new `legacyTypes` hint on
  SettingDefinition) so users with a stored boolean don't see a spurious
  IDE warning before their next launch runs the migration.
2026-05-01 13:02:05 +08:00
..
acp-integration feat(core): add shared permission flow for tool execution unification (#3723) 2026-04-30 22:10:37 +08:00
commands fix(cli): honor proxy setting (#3753) 2026-04-30 18:24:59 +08:00
config fix(attribution): address Copilot review on shell, schema, and totals 2026-05-01 13:02:05 +08:00
constants fix(cli): set qwen3.5-plus as default model for Coding Plan (#3193) 2026-04-13 17:11:50 +08:00
core feat(cli): auto-detect terminal theme ('auto' or unset) (#3460) 2026-04-22 16:58:45 +08:00
dualOutput fix(cli): wait for dual output stream shutdown (#3416) 2026-04-18 18:11:19 +08:00
export feat(vscode-companion): support /export session command (#2592) 2026-04-24 17:55:26 +08:00
i18n fix(cli): keep sticky todo panel compact (#3647) 2026-04-30 00:03:15 +08:00
nonInteractive refactor(cli): replace slash command whitelist with capability-based filtering (Phase 1) (#3283) 2026-04-20 14:34:43 +08:00
patches adh/bugfix/1563 (#4822) 2025-07-25 16:39:37 +00:00
remoteInput feat(cli): add dual-output sidecar mode for TUI (#3352) 2026-04-18 02:14:53 +08:00
services feat(core): managed background shell pool with /tasks command (#3642) 2026-04-28 11:06:50 +08:00
test-utils feat(cli): Phase 2 — slash command multi-mode expansion, ACP fixes, and UX improvements (#3377) 2026-04-22 19:12:44 +08:00
ui Merge remote-tracking branch 'origin/main' into feat/commit-attribution 2026-05-01 12:32:22 +08:00
utils Merge remote-tracking branch 'origin/main' into feat/commit-attribution 2026-04-30 17:28:38 +08:00
gemini.test.tsx mcp config as cli (#1279) 2026-04-29 07:00:33 +08:00
gemini.tsx feat(cli): background-agent UI — pill, combined dialog, detail view (#3488) 2026-04-28 10:57:59 +08:00
nonInteractiveCli.test.ts chore(core): drop tool token usage tracking (#3727) 2026-04-30 15:35:01 +08:00
nonInteractiveCli.ts feat(cli): background-agent UI — pill, combined dialog, detail view (#3488) 2026-04-28 10:57:59 +08:00
nonInteractiveCliCommands.test.ts feat(vscode-companion): support /export session command (#2592) 2026-04-24 17:55:26 +08:00
nonInteractiveCliCommands.ts feat(cli): Phase 2 — slash command multi-mode expansion, ACP fixes, and UX improvements (#3377) 2026-04-22 19:12:44 +08:00
validateNonInterActiveAuth.test.ts feat(auth): discontinue Qwen OAuth free tier (2026-04-15 cutoff) (#3291) 2026-04-15 22:30:20 +08:00
validateNonInterActiveAuth.ts Merge branch 'main' into feat/debug-logging-refactor 2026-02-01 20:47:38 +08:00