Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1156 commits
Select commit Hold shift + click to select a range
5c8af1a
fix(cli): allow ACP local fallback reads from /tmp (#6370)
doudouOUC Jul 6, 2026
cb49633
test(core): make context warning threshold test dynamic (#6391)
yiliang114 Jul 6, 2026
c7fa13d
fix(core): default context windows to 200k (#6387)
tanzhenxin Jul 6, 2026
350191e
feat(web-shell): add token-usage analytics dashboard to Daemon Status…
wenshao Jul 6, 2026
3744cd0
feat(cli): Add Phase 1 workspace runtime registry (#6394)
doudouOUC Jul 6, 2026
f20925e
fix(triage): exclude test files from core module size gate and distin…
Copilot Jul 6, 2026
879b854
fix(cli): Keep model picker entries contiguous in short terminals (#6…
tanzhenxin Jul 6, 2026
063535f
fix(core): log OpenAI error request IDs (#6379)
tanzhenxin Jul 6, 2026
57b3dcd
fix(cli): ignore current review run in presubmit CI (#6397)
yiliang114 Jul 6, 2026
5f7b57f
fix(autofix): improve review addressing and verification (#6382)
yiliang114 Jul 6, 2026
4292102
fix(core): require integer ReadFile pagination params (#6381)
VectorPeak Jul 6, 2026
7281eb5
feat(core): surface PreToolUse hook 'ask' as a TUI confirmation (#5629)
LaZzyMan Jul 6, 2026
2fc6b08
fix(core): resolve symlinks when matching conditional rules and skill…
DennisYu07 Jul 6, 2026
0f98842
fix(web-shell): refine tool detail cards (#6399)
ytahdn Jul 6, 2026
ac123bb
fix(core): preserve no-argument tool calls that stream an empty argum…
tomsen02 Jul 6, 2026
57326e5
feat(review): add issue-fidelity and root-cause ownership gate to /re…
DragonnZhang Jul 6, 2026
881d682
fix(cli): use EnvHttpProxyAgent in channel proxy to respect NO_PROXY …
qwen-code-dev-bot Jul 6, 2026
d56bd1d
fix(daemon): handle settings reload events outside transcript (#6407)
doudouOUC Jul 6, 2026
be7e874
Handle missing web-shell sessions without redirecting (#6357)
ytahdn Jul 6, 2026
bcdb44c
docs(hooks): document PreToolUse permissionDecision 'ask' behavior (#…
DragonnZhang Jul 6, 2026
70220fb
feat(cli): Add Phase 2a workspace foundation (#6410)
doudouOUC Jul 7, 2026
6352d97
fix(memory): don't advance AutoMemory cursor when extractor makes zer…
lcheng321 Jul 7, 2026
245defb
fix(core): gate image payload replacement behind threshold (#6380)
LaZzyMan Jul 7, 2026
f41e95a
feat(web-shell): add Session Overview panel and in-window split view …
wenshao Jul 7, 2026
80340fb
fix(review): remove qwen-code-specific core-infra gate from bundled /…
DragonnZhang Jul 7, 2026
6863268
fix(web-shell): polish scheduled task timeline UI (#6386)
callmeYe Jul 7, 2026
db8e344
fix(cli): smoother streaming table rendering (#6345)
MikeWang0316tw Jul 7, 2026
1ee9780
fix(core): Gate large PDF text extraction (#6409)
doudouOUC Jul 7, 2026
06cd7ce
feat(cli): add --project and --global flags to /model for per-project…
Alex-ai-future Jul 7, 2026
ff317d6
perf(core): Add session start profiler (#6349)
doudouOUC Jul 7, 2026
132801b
feat(core): add maxSubAgents setting to limit parallel sub-agent coun…
yiliang114 Jul 7, 2026
ce00e93
fix(core): allow rewind after compressed history (#6358)
yiliang114 Jul 7, 2026
46bbe76
fix(core): align monitor limit parameter schemas (#6413)
VectorPeak Jul 7, 2026
4c884e4
fix(core): prevent KV-cache invalidation on tool_search by reordering…
Aleks-0 Jul 7, 2026
067cfbb
docs: consolidate design docs and plans under docs/ (#6417)
DragonnZhang Jul 7, 2026
9ee8546
fix(shell): avoid Unix pager default on Windows (#6390)
han-dreamer Jul 7, 2026
001d20f
feat(scheduled-tasks): run each task in its own dedicated, named sess…
wenshao Jul 7, 2026
fde1882
feat(cli): support stacked slash-skill invocations (#6361)
DennisYu07 Jul 7, 2026
5d2bfbd
feat(core): add Tool(param:value) permission syntax for parameter-lev…
DennisYu07 Jul 7, 2026
7e0e79b
fix(daemon): preserve user message source metadata (#6385)
callmeYe Jul 7, 2026
736b710
feat(core): add tools.visible config for selective deferred-tool visi…
Aleks-0 Jul 7, 2026
077a247
fix(core): prevent re-invoking loaded skill from appending duplicate …
DennisYu07 Jul 7, 2026
55652d4
fix(web-shell): keep split-view session list fresh and preserve panes…
wenshao Jul 7, 2026
f7296d0
feat(web-shell): add Qwen logo beside the sidebar new-chat button (#6…
wenshao Jul 7, 2026
c7d22dc
fix(web-shell): improve user tags and mobile menu layout (#6441)
yuanyuanAli Jul 7, 2026
ce2fee9
fix(web-shell): clear stale floating todos (#6425)
ytahdn Jul 7, 2026
bd6816b
fix(web-shell): keep errored turns expanded (#6424)
ytahdn Jul 7, 2026
cfb1feb
Avoid refreshing session activity on load (#6439)
yiliang114 Jul 7, 2026
17138b5
fix(web-shell): hide rotating loading phrase in split-view pane statu…
wenshao Jul 7, 2026
6fdd0fc
fix(core): Support large text range reads (#6404)
doudouOUC Jul 7, 2026
9bb68b3
fix(core): strip system-reminder blocks from session title and recap …
yiliang114 Jul 7, 2026
df6be03
Upgrade GitHub Actions for Node 24 compatibility (#5157)
salmanmkc Jul 7, 2026
010bedf
fix(autofix): report review handoff failures (#6415)
yiliang114 Jul 7, 2026
d1d53d7
fix(monitor): preserve inherited git pager (#6429)
han-dreamer Jul 7, 2026
40340ef
fix(serve): classify interrupted model stream errors (#6422)
ytahdn Jul 7, 2026
1d19fe7
fix(web-shell): refine tool call summaries (#6450)
ytahdn Jul 7, 2026
55b2886
fix(web-shell): split-view pane fixes (remove "current" badge, clear …
wenshao Jul 7, 2026
971d4ba
feat(web-shell): add column reorder, resize, and freeze controls to m…
jifeng Jul 7, 2026
467b292
feat(channels): add WeCom intelligent robot channel (#6436)
qqqys Jul 7, 2026
e3d7d10
[codex] add natural channel memory intents (#6376)
qqqys Jul 7, 2026
3d1122d
perf(cli): defer startup prefetch tasks (#6303)
water-in-stone Jul 7, 2026
65c82be
feat(web-shell): unify scheduled task sessions — bind chat-created ta…
wenshao Jul 7, 2026
86ae16a
chore(release): v0.19.7 (#6484)
qwen-code-ci-bot Jul 7, 2026
394c1a2
docs(channels): add WeCom to channels overview (#6490)
DragonnZhang Jul 7, 2026
27f8f2c
feat(cli): Add serve env isolation and total admission (#6416)
doudouOUC Jul 8, 2026
560e610
feat(cli): review auto-generated skills with an inline preview, edito…
tanzhenxin Jul 8, 2026
faf7c43
fix(core): reject fractional LSP limit inputs (#6455)
VectorPeak Jul 8, 2026
14f02c1
fix(core): Match hook display-name matchers to tool ids (#6373)
LaZzyMan Jul 8, 2026
045bbee
fix(web-shell): hide sidebar settings text when width is insufficient…
wenshao Jul 8, 2026
29cefd7
fix(web-shell): count daemon sessions in Daemon Status usage dashboar…
wenshao Jul 8, 2026
79bc668
feat(cli): Show permission mode badge in footer for DEFAULT mode (#6498)
DennisYu07 Jul 8, 2026
58e51eb
fix(channel): Relay ACP permission requests (#6446)
qqqys Jul 8, 2026
e83d548
fix(core): reject Windows-style workspace artifact paths (#6483)
VectorPeak Jul 8, 2026
49aa4c8
fix(cli): show file path in compact tool summary for single collapsib…
Alex-ai-future Jul 8, 2026
5605c1b
fix(cua-driver): migrate Windows scripts + README rewrite (#6515)
LaZzyMan Jul 8, 2026
1420566
feat(serve): Bound replay snapshot history (#6482)
doudouOUC Jul 8, 2026
d8dc804
feat(web-shell): restore the full composer in split-view panes (#6510)
wenshao Jul 8, 2026
5b43edc
fix(cli): bound the live streaming-table pending height (fix scroll-t…
MikeWang0316tw Jul 8, 2026
880b06e
fix(cli): clean up IDE client after deferred timeout (#6509)
water-in-stone Jul 8, 2026
727c2d5
fix(web-shell): prevent sidebar footer overflow (#6522)
callmeYe Jul 8, 2026
5b2d136
fix(web-shell): refine markdown table interactions (#6500)
jifeng Jul 8, 2026
8296ce9
fix(web-shell): i18n for ~43 hardcoded English strings across 15 file…
wenshao Jul 8, 2026
51f0364
fix(cli): keep status line on session model (#6514)
yiliang114 Jul 8, 2026
a6ad81f
feat(hooks): inject background tasks and cron jobs status into Stop/S…
DennisYu07 Jul 8, 2026
e28a637
fix(cli): allow approval-mode changes without bearer token (#6527)
wenshao Jul 8, 2026
a07fdc6
fix(memory): allow forget to remove user managed memory (#6432)
callmeYe Jul 8, 2026
43e6a93
feat(cli): Enable multi-workspace session routing (#6511)
doudouOUC Jul 8, 2026
c516ee8
fix(core): omit deprecated temperature param for Claude 4.8+ (#6520)
qwen-code-dev-bot Jul 8, 2026
271664b
feat(cli): auto-retry next port when serve port is in use (#6513)
wenshao Jul 8, 2026
151d269
feat: extension file reload — watch for plugin changes and hot-reload…
ZijianZhang989 Jul 8, 2026
1f92787
feat(channels): add dmPolicy config to disable private/DM messages (#…
chenghuichen Jul 8, 2026
b2b02d2
feat(web-shell): expose external split controls (#6523)
ytahdn Jul 8, 2026
e7f94a5
fix(core): detect non-SSE HTTP 200 responses in OpenAI streaming pipe…
Copilot Jul 8, 2026
955ad27
fix(scripts): handle missing NPM dist-tags gracefully in release vers…
qwen-code-dev-bot Jul 8, 2026
7281f0d
feat(core): add working_dir to the Agent tool for pinning subagents t…
wenshao Jul 8, 2026
e3e449f
feat(autofix): extend review loop to all dev-bot PRs, add real-time t…
wenshao Jul 8, 2026
e935141
fix(cli): fixed-width elapsed time below one minute to stop status-li…
zjunothing Jul 8, 2026
082b3bb
fix(memory): give each linked git worktree its own auto-memory root (…
zjunothing Jul 8, 2026
5f41b16
fix(cli): unblock /clear after task cancellation and surface the bloc…
zjunothing Jul 8, 2026
b2bee70
fix(web-shell): stabilize slash command i18n in split-view panes (#6546)
wenshao Jul 8, 2026
b330ec8
chore(release): v0.19.8 (#6549)
qwen-code-ci-bot Jul 8, 2026
016d624
fix(core): detect subagent tool call loops (#6543)
yiliang114 Jul 8, 2026
65c0d36
fix(session): detect and mark broken history chains instead of silent…
doudouOUC Jul 8, 2026
74ebb10
fix(cli): prefer command name match over alias match regardless of re…
Alex-ai-future Jul 8, 2026
87cad6f
feat(memory): make background memory agent timeouts configurable (#6459)
zjunothing Jul 8, 2026
393943d
feat(cli): Add session owner index for workspace runtimes (#6540)
doudouOUC Jul 8, 2026
6dafb33
docs: fix model-provider config shape and refresh feature/setting dri…
DragonnZhang Jul 8, 2026
b8b3287
fix(channels): add chat payload diagnostics (#6539)
qqqys Jul 8, 2026
0a54652
fix(core): configurable vision bridge timeout + retry with fresh budg…
zjunothing Jul 8, 2026
10fa9ef
fix(shell): avoid self-kill from pgrep selectors (#6544)
yiliang114 Jul 8, 2026
fbdaa52
Gate browser automation MCP on external adapter (#6472)
yiliang114 Jul 8, 2026
e3a247f
perf(core): add pure-ASCII fast path to text token estimation (#6551)
dexhunter Jul 8, 2026
3b20a12
fix(extension): clean tempDir before fallback git clone on Windows (#…
C0d3N1nja97342 Jul 9, 2026
4d50153
chore(core): remove stale refreshStartupContextReminder mocks from to…
Aleks-0 Jul 9, 2026
25423b1
fix(cli): align memory dialog with managed memory (#6434)
callmeYe Jul 9, 2026
ba709c2
ci(autofix): Add single-target scheduler (#6547)
yiliang114 Jul 9, 2026
6e48077
fix(daemon): surface workspace memory task error details (#6431)
callmeYe Jul 9, 2026
d8084c6
fix(serve): stop cdp-mcp-command reading process.env directly (#6562)
chinesepowered Jul 9, 2026
befa937
fix(mobile-mcp): strip bounds attributes from UI hierarchy dump (#6568)
LaZzyMan Jul 9, 2026
8c896f6
fix(web-shell): make dialog backdrop z-index configurable (#6572)
cxruan Jul 9, 2026
48e5d5d
feat(web-shell): polish stats table layout and todo panel UI (#6559)
ytahdn Jul 9, 2026
c9a8099
feat(cli): List persisted sessions for trusted workspaces (#6558)
doudouOUC Jul 9, 2026
5c82857
Add harness infrastructure for web-shell package (#6517)
harbin1053020115 Jul 9, 2026
e64010c
Fix workspace skills for disabled extensions and ACP preheat (#6534)
ytahdn Jul 9, 2026
f2885a0
fix(ci): add retry logic to VSCode IDE Companion publish steps (#6574)
Copilot Jul 9, 2026
637d00c
feat(core): render PDF pages to images when text extraction overflows…
doudouOUC Jul 9, 2026
2a1807f
fix(ci): detect silent triage failures with empty-response check (#6566)
yiliang114 Jul 9, 2026
0907edb
Fix long session timeline scrolling (#6526)
callmeYe Jul 9, 2026
ac2f371
feat(scheduled-tasks): add isolated run mode via create_sub_session t…
wenshao Jul 9, 2026
c62b344
feat(cli): VP mode — inline thought expand on click + auto-hiding scr…
chiga0 Jul 9, 2026
41c405b
feat(review): post Suggestion findings as inline comments (#6593)
wenshao Jul 9, 2026
bb96ac4
fix(cli): forward user input to MCP prompts with no declared argument…
yiliang114 Jul 9, 2026
53243de
feat(daemon): persist session artifacts across restarts (#6557)
chiga0 Jul 9, 2026
fd613ea
feat(cli): Add channel worker settings reload for serve --channel (#6…
doudouOUC Jul 9, 2026
d4d3a4b
Support voiceBridge for ACP audio prompts (#6576)
qqqys Jul 9, 2026
a6902c5
ci(autofix): per-issue concurrency, route cancel-in-progress, assigne…
yiliang114 Jul 9, 2026
e06d3be
fix(cua-driver): complete coordinate normalization for zoom/scroll/mo…
LaZzyMan Jul 9, 2026
21cdb4a
chore(cua-driver): update version refs to 0.7.1 + add fix doc (#6616)
LaZzyMan Jul 9, 2026
c412d62
feat(web-shell): add bottom status items (#6613)
dreamWB Jul 9, 2026
f5d36aa
feat(cli): Add workspace-qualified core REST routes (#6567)
doudouOUC Jul 9, 2026
e250d6e
feat: add `qwen update` and `/update` commands with auto-update suppo…
liziwl Jul 9, 2026
0e229be
feat(tui): Ctrl+O frozen transcript view and unified tool output rend…
chiga0 Jul 9, 2026
2054302
fix(channels): align memory access with channel gates (#6620)
qqqys Jul 10, 2026
55311c3
ci: route full CI follow-up jobs to selected runner (#6608)
yiliang114 Jul 10, 2026
bb3b2f3
feat(web-shell): add assistant turn footer slot (#6611)
dreamWB Jul 10, 2026
5e67163
docs(core): fix typos in ide notification comments (#6623)
chinesepowered Jul 10, 2026
ab08a2a
fix(vscode): normalize NOTICES.txt line endings to LF (#6634)
wenshao Jul 10, 2026
6e096cf
fix(web-shell): align split view chat interactions (#6633)
ytahdn Jul 10, 2026
88bd001
fix(cli): stabilize flaky UI tests (#6622)
qqqys Jul 10, 2026
dd62c3a
feat(scheduled-tasks): gate an isolated run behind a precondition (#6…
wenshao Jul 10, 2026
5c5fda5
feat(cli): List archived and organized sessions for non-primary works…
doudouOUC Jul 10, 2026
6d966d2
test(core): stabilize file history eviction test (#6637)
yiliang114 Jul 10, 2026
7ad2a5f
fix(mobile-mcp): reject out-of-range normalized coordinates (#6656)
LaZzyMan Jul 10, 2026
37f7d5c
test(cli): isolate cli entry fallback fixture (#6658)
yiliang114 Jul 10, 2026
24bca9a
feat(web-shell): add context mention customization (#6578)
dreamWB Jul 10, 2026
59bba8e
fix(channels): return only final ACP response text (#6615)
qqqys Jul 10, 2026
0e91fe5
fix(mobile-mcp): coord-norm audit fixes for 0.1.3 (#6659)
LaZzyMan Jul 10, 2026
3bf2d45
ci: add suspicious comment attachment guard (#6599)
yiliang114 Jul 10, 2026
6002159
Bound glob result collection (#6618)
yiliang114 Jul 10, 2026
0d1707a
test(mobile-mcp): update coord-norm tests for removed output normaliz…
LaZzyMan Jul 10, 2026
2b482c0
fix(triage): require explicit defer comment and prevent hygiene-based…
yiliang114 Jul 10, 2026
d454d0e
fix(cli,core): Restore default debug log file output (#6605)
yiliang114 Jul 10, 2026
35fadad
fix(sdk): escalate process abort termination (#6653)
zjunothing Jul 10, 2026
8522d43
feat(daemon): expose session runtime status (#6645)
ytahdn Jul 10, 2026
7a9ee09
fix(core): honor NO_PROXY for model requests (#6640)
tanzhenxin Jul 10, 2026
32ddd7a
docs: document tools.disabled and tools.visible settings (#6641)
Nas01010101 Jul 10, 2026
c0aeb7d
docs(channels): add setup screenshots to WeCom robot guide (#6648)
joeytoday Jul 10, 2026
71bef9b
fix(core): apply cron step to a single starting value (N/step) (#6627)
Nas01010101 Jul 10, 2026
01cbddf
feat(web-shell): add collapse/expand toggle to AskUserQuestion panel …
yuanyuanAli Jul 10, 2026
5fea9e8
feat(cli): allow long goal conditions (#6665)
DragonnZhang Jul 10, 2026
ff156e5
fix(channels): enable DingTalk stream keepalive (#6668)
qqqys Jul 10, 2026
043c22c
feat(channels): support webhook-triggered channel tasks (#6495)
qqqys Jul 10, 2026
c84089e
fix(dingtalk): preserve markdown tables (#6673)
qqqys Jul 10, 2026
dcbfc30
fix(channels): cap channel memory recall prompt (#6617)
qqqys Jul 10, 2026
cc55681
fix(core): fix tool_use/tool_result pairing for Anthropic-compatible …
yiliang114 Jul 10, 2026
7129cec
fix(channels): manage stale DingTalk Stream connections (#6675)
qqqys Jul 10, 2026
fa7fdbc
fix(core): clamp max_tokens to the context window; retire the output …
tanzhenxin Jul 10, 2026
f06e932
fix(web-shell): polyfill Range layout APIs in tests (#6677)
yiliang114 Jul 10, 2026
5188821
feat(review): give every line of a large diff an accountable reviewer…
wenshao Jul 10, 2026
661b70a
fix(core): retry leaked protocol turns (#6603)
yiliang114 Jul 10, 2026
7328341
feat(web-shell): improve markdown table readability (#6626)
jifeng Jul 10, 2026
2523a36
feat(web-shell): workspace management sidebar with dynamic registrati…
doudouOUC Jul 10, 2026
38384ae
feat(serve): Add cursor-paged transcript replay endpoint (#6525)
doudouOUC Jul 10, 2026
dde67b8
feat(core): add forceGlobalCacheScope for Anthropic proxy providers (…
qwen-code-dev-bot Jul 10, 2026
998d360
feat(qqbot): group message handling and cron-msg-experimental (#6457)
Eric-GoodBoy-Tech Jul 10, 2026
65393d0
feat(daemon): record & query sub-session parentSessionId; drop isolat…
wenshao Jul 10, 2026
ebd83f1
fix(release): raise package size budget to 85 MiB (#6688)
qqqys Jul 10, 2026
b2601c8
fix(interactive): configure Docker sandbox networking for protocol ta…
qwen-code-dev-bot Jul 10, 2026
417fef2
fix(core): keep YOLO mode when the model calls enter_plan_mode (#6630)
Nas01010101 Jul 10, 2026
075c3f0
feat(cli): forward ask_user_question answers from SDK can_use_tool (#…
TianYuan1024 Jul 10, 2026
a130ce4
fix(cli): localize approval mode UI labels (#6592)
han-dreamer Jul 11, 2026
25f491d
feat(dingtalk): mention response senders (#6679)
qqqys Jul 11, 2026
0ef3a76
feat(web-shell): add artifact right panel (#6591)
ytahdn Jul 11, 2026
ff51447
feat(cli): workspace-qualified ACP transport (daemon multi-workspace …
doudouOUC Jul 11, 2026
40ed6b2
chore(release): v0.19.9 (#6693)
qwen-code-ci-bot Jul 11, 2026
909f0fe
docs(agents): add a bounded self-audit step to the pre-done workflow …
wenshao Jul 11, 2026
4aed60a
docs(core): fix inaccurate token-limit comment and two comment typos …
chinesepowered Jul 11, 2026
2428741
fix(channels): suppress nested subagent output (#6696)
qqqys Jul 11, 2026
2db71f8
fix(interactive): configure Docker sandbox networking for protocol ta…
qwen-code-dev-bot Jul 11, 2026
bcf5b7b
fix(release): raise prepared package size limit to 96 MB (#6687) (#6691)
qwen-code-dev-bot Jul 11, 2026
61ea72b
fix(vscode-companion): don't override cursorPosition=0 to text.length…
chinesepowered Jul 11, 2026
9163f3b
fix(cli): run periodic memory-pressure check in interactive UI to pre…
yiliang114 Jul 11, 2026
98f0468
feat(web-shell): add mobile welcome composer slots (#6584)
yuanyuanAli Jul 11, 2026
e1a8286
fix(mobile-mcp): strip bounds with negative coordinates from ui dump …
chinesepowered Jul 11, 2026
a25ef69
ci(review): default review timeout to 180 minutes, allow up to 240 (#…
wenshao Jul 11, 2026
deb45ae
fix(core): retry leaked protocol turns in recovery paths (#6683)
yiliang114 Jul 11, 2026
55eb832
fix(tests): sync qwen-resolve-workflow test expectations with PR #670…
yiliang114 Jul 11, 2026
9d9d3ec
fix(core): use consistent error response for plan mode blocked tools …
Alex-ai-future Jul 11, 2026
ee1cc06
fix(cli): add Approve button to /mcp server detail for pending/reject…
LaZzyMan Jul 11, 2026
8e6a572
feat(sdk): add control request methods for effort, models, usage, con…
juhuan Jul 11, 2026
eff2a04
feat(cli): show full reasoning content when expanding thinking blocks…
huww98 Jul 11, 2026
28bfadf
fix(desktop): preserve MCP URL query suffixes (#6587)
VectorPeak Jul 11, 2026
938ad52
fix: restrict template placeholder regex to valid identifiers (#6672)
ksws00684315 Jul 11, 2026
1bfd213
feat(web-shell): add scheduled task prompt references (#6589)
BZ-D Jul 11, 2026
81d4cff
fix(acp): keep the user prompt prominent when file content is attache…
kaymeer Jul 11, 2026
7279d6f
feat(cli): add project-scoped prompt stash (#6709)
destire-mio Jul 11, 2026
79a80bc
fix(acp): reject fractional readTextFile limits (#6704)
VectorPeak Jul 11, 2026
5f89459
feat(core): add unified session recovery planning (#6731)
water-in-stone Jul 11, 2026
732d85d
fix(web-shell): correct Add Workspace dialog theming and multi-worksp…
wenshao Jul 11, 2026
71165fc
feat(cli): improve subagent observability — untruncated live commands…
TianYuan1024 Jul 11, 2026
60083da
fix(channels): accept open DingTalk stream connections (#6715)
qqqys Jul 11, 2026
6df1960
fix(cli): Scope session organization mutations by workspace (#6724)
doudouOUC Jul 11, 2026
83b0a33
fix(core): add Claude Opus 4.6-4.8 token limits (#6718)
yiliang114 Jul 11, 2026
230db17
feat(cli): group daemon channel workers by workspace (phase 4b) (#6635)
doudouOUC Jul 11, 2026
218dec6
feat(hooks): add MessageDisplay hook for mid-turn streaming (#6489)
yanchenko Jul 11, 2026
b19ebd8
fix(packaging): bundle clipboard addon in standalone builds (#6708)
zjunothing Jul 11, 2026
fc77764
feat(web-shell): add cell value dialog on double-click in markdown ta…
jifeng Jul 11, 2026
2b9c92e
fix(memory): refresh instructions after remember (#6497)
han-dreamer Jul 11, 2026
e403246
feat(serve): Expose read-only untrusted session catalogs (#6717)
doudouOUC Jul 11, 2026
06d8d4a
fix(core): make goal evaluation lifecycle-safe (#6681)
qqqys Jul 11, 2026
58dc985
chore: remove DingTalk planning artifacts (#6722)
qqqys Jul 11, 2026
263dbba
fix(core): preserve managed memory during microcompaction (#6714)
yiliang114 Jul 11, 2026
000eee5
fix(core): use decimal Claude output limits (#6735)
yiliang114 Jul 11, 2026
51d4ce4
feat(serve): persist dynamic workspace registrations (#6716)
doudouOUC Jul 11, 2026
10ae7d2
fix(web-shell): support model & approval-mode changes for non-primary…
wenshao Jul 11, 2026
ec43c1e
feat(web-shell): render composer references in user messages (#6537)
ever-o Jul 11, 2026
545e5b3
fix(core): tolerate repeated invalid model streams (#6712)
yiliang114 Jul 11, 2026
a61b098
fix(mcp): recover OAuth authentication after HTTP 401 (#6732)
yiliang114 Jul 11, 2026
01d406f
feat(channels): recover daemon sessions after restarts (#6680)
qqqys Jul 11, 2026
8a2be47
fix(web-shell): avoid duplicate inline tag tooltips (#6729)
dreamWB Jul 12, 2026
a6f04b3
fix(core): ignore reasoning in goal judge verdicts (#6738)
qqqys Jul 12, 2026
7697c78
fix(web-shell): correct stale composerTagIcons import in ScheduledTas…
wenshao Jul 12, 2026
ae21884
perf(core): lazy-load web-tree-sitter runtime (#6747)
dexhunter Jul 12, 2026
5b4d0a3
feat(web-shell): show current git branch in composer toolbar (#6725)
han-dreamer Jul 12, 2026
0579be6
feat(core): add configurable default timeout for foreground shell com…
Nas01010101 Jul 12, 2026
6a4b57b
fix(web-shell): keep composer branch chip from wrapping the toolbar o…
wenshao Jul 12, 2026
85c1c07
feat(sdk): expose transport and query options in both SDKs (#6491)
juhuan Jul 12, 2026
220937e
Preserve tagged thinking parsing for Qwen3 default provider (#6751)
barry166 Jul 12, 2026
077bf2b
feat(web-shell): make session sidebar configurable (#6750)
dreamWB Jul 12, 2026
218e7d3
fix(core): guide agent to pivot to read-only tools when plan mode blocks
Alex-ai-future Jul 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
5 changes: 5 additions & 0 deletions .github/actionlint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
self-hosted-runner:
labels:
- 'ecs-qwen'

config-variables: null
2 changes: 1 addition & 1 deletion .github/actions/post-coverage-comment/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ runs:
echo "_For detailed HTML reports, please see the 'coverage-reports-${NODE_VERSION}-${OS}' artifact from the main CI run._" >> "${COMMENT_FILE}"

- name: 'Post Coverage Comment'
uses: 'thollander/actions-comment-pull-request@65f9e5c9a1f2cd378bd74b2e057c9736982a8e74' # ratchet:thollander/actions-comment-pull-request@v3
uses: 'thollander/actions-comment-pull-request@24bffb9b452ba05a4f3f77933840a6a841d1b32b' # ratchet:thollander/actions-comment-pull-request@v3
if: |-
${{ always() }}
with:
Expand Down
102 changes: 102 additions & 0 deletions .github/scripts/ci/classify-profile.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
#!/usr/bin/env node
import { readFileSync } from 'node:fs';

export const CI_PROFILES = {
DOCS_ONLY: 'docs_only',
GITHUB_CI_ONLY: 'github_ci_only',
FULL: 'full',
};

export const GITHUB_CI_ONLY_FILES = new Set([
'.github/scripts/pr-safety-precheck.mjs',
'.github/scripts/pr-safety-precheck.test.mjs',
'.github/workflows/qwen-pr-safety-precheck.yml',
]);

function isDocsOnlyFile(file) {
const normalized = file.replace(/\\/g, '/');
return (
/^docs\/.+\.(?:md|mdx)$/i.test(normalized) ||
/^(?:README|CHANGELOG|CONTRIBUTING|CODE_OF_CONDUCT|SECURITY|SUPPORT|LICENSE|NOTICE)(?:\.[^/]*)?$/i.test(
normalized,
)
);
}

function classifyPath(file) {
if (isDocsOnlyFile(file)) return CI_PROFILES.DOCS_ONLY;
if (GITHUB_CI_ONLY_FILES.has(file)) return CI_PROFILES.GITHUB_CI_ONLY;
return CI_PROFILES.FULL;
}

function classifyFileEntry(entry) {
if (typeof entry === 'string') return classifyPath(entry);

const filename = entry?.filename;
if (!filename) return CI_PROFILES.FULL;

const profile = classifyPath(filename);
if (entry.status !== 'renamed') return profile;

const previousProfile = entry.previous_filename
? classifyPath(entry.previous_filename)
: CI_PROFILES.FULL;
return previousProfile === profile ? profile : CI_PROFILES.FULL;
}

export function classifyChangedFiles(files) {
const changedFiles = files.filter(Boolean);
if (changedFiles.length === 0) return CI_PROFILES.FULL;

if (
changedFiles.every(
(entry) => classifyFileEntry(entry) === CI_PROFILES.DOCS_ONLY,
)
) {
return CI_PROFILES.DOCS_ONLY;
}

if (
changedFiles.every(
(entry) => classifyFileEntry(entry) === CI_PROFILES.GITHUB_CI_ONLY,
)
) {
return CI_PROFILES.GITHUB_CI_ONLY;
}

return CI_PROFILES.FULL;
}

function parseChangedFiles(text) {
return text
.split(/\r?\n/)
.filter(Boolean)
.map((line) => {
try {
return JSON.parse(line);
} catch {
return line;
}
});
}

function main() {
const filePath = process.argv[2];
if (!filePath) {
console.log(CI_PROFILES.FULL);
return;
}

try {
const files = parseChangedFiles(readFileSync(filePath, 'utf8'));
console.log(classifyChangedFiles(files));
} catch (err) {
const message = err instanceof Error ? err.message : String(err);
console.error(`::warning::Failed to read changed files: ${message}`);
console.log(CI_PROFILES.FULL);
}
}

if (import.meta.url === `file://${process.argv[1]}`) {
main();
}
116 changes: 116 additions & 0 deletions .github/scripts/ci/classify-profile.test.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
import assert from 'node:assert/strict';
import test from 'node:test';

import {
GITHUB_CI_ONLY_FILES,
classifyChangedFiles,
} from './classify-profile.mjs';

test('uses docs_only for markdown-only changes', () => {
assert.equal(
classifyChangedFiles(['README.md', 'docs/usage.md', '.qwen/design/foo.md']),
'full',
);
assert.equal(
classifyChangedFiles(['README.md', 'docs/usage.md']),
'docs_only',
);
});

test('uses docs_only for uppercase and extensionless docs', () => {
assert.equal(
classifyChangedFiles(['README.MD', 'docs/guide.MDX', 'LICENSE', 'README']),
'docs_only',
);
});

test('falls back to full for root docs names used as directories', () => {
assert.equal(classifyChangedFiles(['README.md/evil.ts']), 'full');
assert.equal(classifyChangedFiles(['LICENSE.txt/src/index.ts']), 'full');
});

test('uses github_ci_only for the allowed GitHub CI helper files', () => {
assert.equal(
classifyChangedFiles([...GITHUB_CI_ONLY_FILES]),
'github_ci_only',
);
});

test('uses github_ci_only for each allowed GitHub CI helper file', () => {
for (const file of GITHUB_CI_ONLY_FILES) {
assert.equal(classifyChangedFiles([file]), 'github_ci_only');
}
});

test('falls back to full for case-mismatched GitHub CI helper paths', () => {
assert.equal(
classifyChangedFiles(['.GITHUB/SCRIPTS/PR-SAFETY-PRECHECK.MJS']),
'full',
);
});

test('classifies renamed files using both old and new paths', () => {
assert.equal(
classifyChangedFiles([
{
filename: 'docs/new.md',
previous_filename: 'packages/core/src/runtime.ts',
status: 'renamed',
},
]),
'full',
);
assert.equal(
classifyChangedFiles([
{
filename: 'docs/new.md',
previous_filename: 'docs/old.md',
status: 'renamed',
},
]),
'docs_only',
);
});

test('falls back to full when changed files are unavailable', () => {
assert.equal(classifyChangedFiles([]), 'full');
assert.equal(classifyChangedFiles(['', null, undefined]), 'full');
});

test('falls back to full for source or mixed changes', () => {
assert.equal(
classifyChangedFiles(['README.md', 'packages/cli/src/index.ts']),
'full',
);
assert.equal(
classifyChangedFiles([
'README.md',
'.github/scripts/pr-safety-precheck.mjs',
]),
'full',
);
});

test('falls back to full for main CI workflow changes', () => {
assert.equal(classifyChangedFiles(['.github/workflows/ci.yml']), 'full');
assert.equal(classifyChangedFiles(['.github/workflows/codeql.yml']), 'full');
});

test('falls back to full for classifier changes', () => {
assert.equal(
classifyChangedFiles(['.github/scripts/ci/classify-profile.mjs']),
'full',
);
assert.equal(
classifyChangedFiles(['.github/scripts/ci/classify-profile.test.mjs']),
'full',
);
});

test('falls back to full for runtime markdown assets and instruction files', () => {
assert.equal(
classifyChangedFiles(['packages/core/src/skills/bundled/foo/SKILL.md']),
'full',
);
assert.equal(classifyChangedFiles(['AGENTS.md']), 'full');
});
Loading
Loading