08ee4f7
notify: Bump to rebased 8.2.0 fork (#42113)
Click to expand commit body
Hopefully makes progress towards #38109, #39266 Release Notes: - N/A
Nia created
08ee4f7
notify: Bump to rebased 8.2.0 fork (#42113)
Hopefully makes progress towards #38109, #39266 Release Notes: - N/A
Nia created
6f6f652
zlog: Add env var to enable line number logging (#41905)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
9c8e37a
clangd: Fix switch source header action on windows (#42105)
Fixes https://github.com/zed-industries/zed/issues/40935 Release Notes: - Fixed clangd's switch source header action not working on windows
Lukas Wirth created
d54c64f
Refresh outline panel on file renames (#42104)
Closes https://github.com/zed-industries/zed/issues/41877 Release Notes: - Fixed outline panel not updating file headers on rename
Kirill Bulatov created
0b53da1
remote: Flush to stdin when writing to sftp (#42103)
https://github.com/zed-industries/zed/issues/42027#issuecomment-3497210172 Release Notes: - Fixed ssh remoting potentially failing due to not flushing stdin to sftp
Lukas Wirth created
5ced3ef
editor: Improve multibuffer header spacing (#42071)
BEFORE: <img width="1751" height="629" alt="image" src="https://github.com/user-attachments/assets/f88464d3-5daa-4d53-b394-f92db8b0fd8c" /> AFTER: <img width="1714" height="493" alt="image" src="https://github.com/user-attachments/assets/022c883b-b219-40a3-aa5f-0c16d23e8abf" /> Release Notes: - N/A --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Libon and Danilo Leal created
7a37dd9
Do not serialize buffers containing bundled files (#38102)
Fix bundled file persistence by introducing SerializationMode enum
Closes: #38094
What's the issue?
Opening bundled files like Default Key Bindings
(zed://settings/keymap-default.json) was causing SQLite foreign key
constraint errors. The editor was trying to save state for these
read-only assets just like regular files, but since bundled files don't
have database entries, the foreign key constraint would fail.
The fix
Replaced the boolean serialize_dirty_buffers flag with a type-safe
SerializationMode enum:
```rust
pub enum SerializationMode {
Enabled, // Regular files persist across sessions
Disabled, // Bundled files don't persist
}
```
This prevents serialization at the source: workspace_id() returns None
for disabled editors, serialize() bails early, and should_serialize()
returns false. When opening bundled files, we set the mode to Disabled
from the start, so they're treated as transient views that never
interact with the persistence layer.
Changes
- editor.rs: Added SerializationMode enum and updated serialization
methods to respect it
- items.rs: Guarded should_serialize() to prevent disabled editors from
being serialized
- zed.rs: Set SerializationMode::Disabled in open_bundled_file()
Result
Bundled files open cleanly without SQLite errors and don't persist
across workspace reloads (expected behavior). Regular file persistence
remains unaffected.
Release Notes: Fixed SQLite foreign key constraint errors when opening
bundled files like Default Key Bindings.
---------
Co-authored-by: MrSubidubi <finn@zed.dev>
ʟᴜɴᴇx and MrSubidubi created
a716362
agent_ui: Make "add more agents" menu item take to extensions (#42098)
Now that agent servers are a thing, this is the primary and easiest way to quickly add more agents to Zed, without touching any settings JSON file. :) Release Notes: - N/A
Danilo Leal created
f080686
agent_ui: Do not show Codex wsl warning on wsl take 2 (#42096)
https://github.com/zed-industries/zed/pull/42079#discussion_r2498472887 Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
a951e41
util: Fix shell environment fetching with `cmd` (#42093)
Release Notes: - Fixed shell environment fetching failing when having `cmd` configured as terminal shell
Lukas Wirth created
e75c6b1
remote: Fix `detect_can_exec` detection (#42087)
Closes https://github.com/zed-industries/zed/issues/42036 Release Notes: - Fixed an issuer with wsl exec detection eagerly failing, breaking remote connections
Lukas Wirth created
149eedb
Fix scroll position restoration (#42088)
Follow-up of https://github.com/zed-industries/zed/pull/42035 Scroll position needs to be stored immediately, otherwise editor close may not register that. Release Notes: - N/A
Kirill Bulatov created
fb46bae
remote: Add missing quotation in `extract_server_binary` (#42085)
Also respect the shell env for various commands again Should close https://github.com/zed-industries/zed/issues/42027 Release Notes: - Fixed remote server installation failing on some setups
Lukas Wirth created
28d7c37
recent_projects: Improve user facing error messages on connection failure (#42083)
cc https://github.com/zed-industries/zed/issues/42004 Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
f6da987
agent_ui: Do not show Codex wsl warning on wsl (#42079)
Release Notes: - Fixed the codex wsl warning being shown on wsl itself
Lukas Wirth created
efc71f3
Tone down extension errors (#42080)
Before: <img width="2032" height="1161" alt="before" src="https://github.com/user-attachments/assets/5c497b47-87e8-4167-bc28-93e34556ea4d" /> After: <img width="2032" height="1161" alt="after" src="https://github.com/user-attachments/assets/4a87803f-67df-4bf8-ade0-306f3c9ca81e" /> Release Notes: - N/A
Kirill Bulatov created
3b7ee58
zed: Attach console to parent process before processing `--printenv` (#42075)
Otherwise the `--printenv` flag will simply not work on windows Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
32047be
text: Improve panic messages with more information (#42072)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
4003287
vim: Downgrade user config error from panic to log (#42070)
Fixes ZED-2W3 Release Notes: - Fixed panic due to invalid vim keycap
Lukas Wirth created
001a47c
gpui: Inline some hot recursive scope functions (#42069)
This reduces stack usage in prepainting slightly as we stack less references to window/app. Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
113f078
agent_ui: Fix string slicing panic in message editor (#42068)
Fixes ZED-302 Release Notes: - Fixed a panic in agent message editor when using multibyte whitespace characters
Lukas Wirth created
2733216
gpui: Add debug assertion to Window::on_action and make docs consistent (#41202)
Improves formatting consistency across various docs, fixes some typos, and adds a missing `debug_assert_paint` to `Window::on_action` and `Window::on_action_when`. Release Notes: - N/A
Lexi Mattick created
92cfce5
language: Fix completion menu no longer prioritizes relevant items for Typescript and Python (#42065)
Closes #41672 Regressed in https://github.com/zed-industries/zed/pull/40242 Release Notes: - Fixed issue where completion menu no longer prioritizes relevant items for TypeScript and Python.
Smit Barmase created
2b6cf31
file_finder: Display duplicated file in file finder history (#41917)
Closes #41850 When digging into this I figured out that basically what was going on is in the history of the file finder it doesn't update the name of the file duplicated because when you duplicate a file it's named automatically with `filename copy` and so this filename was added to the history but not updated so once you wanted to go back into this file it was not part of file finder displayed history anymore because this file doesn't exist anymore but the entity id remains the same. I was also to reproduce this bug when just renaming a file. Release Notes: - Fixed: Display duplicated file in file finder history --------- Signed-off-by: Benjamin <5719034+bnjjj@users.noreply.github.com> Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com> Co-authored-by: Lukas Wirth <me@lukaswirth.dev>
Coenen Benjamin , Conrad Irwin , and Lukas Wirth created
58cec41
Adjust terminal decorative character ranges to include missing Powerline characters (#42043)
Closes #41975. This change adjusts some of the ranges which were incorrectly labeled or excluded characters. The new ranges include three codepoints which are not assigned in Nerd Fonts. However, one of these codepoints were already included prior to this change. These codepoints are: - U+E0C9, between the two ice separators - U+E0D3, between the two trapezoid separators. The ranges prior to this PR already included this one. - U+E0D5, between the trapezoid separators and the inverted triangle separators I included these so as to not overcomplicate the ranges by cherry-picking the defined codepoints. That being said, if we're okay with this and an additional unassigned codepoint (U+E0CB, between ice separators and honeycomb separators) being included then a simple range from 0xE0B0 to 0xE0D7 nicely includes all of the Powerline characters. I wasn't sure how to write tests for this so I just added two characters to the existing tests which were previously not covered lol. All of the Powerline characters can be seen [here](https://www.nerdfonts.com/cheat-sheet) by searching `nf-pl`. Release Notes: - Fixed certain Powerline characters incorrectly having terminal contrast adjustment applied.
Lemon created
2ec5ca0
Fix generate release notes script on first stable (#42061)
Don't crash in generate-release-notes on the first stable commit on a branch. Release Notes: - N/A
Conrad Irwin created
f8da550
Refresh zed.dev releases page after releases (#42060)
Release Notes: - N/A
Conrad Irwin created
0b1d3d7
git: Fix pull failing when tracking remote with different branch name (#41768)
Closes #31430 Release Notes: - Fixed git pull failing when tracking remote with different branch name Here's a before/after comparison when `dev` branch has upstream set to `origin/main`: https://github.com/user-attachments/assets/3a47e736-c7b7-4634-8cd1-aca7300c3a73
Mayank Verma created
930b489
ci: Don't require protobuf and postgres checks for tests_pass for now (#42057)
For now, there are cases where we want to merge PRs (advisedly) even though these checks fail. Release Notes: - N/A
Cole Miller created
121cee8
git: Add cursor pointer on last commit to check changes (#41960)
Release Notes: - Improved visual cue on git panel ui to check previous commit changes Before: <img width="1470" height="956" alt="Screenshot 2025-11-05 at 2 06 49 pm" src="https://github.com/user-attachments/assets/b8c54bb6-c8b8-4d36-a14f-71d725ed68f2" /> After: <img width="1470" height="956" alt="Screenshot 2025-11-05 at 2 06 24 pm" src="https://github.com/user-attachments/assets/d8d96f9e-ceed-4c02-9f93-de9fd3dfcbf1" />
Delvin created
5360dc1
Refactor timestamp formatting in Git UI components to use `chrono` for local time calculations (#41005)
- Updated `blame_ui.rs`, `branch_picker.rs`, `commit_tooltip.rs`, and `commit_view.rs` to replace the previous timestamp formatting with `chrono` for better accuracy in local time representation. - Introduced `chrono::Local::now().offset().local_minus_utc()` to obtain the local offset for timestamp formatting. Closes #40878 Release Notes: - Improved timestamp handling in various Git UI components for enhanced user experience.
Viraj Bhartiya created
6986279
docs: Improve content in /ai/agent-panel and /ai/rules (#42055)
- Clarify about first-party supported features in external agents - Create new section for selection as context for higher visibility - Add keybindings for agent profiles - Fix outdated setting using `assistant` instead of `agent` - Add keybinding for accessing the rules library Release Notes: - N/A
Danilo Leal created
284d8f7
Support Forgejo and Gitea avatars in git blame (#41813)
Part of #11043. Codeberg is a public instance of Forgejo, as confirmed by the API documentation at https://codeberg.org/api/swagger. Therefore, I renamed the related component from codeberg to forgejo and added codeberg.org as a public instance. Furthermore, to optimize request speed for the commit API, I set `stat=false&verification=false&files=false`. <img width="1650" height="1268" alt="CleanShot 2025-11-03 at 19 57 06@2x" src="https://github.com/user-attachments/assets/c1b4129e-f324-41c2-86dc-5e4f7403c046" /> <br/> <br/> Regarding Gitea Support: Forgejo is a fork of Gitea, and their APIs are currently identical (e.g., for getting avatars). However, to future-proof against potential API divergence, I decided to treat them as separate entities. The current gitea implementation is essentially a copy of the forgejo file with the relevant type names and the public instance URL updated. Release Notes: - Added Support for Forgejo and Gitea avatars in git blame
ᴀᴍᴛᴏᴀᴇʀ created
f824e93
docs: Remove non-existing keybinding in /visual-customization (#42053)
Release Notes: - N/A
Danilo Leal created
e71bc48
docs: Add section about agent servers in /external-agents (#42052)
Release Notes: - N/A
Danilo Leal created
64c8c19
gpui: Impl Default for TextRun (#41084)
Release Notes: - N/A When I was implementing Input, I often used `TextRun`, but `background`, `underline` and `strikethrough` were often not used. So make change to simplify it.
Jason Lee created
622d626
Add agent-servers.md (#41609)
Release Notes: - N/A --------- Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
Richard Feldman and Danilo Leal created
7144810
Fix macOS new window stacking (#38683)
Closes #36206 Disclaimer: I did use AI for help to end up with this proposed solution. 😅 ## Observed behavior of native apps on macOS (like Safari) I first did a quick research on how Safari behaves on macOS, and here's what I have found: 1. Safari seems to position new windows with an offset based on the currently active window 2. It keeps opening new windows with an offset until the new window cannot fit the display bounds horizontally, vertically or both. 3. When it cannot fit horizontally, the new window opens at x=0 (y=active window's y) 4. When it cannot fit vertically, the new window opens at y=0 (x=active window's x) 5. When it cannot fit both horizontally and vertically, the new window opens at x=0 and y=0 (top left). 6. At any moment if I activate a different Safari window, the next new window is offset off of that 7. If I resize the active window and open a new window, the new window has the same size as the active window So, I implemented the changes based on those observations. I am not sure if touching `gpui/src/window.rs` is the way to go. I am open to feedback and direction here. I am also not sure if making my changes platform (macOS) specific, is the right thing to do. I reckoned that Linux and Windows have different default behaviors, and the original issue mentioned macOS. But, likewise, I am open to take a different approach. ## Tests I haven't included tests for such change, as it seems to me a bit difficult to properly test this, other than just doing a manual integration test. But if you would want them for such a change, happy to try including them. ## Alternative approach I also did some research on macOS native APIs that we could use instead of trying to make the calculations ourselves, and I found `NSWindow.cascadeTopLeftFromPoint` which seems to be doing exactly what we want, and more. It probably takes more things into consideration and thus it is more robust. We could go down that road, and add it to `gpui/src/platform/mac/window.rs` and then use it for new window creation. Again, if that's what you would do yourselves, let me know and I can either change the implementation here, or open a new pull request and let you decide which one would you would like to pursue. ## Video showing the behavior https://github.com/user-attachments/assets/f802a864-7504-47ee-8c6b-8d9b55474899 🙇♂️ Release Notes: - Improved macOS new window stacking
Petros Amoiridis created
eccdfed
gpui: Convert macOS clipboard file URLs to paths for paste (#36848)
- On macOS, pasting now inserts the actual file path when the clipboard contains a file URL (public.file-url/public.url) - Terminal paste remains text-only; no temp files or data URLs are created. If only raw image bytes exist on the clipboard, paste is a no-op. - Scope: macOS only; no dependency changes. - Added a test (test_file_url_converts_to_path) that verifies URL→path conversion using a unique pasteboard. Release Notes: - Improved pasting on macOS: now inserts the actual file path when the clipboard contains a file URL (enables image paste support for Claude Code)
Sean Timm created
2664596
gpui: Fix incorrect handling of Function key modifier on macOS (#38518)
On macOS, the Function key is reserved for system use and should not be used in application code. This commit updated keystroke matching and key event handling to ignore the Function key modifier while users are typing or pressing keybindings. For some keyboards with compact layout (like my 65% keyboard), there is no separated backtick key. Esc and it shares the same physical key. To input backtick, users may press `Fn-Esc`. However, macOS will still deliver events with Fn key modifier to applications. Cocoa framework can handle this correctly, which typically ignore the Fn directly. GPUI should also follow the same rule, otherwise, the backtick key on those keyboards won't work. Release Notes: - Fixed a bug where typing fn-\` on macOS would not insert a `.
Cyandev created
23f2fb6
Run ACP login from same cwd as agent server (#42038)
This makes it possible to do login via things like `cmd: "node", args: ["my-node-file.js", "login"]` Also, that command will now use Zed's managed `node` instance. Release Notes: - ACP extensions can now run terminal login commands using relative paths
Richard Feldman created
fb2c2c5
Fix windows crash handler (#42039)
Closes #41471 We were killing the crash handler when it received a second copy of any of the messages, but this GPU specs one is sent on each new window rather than once at startup. We could gate the sending to only happen once, but it's simpler to just allow multiple gpu specs messages. Release Notes: - N/A
Julia Ryan created
8315fde
Fix LSP spawning by resetting exception ports in child processes (#40716)
## Summary Fixes #36754 This PR fixes an issue where LSPs fail to spawn after the crash handler is initialized. ## Problem After PR #35263 added minidump crash reporting, some users experienced LSP spawn failures. The issue manifests as: - LSPs fail to spawn with no clear error messages - The problem only occurs after crash handler initialization - LSPs work when a debugger is attached, revealing a timing issue ### Root Cause The crash handler installs Mach exception ports for minidump generation. Due to a timing issue, child processes inherit these exception ports before they're fully stabilized, which can block child process spawning. ## Solution Reset exception ports in child processes using the `pre_exec()` hook, which runs after `fork()` but before `exec()`. This prevents children from inheriting the parent's crash handler exception ports. ### Implementation - Adds macOS-specific implementation of `new_smol_command()` that resets exception ports before exec - Calls `task_set_exception_ports` to reset all exception ports to `MACH_PORT_NULL` - Graceful error handling: logs warnings but doesn't fail process spawning if port reset fails Release Notes: - Fixed LSPs failing to spawn on some macOS systems --------- Co-authored-by: Julia Ryan <juliaryan3.14@gmail.com>
Rémi Kalbe and Julia Ryan created
fc87440
Update Windows docs (#41423)
- Document Arm64 support - Document minimum Windows version requirements Release Notes: - N/A
John Tur created
c996ead
Update editor data only after real scroll reports (#42035)
Release Notes: - N/A
Kirill Bulatov created
e8c6c1b
agent_ui: Fix how icons from external agents are displayed (#42034)
Release Notes: - N/A
Danilo Leal created
b8364d7
node: Move managed runtime to v24 LTS (#41956)
Release Notes: - Moved managed Node runtime to v24 LTS
versecafe created
7c23ef8
Fix corrupted characters being inserted when Alt is pressed (#42033)
The Alt+Numpad buffer that's maintained by the input stack is getting corrupted, leading to garbage characters being inserted on keystrokes like Alt+Up. Disable the automatic handling of Alt+Numpad for now until the cause of this corruption is understood. The Alt+Numpad input did not work anyway, so this does not regress anything. Release Notes: - windows: Fixed corrupted characters being inserted when Alt is pressed (preview only)
John Tur created
2f46337
Refactor buffer headers to collapse on click (#42021)
Release Notes: Updated how clicking on multi-buffer headers works to provide better control and prevent unexpected navigation: Clicking the header now collapses/expands the file section instead of opening the file. Opening files can be done by clicking the filename or the "Open file" button on the right side of the header. Existing shortcuts continue to work: use the left chevron to collapse or your keyboard shortcut to jump to the file **Demo:** https://github.com/user-attachments/assets/dca9ccc5-bd98-416c-97af-43b4e4b2f903
Matt Miller created
feed34c
gpui: Add support for rendering SVG from external files (#42024)
Release Notes: - N/A --------- Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
Danilo Leal and Mikayla Maki created