feat(completion,settings,paste): dual completion styles, real color picker, screenshot paste over SSH

- completion: switchable inline ghost vs popup candidate list (history /
  frecency dirs / PATH commands / files, Up/Down + accept key + Esc);
  settings dropdown, palette action, persisted as completion_style
- settings: real HSV picker in the background-color popup (SV plane + hue
  bar, drag picks live, release persists); presets and hex stay in sync
- paste: image-only clipboard pastes a PNG path - local temp file, or SFTP
  upload to remote /tmp with the path typed back so
  codex/claude receive usable image paths on both sides
- fix: Explorer context-menu launches attach the resident instance and open
  a cwd tab (tab.new gains optional cwd) instead of a lone fresh window
- fix: default-shell dropdown hit-test counts imported profiles, making the
  trailing rows selectable again
- fix: git drawer works on dubious-ownership roots (wsl$ UNC, elevated) via
  per-invocation safe.directory; failures now logged instead of silent blank
- deps: gpui/gpui-component redirected to Kuddev forks pinned at the
  published base revs (patch playbook in the root manifest)
- wire the in-flight resume_ai toggle (display field, toggle, persistence)
  so the parallel session-restore work builds and tests stay green
This commit is contained in:
kuddev committed 2026-08-13 13:06:49 +08:00
1 parent b79c05776b
commit 64c7c0ff1a
35 files changed
+2449 -415

No files matched your search

