19e7ee5
Remove BACKWARDS from buffer search settings
Click to expand commit body
This is only applicable to vim search.
Michael Benfield created
19e7ee5
Remove BACKWARDS from buffer search settings
This is only applicable to vim search.
Michael Benfield created
76fed22
ep: Add file deletion support in unified diff parsing (#46279)
- Replace `is_new_file: bool` with `FileStatus` enum (Created/Modified/Deleted) in udiff.rs to properly track file status through diff operations - Handle deleted files in `apply_diff` by calling `project.delete_file()` - Fix diff serialization in reorder_patch.rs to output `+++ /dev/null` for file deletions and parse both `--- /dev/null` and `+++ /dev/null` correctly - Add bounds check for edit ranges exceeding buffer length Also includes edit_prediction_cli improvements: - Track `context_range` and `editable_range` in ExampleBuffer for more precise prompt formatting - Export MAX_CONTEXT_TOKENS and MAX_REWRITE_TOKENS from zeta2 - Wait for buffer parsing before computing ranges - Respect NO_COLOR env var and enable info-level logging Release Notes: - N/A Co-authored-by: Agus Zubiaga <agus@zed.dev>
Oleksiy Syvokon and Agus Zubiaga created
30dc8c5
ep cli: More substatus granularity (#46266)
Helps narrow down steps that are taking too long Release Notes: - N/A
Agus Zubiaga created
3e8d013
Polish the Closed Bugs GH workflow (#46271)
Remove the attempts to have these issues land in the same 'inbox' (the existing project board for triage). Since they're closed, the automated workflow of the project board will move them to the 'Closed' column/status even with the API call specifically moving them to 'Incoming' instead. It is what it is, we'll have a separate project board for this. Also: - don't look at comments on PRs - don't freak out if the issue has no type - add a permissions block as a defensive measure (in case someone adds secrets.GITHUB_TOKEN later) - add a timeout to avoid hanging out for six hours or whatever the default is - add some logging. Release Notes: - N/A
Lena created
49c4dcb
ep: Fix code block extraction to require closing fence at line start (#46270)
`extract_last_codeblock` was using `find()` to locate closing fences, which would match backticks anywhere in the text. This caused incorrect parsing when the content contained inline backticks or nested code blocks, resulting in wrong diffs. Fix by requiring the closing fence to be preceded by a newline. Release Notes: - N/A
Oleksiy Syvokon created
69acab7
Let agent see output of killed terminal tools (#46218)
Previously, if you stopped the terminal prematurely, the agent would assume the terminal process had timed out. Now it knows what happened and can see the output: <img width="718" height="885" alt="Screenshot 2026-01-07 at 12 40 23 AM" src="https://github.com/user-attachments/assets/a5ea14b2-249c-4ada-9f20-d6b608f829e5" /> Release Notes: - Stopping the terminal tool now allows the agent to see its output up to that point.
Richard Feldman created
1ac2b97
Make tasks inherit their callers priority (#46179)
Additionally this extracts more functionality into the RunnableVariant which is renamed to GpuiRunnable. Release Notes: - N/A --------- Co-authored-by: Lukas Wirth <lukas@zed.dev> Co-authored-by: Cole Miller <cole@zed.dev>
Yara 🏳️⚧️ , Lukas Wirth , and Cole Miller created
c56b225
Bump Zed to v0.220 (#46265)
Release Notes: - N/A
Joseph T. Lyons created
a2c233b
Do not try to open PDF, zip and other binaries (#46262)
Follow-up to https://github.com/zed-industries/zed/pull/44819 Stop doing this in more cases: <img width="1728" height="2168" alt="image" src="https://github.com/user-attachments/assets/a82f7217-3b7a-4ca9-bb12-c3098b3e9913" /> Release Notes: - Do not try to open PDF, zip and other binaries as text
Kirill Bulatov created
f119b97
ep cli: Make the udiff parsing more resilient (#46264)
We will now properly handle `\ No newline at the end of file` after context lines and repeated occurrences. Also, when line numbers are present in hunk headers, we will use them to disambiguate the location when the context is not unique enough. Release Notes: - N/A
Agus Zubiaga created
7fa65ea
Add action tracking to enable token healing for Sweep (#46212)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
b41eb6e
Add fallback message when preview changelog is empty (#46260)
Avoid publishing preview releasing that say nothing in the release notes: <img width="947" height="258" alt="SCR-20260107-ioxx" src="https://github.com/user-attachments/assets/97204551-8f55-43fb-8c9c-35491a4f1378" /> Release Notes: - N/A *or* Added/Fixed/Improved ...
Joseph T. Lyons created
82826e7
ep: Fix revision resolution for tilde expressions (#46258)
When a revision like `abcd~1` wasn't found locally, the function would fetch and then return `FETCH_HEAD`, which points to the tip of the fetched branch rather than the requested revision expression. Now it re-resolves the original revision after fetching, correctly handling tilde expressions and other git revision syntax. Release Notes: - N/A
Oleksiy Syvokon created
0136e41
ep: Fix incorrect example count in failure summary (#46257)
The 'X of Y examples failed' message was counting completed steps/tasks instead of actual examples. For example, with 2 examples each going through Load and Context steps, it would report '1 of 3' instead of '1 of 2'. Release Notes: - N/A
Oleksiy Syvokon created
cf8200f
Skip worktree trust queries for remote collab project clients (#46256)
Release Notes: - Skip worktree trust queries for remote collab project clients
Kirill Bulatov created
523c27a
ep cli: Clean leftover git locks (#46255)
Sometimes git locks are left over from crashed runs. We now assume there's only one process of the CLI running and clean them up. If we want to run multiple processes at the same time, we should consider our own file-based lock, but it seems fine for an internal tool. Release Notes: - N/A
Agus Zubiaga created
134c5e6
ep cli: Handle opening buffers from files created by the edit history (#46254)
Since we don't persist new files to disk, they don't have entries, so we have to look them up in memory first. Release Notes: - N/A
Agus Zubiaga created
1362582
Override project status in Closed Bugs workflow (#46253)
Since the project board to which the closed bugs with new comments are added might have an automated workflow for moving closed issues to the "Done" status, we need to override the status to ensure the bugs are actually surfaced to the team and not buried in "Done". Release Notes: - N/A
Lena created
a354473
Fix the action version in Closed Bugs GH workflow (#46251)
fix-up for https://github.com/zed-industries/zed/pull/46249 because testing github workflows is fun and opus 4.5 thinks it's amusing. Release Notes: - N/A
Lena created
754bfad
Add GH workflow to surface comments on closed bugs (#46249)
Sometimes bugs come back or are not fixed all the way. We want to preserve the context of the issue we've closed prematurely so instead of always making people open a new github issue in this case we want to be able to notice if someone* comments on a closed bug and decide what to do about it. Before: Bug is closed → A user can again/still reproduce it on a new version and leaves a comment → Maybe someone sees the notification about it, maybe not; maybe they see it but forget to act on it right away and it's lost. After: Bug is closed → A user can again/still reproduce it on a new version and leaves a comment → The issue is added to a project board where it's visible until someone makes a call about it (maybe the comment was “oh my glob i'm so happy this was fixed” and no action is needed, or maybe the issue must be reopened as a regression). *Someone in this case means (1) not a bot, (2) not a member of staff. Release Notes: - N/A
Lena created
f845893
ui_input: Only render number field border on focus (#46165)
The `NumberField.render` method was always rendering a `border_1` for the number input, even when not focused. Even though it was using `cx.theme().colors().border_transparent`, some themes don't have this value set to a fully transparent color so it ends up looking a little bit weird. As such, this commit updates the way the border is rendered, to ensure it's actually only rendered, i.e., the `border_1` method is only called, when the field is actually focused. Release Notes: - Improved rendering of border on number field's input to ensure it's only rendered when the field is focused
Dino created
9e9269b
settings: Add Sapling directory to default `file_scan_exclusions` (#45837)
[Sapling](https://sapling-scm.com/docs/git/git_support_modes/) is similar to git / hg / jj in that it creates a /.sl directory when initializing a repository. This can be added alongside the other source control scan exclusions includes a docs update for these defaults Release Notes: - Settings: Add Sapling directory to default `file_scan_exclusions`
Cory Wilhite created
00becd8
docs: Add LGPL v3 and zlib as accepted extension licenses (#46242)
Follow-up to https://github.com/zed-industries/extensions/pull/4397 Release Notes: - N/A
Finn Evers created
f90fe5c
language_models: Make wording for setting env vars consistent (#46240)
Release Notes: - N/A
Jakub Konka created
692bf30
docs: Add documentation for `auto_update_extensions` (#46130)
Add documentation for the existing `auto_update_extensions` setting that allows users to toggle auto-updates per extension. Release Notes: - N/A --------- Co-authored-by: Kunall Banerjee <hey@kimchiii.space>
Adrian and Kunall Banerjee created
49e4102
project: Fix organize imports action not working for Python (#45874)
Closes https://github.com/zed-industries/zed/issues/26819 Explained in https://github.com/zed-industries/zed/issues/26819#issuecomment-3399175027 That action is now the default on format in https://github.com/zed-industries/zed/pull/41103 since October, but applying manually is still broken. Release Notes: - Fixed an issue where the `editor: organize imports` action didn’t work for Python, even though imports were organized correctly during formatting.
Abdelhakim Qbaich created
a1bacce
agent: Remove extraneous character in `system_prompt` template (#46238)
Release Notes: - N/A --------- Co-authored-by: Kunall Banerjee <hey@kimchiii.space>
Bo He and Kunall Banerjee created
55dc348
Autofix run cargo machete --fix too (#46232)
Release Notes: - N/A
Conrad Irwin created
6b90aaa
status_bar: Add encoding indicator (#45476)
## Context / Related PRs This PR is the third part of the encoding
support improvements, following:
- #44819: Introduced initial legacy encoding support (Shift-JIS, etc.).
- #45243: Fixed UTF-16 saving behavior and improved binary detection.
## Summary
This PR implements a status bar item that displays the character
encoding of the active buffer (e.g., `UTF-8`, `Shift_JIS`). It provides
visibility into the file's encoding and indicates the presence of a Byte
Order Mark (BOM).
## Features
- **Encoding Indicator**: Displays the encoding name in the status bar.
- **BOM Support**: Appends `(BOM)` to the encoding name if a BOM is
detected (e.g., `UTF-8 (BOM)`).
- **Configuration**: The active_encoding_button setting in status_bar
accepts "enabled", "disabled", or "non_utf8". The default is "non_utf8",
which displays the indicator for all encodings except standard UTF-8
(without BOM).
- **Settings UI**: Provides a dropdown menu in the Settings UI to
control this behavior.
- **Documentation**: Updated `configuring-zed.md` and
`visual-customization.md`.
## Implementation Details
- Created `ActiveBufferEncoding` component in
`crates/encoding_selector`.
- The click handler for the button is currently a **no-op**.
Implementing the functionality to reopen files with a specific encoding
has potential implications for real-time collaboration (e.g., syncing
buffer interpretation across peers). Therefore, this PR focuses strictly
on the visualization and configuration aspects to keep the scope simple
and focused.
- Updated schema and default settings to include
`active_encoding_button`.
## Screenshots
<img width="487" height="104" alt="image"
src="https://github.com/user-attachments/assets/041f096d-ac69-4bad-ac53-20cdcb41f733"
/>
<img width="454" height="99" alt="image"
src="https://github.com/user-attachments/assets/ed76daa2-2733-484f-bb1f-4688357c035a"
/>
## Configuration
To hide the button, add the following to `settings.json`:
```json
"status_bar": {
"active_encoding_button": "disabled"
}
```
- **enabled**: Always show the encoding.
- **disabled**: Never show the encoding.
- **non_utf8**: Shows for non-UTF-8 encodings and UTF-8 with BOM. Only
hides for standard UTF-8 (Default).
<img width="1347" height="415" alt="image"
src="https://github.com/user-attachments/assets/7f4f4938-3320-4d21-852c-53ee886d9a44"
/>
## Heuristic Limitations:
The underlying detection logic (implemented in #44819 and #45243)
prioritizes UTF-8 opening performance and does not guarantee perfect
detection for all encodings. We consider this margin of error
acceptable, similar to the behavior seen in VS Code. A future "Reopen
with Encoding" feature would serve as the primary fallback for any
misdetections.
Release Notes:
- Added a status bar item to display the active file's character encoding (e.g. `UTF-16`). This shows for non-utf8 files by default and can be configured with `{"status_bar":{"active_encoding_button":"disabled|enabled|non_utf8"}}`
Ichimura Tomoo created
7274a96
Revert "agent_ui: Fix agent UI stealing focus on start up" (#46231)
Reverts zed-industries/zed#46088 This also made the new thread action no longer focus so this wasn't the right way to address this
Lukas Wirth created
f4aad4b
Improve visual test runner: consolidate setup, add constants, remove dead code (#46217)
Just some code cleanup to improve the tests - make them better exemplars for future use. Release Notes: - N/A
Richard Feldman created
8f961a4
gpui: Make all foreground tasks drop when the app dies (#46219)
This expands the liveness check to cover all foreground tasks that don't take the app as a context (as some of their internal futures might.) Release Notes: - N/A
Mikayla Maki created
67e2a23
Fix coalescing of multi-line edits (#46220)
I was seeing some surprising un-coalesced edits in the edit history when looking at captured examples. I realized that we were only coalescing based on the *ends* of edit ranges, but I think we want to combine hunks where there are 8 or less unchanged lines in between changes. This PR implements that. Release Notes: - N/A
Max Brunsfeld created
09ce318
Add a GPUI testing example (#46215)
Had some trouble in a PR with missing a test API change until deep into a refactor. Decided to move some example tests into the GPUI repo to put those through their paces, and got carried away and made a big test example file demonstrating all the testing features we have. Release Notes: - N/A --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Mikayla Maki and Claude Opus 4.5 created
3387021
lsp: Refresh `textDocument/diagnostic` on `workspace/diagnostic/refresh` (#45365)
Per LSP spec, when receiving `workspace/diagnostic/refresh`, clients should refresh all pulled diagnostics including both workspace and document diagnostics[^1]. Previously, only workspace diagnostics were refreshed. [^1]: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.18/specification/#diagnostic_refresh This adds `pull_document_diagnostics_for_server()`, which refreshes `textDocument/diagnostic` for all open buffers associated with the given language server. Closes #ISSUE Release Notes: - When handling `workspace/diagnostic/refresh`, Zed now also sends new `textDocument/diagnostic` requests for open files, aligning with the LSP specification. --------- Co-authored-by: John Tur <john-tur@outlook.com>
Shuhei Kadowaki and John Tur created
ff73a91
Make all paths relative in captured EP examples (#46213)
I also added debug events for Sweep edit predictions so that we can see the API response for "no prediction" events when running evals. Release Notes: - N/A
Max Brunsfeld created
b5ac0f9
Render images in agent threads (#46167)
Now when the agent reads images (which the tool now explicitly advertises to agents that it is capable of; previously the tool said it could only read text even though it can actually read images), we see them in the thread, and also they are auto-expanded by default so you can see them when scrolling through: <img width="725" height="1019" alt="Screenshot 2026-01-06 at 2 57 11 PM" src="https://github.com/user-attachments/assets/5c908bad-48f2-46c2-afaa-7f189a178e05" /> This also adds a visual regression test that verifies images render correctly in the agent thread view. Unlike our previous visual tests, this one only renders the agent panel, not the entire Zed window. The "screenshot" it generates (rendered to a Metal texture) is from completely mocked/simulated data structures, and looks like this: <img width="546" height="984" alt="Screenshot 2026-01-06 at 2 54 41 PM" src="https://github.com/user-attachments/assets/89a0921f-59e9-4dfe-94b2-4c3b625a851b" /> ## Changes - **New visual test**: `agent_thread_with_image` renders an `AcpThreadView` containing a tool call with image content (the Zed app icon) - **Test infrastructure**: Added `StubAgentServer` helper and required feature flags for visual testing - **Test-support API**: Added `expand_tool_call()` method to `AcpThreadView` to allow expanding tool calls for visual testing - **Baseline screenshot**: Included baseline image showing the Zed logo rendered in a tool call output ## How to run ```bash # Run the visual tests cargo run -p zed --bin visual_test_runner --features visual-tests # Update baselines if UI intentionally changed UPDATE_BASELINE=1 cargo run -p zed --bin visual_test_runner --features visual-tests ``` Release Notes: - N/A --------- Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com> Co-authored-by: Amp <amp@ampcode.com>
Richard Feldman , Zed Zippy , and Amp created
c764f78
Add clear filter button to outline and collab panels' search (#46210)
Always missed the ability to clear the search without having to reach for my keyboard if I'm on a mouse-first workflow: <img width="460" height="390" alt="Screenshot 2026-01-06 at 9 27@2x" src="https://github.com/user-attachments/assets/fda4650c-72fb-4b5b-92f6-7c69661507f8" /> Release Notes: - Added a button to clear the search query for the collab and outline panels' search bar.
Danilo Leal created
4e28080
extension_ci: Be more explicit with version bump (#46208)
Closes https://github.com/zed-industries/zed/issues/46175 I had very much hoped for bump2version to do this by default, well, left here disappointed I suppose Release Notes: - N/A
Finn Evers created
f3e5e3e
repl: Add inlay repl output display, skip empty lines on execution, and gutter execution display (#44523)
Adds various useful things to the repl inspired by ipynb and the julia vscode extension which can be best seen with this video:  https://github.com/user-attachments/assets/6589715e-3783-456c-8f4b-e2d5a1c4090d To summarize: ## Inline outputs Added small, single-line outputs displayed inline at the end of the code line instead of in a separate block. This provides a cleaner, more compact view for simple results like numbers or short strings. This occurs for execution views who only output a single mimetype/plain OR output nothing, otherwise the default behavior of creating a block will occur. It looks like this: <img width="258" height="35" alt="image" src="https://github.com/user-attachments/assets/ccdeca3f-c3b7-4387-a4de-53d8b9a25132" /> or with a Output <img width="346" height="55" alt="image" src="https://github.com/user-attachments/assets/0b4effc9-1bd7-4e8c-802f-8733cdcc77d1" /> This was inspired by julia vscode extension, but now it can be used with any replanguage! Hooray! <img width="524" height="450" alt="image" src="https://github.com/user-attachments/assets/a3551e51-f5f7-4d3e-994a-213c9d2f948c" /> It saves lots of space compared to the ugly and distracting: <img width="531" height="546" alt="image" src="https://github.com/user-attachments/assets/7cf65bae-8ec1-4279-ab19-f0d4ec4052a2" /> ## Gutters and execution numbers Added gutters + execution number to display exactly what was executed. The gutter highlighting is useful for when selecting multiple cells manually to run, but you dont remember which ones Ran at different times: <img width="257" height="58" alt="image" src="https://github.com/user-attachments/assets/6002ab16-156a-4598-9964-5a6b188e989c" /> Ran together: <img width="306" height="64" alt="image" src="https://github.com/user-attachments/assets/2690ea35-2bd3-4207-b039-6c0f98dad6e4" /> The execution number is useful in the same way that a normal jupyter notebook execution number is useful. If a gutter-region does not have a block assigned to it, when you edit the text in the gutter region, the gutter will disappear, which is useful for telling when you have modified your code, but does not delete useful experiment results in blocks: <img width="280" height="38" alt="image" src="https://github.com/user-attachments/assets/d7f29224-87e4-4c14-8d9f-41cb10ab5009" /> <img width="254" height="31" alt="image" src="https://github.com/user-attachments/assets/586c9e1d-f53c-4973-affb-c8ca05a7563b" /> <img width="264" height="29" alt="image" src="https://github.com/user-attachments/assets/f306c364-1c92-44bd-9050-ecce1b7822a0" /> ## Skip empty line This is a minor fix which is intended to make lab workflow less tedious. Currently when you execute on an empty line (which might be there for formatting purposes) nothing will occur. This PR adds the ability to, when executing from an empty line, skip ahead the range of inclusion until you reach actual code, and then execute. Before: ``` code //run execute //empty space, so you have to move your cursor down or use arrow key code //run execute code //run execute ``` After: ``` code //run execute //empty space, you can now run execute on it and it will include the next line of code //empty space code //automatically executed code //run execute ``` Currently the only piece of tested code is related to this, i still have to write tests for the gutter annotation api i added and all of the gutter + inline related code. Also still have to add more config for this stuff. @rgbkrk would appreciate a review :D Closes #22678 Release Notes: - repl: Added an inline display of execution results (as opposed to the large execution view) for simple REPL cells - repl: Improved how execution of empty lines are handled - repl: Added gutter execution display
Matt Lui created
c38dc0a
Fix stale pull diagnostics for open buffers (#46201)
Release Notes: - N/A
John Tur created
189241b
collab: Remove invite-related columns from `users` table (#46202)
This PR removes the invite-related columns from the `users` table for the test database schemas. Release Notes: - N/A
Marshall Bowers created
f3c0208
Add sweep acceptance tracking (#46199)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
8ca6381
Fix some issues with edit prediction CLI (#46197)
* Added `--repo` and `--name` flags for running only examples with a specific name, or repo (substring matching) * Fixed a race condition that caused hangs when running multiple examples at the same repo and sha * Fixed a bug where scoring was completely wrong because I had passed the arguments to `apply_diff_to_string` in the wrong order * The current evals now run quickly and without errors. Release Notes: - N/A
Max Brunsfeld created
f0e0213
ep cli: Fix finalize counter (#46198)
Release Notes: - N/A
Agus Zubiaga created
6070b30
ep cli: Create entries from new files in edit history (#46196)
Release Notes: - N/A
Agus Zubiaga created
5be7d6f
ep cli: Refresh cursor path entry (#46195)
Release Notes: - N/A
Agus Zubiaga created
a8bc84c
ep cli: Include cursor file in errors (#46192)
Errors now include the cursor file path so we can just cmd+click it for inspection Release Notes: - N/A
Agus Zubiaga created
3da9269
Add agent thread sharing (#46140)
Staff only ship for now Here's the agent planning doc that guided this: https://gist.github.com/mikayla-maki/c826b7997bd85b58273c1def9397940b Release Notes: - N/A --------- Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Mikayla Maki and Marshall Bowers created
8df2789
languages: Fix C/C++ outline for mixed storage classes and type qualifiers (#46135)
Current tree sitter configuration for the outline was not working correctly since the rule required a strict order, firstly storage_class_specifier then type_qualifier. This resulted in a failure to recognize types such as "constexpr int", "const double", etc. This PR proposes a solution with diagnostic capture of type and storage qualifiers which ensures full context capture and works well with C++. Before: <img width="924" height="365" alt="before" src="https://github.com/user-attachments/assets/d4e0baab-b074-42fc-8a45-46c93d1d352b" /> After: <img width="866" height="367" alt="after" src="https://github.com/user-attachments/assets/0e69a4d8-fd91-44b3-bc7e-0c9e39b23d2e" /> Release Notes: - Fixed outline configuration for C++ variables with complex specifiers.
ozacod created