Commit log

ada2220 Insert a user reply when hitting `cmd-enter` in an assistant message

Antonio Scandurra created

f4f0606 Add assertion to pinpoint how deletion works across excerpts

Antonio Scandurra created

337dda8 Only remove excerpts when an edit touches them

Antonio Scandurra created

8032324 Prevent moving across excerpts on `Editor::delete`

Antonio Scandurra created

e46d154 Retain selection's head (as opposed to its end) on insertion

Click to expand commit body
This makes a difference when an edit spans two excerpts and the selection
start won't necessarily be the same as the selection end after the edit.

Antonio Scandurra created

23836eb Not working yet: Remove empty messages unless they contain the cursor

Click to expand commit body
Problem is, I'm trying to trust the excerpt id of the selection head,
but it's a sentinel value and not the actual excerpt id of the message.
I think we probably need to resolve to offsets instead.

Nathan Sobo created

296a0bf Populate created local settings file with an empty JSON object and comments

Max Brunsfeld created

cb975f1 Add Zed > Preferences > Local Settings to application menu

Max Brunsfeld created

0949ee8 :art: Move OpenSettings action back to the zed crate

Max Brunsfeld created

398b0f3 Apply bounds to all windows when using start-local-collaboration script (#2570)

Click to expand commit body
The `start-local-collaboration` script opens two instances of Zed, each
logged in as a different user, and each one taking up half of the
screen. But previously, when joining a remote project as one of the
collaborators, that newly-opened window would be full screen.

Now, each instance of Zed keeps *all* of its windows on its half of the
screen. This is implemented by respecting the `ZED_WINDOW_{SIZE,BOUNDS}`
env vars, even when joining *remote* projects.

Release Notes:

- N/A

Max Brunsfeld created

3d1ba1b Apply bounds to all windows when using start-local-collaboration script

Max Brunsfeld created

5711511 Fix copilot state corruption when there are multiple buffers with the same remote id in different projects (#2569)

Click to expand commit body
Fixes
https://linear.app/zed-industries/issue/Z-1511/thread-main-panicked-at-assertion-failed-left-==-right-left-local-0-1

Previously, when exchanging messages about buffers with a copilot
language server, we identified buffers using their **remote id**. This
caused problems when there were multiple projects open, where one or
more were remote, because buffers' remote ids are only unique within a
given project.

When you have multiple projects open, and one or more of the projects is
remote, it's pretty easy to have two buffers open with the same remote
id. In my testing, when this happened, copilot would stop working in
both buffers. But I believe that depending on the editing patterns that
occur in the two buffers, it could cause the crash reported in the
Linear issue above.

This PR changes our copilot logic to use buffers' local handle ids for
identifying them. This fixed the problems I was able to reproduce when
using copilot in both remote and local projects.

Release Notes:

- Fixed a crash that would sometimes occur when editing buffers after
having collaborated on a remote project.

Max Brunsfeld created

12dd91c Use local ids, not remote ids, to identify buffers to copilot

Max Brunsfeld created

5e4da64 Add file and line number information to logs (#2568)

Click to expand commit body
This PR adds codegen from rustc to track the file and line number of
calls to `log_err()`. I haven't noticed much longer compile times on my
machine, and looking at the
[implementation](https://rustc-dev-guide.rust-lang.org/backend/implicit-caller-location.html)
it essentially adds an extra argument and secret reference pass.
However, this will show a lot more data in our logs on user machines.
Requesting review from @ForLoveOfCats, who usually knows a bunch about
this kind of thing :)

Mikayla Maki created

624467e Add file and line number information to logs

Mikayla Maki created

7fbafc8 Remove code sending zed events to mixpanel (#2567)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

311074e Remove code sending zed events to mixpanel

Joseph Lyons created

2190a27 Stop sending editor events to mixpanel (#2566)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

70c5489 Stop sending editor events to mixpanel

Joseph Lyons created

4f31656 Move app version into panic object (#2565)

Click to expand commit body
Final tweaks to clean up how we structure our panic data

Release Notes:

- N/A

Joseph T. Lyons created

917d894 Move app version into panic object

Joseph Lyons created

6b89243 Update rust-bindgen dev-dependencies (#2563)

Click to expand commit body
I did \*something\* Friday afternoon which changed something about my
system SDK to break the `media` crate's bindings generation. Some of the
types and consts were not being generated despite being able to prove
that they exist in the source, such as when running the header through
the preprocessor myself and feeding that through the generator. Updating
my OS, XCode, command line tools, and reinstalling Rust as well as
working from fresh clones of the repo had no effect.

Updating rust-bindgen resolved the issue and downgrading the version
back to the original version caused the issue to reappear. I'm still not
sure what happened to change the SDK but at this point with being able
to build the project again I'm not going to look a gift horse in the
mouth.

Release Notes:

- N/A

Julia created

0ed8bbc Query `rect_for_text_range` on focused view instead of root element (#2564)

Click to expand commit body
This was causing IME input to be drawn in the wrong place when there
were splits or panels in the window.

Release Notes:

- Fixed a bug that was causing IME input to sometimes be rendered in the
wrong position.

Antonio Scandurra created

c872f58 Query `rect_for_text_range` on focused view instead of root element

Click to expand commit body
This was causing IME input to be drawn in the wrong place when there
were splits or panels in the window.

Antonio Scandurra created

bef6932 Avoid accidentally taking the `api_key` when requesting an assist

Antonio Scandurra created

5790d69 Update rust-bindgen dev-dependencies

Julia created

a89f3ed Fix typos (#2562)

Click to expand commit body
Quite literally just ran `typos --write-changes` from
https://crates.io/crates/typos. Its pretty impressive - wonder if we
should run it on CI.

Release Notes:

- N/A

Joseph T. Lyons created

7c60f63 Fix typos

Joseph Lyons created

46d2cba Improve panic reports (#2560)

Click to expand commit body
* Add an `identifying_backtrace` field that only contains symbols in
*our* own codebase, which can be used for better deduplication.
* In the main backtrace, include file and line numbers for all symbols
in our codebase
* Exclude any stack frames within the panic handling/hooking system
itself, so that the top line of the backtrace is where the panic
originated in our codebase.

This should improve our panic deduplication, and also make panic reports
a bit more readable.

example:

```
{
  "thread": "main",
  "payload": "wtf",
  "location_data": {
    "file": "crates/zed/src/zed.rs",
    "line": 459
  },
  "backtrace": [
    "zed::open_log_file::{{closure}}::{{closure}}::{{closure}}",
    "    crates/zed/src/zed.rs:459",
    "gpui::app::AppContext::spawn_internal::{{closure}}",
    "    crates/gpui/src/app.rs:2073",
    "gpui::executor::any_local_future::{{closure}}",
    "    crates/gpui/src/executor.rs:1026",
    "<core::pin::Pin<P> as core::future::future::Future>::poll",
    "<async_task::runnable::spawn_local::Checked<F> as core::future::future::Future>::poll",
    "async_task::raw::RawTask<F,T,S>::run",
    "async_task::runnable::Runnable::run",
    "<gpui::platform::mac::dispatcher::Dispatcher as gpui::platform::Dispatcher>::run_on_main_thread::trampoline",
    "    crates/gpui/src/platform/mac/dispatcher.rs:40",
    "<() as objc::message::MessageArguments>::invoke",
    "objc::message::platform::send_unverified",
    "objc::message::send_message",
    "<gpui::platform::mac::platform::MacForegroundPlatform as gpui::platform::ForegroundPlatform>::run",
    "    crates/gpui/src/platform/mac/platform.rs:366",
    "gpui::app::App::run",
    "    crates/gpui/src/app.rs:251",
    "Zed::main",
    "    crates/zed/src/main.rs:118",
    "core::ops::function::FnOnce::call_once",
    "std::sys_common::backtrace::__rust_begin_short_backtrace",
    "std::rt::lang_start::{{closure}}",
    "core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once",
    "std::rt::lang_start"
  ],
  "release_channel": "dev",
  "os_name": "macOS",
  "os_version": "12.6.1",
  "architecture": "aarch64",
  "panicked_on": 1685734744050,
  "identifying_backtrace": [
    "zed::open_log_file::{{closure}}::{{closure}}::{{closure}}",
    "gpui::app::AppContext::spawn_internal::{{closure}}",
    "gpui::executor::any_local_future::{{closure}}",
    "<gpui::platform::mac::dispatcher::Dispatcher as gpui::platform::Dispatcher>::run_on_main_thread::trampoline",
    "<gpui::platform::mac::platform::MacForegroundPlatform as gpui::platform::ForegroundPlatform>::run",
    "gpui::app::App::run",
    "Zed::main"
  ]
}
```

Release Notes:

N/A

Max Brunsfeld created

33c4c32 Avoid writing spurious nulls to the settings file when updating it programatically (#2561)

Click to expand commit body
Thanks for catching this @iamnbutler.

Max Brunsfeld created

7417835 Avoid writing spurious nulls to settings file when updating it programatically

Max Brunsfeld created

f6a4706 Improve panic reports

Click to expand commit body
* Add an 'identifying_backtrace' field that only contains symbols in our
  codebase, which can be used for better deduplication.
* In the main backtrace, include file and line numbers for all symbols
  in our codebase

Max Brunsfeld created

00265c1 Add additional panic information to panic events (#2555)

Click to expand commit body
Adds the following to the panic event

release_channel
os_name
os_version
architecture

Merge first: https://github.com/zed-industries/zed.dev/pull/322

Release Notes:

- N/A

Joseph T. Lyons created

345fad3 editor: add select previous command (#2556)

Click to expand commit body
Added a `select previous` command to complement `select next`.
Release Notes:

- Added "Select previous" editor command, mirroring `Select next`.
Ticket number: Z-366

Piotr Osiewicz created

f00f16f Show remaining tokens

Antonio Scandurra created

f97999d feat: update themes to use ThemeConfig

Sergey Onufrienko created

5fbbc19 fix: typescript errors

Sergey Onufrienko created

b38f760 feat: add index export

Sergey Onufrienko created

d3ed958 chore: make SyntaxHighlightStyle.color optional

Sergey Onufrienko created

6b00db7 feat: update and refactor colorScheme

Sergey Onufrienko created

56ecfaf feat: add themeConfig types

Sergey Onufrienko created

3750e64 Save OpenAI API key in the keychain

Antonio Scandurra created

571d2f4 Z-1074/search default label (#2547)

Click to expand commit body
This commit adds a default "Project search" tooltip for empty search
panes. Fixes Linear ticket Z-1074
Release Notes:

- Added default tooltip to empty search panes.
([#1533](https://github.com/zed-industries/community/issues/1533)).

Piotr Osiewicz created

a81d164 Allow saving the OpenAI API key in the assistant panel

Antonio Scandurra created

d0aff65 Allow moving the assistant panel to other docks

Antonio Scandurra created

55c8c6d Allow adding new contexts

Antonio Scandurra created

cf934ab Fix compile errors

Antonio Scandurra created

20e65a5 Merge remote-tracking branch 'origin/main' into assistant-2

Antonio Scandurra created

c55aee8 Rename field to panicked_on

Joseph Lyons created

cc05590 Add additional panic information to panic events

Joseph Lyons created