Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
3416 commits
Select commit Hold shift + click to select a range
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
b083358
Suppress `pet` log spam when opening Python projects (#60204)
lingyaochu Jul 1, 2026
35c3d27
Bump Zed to v1.11.0 (#60209)
zed-zippy[bot] Jul 1, 2026
7e0f634
terminal_view: Use backslash escaping for dropped file paths for mac …
mertkanakkoc Jul 1, 2026
550ddc9
agent_ui: Replace thread controls with slash commands (#59974)
danilo-leal Jul 1, 2026
bcd54d0
editor: Add intelligent bracket colorization (#51580)
kaikozlov Jul 1, 2026
b206841
Add range-based whitespace and newline removal to buffer formatting (…
G36maid Jul 1, 2026
d0802ab
grammars: Fix runnable gutter detection for `describe.skipIf` / `test…
NsdHSO Jul 1, 2026
10b0795
sandbox: Fix WSL downloaded binary path (#60210)
cameron1024 Jul 1, 2026
995e56d
markdown_preview: Use UI font for base font size (#60212)
danilo-leal Jul 2, 2026
d132afe
Add new area labels to track mapping - 2 (#60247)
smitbarmase Jul 2, 2026
7d545c0
markdown: Make linked images clickable (#59525)
WaryaWayne Jul 2, 2026
d1e8c0b
git_store: Avoid redundant work in worktree git repository update (#6…
RemcoSmitsDev Jul 2, 2026
f964172
project_panel: Wrap filenames in code spans in confirmation dialogs (…
Sudarsh1010 Jul 2, 2026
779ca5e
docs: Add note to Windows building docs (#60104)
InfyniteHeap Jul 2, 2026
9cb3140
wgpu: Use wgpu from crates.io (#60264)
benbrandt Jul 2, 2026
b3d5ead
Add Guild board automation (#60266)
zelenenka Jul 2, 2026
9375695
Project/use line hint for search (#58871)
mertkanakkoc Jul 2, 2026
da2b62c
Fix relative line number calculation when the first row is wrapped (#…
danielepintore Jul 2, 2026
e551353
editor: Accumulate consecutive KillRingCut line kills (#51761)
loadingalias Jul 2, 2026
4a1cb2b
lsp_button: Fix missing server metadata after restart (#55162)
AnkanMisra Jul 2, 2026
21d66eb
settings: Remove unused `message_editor` setting (#60260)
bennetbo Jul 2, 2026
c556938
cloud_api_types: Remove unused `AcceptTermsOfServiceResponse` type (#…
maxdeviant Jul 2, 2026
52b61cf
zed: Respect `default_open_behavior` when opening file from Finder (#…
bennetbo Jul 2, 2026
442a347
Fix crash when trashing all untracked files (#60235)
marcogroot Jul 2, 2026
2ec0e6c
editor: Fix panic when confirming completion across buffers (#59471)
NeelChotai Jul 2, 2026
969c6c7
editor: Fix panic when restoring empty selections on undo/redo (#59372)
NeelChotai Jul 2, 2026
7eb4cb2
workspace: Fix panic when discarding a draft workspace (#60279)
smitbarmase Jul 2, 2026
78b6bf2
command_palette: Show scrollbar in command palette (#60239)
cppcoffee Jul 2, 2026
1709067
text_finder: Add collapsible file groups (#60193)
ozacod Jul 2, 2026
4ff55d0
Refactor agent settings UI code (#60274)
bennetbo Jul 2, 2026
e1ec575
editor: Update gutter hover tooltip on modifier changes (#58880)
saberoueslati Jul 2, 2026
27a9e20
vim: Fix Helix cursor position when deleting to end of line (#59987)
IbrahimKhan12 Jul 2, 2026
31fc9d5
project_panel: Continue batch delete when individual entries fail (#5…
justinschmitz97 Jul 2, 2026
ea87b05
Fix worktree grouping for bare checkouts (#59968)
anantdgoel Jul 2, 2026
4aa8ad9
agent: Make terminal threads searchable (#60292)
bennetbo Jul 2, 2026
2882636
Fix hanging updates after system sleep (#60301)
Anthony-Eid Jul 2, 2026
bb48a42
keymap_editor: Fix deleting and editing bindings that use deprecated …
probably-neb Jul 2, 2026
b5c2d8a
Revert "Fix hanging updates after system sleep (#60301)" (#60321)
maxdeviant Jul 2, 2026
552fc9f
reqwest_client: Fix streamed request bodies being truncated (#60314)
probably-neb Jul 3, 2026
0346a17
Add zed: get merch command palette action (#60330)
miguelraz Jul 3, 2026
f961889
Fix excluded language servers starting nonetheless (#60000)
SomeoneToIgnore Jul 3, 2026
4a3b763
Add progress bar to "Downloading Zed Update..." button (#60294)
Pephers Jul 3, 2026
a91c8aa
Remove more storybook leftovers (#60337)
MrSubidubi Jul 3, 2026
98ddc3a
Update openssl dependencies (#60342)
benbrandt Jul 3, 2026
59185f5
livekit_api: Fix LiveKit token revocation timestamps (#60157)
rtfeldman Jul 3, 2026
616b76c
Update Danger to 13.0.8 (#60346)
benbrandt Jul 3, 2026
9448417
project_symbols: Add preview to project symbols picker (#59863)
AbhinavMir Jul 3, 2026
7ed553b
acp_thread: Shrink ACP terminal scrollback to used on exit (#60019)
maja-sh Jul 3, 2026
be7e5b0
terminal_view: Show terminal inline assist keybinding in tooltip (#55…
di404 Jul 3, 2026
4da73e1
git_ui: Add configure and docs links to commit message tooltip (#60357)
macraig Jul 3, 2026
b497e20
Add Claude Fable 5 to Amazon Bedrock (#59016)
3ddyBoi Jul 3, 2026
aabcd71
Improve commit container at larger font sizes (#60331)
zaknesler Jul 3, 2026
f4364d8
gpui_linux: Add support for open_window in headless client (#60359)
kubkon Jul 3, 2026
53552b2
docs: Clarify agent notification placement (#54032)
hamza-paracha Jul 3, 2026
814b152
bedrock: Add Claude Sonnet 5 (#60360)
NeelChotai Jul 3, 2026
6eaad52
language_models: Avoid sending Bedrock cache-point-only messages (#59…
sumleo Jul 3, 2026
262fb9b
Show per-file diff stat in multibuffer headers (#60299)
Anthony-Eid Jul 3, 2026
12e1e24
Initiate MCP OAuth flow on post-initialize 401 responses (#60236)
bgfraser Jul 3, 2026
2f1caad
Fix expanded commit editor (#60368)
zaknesler Jul 3, 2026
9eb8a7c
Handle cases where Dockerfile aliases are chained (#57552)
KyleBarton Jul 3, 2026
fa8540f
Update Wasmtime dependencies (#60341)
benbrandt Jul 3, 2026
5a823cf
docs: Add new text finder (#60189)
yara-blue Jul 3, 2026
ea3d0f7
keymap: Avoid format-vs-rules collision in JetBrains overlay (#55364)
tautik Jul 3, 2026
5aa6e8a
Reduce OAuth scope to avoid Windows credential size limit (#58541)
Artin0123 Jul 3, 2026
c56646f
terminal: Fix IME candidate window not following cursor in TUI apps (…
everyx Jul 3, 2026
b77ec90
git: Do not recompute git_access on every file change (#59521)
lgeiger Jul 3, 2026
4b73694
Add dylint lint library for Zed-specific patterns (#58496)
miguelraz Jul 3, 2026
1a99eba
Do not redownload same Nightly updates over and over (#59994)
SomeoneToIgnore Jul 3, 2026
d97bbf3
agent_ui: Use a callout for the sandbox warning (#60386)
danilo-leal Jul 4, 2026
e3b73c6
bedrock: Fix Claude Sonnet 5 and Fable 5 routing outside US regions (…
aviddiviner Jul 4, 2026
6e9ff7a
Fix agent hyperlinks do not open files (#56283)
di404 Jul 5, 2026
5b805ac
git_graph: Selectable commit message in detail panel (#59674)
clarkenciel Jul 6, 2026
b4d9194
themes: Don't try to call `fs.load_bytes` on a directory path on resc…
RemcoSmitsDev Jul 6, 2026
04de6da
Show type-changed files in commit diffs (#60422)
Eagl61 Jul 6, 2026
24c5b37
Filter AI keybindings when AI features are disabled (#56936)
anthonygregis Jul 6, 2026
6247709
git_panel: Scope folder expansion state to sections (#60396)
chirivelli Jul 6, 2026
01568e5
Swap Kotlin LSPs in documentation to reflect actual default config (#…
lixiaoyan Jul 6, 2026
69664ab
agent: Show errors when provider is not authenticated but model is co…
bennetbo Jul 6, 2026
c4a9b1a
Fix blame hover popover not showing on first trigger when inline blam…
Dnreikronos Jul 6, 2026
159246f
acp: Support boolean ACP config options (#60446)
benbrandt Jul 6, 2026
c545fb6
docs: Add Tailwind CSS LSP configuration for Gleam (#58115)
kaedinhanohano Jul 6, 2026
0d789de
extension_rollout: Allow rollout for `extension-workflows` tag (#60354)
MrSubidubi Jul 6, 2026
54bf918
acp: Set agent as default when installing it from registry (#60452)
bennetbo Jul 6, 2026
b1f4563
docs: Add Tailwind LSP configuration section for Go (Templ) (#55255)
tautik Jul 6, 2026
050e6f3
text_finder: Fix crash when dismissing the finder (#60437)
xab3r Jul 6, 2026
2b0a83e
picker: Give delegate the initial preview layout (#60007)
guopenghui Jul 6, 2026
e58a02d
Fix text finder crash from unbounded memory use (#60377)
davidalecrim1 Jul 6, 2026
f16b464
Improve diff tabs toolbar design (#60464)
danilo-leal Jul 6, 2026
5d6c88c
workspace: Use ellipsis character in "New" tooltip (#60467)
salman-farooq-sh Jul 6, 2026
283d505
ci: Set and enforce more default permissions (#60222)
MrSubidubi Jul 6, 2026
eeff979
Add license to tooling/lints crate (#60468)
bennetbo Jul 6, 2026
48c03b2
Better "Restart to Update" button dismissals (#60448)
SomeoneToIgnore Jul 6, 2026
98fe76c
editor: Fix completion labels not being rendered completely (#56976)
davidhi7 Jul 6, 2026
9064f26
cloud_api_types: Add new ID fields to `AuthenticatedUser` (#60497)
maxdeviant Jul 6, 2026
e7311d5
Split interpolate failure rejection reason (#60499)
probably-neb Jul 6, 2026
52bc5a0
run_tests: Stop treating non-workspace dirs as packages (#60502)
rtfeldman Jul 7, 2026
872ca8f
Add license symlinks to lint test fixture crates (#60505)
rtfeldman Jul 7, 2026
c31b2b0
Git partially staged changes (#46541)
drbh Jul 7, 2026
28c2e7d
Fix tree-sitter-markdown scanner serialize buffer overflow (#60312)
rtfeldman Jul 7, 2026
d9ada84
Fix hard-tab block autoindent skipping unindented lines (#60406)
apoorva-01 Jul 7, 2026
001bda1
project: Fix ref-match rust completions dropping the leading & (#60521)
smitbarmase Jul 7, 2026
a956add
Fix MCP tools with $ref/$defs being silently rejected (#60165)
counterfactual5 Jul 7, 2026
fcd0f76
git_ui: make git graph columns toggleable (#59850)
RemcoSmitsDev Jul 7, 2026
a29c0d4
gpui: Add input region support for Wayland windows (#60161)
phisch Jul 7, 2026
e7803a8
gpui: Add ParentElement impl for AnimationElement (#54145)
nicholastmosher Jul 7, 2026
20a93f6
gpui_macos: Fix glyph rendering when fonts share a PostScript name (#…
AnkanMisra Jul 7, 2026
7194f98
Fix disabled Windows window controls (#60440)
justjavac Jul 7, 2026
71b3b9b
gpui_macos: Guard start_display_link against nil screens (#60419)
KiraKiraAyu Jul 7, 2026
811fe50
workspace: Fix missing icons on non-terminal tabs during drag (#53637)
shreyashsaitwal Jul 7, 2026
64c55b0
Change OpenAI compatible URL placeholder in edit prediction settings …
alan-codes-things Jul 7, 2026
452e1cb
opencode: Model updates + fixes (#60526)
Vlaaaaaaad Jul 7, 2026
2eeca73
auto_update: Fix installer temp dirs leaking on macOS (#60528)
Veykril Jul 7, 2026
59c021d
copilot_ui: Fix Copilot sign-in window focus on Hyprland (#59933)
hirorock Jul 7, 2026
6939629
gpui: Fix clear drag overlay when external drag ends outside window (…
cppcoffee Jul 7, 2026
961f4f2
gpui: Refresh mouse position after bounds changes (#60421)
justjavac Jul 7, 2026
fbd911e
Limit SVG Pixmap size to avoid GPUI texture allocation errors (#56468)
lillianrubyrose Jul 7, 2026
c05b439
acp: Show descriptions for elicitation options (#60527)
benbrandt Jul 7, 2026
f360136
project: Create LSP file watcher on the background (#60530)
Veykril Jul 7, 2026
a94fa5c
git_graph: Add design adjustments (#60469)
danilo-leal Jul 7, 2026
fc827a2
Update issue ranking script dependencies (#60345)
benbrandt Jul 7, 2026
d564495
git_ui: Show tags in Git panel history (#60534)
pixel365 Jul 7, 2026
bc29bcf
git: Load buffer git diff bases with a single batched git process (#5…
lgeiger Jul 7, 2026
3cbe4c2
Add missing panels to View menu (#60356)
dinocosta Jul 7, 2026
5a7d414
fs: Skip parent watch for poll watcher symlink targets (#57049)
wowkster Jul 7, 2026
56009f3
gpui_wgpu: Fix wgpu renderer teardown panic (#60160)
phisch Jul 7, 2026
8d932b0
git_ui: Use pull request link from push output in push toast (#60522)
mvanhorn Jul 7, 2026
5d7d1d3
language_extension: Hold LspStore weakly in LspAccess::ViaLspStore (#…
probably-neb Jul 7, 2026
d12b980
bedrock: Add native support for Bedrock Mantle models (#60480)
anantdgoel Jul 7, 2026
f9c9947
cloud_api_client: Make `send_authenticated_json_request` public (#60562)
maxdeviant Jul 7, 2026
950ec79
editor: Decode escaped characters in hover popover links (#55973)
mgood Jul 8, 2026
d4dfe87
workspace: Skip closed items that cannot be reopened (#56299)
terror Jul 8, 2026
0123573
Fix should_log_lsp_request_failure logic inversion (#57554)
sunshowers Jul 8, 2026
bc3c942
Use more .array_windows::<N>() (#58877)
miguelraz Jul 8, 2026
2ab35c6
Consistently use `context()` to preserve sources for anyhow errors (#…
tomhoule Jul 8, 2026
2243c13
project: Fix content swap when an LSP rename also renames the file (#…
IbrahimKhan12 Jul 8, 2026
35ddcb2
go: Fix outline for methods with unnamed receivers (#58656)
olegator888 Jul 8, 2026
385e9c6
Suggest language extensions for untitled buffers (#55263)
tavaresgmg Jul 8, 2026
ded93cc
Fix typos and grammatical mistakes in docs (#59495)
miguelraz Jul 8, 2026
739f239
grammars: Recognize Gentoo `ebuild` files as bash script (#59068)
gcarq Jul 8, 2026
f5c9751
terminal: Open links with Cmd/Ctrl-click when mouse mode is enabled (…
tankztz Jul 8, 2026
a3a4719
project_panel: Open files in a permanent tab on middle click (#60563)
v0s Jul 8, 2026
05530c9
acp_thread: Log error when checkpoint comparison fails (#59196)
stemper-dev Jul 8, 2026
86b2831
editor: Use raw head selection for rename (#60594)
NeelChotai Jul 8, 2026
74798c6
gpui: Add run_embedded and ApplicationHandle for externally driven ru…
mikayla-maki Jul 8, 2026
c800202
agent_ui: Fix expanded message editor staying auto-height during stre…
soddygo Jul 8, 2026
74b5207
Unify Render and RenderOnce into View (#58087)
mikayla-maki Jul 8, 2026
d9e3597
csv_preview: Add row filtering feature (#60339)
HalavicH Jul 8, 2026
6979d72
Bump Zed to v1.12.0 (#60600)
zed-zippy[bot] Jul 8, 2026
7f5cf58
Fix worktree entry IDs for symlinked files (#57846)
gb-jos Jul 8, 2026
029bf2f
Make editor::LineUp & editor::LineDown honor vertical_scroll_margin l…
TwoClocks Jul 8, 2026
7dc6341
Switch Guild board automation to role checks (#60606)
zelenenka Jul 8, 2026
b9f3396
Add support for `format_on_save` only changed lines (#49964)
G36maid Jul 8, 2026
6b733d1
search: Bump fancy-regex dependency and enable CRLF mode (#55471)
keith-hall Jul 8, 2026
546a16d
gpui: Add parent-anchored native popup windows (with wayland xdg_popu…
phisch Jul 8, 2026
23c0080
gpui_windows: Check composition attribute lookup (#60122)
rtfeldman Jul 8, 2026
664b7ec
gpui: Fix hover state not clearing when mouse leaves window (#60275)
phisch Jul 8, 2026
dd68454
Update wayland-backend to fix Wayland file dialog crash (#60621)
rtfeldman Jul 8, 2026
10504e3
Improve docs AI readiness (#59577)
morgankrey Jul 8, 2026
f281770
gpui: Store GPU-facing bools as PaddedBool32 to avoid uninitialized p…
rtfeldman Jul 9, 2026
57261fe
editor: Add actions to move between comment paragraphs (#58353)
toddATavail Jul 9, 2026
c93b4cd
ruby: Mention `kanayago` and `fuzzy-ruby-server` in the documentation…
vitallium Jul 9, 2026
4d6762a
cli: Restore workspace by default when `cli_default_open_behavior="ne…
bennetbo Jul 9, 2026
0bc9c99
Invalidate hover state when a multibuffers paths change (#60443)
Veykril Jul 9, 2026
9cdaff1
editor: Fix panic removing blocks in split diff with companion edit a…
Veykril Jul 9, 2026
8f907c5
markdown: Improve selection copying to always yield valid markdown (#…
smitbarmase Jul 9, 2026
9b4598f
ci: Fix insufficient permissions for asset validation step (#60625)
MrSubidubi Jul 9, 2026
55b7761
ci: Fix push permissions for cherry-pick workflow (#60673)
MrSubidubi Jul 9, 2026
3e976e8
language_model: Add OpenAI Responses API custom tool support (#60638)
probably-neb Jul 9, 2026
7828463
edit_prediction: Report patch apply failures (#60637)
probably-neb Jul 9, 2026
8230cb1
project_panel: Restore worktree drag-and-drop reordering (#55755)
eth0net Jul 9, 2026
e2d41c4
fs: Retry watch registrations skipped during the native watch-limit c…
Veykril Jul 9, 2026
11d216d
worktree: Refresh all repositories sharing a changed git directory (#…
Veykril Jul 9, 2026
da4703b
Dedupe first-responder Slack notifications (#60666)
zelenenka Jul 9, 2026
717e1c0
Make agent diff tab consistent with commit view tab (#60470)
danilo-leal Jul 9, 2026
3c45bfb
agent_ui: Allow expanding running MCP tool calls (#60695)
bennetbo Jul 9, 2026
d8c8040
open_ai: Add GPT 5.6 models (#60697)
bennetbo Jul 9, 2026
35ffa8f
git_ui: Fix history tab empty and detached HEAD states (#57959)
Revantark Jul 9, 2026
2c4e447
Fix "Task polled after completion" panic (#60693)
reflectronic Jul 9, 2026
a5f696b
agent_ui: Remove duplicate MCP Servers menu item (#60712)
dinocosta Jul 9, 2026
76c9396
Fix workspace double-lease panic when reusing Git Graph (#60717)
JosephTLyons Jul 9, 2026
9db3784
agent: Add GPT 5.6 Sol/Terra for ChatGPT subscription (#60743)
bennetbo Jul 10, 2026
b2db24e
Fix MCP servers in multi root workspaces (#52849)
OmChillure Jul 10, 2026
af56cb7
agent_ui: Fix duplicate terminal when starting a new agent thread (#5…
rbstp Jul 10, 2026
60314a7
Open non-writeable files in Capability::Read mode (#57202)
David3u Jul 10, 2026
fbceb28
acp: Enable ACP elicitations (#60749)
benbrandt Jul 10, 2026
5cf706c
terminal_view: Forward ctrl-q to PTY when terminal is focused on Linu…
saberoueslati Jul 10, 2026
585e4aa
agent: Fix cmd-f not working when buffer is open (#60750)
bennetbo Jul 10, 2026
0953838
javascript, typescript: Inject GLSL and WGSL syntax in comment-labele…
foretoo Jul 10, 2026
c5383ce
extension_api: Expose hard_tabs in LanguageSettings (#52560)
tsinis Jul 10, 2026
5032923
Fix remote worktree picker hides "Create from origin/main" option (#5…
rtbenfield Jul 10, 2026
bd2e879
anthropic: Allow configured models to opt into fast mode (#58225)
Moeblack Jul 10, 2026
04d03d1
lmstudio: Fix context wheel by including token usage in streaming res…
GabrieleAncillai Jul 10, 2026
01f915d
picker: Automatically switch layout depending on window dimensions (#…
zphrs Jul 10, 2026
2b9b3c7
worktree: Watch .git/refs subdirectories for external ref updates (#6…
Veykril Jul 10, 2026
7344a31
agent: Fix edit_file corrupting indentation when old_text omits first…
MartinYe1234 Jul 10, 2026
8f92822
agent: Sandbox security review and docs update (#60291)
cameron1024 Jul 10, 2026
5f8a741
Update Zed-hosted model documentation (#60771)
morgankrey Jul 10, 2026
bc99075
Guard OpenCode bell plugin in ACP mode (#60507)
white-hat Jul 11, 2026
65e1c5a
git_panel: Add group by staging view option (#59884)
chirivelli Jul 11, 2026
df37766
terminal: Fix terminal jitter on resize (#56715)
pigletfly Jul 11, 2026
9c32732
gpui: Add mobile/touch API surface (#60496)
mikayla-maki Jul 11, 2026
b0da438
gpui: Fill auto-sized window roots to the viewport (#60739)
mikayla-maki Jul 11, 2026
49ad06c
gpui: Add container_query element (#60774)
mikayla-maki Jul 12, 2026
60099a0
git_ui: Add restore buttons to unstaged diff view (#60639)
npv12 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
  •  
  •  
  •  
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.
17 changes: 17 additions & 0 deletions .agents/skills/lint-creator/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
name: lint-creator
description: An auxiliary skill to add more dylints to `tooling/lints`
disable-model-invocation: false
---

# Lint RULES

1. Every lint MUST have accompanying `ui` tests
2. `ui` tests MUST be in the `ui` folder
3. Every lint MUST be in a separate module
4. Every lint MUST have negative `ui` tests
5. Lints should be as simple as possible.
6. Reporting is fine if it's simple, it does not need to be elaborate or lengthy code.
7. Do NOT suggest how to fix the lint, only flag it.
8. Do NOT make lints machine applicable.
9. Detect if lints are redundant vs clippy's capabilities.
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).
10 changes: 0 additions & 10 deletions .cargo/ci-config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,4 @@ rustflags = ["-D", "warnings"]
[profile.dev]
debug = "limited"

# Use Mold on Linux, because it's faster than GNU ld and LLD.
#
# We no longer set this in the default `config.toml` so that developers can opt in to Wild, which
# is faster than Mold, in their own ~/.cargo/config.toml.
[target.x86_64-unknown-linux-gnu]
linker = "clang"
rustflags = ["-C", "link-arg=-fuse-ld=mold"]

[target.aarch64-unknown-linux-gnu]
linker = "clang"
rustflags = ["-C", "link-arg=-fuse-ld=mold"]
4 changes: 4 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,9 @@ rustflags = [
"target-feature=+crt-static", # This fixes the linking issue when compiling livekit on Windows
]

# We need lld to link libwebrtc.a successfully on aarch64-linux
[target.aarch64-unknown-linux-gnu]
rustflags = ["-C", "link-arg=-fuse-ld=lld"]

[env]
MACOSX_DEPLOYMENT_TARGET = "10.15.7"
4 changes: 2 additions & 2 deletions .cloudflare/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ from Cloudflare.
- `open-source-website-assets` is used for `install.sh`
- `docs-proxy` is used for `https://zed.dev/docs`

On push to `main`, both of these (and the files they depend on) are uploaded to Cloudflare.
During docs deployments, both of these (and the files they depend on) are uploaded to Cloudflare.

### Deployment

These functions are deployed on push to main by the deploy_cloudflare.yml workflow. Worker Rules in Cloudflare intercept requests to zed.dev and proxy them to the appropriate workers.
These functions are deployed by the docs deployment workflows. Worker Rules in Cloudflare intercept requests to zed.dev and proxy them to the appropriate workers.

### Testing

Expand Down
Loading
Loading