Skip to content

chore: merge upstream/main v0.39.0 - #1015

Closed
youxuanxue wants to merge 17 commits into
spacering-net:mainfrom
youxuanxue:merge/upstream-2026-10-22
Closed

youxuanxue wants to merge 17 commits into
spacering-net:mainfrom
youxuanxue:merge/upstream-2026-10-22

Conversation

@youxuanxue

Copy link
Copy Markdown

摘要

  • 将 upstream/main@bed8931485d2de6ab65c83e182fbd4a79c72e12b(v0.39.0)合入 fork,保留上游历史(git merge --no-ff)。
  • 上游新增 122 个提交;共同祖先 c8f921378461df0c244d9c3452b7caa26e3a5b86,fork 独有 16 个提交。
  • Merge commit:d43d912c(parents:4e714142 + bed89314)。

风险

  • 常规偏高:公共契约随上游引入 CLI、新 agent(Trae / Command Code)、sidebar Recent 排序、local commands 等行为变化。
  • 唯一内容冲突:src-tauri/src/acp/connection.rs。裁决为并集:保留 fork 的 cc-switch Claude model catalog 注入,同时采纳上游 Pi enabledModels 过滤;两侧相关符号与单测均保留。
  • Fork 不变量抽查仍在:cc_switch_claude_model_catalog、Codex ghost prune、work-task force-push / push-back、settings placeholder、upstream-merge-notify。
  • 后审计 dryRun.conflicts 仍为 true(对固定 base×upstream 的 merge-tree 预演,不代表 HEAD 仍有未解决冲突);upstream/main 已是 HEAD 祖先。

验证

  • cargo check --lib --features test-utils(stub out/)
  • cargo check --no-default-features --features server-bin --bin codeg-server
  • cargo check --no-default-features --features mcp-bin --bin codeg-mcp
  • cargo clippy --all-targets --features test-utils -- -D warnings
  • cargo clippy --no-default-features --features server-bin --bin codeg-server --lib -- -D warnings
  • 针对性 cargo test --features test-utils --lib:cc_switch_claude_model_catalog(2)、merge_claude_model_catalog(1)、pi_enabled(16)、prune_missing(2)、a_force_pushed_pull_request(1)、a_retried_push_back(1)均通过
  • Node 24:pnpm install --frozen-lockfile、pnpm lint .、pnpm test(10347/10347)、pnpm build、pnpm browser:agent:check、pnpm browser:agent:types
  • 本机默认 Node 26 下 jsdom localStorage 不可用(与既往 merge PR 一致);CI 使用 Node 24
  • 无项目 scripts/preflight.sh;未跑全量 desktop cargo test(仅针对性 lib 用例)

提交

