Commit log

f6836cb zed 0.120.6

Joseph T. Lyons created

58e824d Prevent z-index id shuffle when number of z-indicies in the scene change

Julia created

94e2355 Fix hovering over elements nested inside their parents

Click to expand commit body
Co-Authored-By: Conrad Irwin <conrad@zed.dev>

Julia and Conrad Irwin created

119fa04 Introduce a fast path for drawing quads with no borders / corner radii (#7231)

Click to expand commit body
This will introduce an extra conditional but saves us from doing a bunch
of math in the simple case of drawing simple rectangles that aren't
rounded or don't have borders.


![Figure_1](https://github.com/zed-industries/zed/assets/482957/cba95ce2-2d9a-46ab-a142-35368334eb75)

Release Notes:

- Improved rendering performance.

Antonio Scandurra created

ae34c15 assistant: render api key editor if no credentials are set (#7197)

Click to expand commit body
This hopefully reduces confusion for new users. I updated the docs just
this morning, but I figured it's probably better to fix the issue
itself.

So what this does is to render the API key editor whenever the assistant
panel is opened/focused and no credentials can be found.

See: https://github.com/zed-industries/zed/discussions/6943

Release Notes:

- Fixed assistant panel not showing dialog to enter API key when opened
without saved credentials.

---------

Co-authored-by: Piotr <piotr@zed.dev>

Thorsten Ball and Piotr created

ef5fc9a Log error if worktree fails to relativize git repo path

Click to expand commit body
We saw a panic that was caused by the previous `Option.unwrap()`, so
this changes the method to return a `Result` and logs the error if
possible.

Co-authored-by: Antonio <antonio@zed.dev>

Thorsten Ball and Antonio created

c876f81 zed 0.120.5

Conrad Irwin created

f9fb4ee Add logging for the font_descriptor panic (#7097)

Click to expand commit body
Release Notes:

- Fixed a panic caused by an inconsistency in font metrics.

Conrad Irwin created

35d1876 Fix panic in fuzzy-finder for unicode characters (#7080)

Click to expand commit body
This fixes a panic in the fuzzy finder which someone ran into when
typing in a query that contained the lower-case version of a unicode
character that has more chars than its upper-case version.

It also fixes another problem which was that we didn't find a match if
both candidates and query contained upper-case characters whose
lower-case version had more chars.


Release Notes:

- Fixed a panic in fuzzy-finder that could occur when matching with
queries containing upper-case unicode characters whose lower-case
version has more chars.

Co-authored-by: bennetbo <bennetbo@gmx.de>

Thorsten Ball and bennetbo created

8899c4d Attempt to fix a panic in worktree scanning (#7128)

Click to expand commit body
Somehow (and this should be investigated separately) we're ending up
with paths that look like: /path/to/project/../../path/to/dependency,
these pass the Ok(repo_path) = path.strip_prefix(), but then fail.

Release Notes:

- Fixed (hopefully) a panic that could occur due to path confusing in
git status

Conrad Irwin created

965d685 collab 0.40.2

Joseph T. Lyons created

3b70171 v0.120.x stable

Joseph T. Lyons created

9b79f04 zed 0.120.4

Conrad Irwin created

6c69f4e Simplify Membership Management (#6747)

Click to expand commit body
Simplify Zed's collaboration system by:
- Only allowing member management on root channels.
- Disallowing moving sub-channels between different roots.
- Disallowing public channels nested under private channels.

This should make the mental model easier to understand, and makes it
clearer
who has what access. It is also significantly simpler to implement, and
so
hopefully more performant and less buggy.

Still TODO:
- [x] Update collab_ui to match.
- [x] Fix channel buffer tests.

Release Notes:

- Simplified channel membership management.

Conrad Irwin created

4ad3cf7 collab fixes (#6720)

Click to expand commit body
- Fail faster on serialization failure
- Move expensive participant update out of transaction

Release Notes:

- Fixed creating/moving channels in busy workspaces

Conrad Irwin created

a15b307 collab errors (#4152)

Click to expand commit body
One of the complaints of users on our first Hack call was that the error
messages you got when channel joining failed were not great.

This aims to fix that specific case, and lay the groundwork for future
improvements.

It adds two new methods to anyhow::Error

* `.error_code()` which returns a value from zed.proto (or
ErrorCode::Internal if the error has no specific tag)
* `.error_tag("key")` which returns the value of the tag (or None).

To construct errors with these fields set, you can use a builder API
based on the ErrorCode type:

* `Err(ErrorCode::Forbidden.anyhow())`
* `Err(ErrorCode::Forbidden.message("cannot join channel").into())` - to
add any context you want in the logs
* `Err(ErrorCode::WrongReleaseChannel.tag("required", "stable").into())`
- to add structured metadata to help the client handle the error better.


Release Notes:

- Improved error messaging when channel joining fails.

Conrad Irwin created

27320f0 zed 0.120.3

Conrad Irwin created

09331d6 Fix panic when typing umlauts in command palette using Vim mode (#6761)

Click to expand commit body
Release Notes:

- This fixes a panic that occurs when someone was using Vim mode and
typing umlauts into the command palette. E.g: `:%s/impërt`

Thorsten Ball created

8650a3d Upgrade alacritty_terminal in hopes to avoid PTY poll failing (#6715)

Click to expand commit body
We saw stack traces in our #panic channel pop up that failed on this
line:

https://github.com/zed-industries/alacritty/blob/33306142195b354ef3485ca2b1d8a85dfc6605ca/alacritty_terminal/src/event_loop.rs#L323-L324

With this message:

thread 'PTY reader' panicked at 'called `Result::unwrap()` on an `Err`
value: Os { code: 9, kind: Uncategorized, message: "Bad file descriptor"
}'

/Users/administrator/.cargo/git/checkouts/alacritty-afea874b09a502a5/3330614/alacritty_terminal/src/event_loop.rs:324

We don't know how to reproduce the error. It doesn't seem related to the
number of open PTY handles, because `openpty` itself didn't fail. We can
only assume that something went wrong between `openpty` and the setup of
the polling.

Since Alacritty itself changed its polling mechanism significantly by
switching from `mio` to `polling`
(https://github.com/alacritty/alacritty/pull/6846) we upgraded with the
hope that this will fix the bug.

Release Notes:

- Upgraded alacritty_terminal to newest version in order to hopefully
fix a rare panic that can occur when starting a new terminal.

Thorsten Ball created

dc9f3af zed 0.120.2

Conrad Irwin created

9c62880 Fix circular locking in prompts (#6456)

Click to expand commit body
Sometimes Cocoa calls app delegate methods (notably the display link)
while we're calling Cocoa methods. This causes a deadlock unless we
are careful to run cocao methods while we're not holding our internal
locks

Release Notes:

- Fixed a crash when opening the MacOS Save As dialogue.

Conrad Irwin created

80f9dc3 Use the correct snapshot when calculating mouse positions (#6453)

Click to expand commit body
Release Notes:

- Fixed a panic in calculating remote cursor positions

Conrad Irwin created

e8873b5 Fix crash in feedback modal (#6431)

Click to expand commit body
After the general release we saw a number of crashes due to a SEGFAULT
inside the
System::new() method apparently relating to refreshing the user list.

As we do not need the user list, and the similar code in the telemtry
create is not crashing,
do less work for now.

Release Notes:

- Fixed a crash when opening the feedback modal

Conrad Irwin created

ffbd5a4 zed 0.120.1

Mikayla created

20d35fd Revert "Ensure that notify observations are sent during `Window::draw()`" (#6152)

Click to expand commit body
Reverts zed-industries/zed#4236

This causes an infinite loop when opening the language server logs

Mikayla Maki created

ddc437e v0.120.x preview

Joseph T. Lyons created

f654b89 Make it clearer that macOS Sonoma is supported (#4249)

Click to expand commit body
This PR updates the docs to make it clearer that macOS Sonoma is
supported.

Release Notes:

- N/A

Marshall Bowers created

4665b9a Improve startup time (#4248)

Click to expand commit body
Since our last measurements, startup time in Zed had regressed quite
significantly. This was due to several issues:

- We were loading IBMPlex, which we're not really using in the UI.
- Images were being parsed in the foreground, thus blocking the main
thread
- Language models (for semantic index and assistant) were being loaded
in the foreground, thus blocking the main thread
- Interaction with the keychain was blocking the main thread

In addition to these, with this pull request we will now deserialize the
items for a pane in parallel, as opposed to doing so sequentially.

All combined, when running the zed binary directly this brings startup
time from ~350ms to ~210ms on my machine.

Release Notes:

- Improved startup time.

Antonio Scandurra created

25a7eb2 Move interaction with keychain off the main thread

Antonio Scandurra created

2ce24dc Fix tab bar button's focus handling lagging behind (#4247)

Click to expand commit body
This fixes https://github.com/zed-industries/community/issues/2442 for
me.

Previously, the tab bar buttons would stay when the chat panel was
opened (and received focus) until something else was drawn (or caused a
render?)

With this change, the tab bar buttons are only shown if the pane was
focus.

I'm not sure about the side-effects of this, but the toolbar still seems
to work fine.

### Before


https://github.com/zed-industries/zed/assets/1185253/24b56e51-467b-4a09-909f-72ee6f76f32c

### After



https://github.com/zed-industries/zed/assets/1185253/18865f49-d00e-453a-8a38-aee15f06beb8



### Release Notes:

- (Added|Fixed|Improved) ...
([#<public_issue_number_if_exists>](https://github.com/zed-industries/community/issues/<public_issue_number_if_exists>)).

Thorsten Ball created

b9218ae Add module documentation to GPUI and make gpui.rs example compile (#4241)

Click to expand commit body
[[PR Description]]

Release Notes:

- N/A

Mikayla Maki created

0d0c85a Fix typo in comment

Piotr Osiewicz created

fe2cb9f fixup! pane: Another stab at focus flickers in tab bar

Piotr Osiewicz created

0497b2f pane: Another stab at focus flickers in tab bar

Click to expand commit body
This time around, we address the flicker seen in #3857 by querying the active item (that might've just been added),
as it knows whether it has focus even if the parent Pane does not.

Co-authored-by: Thorsten <thorsten@zed.dev>

Piotr Osiewicz and Thorsten created

22046ef Load language models in the background

Antonio Scandurra created

92b0184 Load images in the background

Antonio Scandurra created

e3157f7 Remove unused font

Antonio Scandurra created

e4604eb Parallelize deserialization of pane items on startup

Click to expand commit body
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>

Antonio Scandurra and Mikayla Maki created

526ea40 Log if element arena allocation is >80% (#4246)

Click to expand commit body
We recently doubled the size of the `ELEMENT_ARENA` after someone ran
into a panic due to the arena running out of space.

This adds some logging so that we can hopefully develop a better
understanding of when the element area's allocation is elevated.

Release Notes:

- N/A

Antonio Scandurra created

027f425 Fix tab bar button's focus handling lagging behind

Click to expand commit body
This fixes https://github.com/zed-industries/community/issues/2442 for
me.

Previously, the tab bar buttons would stay when the chat panel was
opened (and received focus) until something else was drawn (or caused a
render?)

With this change, the tab bar buttons are only shown if the pane was
focus.

I'm not sure about the side-effects of this, but the toolbar still seems
to work fine.

Thorsten Ball created

e018506 Cache font-missing result to avoid unnecessary lookups (#4245)

Click to expand commit body
This fixes the performance problem we saw in
https://github.com/zed-industries/community/issues/2405.

In a trace we could see that if a font is missing we'd constantly look
it up and never cache that it's missing.

This changes that and does cache the font-is-missing result.

Drawback is that one would need to restart Zed after installing a
missing font that was configured in settings. That seems acceptable for
now, though.

Release Notes:

- Improved rendering performance when configured fonts are missing on
the system.

Thorsten Ball created

18f5752 Log if element arena allocation is >80%

Click to expand commit body
We recently doubled the size of the `ELEMENT_ARENA` after someone ran
into a panic due to the arena running out of space.

This adds some logging so that we can hopefully develop a better
understanding of when the element area's allocation is elevated.

Co-authored-by: Antonio <antonio@zed.dev>

Thorsten Ball and Antonio created

4800991 Cache font-missing result to avoid unnecessary lookups

Click to expand commit body
This fixes the performance problem we saw in https://github.com/zed-industries/community/issues/2405.

In a trace we could see that if a font is missing we'd constantly look
it up and never cache that it's missing.

This changes that and does cache the font-is-missing result.

Drawback is that one would need to restart Zed after installing a
missing font that was configured in settings. That seems acceptable for
now, though.

Co-authored-by: Antonio <antonio@zed.dev>

Thorsten Ball and Antonio created

bd6197e Increase capacity of element arena to 8MB (#4244)

Click to expand commit body
This fixes a panic we just saw on nightly. It's the first time we see
this panic, so I think it's pretty safe to assume having twice as much
capacity will fix it.

Release Notes:

- Fixed a crash that could sometimes occur when the window contained
lots of graphical elements.

Antonio Scandurra created

b640e0e Increase capacity of element arena to 8MB

Click to expand commit body
This fixes a panic we just saw on nightly. It's the first time we
see this panic, so I think it's pretty safe to assume having twice as
much capacity will fix it.

Antonio Scandurra created

ce0ff81 Fix more tests

Mikayla created

fa6acc3 Add note about discord

Mikayla created

c0b9f0a Update JetBrains keymap (#4243)

Click to expand commit body
I want to immediately archive the `keymaps` repo tomorrow. This is the
only change that needs to be brought over.

Release Notes:

- N/A

Joseph T. Lyons created

1facc9f Fix test error

Mikayla created

ce7cd5a Copy GPUI documentation to README

Mikayla created