Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1308 commits
Select commit Hold shift + click to select a range
f9a4bfd
markdown_preview: Restore preview panes on workspace reload (#56972)
cbedard Jun 16, 2026
ea673ff
Fix copy shortcut in macOS notebook cells (#59431)
ChengranAA Jun 16, 2026
6b4e27a
Ping on slack when a community-related workflow fails (#59435)
zelenenka Jun 16, 2026
fe22af1
markdown: Render soft breaks as line breaks in agent markdown (#57376)
tredondo Jun 16, 2026
e52cc1a
agent: Better sandboxing UI (#59437)
cameron1024 Jun 16, 2026
f208b2f
ep: Store rejected patch as prediction (#59440)
probably-neb Jun 16, 2026
6f31ec3
Qwen prompt format (#59150)
probably-neb Jun 16, 2026
84b753c
editor: Refresh active debug line highlight on theme change (#59274)
Dnreikronos Jun 16, 2026
3e8aae4
sidebar: Add submenu to create a worktree (#59341)
danilo-leal Jun 16, 2026
fd5d42d
Add terminal thread init command (#59374)
MartinYe1234 Jun 16, 2026
45afbac
Fix project grouping for Git repo subdirectories (#57998)
alisinabh Jun 17, 2026
1722fe6
editor: Speed up multi cursor editing (#58510)
Rani367 Jun 17, 2026
489c880
editor: Reuse display-map cursors when converting word diffs (#58658)
Veykril Jun 17, 2026
f2fbe40
editor: Add SelectInsideDelimiters and SelectAroundDelimiters actions…
subeax Jun 17, 2026
906b7e6
Refactor editor's select inside/around delimiter actions (#59472)
dinocosta Jun 17, 2026
c7ad65e
markdown: Optimize `paint_search_highlights` (#59473)
bennetbo Jun 17, 2026
ea035a7
agent: Account for max_output_tokens in compaction threshold (#59469)
bennetbo Jun 17, 2026
54cd092
Add agent sandbox permissions settings page (#59448)
MartinYe1234 Jun 17, 2026
555ed04
ci: Publish static bubblewrap in releases (#59488)
cameron1024 Jun 17, 2026
39ea287
Periodically log memory usage (#58999)
Anthony-Eid Jun 17, 2026
c4e3059
language_models: Clear speed for OpenAI-compatible providers that don…
anantdgoel Jun 17, 2026
83d4847
a11y: Settings UI (#59429)
cameron1024 Jun 17, 2026
a225d51
Add harden-runner in audit mode to run_tests Linux jobs (#59446)
swannysec Jun 17, 2026
253606e
Move the crash handler process spawn to a background thread (#58881)
Anthony-Eid Jun 17, 2026
92399c6
markdown: Add debug_asserts for search result ordering (#59483)
bennetbo Jun 17, 2026
f4c621b
open_path_prompt: Cancel in-flight tasks when dialog is dismissed (#5…
NeelChotai Jun 17, 2026
1bc9d8e
Bump `alacritty_terminal` repo SHA (#59445)
NeelChotai Jun 17, 2026
dfd44a4
Add Windows terminal sandboxing via WSL (#58971)
MartinYe1234 Jun 17, 2026
dd7e50e
Add global setting to enable or disable the agent sandbox (#59497)
rtfeldman Jun 17, 2026
5ef7b14
Enable sandboxing for staff by default (#59507)
rtfeldman Jun 17, 2026
362035d
Fix opening folders whose name ends in a position-like suffix (#59384)
sijokun Jun 17, 2026
770d5a8
Support slashes in selected model IDs (#59523)
anantdgoel Jun 18, 2026
6076ce2
perf: Add initial benchmark for markdown element (#59524)
Anthony-Eid Jun 18, 2026
e4f6742
git: Use fast access check for repository in git panel (#59514)
lgeiger Jun 18, 2026
35e2ef8
markdown_preview: Add max-width setting (#59512)
danilo-leal Jun 18, 2026
a0e3712
fs: Dispatch watcher events from the reader thread to avoid thrashing…
NeelChotai Jun 18, 2026
d1eb521
markdown_preview: Do not show deleted hunks (#59485)
bennetbo Jun 18, 2026
790b73e
git: Detect SCP remotes with non-standard SSH usernames (#59457)
IbrahimKhan12 Jun 18, 2026
10628c3
agent_ui: Add in-thread search bar (#57231)
dandv Jun 18, 2026
4021156
Make grep tool results clickable in agent panel (#59230)
MartinYe1234 Jun 18, 2026
0a2f8b5
editor: Add the git blame toggle to gutter context menu (#59460)
NsdHSO Jun 18, 2026
4cab63f
Bump Zed to v1.9.0 (#59486)
zed-zippy[bot] Jun 18, 2026
adb8a1d
zed: Respect `default_open_behavior` when opening from Finder (#59551)
bennetbo Jun 18, 2026
3fc012e
vim: Fix `cw` with count greater than 1 not preserving whitespace cor…
davidhi7 Jun 18, 2026
e45e42a
agent_ui: Use the thread title for agent notifications (#59377)
e-compton Jun 18, 2026
0808383
agent: Preserve saved model selection until provider loads (#59417)
NeelChotai Jun 18, 2026
69b602c
cloud_api_types: Add `ZedVip` variant to `Plan` (#59443)
maxdeviant Jun 18, 2026
cc3d4d5
workspace: Allow user to pick arbitrary parent path as a trustee (#59…
osiewicz Jun 19, 2026
ef38a41
helix: Fix start and end of document motions (#59449)
polars-bear Jun 19, 2026
d1f500e
Fix binary name resolution against custom PATH on macOS (#55672)
G36maid Jun 19, 2026
ccf4058
Add preview to pickers and make them resizable (#59604)
yara-blue Jun 19, 2026
195760c
thread_view: Add some design improvements to thread search (#59609)
danilo-leal Jun 19, 2026
6febe1c
Allow file watchers to handle case insensitive file systems (#59579)
Anthony-Eid Jun 19, 2026
3df8983
Fix picker preview for matches far down in files (#59621)
Anthony-Eid Jun 19, 2026
9f56a4d
Fix CI error from linux case insensitive path (#59624)
Anthony-Eid Jun 19, 2026
f99df1a
docs: Fix incorrect default values (#59578)
IbrahimKhan12 Jun 20, 2026
45e8438
ep: Limit diagnostic message token counts (#59644)
probably-neb Jun 20, 2026
50e6411
ep: Track settled telemetry for empty predictions (#59645)
probably-neb Jun 20, 2026
4d94097
Revert "zed: Respect `default_open_behavior` when opening from Finder…
bennetbo Jun 21, 2026
ca2d7fd
settings_content: Make context server args optional (#59623)
IbrahimKhan12 Jun 21, 2026
076fd14
git_panel: Add better view options (#59043)
chirivelli Jun 21, 2026
e25e52b
git_panel: Add Git actions in split button (#59608)
chirivelli Jun 21, 2026
9a992ed
gpui: Fix web examples build (#59470)
cppcoffee Jun 22, 2026
13dd39b
Git status list fix (#59155)
Groni3000 Jun 22, 2026
356e396
git_ui: Search commits by hash (#59132)
nguyenphutrong Jun 22, 2026
514b14e
git_ui: Add setting to control default click behavior for git panel (…
nathan-fiscaletti Jun 22, 2026
c0945a8
git_ui: Re-render Git Panel when language model registry updates (#59…
akunzai Jun 22, 2026
8ba35e5
acp: Update agent client protocol crate to 0.15.0 (#59593)
benbrandt Jun 22, 2026
8c10715
Migrate missed pickers to new width system (#59693)
yara-blue Jun 22, 2026
2df089e
acp: Advertise model picker support to Cursor (#59694)
benbrandt Jun 22, 2026
51fac82
CONTRIBUTING.md: Add links and cosmetic changes (#58627)
zelenenka Jun 22, 2026
e8e479c
settings_ui: Fix env var name input for local MCPs (#59690)
tomhoule Jun 22, 2026
7b73d5c
copilot_ui: Fix sign-in window floating above all applications (#59657)
nzb3 Jun 22, 2026
e1bfff8
git_panel: Add some design tweaks (#59699)
danilo-leal Jun 22, 2026
3601a7c
Re-add section about extension API to `CONTRIBUTING.md` (#59702)
MrSubidubi Jun 22, 2026
e4dbdaa
Remove cherry-pick-bot config (#59703)
MrSubidubi Jun 22, 2026
cf93437
agent_ui: Close search when hitting escape from message editor (#59705)
danilo-leal Jun 22, 2026
a1a881b
Add shell completions for CLI (#57440)
silvanshade Jun 22, 2026
50b4a1c
vim: Fix out of scope insert line above (#55459)
deaconctl Jun 22, 2026
f791aa5
gpui: Bump resvg/usvg and regression test for panic (#59704)
cameron1024 Jun 22, 2026
1b7318b
ep: Combine settled and example capture (#58759)
probably-neb Jun 22, 2026
7e4caf0
Add paragraph-based navigation to terminal's vi mode (#56038)
hron Jun 22, 2026
91ff38a
editor: Fix Python docstring formatting in hover popovers (#59480)
darsh0230 Jun 22, 2026
8f438e6
opencode: Model updates (#59236)
yeskunall Jun 22, 2026
39bba3c
install_cli: Show notification instead of failing CLI install (#59575)
ConradIrwin Jun 22, 2026
471fb15
Fix compaction happening too early for chatgpt_subscribed (#59686)
gb-jos Jun 22, 2026
f6bfa09
Add named bookmark support (#57491)
guopenghui Jun 22, 2026
d8228b4
Restore keyboard navigation for Remote Projects modal (#59336)
danilo-leal Jun 22, 2026
037f32a
Refine agent terminal sandbox off-switch and expand WSL env blocklist…
MartinYe1234 Jun 22, 2026
131ff63
edit_prediction: Remove diagnostic-triggered jumps (#59724)
probably-neb Jun 22, 2026
14f9b9d
agent_ui: Fix padding for editor (#59735)
smltr Jun 22, 2026
479bce0
Implement telemetry for the remote server (#59692)
Veykril Jun 23, 2026
61ce210
Make adding a remote MCP server more discoverable (#59359)
MrSubidubi Jun 23, 2026
153f709
docs: Improve documentation around MCP servers (#59380)
MrSubidubi Jun 23, 2026
cf76418
collab: Revert livekit changes (#59733)
osiewicz Jun 23, 2026
4eb039b
ollama: Don't abort entire model fetch if one model's details fail to…
deXterbed Jun 23, 2026
f88bc7e
picker: Simplify presentation and sizing APIs, add preview-aware defa…
danilo-leal Jun 23, 2026
ad6ce93
webrtc: Bump webrtc to fix a panic (#59750)
Veykril Jun 23, 2026
438070b
languages: Fix Debug Test for Go subtests (#53680)
yeskunall Jun 23, 2026
d3756f3
vim: Remove duplicate ShellCommand action registration (#56937)
dynamicers Jun 23, 2026
d753a31
git_ui: Keep view options menu state fresh (#59744)
chirivelli Jun 23, 2026
bab93f3
helix: Add debugger keybindings (#57756)
jgarte Jun 23, 2026
41f9a2e
icons: Add some periodic clean up (#59757)
danilo-leal Jun 23, 2026
1e7f1a1
ci: Fix bwrap jobs on `run_bundling` (#59765)
MrSubidubi Jun 23, 2026
56816c0
project_panel: Reduce cloning when rendering entries (#56993)
cppcoffee Jun 23, 2026
0d3badc
agent_ui: Fix opening the profile configuration modal from picker (#5…
danilo-leal Jun 23, 2026
eea5f57
Allow sandboxed Git writes from worktrees (#57981)
rtfeldman Jun 23, 2026
42a2eff
text_finder: Send selected word to text finder query (#59766)
ozacod Jun 23, 2026
a2fee92
agent: Fix terminal_init commands race condition with PTY startup (#5…
MartinYe1234 Jun 23, 2026
7187d65
language_models: Set support_thinking in Responses API for OpenAI-com…
razmser Jun 23, 2026
f844c93
open_router: Add prompt caching for Anthropic models (#57498)
jamesst20 Jun 23, 2026
df6c440
Add agent sandboxing docs (#59774)
rtfeldman Jun 23, 2026
c49a29f
sandbox: Linux domain filtering and some more cleanup (#59790)
cameron1024 Jun 24, 2026
5d06fff
Harden Git sandbox metadata grants (#59785)
rtfeldman Jun 24, 2026
daf4656
settings_ui: Route Skill tool permissions to its own config page (#59…
yeskunall Jun 24, 2026
f5c1912
languages: Fix completion item highlighting for Python (#59758)
lingyaochu Jun 24, 2026
aa7dc30
agent_ui: Fix favorite model button not showing for unselected models…
MrSubidubi Jun 24, 2026
d655580
ui: Fix `end_slot_on_hover` API (#59805)
MrSubidubi Jun 24, 2026
5a5242f
markdown: Render inline <br> tags as line breaks (#54165)
davidalecrim1 Jun 24, 2026
01c316a
docs: Add note about upcoming MCP extension deprecation (#59812)
MrSubidubi Jun 24, 2026
c8f68c3
csv_preview: Make horizontal scrollbar width respect pinned columns c…
HalavicH Jun 24, 2026
6c923cc
text_finder: Seed text finder query from active project and buffer se…
ozacod Jun 24, 2026
f18e91e
Reapply traffic light position after appearance changes (#59712)
yay Jun 24, 2026
8036a3c
Add non breaking glue characters as non-wrapping characters (#59775)
smltr Jun 24, 2026
e990f31
editor: Fix showing completion list with selection does not include t…
feitreim Jun 24, 2026
697cff5
Remove SSH agent access from sandbox docs (#59797)
rtfeldman Jun 24, 2026
2df7493
acp: Support embedded resources in tool call content (#59821)
benbrandt Jun 24, 2026
10f501d
eval_cli: Add remote benchmark orchestration (#59802)
anantdgoel Jun 24, 2026
e0878c4
grammars: Add semantic token rule for Python constants (#59811)
lingyaochu Jun 24, 2026
3b2acfe
Bump Zed to v1.10.0 (#59834)
zed-zippy[bot] Jun 24, 2026
9ac1176
gpui_windows: Fix immovable windows skipping hit testing entirely (#5…
Veykril Jun 24, 2026
a1d0015
recent_projects: Fix read ssh server index always being 0 (#59817)
van-sprundel Jun 24, 2026
64b8491
picker: Fix layout persistency with preview setting change (#59827)
ozacod Jun 24, 2026
ee571d3
gpui: Add system wake callback (#59831)
agu-z Jun 24, 2026
0b458e5
extension_host: Sync language extensions to remotes (#56487)
terror Jun 24, 2026
0346cc7
solo_diff_view: Add git action to open file diff and other improvemen…
chirivelli Jun 24, 2026
784b14e
ep: Hashed region format (#59837)
probably-neb Jun 24, 2026
17c0ebb
ep: Batch settled edit prediction telemetry (#59857)
probably-neb Jun 25, 2026
45a4d87
Fix recent projects footer overflowing (#59891)
yara-blue Jun 25, 2026
ced0d85
go: Highlight predeclared types and built-in functions (#59780)
sollniss Jun 25, 2026
6e085b2
agent_ui: Show base name for duplicate file mentions in the Agent Pan…
ypatodkar Jun 25, 2026
e7afe9f
git_ui: Disable remote button during operations (#59874)
cppcoffee Jun 25, 2026
25ea339
git_panel: Focus back on commit editor when expanded (#59901)
dinocosta Jun 25, 2026
99c3d17
text_finder: Open match on the right column (#59840)
ozacod Jun 25, 2026
e6ea825
terminal: Swap right and middle mouse button mappings (#59844)
he-thinks Jun 25, 2026
b6e1e27
agent: Truncate display name using grapheme clusters in config option…
damonxue Jun 25, 2026
99129bb
zeta_prompt: Add V4 edit prediction API types (#59869)
probably-neb Jun 25, 2026
8372eb1
Add picker label to GitHub community PR board automation (#59905)
yara-blue Jun 25, 2026
593ca12
ai: Add Max reasoning effort (#59806)
Vlaaaaaaad Jun 25, 2026
eae0b58
markdown: Fix example crash on Linux (#58406)
mengh04 Jun 25, 2026
9de0590
acp: Update to Rust SDK 1.0.0 (#59889)
benbrandt Jun 25, 2026
dae3e57
gpui_linux: Improve error message when X11 and Wayland feature flags …
zax71 Jun 25, 2026
e0f77d1
Update bundled JSON schemas (2026-04-29) (#58948)
notpeter Jun 25, 2026
ec7c11c
Fix delayed titlebar clicks on macOS 27 Beta (#59836)
Anthony-Eid Jun 25, 2026
f36a008
Fix navigating to Collab URLs not working when not connected (#59652)
probably-neb Jun 25, 2026
35eaeb9
gpui: Fix xdg_toplevel app_id set to None at first commit on Wayland …
mTvare6 Jun 25, 2026
46ff888
markdown_preview: Add font size settings and actions (#55489)
davidalecrim1 Jun 26, 2026
0b61ce2
language_models: Surface disabled cloud models (#59781)
tomhoule Jun 26, 2026
f0cb9fc
editor: Fix grammar in comment (#59951)
MrSubidubi Jun 26, 2026
5c58d5c
agent_ui: Refactor the queue feature and add steering ability (#59310)
danilo-leal Jun 26, 2026
eb87750
gpui_windows: Add missing windows dependency feature (#59886)
Veykril Jun 26, 2026
db30c67
project_panel: Add markdown preview context menu item (#57112)
white-hat Jun 26, 2026
90587dd
Keep inline code pipes inside markdown table cells (#57744)
AnkanMisra Jun 26, 2026
5989a36
ep: Send V4 prediction requests (#59930)
probably-neb Jun 26, 2026
7854e45
terminal: Fix procfs file descriptor leak in PTY process tracking (#5…
FlorentinDUBOIS Jun 26, 2026
02aabb9
project_panel: Add expand/collapse all to context menu (#59567)
ahmedash95 Jun 26, 2026
adedf35
git: Use version control colors in diff hunk line numbers (#59973)
dinocosta Jun 26, 2026
1fd93cb
Unship shared threads (#59981)
maxdeviant Jun 26, 2026
af3f790
Unify behavior of delete/cut to line boundary actions (#59627)
JosephTLyons Jun 26, 2026
184cf97
Remove auto watch feature flag (#59619)
JosephTLyons Jun 26, 2026
2c346f6
Use stable path keys for the project diff (#59984)
cole-miller Jun 26, 2026
632dcae
Restore remote binary dev build output (#59997)
SomeoneToIgnore Jun 27, 2026
a8ffae4
Improve context menu experience in the markdown preview (#59993)
SomeoneToIgnore Jun 27, 2026
3c312b5
docs: Remove readme junk (#60008)
cameron1024 Jun 27, 2026
968379f
ci: Bump `setup-node` and use Node v24 (#59947)
MrSubidubi Jun 27, 2026
bfe0d7c
git_ui: Preserve in-progress commit message across reconnect (#58180)
mvanhorn Jun 27, 2026
5837e7e
Hide code lens' blocks in folds (#60011)
SomeoneToIgnore Jun 27, 2026
73b235a
Refresh code lens after dynamic registration (#60009)
SomeoneToIgnore Jun 28, 2026
afaef85
languages: Fix Rust completion labels with `fullFunctionSignatures` e…
lingyaochu Jun 28, 2026
2a93ca5
Handle dynamic registration of semantic tokens capability (#60015)
tatsudo Jun 28, 2026
0deb6c0
Fix code lens not being resolved in remote workflows (#59999)
SomeoneToIgnore Jun 28, 2026
7582bf7
Allow empty values in .editorconfig (#60026)
SomeoneToIgnore Jun 28, 2026
33473c1
git_panel: Fix stale Git status entries for moved directories (#59934)
pigletfly Jun 29, 2026
5fa184f
solo_diff_view: Show changes only by default (#59958)
chirivelli Jun 29, 2026
b40aa65
terminal: Require a drag threshold before starting a selection (#59918)
IbrahimKhan12 Jun 29, 2026
cd7f1a0
worktree: Avoid dropping git repositories during watcher rescans (#59…
RemcoSmitsDev Jun 29, 2026
f2006b2
git: Allow showing inline blame in the status bar (#59696)
Koshkaj Jun 29, 2026
70fd3c5
acp: Handle acp message ids when we get them (#59927)
benbrandt Jun 29, 2026
480796c
Fix regression of main window dragging on Windows (#59967)
milkowski Jun 29, 2026
76e07d5
Disable format-on-save by default (#59710)
ChristopherBiscardi Jun 29, 2026
d7b9b28
format on save: javascript docs (#60070)
ChristopherBiscardi Jun 29, 2026
2bb81ba
Only show preview line numbers if enabled by user (#59957)
hron Jun 29, 2026
c57b348
Make Esc dismiss agent notifications (#60001)
SomeoneToIgnore Jun 29, 2026
c3a4bda
Emit agent thread status change events (#60057)
dscarpetti Jun 29, 2026
7765850
terminal_view: Resolve remote terminal paths outside worktrees (#52537)
loadingalias Jun 29, 2026
3d1b26d
Protect Git metadata in Windows sandboxes (#59799)
MartinYe1234 Jun 29, 2026
3eb9bf2
settings_ui: Move MCP server timeout setting to MCP subpage (#60069)
bennetbo Jun 29, 2026
b81d38e
agent_ui: Refine UI design displaying sandbox information (#59980)
danilo-leal Jun 29, 2026
031ccfd
terminal: Do not show workspace actions in agent panel terminals (#60…
bennetbo Jun 29, 2026
9cb139f
agent: Delete subagent threads when deleting parent thread (#60071)
bennetbo Jun 29, 2026
4b119fc
Add llama.cpp as a language model provider (#59964)
hanouticelina Jun 29, 2026
441de84
gpui_linux: Suppress dead code warning on `wake_sender` (#60090)
maxdeviant Jun 29, 2026
26ee53e
Preserve telescope picker size on reopens (#60093)
SomeoneToIgnore Jun 29, 2026
c070f7c
agent_ui: Add some more design tweaks to the sandbox tooltip (#60085)
danilo-leal Jun 29, 2026
485aeab
reqwest_client: Drop stale connections with keepalives (#59929)
Anthony-Eid Jun 29, 2026
0a7c84b
collab: Add `username` to `User` (#60097)
maxdeviant Jun 29, 2026
7c3160b
gpui_linux: Consume Wayland startup activation token (#59995)
Anthony-Eid Jun 29, 2026
380a5c7
client: Remove unused `cached_user_by_github_login` method from `User…
maxdeviant Jun 29, 2026
a923597
Fix agent terminal in headless eval sandbox (#59969)
anantdgoel Jun 29, 2026
f8e1ab7
fs: Coalesce queued rescans after watcher overflow (#60098)
Anthony-Eid Jun 29, 2026
b04ae5e
acp: Update ACP SDK to 1.0.1 (#60088)
benbrandt Jun 29, 2026
3bb9220
language_models: Rename llama.cpp provider ID (#60112)
benbrandt Jun 29, 2026
29faf94
ep: Fix cursor marker leak due to edit splitting in V4 API (#60110)
probably-neb Jun 29, 2026
53e4d34
client: Add `username` to `User` and start using it (#60107)
maxdeviant Jun 29, 2026
04efe79
Improve overall compilation stats after the telescope picker feature …
SomeoneToIgnore Jun 30, 2026
6a1ced4
agent: Use compaction boundaries when generating summaries and titles…
bennetbo Jun 30, 2026
ae0f446
Improve helix keymap (#59638)
jasonwilliams Jun 30, 2026
5329bd8
agent: Make new from summary less prominent (#60145)
bennetbo Jun 30, 2026
8186af9
Restore last picker (#59912)
yara-blue Jun 30, 2026
45015f8
acp: Support boolean ACP config options (#59698)
benbrandt Jun 30, 2026
3856272
agent: Add commit message project rules toggle (#56867)
ilavisharma Jun 30, 2026
4a99aa8
agent: More sandboxing changes (#60111)
cameron1024 Jun 30, 2026
e783b2f
acp_thread: Defer status updates until turn completion (#60148)
benbrandt Jun 30, 2026
56562c2
settings_ui: Make agent settings searchable (#60151)
bennetbo Jun 30, 2026
dfb70de
helix: Add `z c` keymap to `ScrollCursorCenter` (#58660)
jmevel Jun 30, 2026
b30ef39
editor: Use visible cursor position for rename (#55542)
grgwuk990 Jun 30, 2026
df33d78
cli: Always open new window when `cli_default_open_behavior=new_windo…
bennetbo Jun 30, 2026
40d2003
settings_ui: Remove feature flag for AI settings and adjust design (#…
danilo-leal Jul 1, 2026
03125da
agent: Sanitize MCP tool names for stricter provider naming rules (#6…
bennetbo Jul 1, 2026
7b128f9
workspace: Use remote host's path style when validating trust scope (…
lingyaochu Jul 1, 2026
914cc66
Make the existing bookmark action add an unnamed bookmark again (#60185)
yara-blue Jul 1, 2026
e4e2c9d
text_finder: Seed last query and filters to make quick edits easier (…
ozacod Jul 1, 2026
eef824c
agent_ui: Open MCP settings UI instead of modal (#60188)
bennetbo Jul 1, 2026
fa66442
acp: Add experimental elicitation UI support (#58927)
benbrandt Jul 1, 2026
15c31d4
settings_ui: Add OpenAI/Anthropic API-compatible provider form (#60195)
bennetbo Jul 1, 2026
c35650a
Support checking out remote HEAD refs (#57648)
albertbogusz Jul 1, 2026
3648fe6
agent: Sandboxing polish (#60173)
cameron1024 Jul 1, 2026
8d56867
v1.10.x preview for @dinocosta
zed-zippy[bot] Jul 1, 2026
6740703
sandbox: Fix WSL downloaded binary path (#60210) (cherry-pick to prev…
zed-zippy[bot] Jul 2, 2026
270a067
keymap_editor: Fix deleting and editing bindings that use deprecated …
zed-zippy[bot] Jul 3, 2026
111c408
v1.10.x stable for @Veykril
zed-zippy[bot] Jul 8, 2026
f3f6c6b
cli: Restore workspace by default when `cli_default_open_behavior="ne…
bennetbo Jul 9, 2026
32b4ecb
Split interpolate failure rejection reason (#60499) (cherry-pick to p…
probably-neb Jul 9, 2026
3add0bc
open_ai: Add GPT 5.6 models (#60697) (cherry-pick to stable) (#60699)
zed-zippy[bot] Jul 9, 2026
831248b
Bump to 1.10.1 for @bennetbo
zed-zippy[bot] Jul 9, 2026
c5463b7
agent: Add GPT 5.6 Sol/Terra for ChatGPT subscription (#60743) (cherr…
zed-zippy[bot] Jul 10, 2026
adc60cc
Bump to 1.10.2 for @bennetbo
zed-zippy[bot] Jul 10, 2026
94afdb2
Add design spec for upstream Zed sync to v1.10.2
crichalchemist Jul 13, 2026
c622f9a
Add implementation plan for upstream Zed sync to v1.10.2
crichalchemist Jul 13, 2026
864f29c
Merge tag 'v1.10.2' into chore/sync-upstream-v1.10.2
crichalchemist Jul 13, 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
  •  
  •  
  •  
160 changes: 160 additions & 0 deletions .agents/skills/gpui-test/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
---
name: gpui-test
description: >-
Use when writing, debugging, or reproducing GPUI tests in Zed, including
gpui::test arguments, TestAppContext parameters, scheduler seeds,
ITERATIONS/SEED reproduction, parking failures, and pending task traces.
---

# GPUI Test Debugging

Use this skill when the user asks about `#[gpui::test]`, GPUI test seeds or iterations, deterministic scheduler failures, parking/pending task failures, or how to reproduce a flaky GPUI test.

## What `#[gpui::test]` does

`#[gpui::test]` expands to a normal Rust `#[test]`, so it runs under standard Rust test runners such as `cargo test` and `cargo nextest`.

It wraps the body in GPUI's deterministic test dispatcher/scheduler and can run the same test multiple times with different seeds. The seed controls scheduler task interleavings and any `StdRng` argument injected into the test.

The macro supports both synchronous and asynchronous tests.

### Supported function arguments

The macro recognizes arguments by type name:

| Test kind | Supported arguments |
| --- | --- |
| Sync and async | `&TestAppContext`, `&mut TestAppContext`, `StdRng` |
| Async only | `BackgroundExecutor` |
| Sync only | `&App`, `&mut App` |

`StdRng` is seeded from the current GPUI test seed, and `BackgroundExecutor` is backed by the same deterministic test dispatcher.

### Attribute arguments

Use these forms on `#[gpui::test(arguments)]`:

- No arguments: runs once with seed `0`, unless `SEED` is set.
- `seed = N`: adds a single explicit seed.
- `seeds(...)`: adds multiple explicit seeds.
- `iterations = N`: runs sequential seeds starting at `0` by default.
- `retries = N`: retries a failing run up to `N` times before surfacing the failure.
- `on_failure = "path::to::function"`: calls the function after final failure, before resuming the panic.
- `iterations` can be combined with explicit `seed` / `seeds`; explicit seeds are appended to the `0..iterations` range.
- If the `SEED` environment variable is set, it takes precedence over explicit seeds.
- With `SEED=N` and `ITERATIONS=M` or `iterations = M`, the harness runs seeds `N..N+M`.

## Environment variables

### GPUI test macro / scheduler execution

- `SEED=<u64>` — chooses the scheduler seed. Use this to reproduce a failure printed as `failing seed: N`. It also seeds injected `StdRng` arguments. For `#[gpui::property_test]`, it controls the scheduler seed and GPUI applies it to the proptest config for deterministic case generation.
- `ITERATIONS=<usize>` — overrides the `iterations = ...` value at runtime. Use to sweep many seeds without editing the test.
- `PENDING_TRACES=1` or `PENDING_TRACES=true` — captures and prints pending task traces when the test scheduler panics with `Parking forbidden`. Use this when `run_until_parked()` or teardown reports pending work.
- `GPUI_RUN_UNTIL_PARKED_LOG=1` — logs when `allow_parking()` is enabled. Use to find tests that explicitly permit parking/pending work.
- `DEBUG_SCHEDULER=1` — prints scheduler clock/timer debugging from `scheduler::TestScheduler`.

### Lower-level scheduler tests

- `SCHEDULER_NONINTERACTIVE=1` — suppresses interactive seed progress output in `scheduler::TestScheduler::many`. This does not affect the `#[gpui::test]` harness path.

### General Rust test debugging vars often useful with GPUI tests

- `RUST_BACKTRACE=1` or `RUST_BACKTRACE=full` — show panic backtraces.
- `RUST_LOG=<filter>` — enable logs when the test initializes logging.
- `ZED_HEADLESS=1` — forces GPUI platform guessing toward headless mode; useful for tests that otherwise interact with platform/window setup.

Prefer env vars over editing the test when narrowing a reproduction.

## Reproducing a specific GPUI test

1. Identify the crate/package and test name.

2. Run the narrowest test filter first, skip to 3. if a failing seed is known.

```sh
cargo -q test -p <crate-name> <test_name> -- --nocapture
```

3. If the failure mentions a seed, rerun exactly that seed.

```sh
SEED=<seed> cargo -q test -p <crate-name> <test_name> -- --nocapture
```

4. If the failure is flaky and no seed is known, sweep seeds.

```sh
ITERATIONS=100 cargo -q test -p <crate-name> <test_name> -- --nocapture
```

When the harness prints `failing seed: <seed>`, switch to `SEED=<seed>` for all future debugging.

5. If the failure is `Parking forbidden`, rerun with pending traces.

```sh
PENDING_TRACES=1 cargo -q test -p <crate-name> <test_name> -- --nocapture
```

If a failing seed was printed or is already known, include it too:

```sh
SEED=<seed> PENDING_TRACES=1 cargo -q test -p <crate-name> <test_name> -- --nocapture
```

Inspect the pending traces for a task that was spawned but not awaited, detached, completed, or intentionally allowed to park.

6. If timing or timer advancement is involved, prefer GPUI scheduler timers in tests:

```rust
cx.background_executor().timer(duration).await;
```

Avoid `smol::Timer::after(...)` in GPUI tests that rely on `run_until_parked()`, because GPUI's scheduler may not track it.

7. Minimize the reproduction.
- Keep the failing `SEED` fixed.
- Reduce `ITERATIONS` to `1` or remove it once a seed is known.
- Remove unrelated setup only after confirming the same seed still fails.
- Preserve scheduler-sensitive awaits/yields; removing them can mask the bug.
- If randomness is test-controlled via `StdRng`, log or assert the generated scenario after fixing the scheduler seed.

8. Validate the fix.
- Run the fixed seed.
- Run a modest seed sweep, e.g. `ITERATIONS=20`, if the failure was scheduler-sensitive.
- Run the relevant crate's test filter or broader suite if the touched code has shared behavior.

## Common diagnosis patterns

### Seed-dependent assertion failure

Likely caused by a scheduler interleaving or by `StdRng`-driven test data. Fix `SEED`, reproduce, and inspect which task or generated scenario differs.

### `Parking forbidden`

Usually means a foreground/background task is still pending when the scheduler expected the test to make progress or finish. Look for:

- A task that should be awaited but was dropped.
- A task that should be detached with error logging.
- A timer or receiver that is waiting forever.
- A missing `cx.run_until_parked()` after triggering async work in a test.
- A missing `cx.advance_clock(...)` to wait for debounced work in a test.
- Use of non-GPUI timers or executors that the test scheduler cannot drive.

Rerun with `PENDING_TRACES=1` before changing code.

### Non-determinism / wrong thread

The scheduler can report activity from an unexpected thread. Look for work escaping GPUI's foreground/background executors, direct thread spawns, or external async runtimes not controlled by the test dispatcher.

### Tests pass alone but fail in sweeps

Use the failing seed from sweep output. Avoid assuming test order unless the runner is explicitly serial. Check globals, leaked entities/tasks, and state not reset by test initialization.

## Writing GPUI tests

- Prefer `#[gpui::test]` for tests that need `TestAppContext`, deterministic executors, fake time, or scheduler interleaving coverage.
- Add `iterations = N` when the test is intentionally checking interleavings.
- Use `StdRng` as a test argument when randomized test data should follow the same seed as the scheduler.
- Use `cx.background_executor().timer(duration).await` for delays/timeouts in GPUI tests.
- Do not add or increase `retries` while fixing a test unless the user explicitly asks or the test already documents why probabilistic tolerance is intentional. Retries can mask the failure instead of fixing it.
175 changes: 175 additions & 0 deletions .agents/skills/zed-cherry-pick/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
---
name: zed-cherry-pick
description: Cherry-pick one or more merged PRs and/or commits into Zed's `preview` or `stable` release branch. Use this whenever the user mentions cherry-picking to preview/stable, a failed cherry-pick run, or wants to manually port fix(es) into a release branch.
---

# Zed Cherry-Pick

Zed ships from two long-lived release branches that live on `origin`:

- `preview` channel → branch like `v1.4.x`
- `stable` channel → branch like `v1.3.x`

The version numbers change with each release. **Never hardcode them — always discover the current mapping** (see [Finding the target branch](#finding-the-target-branch)).

A merged PR on `main` gets ported to a release branch by `script/cherry-pick`, normally driven by the `cherry_pick` GitHub Actions workflow. When that workflow fails (almost always a merge conflict), use this skill to finish the job locally and open the cherry-pick PR by hand.

## When to use

Use this when the user asks to cherry-pick one or more commits and/or Pull Requests (by number or URL) to `preview` or `stable`.
Optionally, the user may specify whether to resolve merge conflicts; if unspecified, attempt the cherry-pick, and then if there are merge conflicts in practice, stop and inform the user that there are merge conflicts and offer to resolve them. (Users may prefer to resolve the merge conflicts themselves before continuing.)

## The script you're emulating

The canonical procedure lives in `script/cherry-pick` and the `cherry_pick` GitHub Actions workflow. Read the script first if anything looks off — your local steps must produce the same branch name, PR title, and PR body it would.

Signature: `script/cherry-pick <branch-name> <commit-sha> <channel>`

- `<branch-name>` is the release branch (e.g. `v1.4.x`), **not** the channel name.
- `<channel>` is `preview` or `stable`, used only for display text in the PR title/body.

It creates a local branch named `cherry-pick-<branch-name>-<short-sha>` (the short SHA is the first 8 chars of the commit), force-pushes it to `origin`, and opens a PR.

## Finding the target branch

The channel→branch mapping changes every release. Find the current one by inspecting the most recent `cherry_pick` workflow runs:

```
gh run list --workflow=cherry_pick.yml --limit 30 --json displayTitle,databaseId
# pick a recent run for the channel you want, then:
gh run view <id> --log 2>&1 | grep -E "BRANCH:|CHANNEL:"
```

A successful run prints both `BRANCH:` and `CHANNEL:` env vars; that's your mapping.

## Procedure

### 1. Gather context

You need three things: the **merge commit SHA**, the **target branch**, and the **channel name**.

If the user requested multiple PRs and/or commits, gather the metadata for all of them first and cherry-pick them in the order they landed on `main`, oldest to newest. For PRs, order by `mergedAt`; for raw commits, use their order on `main` when available, otherwise commit date. This tends to reduce avoidable conflicts because later changes may depend on earlier ones, but it does not guarantee a conflict-free cherry-pick when the release branch has diverged.

```
gh pr view <PR_NUMBER> --json title,number,mergeCommit,mergedAt,url
```

If the user said the workflow failed, fetch its log to see exactly which command failed and which file conflicted:

```
gh run list --workflow=cherry_pick.yml --limit 10 --json databaseId,displayTitle,status,conclusion
gh run view <failed_run_id> --log-failed
```

The failed-run log also confirms the `BRANCH` and `COMMIT` the workflow used — handy if there's any ambiguity.

### 2. Reproduce the script's setup locally

The repository may be a worktree (check `.git` — if it's a file, you're in a worktree pointing at a shared gitdir). That's fine; just operate normally.

```
git --no-pager fetch origin <branch-name> <commit-sha>
git checkout --force origin/<branch-name> -B cherry-pick-<branch-name>-<short-sha>
git cherry-pick <commit-sha>
```

The branch name **must** match `cherry-pick-<branch-name>-<short-sha>` exactly (script convention; reviewers and tooling expect it).

### 3. Check for missing prerequisite cherry-picks

If the cherry-pick conflicts, do not immediately resolve the conflicts manually.

First determine whether the conflict is likely caused by other PRs or commits that are already on `main` but missing from the release branch. If so, point out those candidate prerequisite PRs/commits to the user, including PR links, and offer to either resolve the conflicts manually or let the user run the GitHub cherry-pick workflow for those commits first.

If the user wants to run the workflow for the missing prerequisites, stop here. This often keeps cherry-picks clean and eligible for automatic approval.

Only resolve conflicts manually if:
- no likely missing prerequisites are found, or
- the user chooses manual conflict resolution instead of cherry-picking the prerequisites first.

### 4. Resolve the conflicts manually

Do this only after checking for missing prerequisite cherry-picks.

- Inspect every conflicted file with `grep -n '<<<<<<<\\|>>>>>>>\\|=======' <path>` to find the markers.
- Conflicts are usually `diff3` style with three sections: HEAD (release branch), `||||||| parent of <sha>` (merge base on `main`), and the incoming change.
- Read the **original commit** (`git --no-pager show <commit-sha> -- <path>`) to understand the author's intent, then pick the resolution that produces the equivalent end state on the release branch.
- Don't grab unrelated changes from `main` that happen to surround the conflict — keep the cherry-pick minimal.

### 5. Validate

Always build and (if reasonable) test the affected crate(s) before continuing the cherry-pick.

```
cargo check -p <affected_crate>
cargo test -p <affected_crate>
```

If validation fails, fix the resolution — do **not** continue with a broken build. If you can't reach a clean state, abort with `git cherry-pick --abort` and report back to the user.

### 6. Finish the cherry-pick

`git cherry-pick --continue` opens an editor by default. Prevent that:

```
git add <resolved_files>
GIT_EDITOR=true git cherry-pick --continue
```

This preserves the original commit message verbatim, which is what the script does.

### 7. Push and open the PR

```
git push origin -f cherry-pick-<branch-name>-<short-sha>
```

Then create the PR with the **exact** title and body format `script/cherry-pick` uses, so it's indistinguishable from an automated one.

**Title:**

```
<original commit subject> (cherry-pick to <channel>)
```

The original commit subject already ends in ` (#<original_pr_number>)`; keep it.

**Body** (when the original commit title ends in `(#<N>)`, which is the normal case):

```
Cherry-pick of #<original_pr_number> to <channel>

----
<original commit body, verbatim>
```

Create it with `gh pr create`, writing the body to a temp file to keep formatting intact:

```
git --no-pager log -1 --pretty=format:"%b" > /tmp/cp-body-tail.md
printf 'Cherry-pick of #%s to %s\n\n----\n' <PR_NUMBER> <channel> | cat - /tmp/cp-body-tail.md > /tmp/cp-body.md
gh pr create --base <branch-name> --head cherry-pick-<branch-name>-<short-sha> \\
--title "<commit subject> (cherry-pick to <channel>)" \\
--body-file /tmp/cp-body.md
```

Do **not** add a `Release Notes:` section — the original commit body already has one (or already says `N/A`), and you don't want it duplicated.

## Final report to the user

Tell the user:
- The new PR URL.
- A one-line summary of the conflict and how you resolved it.
- What validation you ran (commands + result).
- That their local branch is now `cherry-pick-<branch-name>-<short-sha>`, in case they want you to switch back.

## Gotchas

- **`--no-pager` and `GIT_EDITOR=true`**: required for non-interactive git in this environment. Forgetting `GIT_EDITOR=true` on `cherry-pick --continue` hangs the terminal.
- **Worktree index lock**: if a previous git command was interrupted, you may see `index.lock` errors. The lock lives at `<gitdir>/index.lock` where `<gitdir>` is what `cat .git` points to (for a worktree). Remove it only if you're sure no git process is running.
- **Don't expand the cherry-pick's scope**: when resolving conflicts, never pull in unrelated changes from `main` just because they sit next to the conflict region. The PR should be the smallest diff that reproduces the original commit's intent on the release branch.
- **Channel branches are not called `preview`/`stable`**: don't try to `git fetch origin preview`. Look up the actual `vX.Y.x` branch name first.

## When Finished

After everything is finished, the last thing to do is to provide a link to the opened pull request(s) for the cherry-pick(s).
2 changes: 0 additions & 2 deletions .github/CODEOWNERS.hold
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@
/crates/open_ai/ @zed-industries/ai-team
/crates/open_router/ @zed-industries/ai-team
/crates/prompt_store/ @zed-industries/ai-team
/crates/rules_library/ @zed-industries/ai-team
# SUGGESTED: Review needed - based on Richard Feldman (2 commits)
/crates/shell_command_parser/ @zed-industries/ai-team
/crates/vercel/ @zed-industries/ai-team
Expand Down Expand Up @@ -181,7 +180,6 @@
/crates/fs_benchmarks/ @zed-industries/infrastructure-team
/crates/http_client/ @zed-industries/infrastructure-team
/crates/http_client_tls/ @zed-industries/infrastructure-team
/crates/nc/ @zed-industries/infrastructure-team
/crates/net/ @zed-industries/infrastructure-team
/crates/paths/ @zed-industries/infrastructure-team
/crates/release_channel/ @zed-industries/infrastructure-team
Expand Down
2 changes: 0 additions & 2 deletions .github/cherry-pick-bot.yml

This file was deleted.

Loading