d43d912c Merge upstream/main into merge/upstream-2026-10-22
bed89314 # Release version 0.39.0
8df16742 Merge remote-tracking branch 'origin/main'
248a16d0 Merge pull request #1010 from Flyneen/feat/recent-by-last-activity
a7cd74b1 feat(acp): pin CodeBuddy 2.171.0, Kimi Code 2.3.0, ZCode 0.76.2 and Command Code 1.86.3
9cc3aeb3 docs(sidebar): describe the Recent section as most recently active
2374043a test(sidebar): give the Recent ordering fixtures a possible chronology
afc77f09 fix(sidebar): label sub-sessions with the creation time they are sorted by
8b496486 Merge remote-tracking branch 'origin/main'
adbea802 fix(sidebar): label Chat rows with the last activity they are sorted by
3c963dd7 Merge pull request #974 from fengpanhe/feat_local_cmd
b197a517 fix(sidebar): keep a Recent parent's sub-sessions on their creation label
d7b57459 Merge pull request #1005 from jackie-cqz/fix/zcode-turn-metrics
3fb99f79 Merge pull request #1003 from jackie-cqz/fix/zcode-attachments
87599a80 fix(delegation): show a parked sub-agent's prompt in one status card only
1351a0ac test(local-command): keep the unknown POSIX shell case off Windows
5baa5e7b fix(db): list the run_local migration after the one v0.38.0 shipped
b4adc69c feat(sidebar): order the Recent section by last activity
27f1027f fix(git): preserve racy-clean detection in copied indexes
899a77df fix(zcode): total every busy window a prompt holds and keep cancelled replies whole
c344f395 docs(zcode): name the image formats the bridge accepts
a1cdb774 fix(local-command): stop naming the removed local: prefix in a refusal
8db8040c fix(commands): keep local commands out of older clients' edits and failed saves
3b3d47ac feat(commands): pick where a command runs with a switch, not a local: prefix
143b4ee7 fix(commands): run a remote server's local: commands like any other
1338dcd8 fix(local-command): allow only plain quoted remote variables for cmd.exe
4b62f3de fix(commands): hold the command list while a save is in flight
33e537ee fix(local-command): make cmd.exe quote a remote window's variables
28cb32a7 fix(commands): keep a failed move's error in view
67cb74e4 fix(local-command): refuse remote values cmd.exe would read as syntax
d8d50ede fix(commands): run local: commands only from this computer's own list
f1618d74 fix(local-command): run in a local folder and expand cmd.exe variables
b307d629 feat: 添加本地命令支持,可在桌面端执行本地命令
f00945ed fix(work-task): record what a push-back added to the pull request
e3e8b934 fix(zcode): enable negotiated image and embedded-resource prompts
79279a6b fix(zcode): retain per-turn usage and native wall time in history
f4297c75 fix(work-task): count a force-pushed pull request's task from where the pull request ends now
da39005d test(terminal): run the queued-resize case on a fake clock
e2961c26 feat(acp): pin CodeBuddy 2.170.0, Cursor 2026.10.19-6bbf2c4, Qoder 1.1.75 and ZCode 0.75.0
514b677c Merge remote-tracking branch 'origin/main'
95de8873 build: build codeg_lib as an rlib only
6c0b8acc fix(chat): raise "load background activity" only after a connection's first turn
3d828684 ci(test): build Rust with line-tables-only debuginfo
46109888 fix(forge): open an SSH remote's repository at its account's own origin
f88b372a feat(acp): pin claude-agent-acp 0.94.0 and agent-client-protocol 3.4.0
84cbc38a fix(acp): a native Grok install in ~/.grok/bin reads as installed
7b372f96 feat(grok): declare a custom model's reasoning-effort levels
cb54f282 test(sidebar): open the tag filter panel without arming Radix's hover timer
42f924cd test(git): give the refused-commit tests an author of their own
95b6c2da fix(canvas): keep a message sent while the agent is still answering
a86f7a11 Merge pull request #989 from lesscodex/pr261019
a0d9609b Merge pull request #992 from spacering-net/task/406
7dd0f982 fix(acp): an npx agent whose command is gone no longer reads as installed
3588cee0 fix(settings): stop writing Codex config keys that current codex ignores
d35321a7 feat(git): ask which untracked files a generated message covers
af51be13 fix(chat): take a reloaded reply only once every prompt of its batch is on disk
23831d93 fix(chat): load the rest of a reply that finished while the page was away
f8d6e48e ci(release): build no .rpm for a release candidate
22445114 Merge pull request #985 from MagTer/feat/proxy-jwt-auth
8e85ef8a Merge pull request #984 from MagTer/fix/proxy-session-expiry
c2f9bd29 fix(delegation): keep a sub-agent card's task line on its row while open
3c67ba1c fix(server): name another origin, not another site, in the cross-origin refusal
3a937e29 docs(server): say that SameSite does not keep out a sibling subdomain
a8d49ff8 fix(appimage): programs codeg starts get the session's environment back
b837329a fix(pi): gate a project's .pi/mcp.json behind project trust
4baf39d5 fix(pi): read pi's files past a UTF-8 byte-order mark
4a451f5f feat(git): commit message settings per folder, every agent option picked, auto-commit
85080fff style(git): a thin scrollbar and soft edges for the commit message boxes
7699ba9c refactor(settings): share the assistant editor's required-options flow
88d214cb docs(pi): spell out what the enabledModels mirror leaves to pi
6c7e9b34 fix(pi): match enabledModels globs the way minimatch does
3955c434 fix(pi): keep the model list whole when enabledModels can't be mirrored
4876460b test(server): keep the key-refresh tests steady on a slow machine
15a3d76a feat(git): write the commit message with an agent from the commit box
43a6612f fix(update): Windows installs on restart and no longer stops at "Failed to kill codeg"
96b81e41 fix(web): give up on a proxy sign-in probe that never answers
d847fc95 docs(server): say that the proxy's policy decides who gets in
1298d670 fix(web): drop "your access token is kept" from the proxy sign-in message
96daf787 fix(web): open the event socket when a proxy admits a browser that came straight to the workspace
45c7b683 fix(server): fetch a loopback JWKS without the HTTP proxy
7e3d446c fix(server): stop reading a JWKS sent without a length at the size cap
87a5505b fix(server): answer with proxy keys past their age while they refresh
8409e218 fix(server): refuse a proxy-admitted request that another site's page sent
1fbb60c9 feat(ui): narrower sidebar off macOS, Recent pages by ten, delegation cards expand their task
1c6e01f8 fix(pi): honor enabledModels in the model selector
7a076979 docs(readme): shorten feature copy and highlight codeg-cli
c51de289 feat(server): optional sign-in through an identity-aware proxy (CODEG_AUTH=proxy-jwt)
475eead8 fix(web): an expired proxy session asks for a reload instead of reconnecting forever
3f83b02d # Release version 0.38.0
abe909d7 docs(cli): the x64 release has an AppImage, and 0.37.0's in-place update brings no codeg-cli
2a6d3905 # Release version 0.38.0-rc.1
950659fb fix(markdown): one border around tables and code blocks, syntax colours in light mode
7756455e fix(update): single Dock icon after macOS restarts, no WMI hang in Windows installs
8879c855 fix(cli): status names a refused runtime access_denied, as its JSON does
7df15f83 fix(cli): codeg-cli runs skip Claude Code's predicted next prompt
c3f73bdd fix(web): bring browsers onto the server's release, show local images in more places
ec932f22 test(acp): disconnect the handshake prompt test only after its turn ends
4e73008e feat(cli): add codeg-cli to run agents through Codeg from a shell
2ae6eaf7 # Release version 0.37.0
08513b57 feat(acp): pin Cursor 2026.10.16-e3cb207 and Antigravity 1.4.1, keep Cursor's MCP settings
fa63c790 fix(tasks): expand a progress report to its full text, not {"recorded":true}
27953996 feat(delegation): answer a parked sub-agent from its status row
f9cd29b3 feat(session-details): give the title its own row and lead headers with chevrons
5e53121c feat(sidebar): move the tag filter into View options
02ba43ba feat(session-details): redesign the side panel's summary, plan and message navigator
e7679785 feat(session-details): show the plan, sub-agents and message navigator in the side panel
2e657fac docs: refresh WeChat group QR codes for light and dark themes
7a66537f feat(acp): pin Cline 3.0.73, CodeBuddy 2.168.2 and Grok 1.0.62
26857e06 fix(chat): show Markdown images from outside the conversation folder
5640117c feat(command-code): add Command Code as a built-in agent
c9e6329c feat(acp): pin claude-agent-acp 0.93.0 and show Claude Code's Remote Control
63f36b0d feat(aux-panel): hide the panel when its selected tab is clicked again
8646ec21 feat(sidebar): add Clone Repository and Open Folder to folder group rows
3ac3fd71 fix(composer): show the full model list when the settings popover opens
992e5ef9 feat(composer): give the automation and task editors the settings chip
1d07ad1e feat(composer): merge the agent settings into one chip and popover
a08e1fd2 style(aux-panel): mark the Open full page buttons with an outward arrow
931c4fa4 chore(update): note why the macOS relaunch must not be a plain child
0e841566 feat(aux-panel): add automations, to-dos, issues and pull request tabs
c8248164 feat(computer): run cua-driver 0.36.0
e59fe022 feat(trae): add TRAE CLI as a built-in agent
8408ab55 feat(acp): pin OpenCode 1.19.3, Cursor 2026.10.14-941492e and Qoder 1.1.73
efdce2c0 feat(acp): pin claude-agent-acp 0.92.0 and offer its predicted prompt

