Commit log

b6ee367 markdown: Don't retain `MarkdownStyle` in favor of using `MarkdownElement` directly (#28255)

Click to expand commit body
This PR removes the retained `MarkdownStyle` on the `Markdown` entity in
favor of using the `MarkdownElement` directly and passing the
`MarkdownStyle` to it.

This makes it so switching themes will be reflected live in the code
block styles.

Release Notes:

- N/A

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Agus Zubiaga <hi@aguz.me>

Marshall Bowers , Antonio Scandurra , and Agus Zubiaga created

aa02615 chore: Make objc a workspace level crate (#28258)

Click to expand commit body
Make objc a workspace level crate to unify version control

Release Notes:

- N/A

tidely created

d5cc576 Downgrade some logs (#28257)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Cole Miller created

f327485 Move `assistant_evals` to `agent_evals` and remove Judge logic (#28233)

Click to expand commit body
Release Notes:

- N/A

Thomas Mickley-Doyle created

500d8f2 theme: Make Gruvbox terminal ANSI magenta more vibrant (#27166)

Click to expand commit body
Closes #27119

Release Notes:

- Improved contrast of terminal ANSI colors in Gruvbox theme(s)

Dallin Huff created

e3830d2 Git activity indicator (#28204)

Click to expand commit body
Closes #26182

Release Notes:

- Added an activity indicator for long-running git commands.

---------

Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>

Julia Ryan and Mikayla Maki created

4f9f443 agent: Remove duplicated keybinding for creating new thread in Linux (#28254)

Click to expand commit body
Release Notes:

- N/A

Danilo Leal created

1556b44 Fix titles in issue templates (#28252)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

5ca8a3e Add issue templates for newer flagship features (#28250)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

aeea364 Fix typo in system prompt (#28246)

Click to expand commit body
Release Notes:

- N/A

Richard Feldman created

a577a72 Add support for `insert_text_mode` of a completion (#28171)

Click to expand commit body
I wanted this for CONL (https://conl.dev )'s nascent langauge server,
and it seems like most of the support was already wired up on the LSP
side, so this surfaces it into the editor.

Release Notes:

- Added support for the `insert_text_mode` field of completions from the
language server protocol.

Conrad Irwin created

5a7222e prompt_store: Remove additional code for /project (#27981)

Click to expand commit body
Found leftover from https://github.com/zed-industries/zed/pull/27660

Release Notes:

- N/A

Neo Nie created

097aefe agent: Display keybinding to delete Prompt Editor item (#28168)

Click to expand commit body
This PR makes the keybinding to remove Prompt Editor items visible in
the icon button tooltip.

Release Notes:

- N/A

Danilo Leal created

99a9647 editor: Fix excerpt down scroll behavior to only scroll when there are enough lines (#28231)

Click to expand commit body
Follow up for https://github.com/zed-industries/zed/pull/27058

Improves excerpt down button to only scroll when there exists lines more
than equal to `expand_excerpt_lines`. This prevents weird shift at end
of the file.

Before:


https://github.com/user-attachments/assets/244a3bd6-d813-4cc8-9dcb-3addba2b652f

After:


https://github.com/user-attachments/assets/a9a9ba62-a454-4b56-9c8a-d8e6931b270b


Release Notes:

- N/A

Smit Barmase created

fa90b3a Link to cited code blocks (#28217)

Click to expand commit body
<img width="612" alt="Screenshot 2025-04-06 at 9 59 41 PM"
src="https://github.com/user-attachments/assets/3a996b4a-ef5c-4ca6-bd16-3b180b364a3a"
/>

Release Notes:

- Agent panel now shows links to relevant source code files above code
blocks.

Richard Feldman created

8049fc1 Add ai label to agent beta issue template (#28227)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

85b811a Add Agent Panel bug report template (#28226)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

d60dbbc windows: Add `update-workspace-hack.ps1` script (#28219)

Click to expand commit body
Release Notes:

- N/A

张小白 created

656302e Stop centering when selecting larger syntax nodes (#28172)

Click to expand commit body
With #27295, the cursor would center upon running
`SelectLargerSyntaxNode`. This was done to provide more context when
making large selections, but when making small selections (such as a
single parameter in an argument list) it was confusing that the scroll
position jumped.

This change makes that behavior slightly more conservative: now when the
selection is small enough to fit on the screen scrolling will only occur
to keep the cursor position on the screen (including respecting
`vertical_scroll_margin`).

Release Notes:

- N/A

Co-authored-by: João Marcos <marcospb19@hotmail.com>

Julia Ryan and João Marcos created

956f359 project_panel: Add warning error for leading or trailing whitespace when creating file or directory (#28215)

Click to expand commit body
- Show yellow warning (instead or error) for leading/trailing
whitespace.
- Do not block user from creating it.
- If you rename existing file/dir which contains leading/trailing
whitespace, it will show error right away.

<img width="250" alt="image"
src="https://github.com/user-attachments/assets/562895ee-3a86-4ecd-bb38-703d1d8b8599"
/>

Release Notes:

- Added warning for leading or trailing whitespace while renaming or
creating new file or directory in Project Panel.

Smit Barmase created

3b46fca project_panel: Fix validation error style alignment (#28214)

Click to expand commit body
Use px over rem for positioning as rem is dependent on font
size.

Release Notes:

- N/A

Smit Barmase created

d6d9c38 project_panel: Show error when file or directory already exists while renaming or creating new one (#28177)

Click to expand commit body
Closes #14425

<img width="289" alt="image"
src="https://github.com/user-attachments/assets/2994c401-23e3-419a-90fc-1a83959fdf21"
/>

Release Notes:

- Improved the project panel to show an error when a file or directory
already exists while renaming or creating a new one.

Smit Barmase created

8cfb9be Reapply support for X11 screenshare (#28160)

Click to expand commit body
Reapplies #27807 after [revert due to not building on
ARM](https://github.com/zed-industries/zed/pull/28141) by updating scap
to include [a fix to its build on
ARM](https://github.com/zed-industries/scap/commit/08f0a01417505cc0990b9931a37e5120db92e0d0)

Release Notes:

- N/A

---------

Co-authored-by: Marshall Bowers <git@maxdeviant.com>

Michael Sloan and Marshall Bowers created

0708d47 Improve Bash heredoc highlighting (#28185)

Click to expand commit body
Release Notes:

  - Improved Bash heredoc highlighting

| Zed 0.180.2 | With this PR |
| --- | --- |
|
![Image](https://github.com/user-attachments/assets/aa2534af-53df-4f01-988e-f18ec52a2b62)
|
![Image](https://github.com/user-attachments/assets/8fc92113-41f2-4249-ab81-6beb0a1469ca)
|

```bash
cat << EOT >> hello.txt
hello world
EOT
```

- `<<`: `operator`
- `EOT`: `string`

chbk created

57669b4 agent: Refresh UI when context or thread history changes (#28188)

Click to expand commit body
I found a few more cases where the UI wasn't updated immediately after
an interaction.

Release Notes:

- agent: Fixed delay after removing threads from "Past Interactions"
- agent: Fixed delay after adding/remove context via keyboard

Agus Zubiaga created

b1f7133 agent: Refresh UI when sending first message (#28180)

Click to expand commit body
Release Notes:

- Agent Beta: Fixed a delay when sending the first message in a new
thread

Agus Zubiaga created

ac9e2f3 Try to improve behavior when agent is stuck (#28169)

Click to expand commit body
Currently, it's pretty common that when the agent gets stuck, it deletes
whatever it's stuck on and replaces it with a TODO comment, then
cheerfully reports that it has "simpified" the implementation. This is
worse than leaving the broken code, because at least a human could take
over and try to get it across the finish line.

This system prompt adjustment attempts to make the agent do something
more useful when in this situation: report that it's stuck, explain why
it's stuck, and ask the user what to do.

Release Notes:

- N/A

Richard Feldman created

a2fbe82 If file is too big, provide the outline and suggest a follow-up tool (#28158)

Click to expand commit body
<img width="622" alt="Screenshot 2025-04-05 at 5 48 14 PM"
src="https://github.com/user-attachments/assets/24b9c7d4-d3e2-4929-bca8-79db5b4e5748"
/>

Release Notes:

- The `read_files` tool now reads only the symbol outline files above a
certain size, to conserve context window space. Then it suggests that
the agent call `read_files` again with the relevant line ranges it saw
in the outline.

Richard Feldman created

57d8c99 copilot: Create Copilot directory if it does not exist (#28157)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/27966

Issue:

- Copilot is failing to launch because the copilot directory is missing

<img width="497" alt="image"
src="https://github.com/user-attachments/assets/af35eb66-7e91-4dc6-a862-d1575da33b5b"
/>


<img width="943" alt="image"
src="https://github.com/user-attachments/assets/0b195c8c-52eb-42b9-bf36-40086398cc3f"
/>


Release Notes:

- copilot: Fixed an issue where GitHub Copilot would not install
properly if the directory was not present.

---------

Co-authored-by: Marshall Bowers <git@maxdeviant.com>

Richard Hao and Marshall Bowers created

4182737 Revert "Add a next_mode to vim::Paste instead of hard-coding Normal mode (#27897) (#28162)

Click to expand commit body
This PR reverts #27897, as it is causing a number of Helix-related tests
to fail:

```
     Summary [  84.324s] 1796 tests run: 1793 passed, 3 failed, 0 skipped
        FAIL [   0.434s] vim helix::test::test_delete
        FAIL [   0.562s] vim helix::test::test_delete_character_end_of_buffer
        FAIL [   0.537s] vim helix::test::test_delete_character_end_of_line
```

This reverts commit 9949512b64ab2f472fc3426d853bc9bd0f6d94e2.

Release Notes:

- Community: Reverted https://github.com/zed-industries/zed/pull/27897.

Marshall Bowers created

9949512 Add a next_mode to vim::Paste instead of hard-coding Normal mode (#27897)

Click to expand commit body
This adds a `next_mode` parameter to the `vim::Paste` action. My main
use-case for this is for helix users, who will want to switch into
`HelixNormal` mode instead of `Normal` mode.

I'm not sure if this is the best approach -- another possibility would
be to have a global vim-vs-helix configuration, and then have every
invocation of "normal" mode choose vim or helix based on that global
configuration. But the approach in this PR is much less invasive.

Release Notes:

- vim: switch to the configured default mode after paste instead of
hard-coding Normal mode

jneem created

b9051e6 extension: Bump `wasi-sdk` to version 25 (#27906)

Click to expand commit body
This bumps `wasi-sdk` to version 25 and adds target architecture
conditionals.

Closes #18492

Release Notes:

- Fixed compiling dev extensions with Tree-sitter grammars on Linux
aarch64.

Kamil Jakubus created

adbebb2 assistant: Fix `assistant: open prompt library` not opening the prompt library (#28156)

Click to expand commit body
This PR fixes the `assistant: open prompt library` action in the command
palette not opening the prompt library when the Assistant Panel did not
have focus.

Fixes https://github.com/zed-industries/zed/issues/28058.

Release Notes:

- assistant: Fixed `assistant: open prompt library` not opening the
prompt library when the Assistant Panel was not focused.

Marshall Bowers created

caf0d6c agent: Fix opening configuration view from the model selector (#28154)

Click to expand commit body
This PR fixes an issue where opening the configuration view from the
model selector in the Agent (or inline assist) was not working properly.

Fixes https://github.com/zed-industries/zed/issues/28078.

Release Notes:

- Agent Beta: Fixed an issue where selecting "Configure" in the model
selector would not bring up the configuration view.

Marshall Bowers created

525755c bedrock: Add support for tool use, cross-region inference, and Claude 3.7 Thinking (#28137)

Click to expand commit body
Closes #27223
Merges: #27996, #26734, #27949 

Release Notes:

- AWS Bedrock: Added advanced authentication strategies with:
  - Short lived credentials with Session Tokens 
  - AWS Named Profile
  - EC2 Identity, Pod Identity, Web Identity
- AWS Bedrock: Added Claude 3.7 Thinking support.
- AWS Bedrock: Adding Cross Region Inference for all combinations of
regions and model availability.
- Agent Beta: Added support for AWS Bedrock.

---------

Co-authored-by: Marshall Bowers <git@maxdeviant.com>

Shardul Vaidya and Marshall Bowers created

ea0f514 title_bar: Ensure git onboarding banner dismissal is properly respected (#28147)

Click to expand commit body
A user reported this issue [on
Discord](https://discord.com/channels/869392257814519848/873292398204170290/1357879959422636185).

The issue here only arises for users which recently installed Zed or had
previously not dismissed the Git Onboarding component. It was introduced
by https://github.com/zed-industries/zed/pull/27412, which made the
banner component reusable.

For every banner, there is a value stored in the KVP store when it was
first dismissed. For the git onboarding banner, this was
`zed_git_banner_dismissed_at` initially, but this key would have been
changed by the linked PR. A change would have resulted in the banner
being shown again for users who already dismissed the panel, so for the
special case of `Git Onboarding`, a check was added which ensured this
would not happen.

However, this check was only added for reading from the key from the DB
but not on writing the git onboarding dismissal it to the DB. Thus, if a
user who had not previously dismissed the panel opened Zed, we would
check for the old key to be present in the DB. Since that would not be
the case, the banner would be shown. If the user dismissed the panel, it
would be stored in the database with the new key. Thus, on a reopen of
Zed, the banner would again be shown since for the old key there would
still be no value present and users are unable to dismiss the panel.


This PR fixes this behavior by moving the check into the method that
generates the key. With this, users which were unaffected by the bug
will still not see the panel again. Users who would install Zed with
this change present will be able to properly dismiss the panel aswell.
Users which were affected by the bug need to dismiss the banner one more
time. That happens because I did not want to modify the dismissal check
to check for two keys (the original one and the new one), as it would
clutter the logic even more for this special case. If this would be
preferred, feel free to let me know.

Release Notes:

- Fixed an issue where dismissing the git onboarding banner would not be
persisted across sessions.

Finn Evers created

b78ac54 agent: Fix tool use output rendering (#28146)

Click to expand commit body
Tool use output wouldn't get rendered in some states.

Release Notes:

- N/A

Agus Zubiaga created

2462b94 agent: Add missing notify in `ThreadHistory::delete_thread` (#28144)

Click to expand commit body
This would cause the history view not to get refreshed immediately when
a thread was deleted

Release Notes:

- agent: Fixed a bug where the history view wouldn't refresh after
deleting a thread

Agus Zubiaga created

ec7d286 agent: Fix thread summary generation (#28143)

Click to expand commit body
#28102 introduced a bug where thread summaries wouldn't get generated
because they would get set to the default title instead of `None`.

Not adding a release note because the bug didn't make it to Preview.

Release Notes:

- N/A

Agus Zubiaga created

c1259c1 Revert "Use scap library to implement screensharing on X11 (#27807)" (#28141)

Click to expand commit body
This reverts commit c2afc2271b1dd420f482217cb0fa9dafcd17aab6.

Build on ARM if failing, likely because `c_char` is `u8` on arm and `i8`
on x86:

```
error[E0308]: mismatched types
   --> /home/runner/.cargo/git/checkouts/scap-40ad33e1dd47aaea/5715067/src/targets/linux/mod.rs:75:74
    |
75  |     let result = unsafe { XmbTextPropertyToTextList(display, &mut xname, &mut list, &mut count) };
    |                           -------------------------                      ^^^^^^^^^ expected `*mut *mut *mut u8`, found `&mut *mut *mut i8`
    |                           |
    |                           arguments to this function are incorrect
    |
    = note:    expected raw pointer `*mut *mut *mut u8`
            found mutable reference `&mut *mut *mut i8`
note: function defined here
   --> /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/x11-2.21.0/src/xlib.rs:552:10
    |
552 |   pub fn XmbTextPropertyToTextList (_4: *mut Display, _3: *const XTextProperty, _2: *mut *mut *mut c_char, _1: *mut c_int) -> c_int,
    |          ^^^^^^^^^^^^^^^^^^^^^^^^^
```

Release Notes:

- N/A

Michael Sloan created

6ddad64 Add actions for calls (#28048)

Click to expand commit body
Add the following actions for use while calling: `Mute`, `Deafen`,
`ShareProject`, `ScreenShare`, `LeaveCall`

We were also interested in adding push-to-talk functionality for mute,
but that will go in a followup PR

Release Notes:

- Call actions (mute/screenshare/etc.) can now be bound to keys and run from the command palette.

---------

Co-authored-by: Ben Kunkle <ben.kunkle@gmail.com>
Co-authored-by: Ben Kunkle <ben@zed.dev>

Julia Ryan , Ben Kunkle , and Ben Kunkle created

69d7ea7 buffer: Fix broken auto indent when pasting code starting with new line (#28134)

Click to expand commit body
Closes #26907

Currently, in case of new line to find delta, it is comparing old first
line indent with new second line indent. This results into incorrect
indentation. This PR fixes this delta calculation by passing correct
second line indent in that particular case.

- [X] Add Test

Before:


https://github.com/user-attachments/assets/065deba0-be19-4643-a784-d248a8e7c891

After:


https://github.com/user-attachments/assets/a0037043-4bd8-460f-b8ba-b7da7bdbe1ea

Release Notes:

- Fixed issue where pasting code starting with new line resulted
incorrect auto indent.

Smit Barmase created

d0e82b0 Introduce "Near" block type (#28032)

Click to expand commit body
A "Near" block acts similarly to a "Below" block, but can (if it's
height is <= one line height) be shown on the end of the preceding line
instead of adding an entire blank line to the editor.

You can test it out by pasting this into `go_to_diagnostic_impl` and
then press `F8`
```
        let buffer = self.buffer.read(cx).snapshot(cx);
        let selection = self.selections.newest_anchor();

        self.display_map.update(cx, |display_map, cx| {
            display_map.insert_blocks(
                [BlockProperties {
                    placement: BlockPlacement::Near(selection.start),
                    height: Some(1),
                    style: BlockStyle::Flex,
                    render: Arc::new(|_| {
                        div()
                            .w(px(100.))
                            .h(px(16.))
                            .bg(gpui::hsla(0., 0., 1., 0.5))
                            .into_any_element()
                    }),
                    priority: 0,
                }],
                cx,
            )
        });
        return;
```

Release Notes:

- N/A

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>

Conrad Irwin and Antonio Scandurra created

10821aa file_finder: Fix filename matching to require contiguous characters (#28093)

Click to expand commit body
Improves https://github.com/zed-industries/zed/pull/27937 to only
prioritize file name if it's contiguous character match.

Release Notes:

- N/A

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

Smit Barmase and Conrad Irwin created

03aadb4 telemetry_events: Rename `AssistantEvent` to `AssistantEventData` (#28133)

Click to expand commit body
This PR renames the `AssistantEvent` type to `AssistantEventData`, as it
no longer represents the event itself, just the data needed to construct
it.

Pulling out of https://github.com/zed-industries/zed/pull/25179.

Release Notes:

- N/A

Marshall Bowers created

8ab252c Split protobufs into separate files (#28130)

Click to expand commit body
The one big protobuf file was getting a bit difficult to navigate. I
split it into separate topic-specific files that import each other.

Release Notes:

- N/A

Max Brunsfeld created

e74af03 Restore direct use of the input text for Markdown `Text` (#27620)

Click to expand commit body
PR #24388 changed the markdown parsing to copy parsed text in order to
handle markdown escaping, removing the optimization to instead reuse
text from the input.

Another issue with that change was that handling of finding links within
`Text` intermixed use of `text` and `parsed`, relying on the offsets
matching up (which I believe was true in practice).

The solution is to distinguish pulldown_cmark `Text` nodes that share
bytes with the input and those that do not.

Release Notes:

- N/A

Michael Sloan created

4bcd37a agent: Fix panic when opening Agent diff from the workspace (#28132)

Click to expand commit body
This PR fixes a panic that could occur when opening the Agent diff from
the workspace (with the agent panel closed).

Release Notes:

- agent: Fixed a panic when running the `agent: open agent diff` command
with the Agent Panel closed.

Marshall Bowers created

e3d212a debugger_ui: Don't `.unwrap` debug panel access (#28131)

Click to expand commit body
This PR removes replaces the `.unwrap`s when accessing the debug panel
with `if let Some`s.

These `.unwrap`s are not locally verifiable, and thus are not safe.

Release Notes:

- N/A

Marshall Bowers created

8b077f0 gpui: Avoid dereferencing null pointer in `MacWindow::update_ime_position` (#28110)

Click to expand commit body
Seems to be very similar to
https://github.com/zed-industries/zed/pull/28059

Edit: Updated the reproduction-steps as I missed something.

The method without a check currently causes my debug-builds to crash on
the regular if I:
- Run a debug build and open it fullscreen in a dedicated space on my
Mac.
- Work on any of the built-in languages (e.g. remove some content from
any `highlights.scm`)
- Reopen the workspace with the debug-build.
- Crash.

~~We might actually be able to revert the changes made in
https://github.com/zed-industries/zed/pull/21510 and just add the
null-check. Then again, I am not at all sure whether that would work.­~~
See comment below.

Release Notes:

- N/A

Finn Evers created