fc8a72c
WIP: ssh remoting: Add `upload_binary` field to SshConnections (#19748)
Click to expand commit body
This removes the old `remote_server { "download_binary_on_host": bool }`
field and replaces it with a `upload_binary: bool` on every
`ssh_connection`.
@ConradIrwin it compiles, it connects, but I haven't tested it really
yet
Release Notes:
- N/A
---------
Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Thorsten Ball
,
Conrad
, and
Conrad Irwin
created
1acebb3
Remove another false-positive Danger message (#19769)
Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/19151
Ignores any URLs aftrer `Release Notes:` (if present) and after
`Follow-up of` and `Part of` words.
Release Notes:
- N/A
Kirill Bulatov
created
78ed0c9
vim: Copy comment to new lines with o/O (#19766)
Click to expand commit body
Co-Authored-By: Kurt Wolf <kurtwolfbuilds@gmail.com>
Closes: #4691
Closes #ISSUE
Release Notes:
- vim: o/O now respect `extend_comment_on_newline`
Closes #19372
Release Notes:
- Fixed autoclosing quotes when the string is already open.
- Added autoclosing of rust multiline strings
---------
Co-authored-by: Kurt Wolf <kurtwolfbuilds@gmail.com>
Conrad Irwin
and
Kurt Wolf
created
4325819
Fix more failure cases of assistant edits (#19653)
Click to expand commit body
* Make `description` optional (since we describe it as optional in the
prompt, and we're currently not showing it)
* Fix fuzzy location bug that neglected the cost of deleting prefixes of
the query.
* Make auto-indent work for single-line edits. Previously, auto-indent
would not occur when overwriting a single line (without inserting or
deleting a newline)
Release Notes:
- N/A
Max Brunsfeld
created
c19c89e
collab: Include `checkout_complete` query parameter after checking out (#19763)
Click to expand commit body
This PR updates the checkout flow to include the `?checkout_complete=1`
query parameter after successfully checking out.
We'll use this on the account page to adapt the UI accordingly.
Release Notes:
- N/A
Marshall Bowers
created
507929c
Add `editor: fold at level <level>` commands (#19750)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/5142
Note that I only moved the cursor to the top of the file so it wouldn't
jump - the commands work no matter where you are in the file.
https://github.com/user-attachments/assets/78c74ca6-5c17-477c-b5d1-97c5665e44b0
Also, is VS Code doing this right thing here? or is it busted?
https://github.com/user-attachments/assets/8c503b50-9671-4221-b9f8-1e692fe8cd9a
Release Notes:
- Added `editor: fold at level <level>` commands. macOS: `cmd-k,
cmd-<number>`, Linux: `ctrl-k, ctrl-<number>`.
---------
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Joseph T. Lyons
and
Piotr Osiewicz
created
7d0a7af
Fix condition for re-using highlights when seeking buffer chunks iterator (#19760)
Click to expand commit body
Fixes a syntax highlighting regression introduced in
https://github.com/zed-industries/zed/pull/19531, which caused syntax
highlighting to be missing after any block.
Release Notes:
- N/A
Max Brunsfeld
created
92ba183
Properly deserialize active pane in the workspace (#19744)
Click to expand commit body
Without setting the active pane metadata, no center pane events are
emitted on start before the pane is focused manually, which breaks
deserialization of other components like outline panel, which should
show the active pane's active item outlines on start.
Release Notes:
- N/A
Co-authored-by: Thorsten Ball <thorsten@zed.dev>
Kirill Bulatov
and
Thorsten Ball
created
6de5ace
Update outline panel representation when a theme is changed (#19747)
Click to expand commit body
Release Notes:
- N/A
Kirill Bulatov
created
c9db1b9
Add keybindings for accepting hunks (#19749)
Click to expand commit body
I went with Cmd-Shift-Y on macOS (Ctrl-Shift-Y on Linux) for "yes accept
this individual hunk" - both are currently unused.
I went with Cmd-Shift-A on macOS (Ctrl-Alt-A on Linux) for "accept all
hunks" - both are unused. (Ctrl-Shift-A on Linux was taken, as is
Ctrl-Alt-Y, so although the pairing of Ctrl-Shift-Y and Ctrl-Alt-A isn't
necessarily obvious, the letters seem intuitive - "yes" and "all" - and
those key combinations don't conflict with anything.)
Release Notes:
- Added keybindings for applying hunks in Proposed Changes
<img width="247" alt="Screenshot 2024-10-25 at 12 47 00 PM"
src="https://github.com/user-attachments/assets/d6355621-ba80-4ee2-8918-b7239a4d29be">
Richard Feldman
created
24cb694
Update placeholder text with key bindings to focus context panel and navigate history (#19447)
Click to expand commit body
Hopefully, this will help people understand how easy it is to add
context to an inline transformation.

@as-cii @maxdeviant @rtfeldman could somebody update this to display the
actual correct key bindings and ship it. I have them hard coded for now.
Release Notes:
- Updated placeholder text with key bindings to focus context panel and
navigate history.
---------
Co-authored-by: Richard Feldman <oss@rtfeldman.com>
Nathan Sobo
and
Richard Feldman
created
85bdd93
Revert "Show invisibles in editor (#19298)" (#19752)
Click to expand commit body
Closes: #19714
This reverts commit 6dcec47235fa85f0e416b9230e2fedc61de510ee.
Release Notes:
- (preview only) Fixes a crash when rendering invisibles
Conrad Irwin
created
d40ea8f
Make macOS bundle script compatible with GNU sed (#19745)
5f9a148
assistant: Make `/file` emit events as they occur (#19743)
Click to expand commit body
This PR updates the `/file` command to emit its `SlashCommandEvent`s in
a way that can actually be streamed.
Previously it was buffering up all of the events and then returning them
all at once.
Note that we still don't yet support streaming in the context editor on
`main`, so there won't be any visible changes just yet.
Release Notes:
- N/A
Marshall Bowers
created
5c2238c
ssh remoting: Use matching versions of remote server binary (#19740)
Click to expand commit body
This changes the download logic to not fetch the latest version, but to
fetch the version matching the current version of Zed.
Release Notes:
- Changed the update logic of the SSH remote server to not fetch the
latest version for a current channel, but to fetch the version matching
the current Zed version. If Zed is updated, the server is updated too.
If the server is newer than the Zed version an error will be displayed.
Thorsten Ball
created
5769065
project panel: Persist full filename when renaming auto-folded entries (#19728)
Click to expand commit body
This fixes a debug-only panic when processing filenames. The underflow
that happens in Preview/Stable shouldn't cause any issues (other than
maybe unmarking an entry in the project panel).
/cc @notpeter
Closes #ISSUE
Release Notes:
- N/A
Piotr Osiewicz
created
0173479
ssh remoting: Lock file becomes stale if connection drops & no update if binary is running (#19724)
Click to expand commit body
Release Notes:
- Changed the update process of the remote server binary to not attempt
an update if we can detect that the current binary is used by another
process.
- Changed the update process of the remote server binary to mark the
lock file as stale in case the SSH connection of the process that
created the lock file isn't open anymore.
Thorsten Ball
created
08a3c54
Allow editor blocks to replace ranges of text (#19531)
Click to expand commit body
This PR adds the ability for editor blocks to replace lines of text, but
does not yet use that feature anywhere. We'll update assistant patches
to use replace blocks on another branch:
https://github.com/zed-industries/zed/tree/assistant-patch-replace-blocks
Release Notes:
- N/A
---------
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Richard Feldman <richard@zed.dev>
Co-authored-by: Marshall Bowers <marshall@zed.dev>
Co-authored-by: Nathan Sobo <nathan@zed.dev>
Max Brunsfeld
,
Antonio Scandurra
,
Richard Feldman
,
Marshall Bowers
, and
Nathan Sobo
created
3617873
project panel: Fix interactions with auto-folded directories (#19723)
Co-authored-by: Kirill <kirill@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.dev>
Fixes #9896
Release Notes:
- Fixed an issue where clicking on an image inside the project panel
would not re-use an existing image tab
Co-authored-by: Kirill <kirill@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.dev>
This restores all the init behaviour into main again. This means we
never need to call init_ui (and so we can't call it more than once).
Release Notes:
- (Nightly only) fixes a panic when using the cli to open another file
in a running zed.
Conrad Irwin
created
42a7402
assistant: Use a labeled button for the slash command menu (#19703)
Click to expand commit body
This should help a bit more the discoverability of the slash commands.
Release Notes:
- N/A
Danilo Leal
created
6cd5c9e
assistant: Tweak the model selector design (#19704)
Click to expand commit body
Exploring using the UI font for it, as it is more common for dropdowns
and popovers throughout the app. Feeling like it makes it lighter and
also shorter in width!
| Before | After |
|--------|--------|
| <img width="1296" alt="Screenshot 2024-10-24 at 16 39 04"
src="https://github.com/user-attachments/assets/0412f922-77a9-4d83-adf9-5632534d6c5b">
| <img width="1296" alt="Screenshot 2024-10-24 at 16 38 26"
src="https://github.com/user-attachments/assets/8bf52ba7-fda7-4437-b53e-903c282f2931">
|
Release Notes:
- N/A
Co-Authored-By: Max <max@zed.dev>
Closes #ISSUE
Release Notes:
- SSH Remoting: Reuse connections across hosts
---------
Co-authored-by: Max <max@zed.dev>
Conrad Irwin
and
Max
created
3a9c071
Fix partial downloads of ssh remote server (#19700)
Click to expand commit body
Release Notes:
- SSH Remoting: fix a bug where inerrrupting ssh connecting could leave
your local binary cached in an invalid state
Conrad Irwin
created
ca861bb
ui: Fix swapped element background colors (#19701)
Click to expand commit body
This PR fixes an issue introduced in
https://github.com/zed-industries/zed/pull/18768 where the element
backgrounds colors for `ElevationIndex::ElevatedSurface` and
`ElevationIndex::Surface` were swapped.
Release Notes:
- N/A
Use `Fs` instead of `std::fs` and do entry existence checks better:
* first, check the worktree entry existence without any FS checks
* then, only for local cases, use `Fs` to check for abs_path existence
of items, in case those came from single-filed worktrees that got closed
and removed.
Remote entries do not get file existence checks, so might try opening
previously removed buffers for now.
Release Notes:
- N/A
Kirill Bulatov
created
3ec015b
docs: Example theme_overrides for docstrings as italic (#19694)
TODO:
- [ ] Check that workspace migration worked
- [ ] Add server migrations and make sure SeaORM files are in sync
(maybe?)
Release Notes:
- N/A
---------
Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Mikayla Maki
,
Conrad
, and
Conrad Irwin
created
b5f816d
assistant: Add implementation for `/delta` argument completion (#19693)
Click to expand commit body
This PR fixes a panic that could occur when trying to complete arguments
for the `/delta` slash command.
We were using `unimplemented!()` instead of providing a default no-op
implementation like we do for other slash commands that do not support
completing arguments.
Closes https://github.com/zed-industries/zed/issues/19686.
Release Notes:
- Fixed a panic that could occur when trying to complete arguments with
the `/delta` command.
Marshall Bowers
created
499e145
Fix crash in collab when sending worktree updates (#19678)
Click to expand commit body
This pull request does a couple of things:
- In 29c2df73e1448bb510aebfbc954deb067fc88032, we introduced a safety
guard that prevents this crash from happening again in the future by
returning an error instead of panicking when the payload is too large.
- In 3e7a2e5c3067c53bb12cd0c76c6e7b09af7c8fcf, we introduced chunking
for updates coming from SSH servers (previously, we were sending the
whole changeset and initial set of paths in their entirety).
- In 122b5b4, we introduced a panic hook that sends panics to Axiom.
For posterity, this is how we figured out what the panic was:
```
kubectl logs current-pod-name --previous --namespace=production
```
Release Notes:
- N/A
---------
Co-authored-by: Thorsten <thorsten@zed.dev>
Co-authored-by: Bennet <bennet@zed.dev>
Co-authored-by: Kirill <kirill@zed.dev>
Antonio Scandurra
,
Thorsten
,
Bennet
, and
Kirill
created
b5aea54
ssh: Capitalize error and connection strings (#19675)
Click to expand commit body
Another tiny PR for the sake of consistency :)
Release Notes:
- N/A
Danilo Leal
created
3c6a505
docs: Add tweaks to the Remote Development page (#19674)
Click to expand commit body
Just making just we also add the other keybinding to open the Remote
Projects dialog and capitalize every "SSH" mention for consistency. Tiny
stuff!
Release Notes:
- N/A
Danilo Leal
created
efc4d3e
ssh remoting: Fix wrong working directory for SSH terminals (#19672)
Click to expand commit body
Before this change, we would save the working directory *on the client*
of each shell that was running in a terminal.
While it's technically right, it's wrong in all of these cases where
`working_directory` was used:
- in inline assistant
- when resolving file paths in the terminal output
- when serializing the current working dir and deserializing it on
restart
Release Notes:
- Fixed terminals opened on remote hosts failing to deserialize with an
error message after restarting Zed.
See #12673
https://github.com/user-attachments/assets/94079afc-a851-4206-9c9b-4fad3542334e
TODO:
- [x] Make active indent guides work for autofolded directories
- [x] Figure out which theme colors to use
- [x] Fix horizontal scrolling
- [x] Make indent guides easier to click
- [x] Fix selected background flashing when hovering over entry/indent
guide
- [x] Docs
Release Notes:
- Added indent guides to the project panel
Bennet Bo Fenner
created
e040b20
project_panel: Make up/down in file rename editor not select items (#19670)
Click to expand commit body
Closes #19017
Release Notes:
- Fixed project panel bug when renaming files where up/down keys could
select other files.
This snuck in when Bennet and I were debugging why our connection to the
SSH host would break. We suspected that somewhere something was logging
to STDOUT and, I guess, we changed all `println!` to `eprintln!`.
Now, two weeks later, I'm sitting here, wondering why the version check
doesn't work anymore. The server always reports a version of `""`.
Turns out we take the command's STDOUT and not STDERR, which is correct.
But it also turns out we started to print the version to STDERR, which
breaks the version check.
One-character bug & one-character fix.
Release Notes:
- N/A
Thorsten Ball
created
0ffc92a
Update actions/checkout digest to 11bd719 (#19636)
Click to expand commit body
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://redirect.github.com/actions/checkout) |
action | digest | `eef6144` -> `11bd719` |
---
### Configuration
📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot]
and
renovate[bot]
created
d303615
assistant: Update `SlashCommand` trait with streaming return type (#19652)
Click to expand commit body
This PR updates the `SlashCommand` trait to use a streaming return type.
This change is just at the trait layer. The goal here is to decouple
changing the trait's API while preserving behavior on either side.
The `SlashCommandOutput` type now has two methods for converting two and
from a stream to use in cases where we're not yet doing streaming.
On the `SlashCommand` implementer side, the implements can call
`to_event_stream` to produce a stream of events based off the
`SlashCommandOutput`.
On the slash command consumer side we use
`SlashCommandOutput::from_event_stream` to convert a stream of events
back into a `SlashCommandOutput`.
The `/file` slash command has been updated to emit `SlashCommandEvent`s
directly in order for it to work properly.
Release Notes:
- N/A
---------
Co-authored-by: Max <max@zed.dev>
Marshall Bowers
and
Max
created
510c71d
Pin crate-ci/typos action to 8e6a428 (#19635)
Click to expand commit body
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [crate-ci/typos](https://redirect.github.com/crate-ci/typos) | action
| pinDigest | -> `8e6a428` |
---
### Configuration
📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot]
and
renovate[bot]
created
013d2d5
Update Rust crate anyhow to v1.0.91 (#19640)
Click to expand commit body
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [anyhow](https://redirect.github.com/dtolnay/anyhow) |
workspace.dependencies | patch | `1.0.89` -> `1.0.91` |
---
### Release Notes
<details>
<summary>dtolnay/anyhow (anyhow)</summary>
###
[`v1.0.91`](https://redirect.github.com/dtolnay/anyhow/releases/tag/1.0.91)
[Compare
Source](https://redirect.github.com/dtolnay/anyhow/compare/1.0.90...1.0.91)
- Ensure OUT_DIR is left with deterministic contents after build script
execution
([#​388](https://redirect.github.com/dtolnay/anyhow/issues/388))
###
[`v1.0.90`](https://redirect.github.com/dtolnay/anyhow/releases/tag/1.0.90)
[Compare
Source](https://redirect.github.com/dtolnay/anyhow/compare/1.0.89...1.0.90)
- Documentation improvements
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Update of the SSH remoting docs
Release Notes:
- N/A
Conrad Irwin
created
e87d5e1
Use zstd without dynamic linking due to musl usage (#19627)
Click to expand commit body
Due to leaning towards `musl` builds, unit features for `zstd` and link
it statically too for Zed.
https://github.com/gyscos/zstd-rs/blob/bfe1e34f593c2427e9dc35f1b98d06788174711f/zstd-safe/zstd-sys/build.rs#L260
shows that `ZSTD_SYS_USE_PKG_CONFIG` env var can be used to return this
behavior.
Release Notes:
- N/A
- Closes: https://github.com/zed-industries/zed/issues/19609
Switches us to using `-latest` tags with Anthropic models instead of
pinning to a specific date version.
See: [Anthropic Model
Docs](https://docs.anthropic.com/en/docs/about-claude/models)
This is a no-op for:
- Claude 3 Opus (`claude-3-opus-20240229`)
- Claude 3 Sonnet (`claude-3-sonnet-20240229`)
- Claude 3 Haiku (`claude-3-haiku-20240307`)
For Claude 3.5 Sonnet this will update us from
`claude-3-5-sonnet-20240620` to `claude-3-5-sonnet-20241022`. We will
also pickup any subsequent model updates automatically when Anthropic
updates the `latest` tag.
This matches the behavior for OpenAI where use `gpt-4o` as the
model_name and not `gpt-4o-2024-08-06`.
Peter Tripp
created
9c0dba4
Add a `SlashCommandResult` type alias (#19633)
Click to expand commit body
This PR adds a new `SlashCommandResult` type alias.
We're going to be changing what slash commands can return in order to
support streaming, so having this type alias in place will make that
switch a bit more neat.
Release Notes:
- N/A