最新提交:d43d912c

合入时请使用 Create a merge commit(禁止 squash/rebase),否则下一轮仍会把同一批上游提交视为未合入。

Made with Cursor

youxuanxue and others added 17 commits September 3, 2026 19:46
* fix(conversations): prune sidebar ghosts when Codex rollouts are gone

Sidebar reads SQLite, not ~/.codex/sessions, so deleted rollout files left
openable ghost rows. Soft-delete missing imported sessions on list/scan,
cascade orphaned children, and classify Codex resolve-rollout failures.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(conversations): skip prune when Codex disk presence is unknown

A failed WalkDir/join previously looked like an empty rollout set and would
soft-delete every aged Codex row. Distinguish successful-empty from
unavailable, finalize prunes with chat-folder cleanup, and cover both with
regressions.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: yyy <yyy@no-replay.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Allow src-tauri/target to be ignored as either a directory or a symlink,
matching the DevCache cargo bound compatibility layout.
…stream-2026-09-28

# Conflicts:
#	src-tauri/src/acp/connection.rs
#	src-tauri/src/parsers/codex.rs
Bring youxuanxue/codeg up to date with spacering-net/codeg@fe9fa637 while
preserving fork history via a no-ff merge.

Co-authored-by: Cursor <cursoragent@cursor.com>
Pi only reads settings/auth/models at process start, so saving a new
provider or model must fingerprint those files and refresh running
sessions instead of leaving them on the old registry.