Generated
+175 -176
View File
@@ -1247,6 +1247,15 @@ dependencies = [
"unicode-width",
]
[[package]]
name = "collections"
version = "0.1.0"
source = "git+https://github.com/Kuddev/zed?rev=69e2130295c2649963eb639fc70b4f2ee8ea1624#69e2130295c2649963eb639fc70b4f2ee8ea1624"
dependencies = [
"indexmap",
"rustc-hash 2.1.3",
]
[[package]]
name = "color_quant"
version = "1.1.0"
@@ -1837,6 +1846,16 @@ dependencies = [
"syn 2.0.106",
]
[[package]]
name = "derive_refineable"
version = "0.1.0"
source = "git+https://github.com/Kuddev/zed?rev=69e2130295c2649963eb639fc70b4f2ee8ea1624#69e2130295c2649963eb639fc70b4f2ee8ea1624"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.106",
]
[[package]]
name = "des"
version = "0.9.0"
@@ -2976,8 +2995,7 @@ dependencies = [
[[package]]
name = "gpui"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "979b45cfa6ec723b6f42330915a1b3769b930d02b2d505f9697f8ca602bee707"
source = "git+https://github.com/Kuddev/zed?rev=69e2130295c2649963eb639fc70b4f2ee8ea1624#69e2130295c2649963eb639fc70b4f2ee8ea1624"
dependencies = [
"anyhow",
"as-raw-xcb-connection",
@@ -2994,6 +3012,7 @@ dependencies = [
"cbindgen",
"cocoa 0.26.0",
"cocoa-foundation 0.2.0",
"collections",
"core-foundation 0.10.0",
"core-foundation-sys",
"core-graphics 0.24.0",
@@ -3008,21 +3027,15 @@ dependencies = [
"flume",
"foreign-types",
"futures",
"gpui-macros",
"gpui_collections",
"gpui_http_client",
"gpui_media",
"gpui_refineable",
"gpui_semantic_version",
"gpui_sum_tree",
"gpui_util",
"gpui_util_macros",
"gpui_macros",
"http_client",
"image",
"inventory",
"itertools 0.14.0",
"libc",
"log",
"lyon",
"media",
"metal 0.29.0",
"naga",
"num_cpus",
@@ -3037,9 +3050,11 @@ dependencies = [
"profiling",
"rand 0.9.5",
"raw-window-handle",
"refineable",
"resvg",
"schemars",
"seahash",
"semantic_version",
"serde",
"serde_json",
"slotmap",
@@ -3047,9 +3062,12 @@ dependencies = [
"smol",
"stacksafe",
"strum 0.27.2",
"sum_tree",
"taffy",
"thiserror 2.0.18",
"usvg",
"util",
"util_macros",
"uuid",
"waker-fn",
"wayland-backend",
@@ -3072,8 +3090,7 @@ dependencies = [
[[package]]
name = "gpui-component"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d021d46b4088d3d93a57ccdf443da85695a77272108caca2f6fe5369f584966a"
source = "git+https://github.com/Kuddev/gpui-component?rev=0f0ab35233212f8f3277028995caf0c41e13ee6c#0f0ab35233212f8f3277028995caf0c41e13ee6c"
dependencies = [
"aho-corasick",
"anyhow",
@@ -3112,8 +3129,7 @@ dependencies = [
[[package]]
name = "gpui-component-assets"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "afc6e4c6551a1a12d4e8b69c3e8eba3cef43331c8c87898a0d4d040c78c6865e"
source = "git+https://github.com/Kuddev/gpui-component?rev=0f0ab35233212f8f3277028995caf0c41e13ee6c#0f0ab35233212f8f3277028995caf0c41e13ee6c"
dependencies = [
"anyhow",
"gpui",
@@ -3123,8 +3139,7 @@ dependencies = [
[[package]]
name = "gpui-component-macros"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "86fbc2d84bf91717b171320e6adc600d91ccb3ed259448f3b006787633c1c615"
source = "git+https://github.com/Kuddev/gpui-component?rev=0f0ab35233212f8f3277028995caf0c41e13ee6c#0f0ab35233212f8f3277028995caf0c41e13ee6c"
dependencies = [
"proc-macro2",
"quote",
@@ -3144,156 +3159,16 @@ dependencies = [
]
[[package]]
name = "gpui_collections"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae39dc6d3d201be97e4bc08d96dbef2bc5b5c3d5734e05786e8cc3043342351c"
dependencies = [
"indexmap",
"rustc-hash 2.1.3",
]
[[package]]
name = "gpui_derive_refineable"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "644de174341a87b3478bd65b66bca38af868bcf2b2e865700523734f83cfc664"
name = "gpui_macros"
version = "0.1.0"
source = "git+https://github.com/Kuddev/zed?rev=69e2130295c2649963eb639fc70b4f2ee8ea1624#69e2130295c2649963eb639fc70b4f2ee8ea1624"
dependencies = [
"heck 0.5.0",
"proc-macro2",
"quote",
"syn 2.0.106",
]
[[package]]
name = "gpui_http_client"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23822b0a6d2c5e6a42507980a0ab3848610ea908942c8ef98187f646f690335e"
dependencies = [
"anyhow",
"async-compression",
"async-fs",
"bytes",
"derive_more",
"futures",
"gpui_util",
"http",
"http-body",
"log",
"parking_lot",
"serde",
"serde_json",
"sha2 0.10.9",
"tempfile",
"url",
"zed-async-tar",
"zed-reqwest",
]
[[package]]
name = "gpui_media"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05cb8912ae17371725132d2b7eec6797a255accc95d58ee5c1134b529810f14b"
dependencies = [
"anyhow",
"bindgen",
"core-foundation 0.10.0",
"core-video",
"ctor",
"foreign-types",
"metal 0.29.0",
"objc",
]
[[package]]
name = "gpui_perf"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f40a0961dcf598955130e867f4b731150a20546427b41b1a63767c1037a86d77"
dependencies = [
"gpui_collections",
"serde",
"serde_json",
]
[[package]]
name = "gpui_refineable"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "258cb099254e9468181aee5614410fba61db4ae115fc1d51b4a0b985f60d6641"
dependencies = [
"gpui_derive_refineable",
]
[[package]]
name = "gpui_semantic_version"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "201e45eff7b695528fb3af6560a534943fbc2db5323d755b9d198bd743948e35"
dependencies = [
"anyhow",
"serde",
]
[[package]]
name = "gpui_sum_tree"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e4f3bedd573fafafa13d1200b356c588cf094fb2786e3684bb3f5ea59b549fa9"
dependencies = [
"arrayvec",
"log",
"rayon",
]
[[package]]
name = "gpui_util"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68faea25903ae524de9af83990b9aa51bcbc8dd085929ac0aea7fd41905e05c3"
dependencies = [
"anyhow",
"async-fs",
"async_zip",
"command-fds",
"dirs 4.0.0",
"dunce",
"futures",
"futures-lite 1.13.0",
"globset",
"gpui_collections",
"itertools 0.14.0",
"libc",
"log",
"nix 0.29.0",
"regex",
"rust-embed",
"schemars",
"serde",
"serde_json",
"serde_json_lenient",
"shlex",
"smol",
"take-until",
"tempfile",
"tendril",
"unicase",
"walkdir",
"which 6.0.3",
]
[[package]]
name = "gpui_util_macros"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c28f65ef47fb97e21e82fd4dd75ccc2506eda010c846dc8054015ea234f1a22"
dependencies = [
"gpui_perf",
"quote",
"syn 2.0.106",
]
[[package]]
name = "grid"
version = "0.18.0"
@@ -3508,6 +3383,31 @@ dependencies = [
"pin-project-lite",
]
[[package]]
name = "http_client"
version = "0.1.0"
source = "git+https://github.com/Kuddev/zed?rev=69e2130295c2649963eb639fc70b4f2ee8ea1624#69e2130295c2649963eb639fc70b4f2ee8ea1624"
dependencies = [
"anyhow",
"async-compression",
"async-fs",
"bytes",
"derive_more",
"futures",
"http",
"http-body",
"log",
"parking_lot",
"serde",
"serde_json",
"sha2 0.10.9",
"tempfile",
"url",
"util",
"zed-async-tar",
"zed-reqwest",
]
[[package]]
name = "httparse"
version = "1.10.1"
@@ -4383,6 +4283,21 @@ version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ebb8d8732c6a6df3d8f032a82911cfc747e00efb95cc46e8d0acd5b5b88570c"
[[package]]
name = "media"
version = "0.1.0"
source = "git+https://github.com/Kuddev/zed?rev=69e2130295c2649963eb639fc70b4f2ee8ea1624#69e2130295c2649963eb639fc70b4f2ee8ea1624"
dependencies = [
"anyhow",
"bindgen",
"core-foundation 0.10.0",
"core-video",
"ctor",
"foreign-types",
"metal 0.29.0",
"objc",
]
[[package]]
name = "memchr"
version = "2.7.6"
@@ -4725,11 +4640,20 @@ dependencies = [
"gpui",
"gpui-component",
"gpui-component-assets",
"nebula-settings",
"nebula_terminal",
"serde",
"toml 0.9.11+spec-1.1.0",
]
[[package]]
name = "nebula-settings"
version = "1.0.0"
[[package]]
name = "nebula-split"
version = "1.0.0"
[[package]]
name = "nebula_config"
version = "1.0.0"
@@ -5689,6 +5613,16 @@ version = "2.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
[[package]]
name = "perf"
version = "0.1.0"
source = "git+https://github.com/Kuddev/zed?rev=69e2130295c2649963eb639fc70b4f2ee8ea1624#69e2130295c2649963eb639fc70b4f2ee8ea1624"
dependencies = [
"collections",
"serde",
"serde_json",
]
[[package]]
name = "phc"
version = "0.6.1"
@@ -6509,6 +6443,14 @@ dependencies = [
"syn 3.0.3",
]
[[package]]
name = "refineable"
version = "0.1.0"
source = "git+https://github.com/Kuddev/zed?rev=69e2130295c2649963eb639fc70b4f2ee8ea1624#69e2130295c2649963eb639fc70b4f2ee8ea1624"
dependencies = [
"derive_refineable",
]
[[package]]
name = "regex"
version = "1.12.3"
@@ -7183,6 +7125,15 @@ version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2ab42ca02749e120097e328d91d415325bdf43b1c72c4c8badf37375fe40a813"
[[package]]
name = "semantic_version"
version = "0.1.0"
source = "git+https://github.com/Kuddev/zed?rev=69e2130295c2649963eb639fc70b4f2ee8ea1624#69e2130295c2649963eb639fc70b4f2ee8ea1624"
dependencies = [
"anyhow",
"serde",
]
[[package]]
name = "semver"
version = "1.0.27"
@@ -7821,6 +7772,16 @@ version = "2.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]]
name = "sum_tree"
version = "0.1.0"
source = "git+https://github.com/Kuddev/zed?rev=69e2130295c2649963eb639fc70b4f2ee8ea1624#69e2130295c2649963eb639fc70b4f2ee8ea1624"
dependencies = [
"arrayvec",
"log",
"rayon",
]
[[package]]
name = "sval"
version = "2.21.1"
@@ -8761,6 +8722,51 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
[[package]]
name = "util"
version = "0.1.0"
source = "git+https://github.com/Kuddev/zed?rev=69e2130295c2649963eb639fc70b4f2ee8ea1624#69e2130295c2649963eb639fc70b4f2ee8ea1624"
dependencies = [
"anyhow",
"async-fs",
"async_zip",
"collections",
"command-fds",
"dirs 4.0.0",
"dunce",
"futures",
"futures-lite 1.13.0",
"globset",
"itertools 0.14.0",
"libc",
"log",
"nix 0.29.0",
"regex",
"rust-embed",
"schemars",
"serde",
"serde_json",
"serde_json_lenient",
"shlex",
"smol",
"take-until",
"tempfile",
"tendril",
"unicase",
"walkdir",
"which 6.0.3",
]
[[package]]
name = "util_macros"
version = "0.1.0"
source = "git+https://github.com/Kuddev/zed?rev=69e2130295c2649963eb639fc70b4f2ee8ea1624#69e2130295c2649963eb639fc70b4f2ee8ea1624"
dependencies = [
"perf",
"quote",
"syn 2.0.106",
]
[[package]]
name = "uuid"
version = "1.24.0"
@@ -10223,17 +10229,15 @@ checksum = "2fb433233f2df9344722454bc7e96465c9d03bff9d77c248f9e7523fe79585b5"
[[package]]
name = "xim-ctext"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2ac61a7062c40f3c37b6e82eeeef835d5cc7824b632a72784a89b3963c33284c"
source = "git+https://github.com/zed-industries/xim-rs.git?rev=16f35a2c881b815a2b6cdfd6687988e84f8447d8#16f35a2c881b815a2b6cdfd6687988e84f8447d8"
dependencies = [
"encoding_rs",
]
[[package]]
name = "xim-parser"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5dcee45f89572d5a65180af3a84e7ddb24f5ea690a6d3aa9de231281544dd7b7"
version = "0.2.1"
source = "git+https://github.com/zed-industries/xim-rs.git?rev=16f35a2c881b815a2b6cdfd6687988e84f8447d8#16f35a2c881b815a2b6cdfd6687988e84f8447d8"
dependencies = [
"bitflags 2.13.0",
]
@@ -10411,8 +10415,7 @@ dependencies = [
[[package]]
name = "zed-async-tar"
version = "0.5.0-zed"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6cf4b5f655e29700e473cb1acd914ab112b37b62f96f7e642d5fc6a0c02eb881"
source = "git+https://github.com/zed-industries/async-tar?rev=a307f6bf3e4219c3a457bea0cab198b6d7c36e25#a307f6bf3e4219c3a457bea0cab198b6d7c36e25"
dependencies = [
"async-std",
"filetime",
@@ -10425,8 +10428,7 @@ dependencies = [
[[package]]
name = "zed-font-kit"
version = "0.14.1-zed"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3898e450f36f852edda72e3f985c34426042c4951790b23b107f93394f9bff5"
source = "git+https://github.com/zed-industries/font-kit?rev=110523127440aefb11ce0cf280ae7c5071337ec5#110523127440aefb11ce0cf280ae7c5071337ec5"
dependencies = [
"bitflags 2.13.0",
"byteorder",
@@ -10450,8 +10452,7 @@ dependencies = [
[[package]]
name = "zed-reqwest"
version = "0.12.15-zed"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac2d05756ff48539950c3282ad7acf3817ad3f08797c205ad1c34a2ce03b9970"
source = "git+https://github.com/zed-industries/reqwest.git?rev=c15662463bda39148ba154100dd44d3fba5873a4#c15662463bda39148ba154100dd44d3fba5873a4"
dependencies = [
"base64",
"bytes",
@@ -10500,8 +10501,7 @@ dependencies = [
[[package]]
name = "zed-scap"
version = "0.0.8-zed"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6b338d705ae33a43ca00287c11129303a7a0aa57b101b72a1c08c863f698ac8"
source = "git+https://github.com/zed-industries/scap?rev=4afea48c3b002197176fb19cd0f9b180dd36eaac#4afea48c3b002197176fb19cd0f9b180dd36eaac"
dependencies = [
"anyhow",
"cocoa 0.25.0",
@@ -10534,8 +10534,7 @@ dependencies = [
[[package]]
name = "zed-xim"
version = "0.4.0-zed"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c0b46ed118eba34d9ba53d94ddc0b665e0e06a2cf874cfa2dd5dec278148642"
source = "git+https://github.com/zed-industries/xim-rs.git?rev=16f35a2c881b815a2b6cdfd6687988e84f8447d8#16f35a2c881b815a2b6cdfd6687988e84f8447d8"
dependencies = [
"ahash",
"hashbrown 0.14.5",