Co-authored-by: Cursor <cursoragent@cursor.com>
Shrink fork conflict surface on the mega upstream file by keeping only a
one-line hook there, drop trailing-newline noise vs upstream, and cover
the hash in acp::pi_native_fingerprint.

Co-authored-by: Cursor <cursoragent@cursor.com>
CI Rust 1.99 -D warnings rejected the nested Result/HashMap/HashSet
parameter on resolve_codex_list_scan; a named alias keeps the same
semantics without an allow attribute.

Co-authored-by: Cursor <cursoragent@cursor.com>
merge: 对齐 upstream/main 并刷新 Pi 配置陈旧态
Bring spacering-net/codeg@187651de into youxuanxue/codeg while preserving fork history (no-ff).
merge: 对齐 upstream/main(0.34.0)
* chore: 接入 upstream-merge-notify 跟踪上游落后

安装 detection-only workflow,及时开 issue 跟进 xintaofei/codeg 新特征。

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(ci): refresh upstream-merge-notify install policy note

Address R-003; keep payload synced with dev-rules template.

no-web-impact

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Import spacering-net/codeg@ae4f7efe (29 commits) with --no-ff; no text conflicts.

Co-authored-by: Cursor <cursoragent@cursor.com>
chore: merge upstream/main (29 commits)
…and-work-task-fixes

feat: Claude 合并 cc-switch 模型目录,并修 work task 无 Git/重连偏好
Resolve acp/connection.rs by keeping fork cc-switch Claude catalog merge
alongside upstream Pi enabledModels filtering.

Co-authored-by: Cursor <cursoragent@cursor.com>
@youxuanxue

Copy link
Copy Markdown
Author

Opened against upstream by mistake; fork upstream-merge belongs on youxuanxue/codeg.

@youxuanxue youxuanxue closed this Oct 22, 2026
@youxuanxue
youxuanxue deleted the merge/upstream-2026-10-22 branch October 22, 2026 05:26
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