eb91b71
v0.147.x stable
Joseph T Lyons created
eb91b71
v0.147.x stable
Joseph T Lyons created
97a9fca
zed 0.147.2
Antonio Scandurra created
73714cb
Fix inline assist deletion blocks (cherry-pick #15651) (#15654)
Cherry-picked Fix inline assist deletion blocks (#15651) After the changes in #15536, block decorations need to be given an explicit height if their content doesn't consume height on its own. We missed that inline transformation deletion decorations didn't do this, creating weird results. This fixes the issue and prevents block decorations from ever having a zero height. That helps avoid major weirdness, but this still a bit of a gotcha. We need to back port this to Preview Channel (0.147.x) Release Notes: - N/A --------- Co-authored-by: Antonio <antonio@zed.dev> Co-authored-by: Nathan Sobo <nathan@zed.dev> Co-authored-by: Antonio <antonio@zed.dev>
gcp-cherry-pick-bot[bot] , Nathan Sobo , and Antonio created
202dbc2
Bump to 0.147.1 for @SomeoneToIgnore
Zed Bot created
7c2a55d
assistant: Report all worktree entries in /file completions (#15617)
We were reporting file count as worktree entry count, which led to us missing some of the entries in /file command completion. /cc @bennetbo The other components that used `PathMatchCandidateSet` are `/diagnostics` and file finder. File finder is unaffected, as it used `Candidates::Files` - thus previously reported count was correct for it; `/diagnostics` were using `::Entries` as well, so it could miss entries just like `/files`. Release Notes: - Fixed /file and /diagnostics slash commands omitting entries in it's completions menu.
Piotr Osiewicz created
78e359a
Properly calculate y offsets for multi buffer context menus (#15594)
Follow-up of https://github.com/zed-industries/zed/pull/14727 Release Notes: - Fixed multi buffer context menus not showing properly Co-authored-by: Max Brunsfeld <max@zed.dev>
Kirill Bulatov and Max Brunsfeld created
38a083c
v0.147.x preview
Joseph T Lyons created
fef9511
If paths from edit steps omit worktree root, search worktrees for relative path (#15543)
Release Notes: - N/A Co-authored-by: Nathan <nathan@zed.dev>
Antonio Scandurra and Nathan created
3c404de
Send pane `removeItem` event before removing the item (#15541)
This PR renames and added a new pane event to indicate the difference between `removing` and `removed` event. This change is needed for the debugger implementation, if you close a pane we have to send a `terminateThread` request to the adapter because it's not supported to reopen a pane. So when the pane is removing we have to know what thread it is what is stored on the panel itself, so we have to be able to get this information before the pane is actually removed. So my idea how to fix this was by adding a new event called `RemovedItem` which is a rename of `RemoveItem` which also makes a bit more sense because the item is removed at that point. And seeing the name `RemoveItem` does not really say that it's removed, more like we are removing the item. /cc @mikayla-maki Release Notes: - N/A
Remco Smits created
5b1ea7e
Clean up inline assist editor rendering (#15536)
Release Notes: - N/A --------- Co-authored-by: Nathan <nathan@zed.dev> Co-authored-by: Max <max@zed.dev>
Antonio Scandurra , Nathan , and Max created
73d8370
Use upstream tree-sitter-go-mod grammar (#15539)
Release Notes: - N/A
Kirill Bulatov created
874fedd
assistant panel: Fix panic when opening panel with zed.dev provider (#15538)
There was/is some race condition that gets triggered only with the zed.dev provider when opening the provider that would cause a double-borrow on workspace. This PR fixes the issue by cloning the workspace weakly. Turns out we can go very far with just the weak reference. We're still a bit unsure why exactly the race condition happened, since it's hard to reproduce, but we're working on configuration view/management in #15490 anyway. Release Notes: - N/A Co-authored-by: Bennet <bennet@zed.dev>
Thorsten Ball and Bennet created
64bfec5
Revert terminal: Add Alt key bindings for terminal (#15535)
- reverts commit 66ada3e44c047d828efbc269655476c12eefe876. - change default `option_as_meta` to true
Peter Tripp created
9384f66
Properly extract errors from the Anthropic API (#15534)
Before, we missed "successful" responses with the API errors, now they are properly shown in the assistant panel.  Release Notes: - N/A
Kirill Bulatov created
821ce2f
assistant panel: Fix panel not reloading after entering credentials (#15531)
This is the revised version of #15527. We also added new events to notify subscribers when new providers are added or removed. Co-Authored-by: Thorsten <thorsten@zed.dev> Release Notes: - N/A --------- Co-authored-by: Thorsten <thorsten@zed.dev> Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
Bennet Bo Fenner , Thorsten , and Thorsten Ball created
a31dba9
Reflect token limit errors and warnings in the assistant panel Send button style (#15529)
When used token count is below 80%, the Send button is displayed as usual: no tooltip, regular style:  When it exceeds 80% but below the `max_tokens` threshold, the button starts to show as a warning, with the corresponding tooltip:  When it is over the `max_token` threshold, the button starts to show as an error, with another tooltip:  The buttons are not blocked in any case, in case the token calculation is wrong, to allow using the assistant panel nonetheless. Release Notes: - N/A
Kirill Bulatov created
380a19f
Revert "assistant panel: Fix entering credentials not updating view" (#15528)
Reverts zed-industries/zed#15527 We broke the assistant panel in the process... Release Notes: - N/A
Bennet Bo Fenner created
b571bc8
assistant panel: Fix entering credentials not updating view (#15527)
Co-authored-by: Bennet <bennet@zed.dev> Release Notes: - N/A Co-authored-by: Bennet <bennet@zed.dev>
Thorsten Ball and Bennet created
c78ea0d
assistant panel: Ensure we prompt for creds when panel is activated (#15524)
Something seems to have broke on `main` in last few days. Bug was reproducible like this: - Open assistant panel - Choose provider that wasn't authenticated - See auth prompt - Close the tab (!) in the assistant panel - Reactivate the assistant panel - Bug: panel is blank! This fixes the bug by consolidating the behavior of checking credentials and showing auth prompt. Release Notes: - N/A
Thorsten Ball created
d8f7322
assistant panel: Show provider name in model selector (#15523)
With zed.dev provider becoming more popular, it helps alleviate confusion when showing not only the model name but also the provider name. Release Notes: - N/A
Thorsten Ball created
8e6af73
x11: Do not check hover state on properties change (#15518)
This fixes an issue where the window's hovered state would be incorrect, causing the cursor not to update because it would think the window wasn't hovered ([relevant check](https://github.com/zed-industries/zed/blob/a03beeeb5bcce3fbb464a5d2a06a6ae47e8dda92/crates/gpui/src/window.rs#L3016-L3017)). The code here doesn't really seem to make sense, since there's already the `XinputEnter` and `XinputLeave` events that indicate mouse focus state on the window. The properties change event wouldn't necessarily indicate when mouse focus changes. Thanks @Emc2356 for reporting this on the Discord and helping figure out the issue! Release Notes: - Linux: Fixed the cursor sometimes not changing on X11
apricotbucket28 created
2b019ff
collab: Add `GET /billing/subscriptions` endpoint (#15516)
This PR adds a new `GET /billing/subscriptions` endpoint to collab for retrieving the subscriptions to display on the account settings page. Release Notes: - N/A
Marshall Bowers created
a08e020
extension: Always use a real HTTP client in the `ExtensionBuilder` (#15514)
This PR makes it so we always construct a real HTTP client in the `ExtensionBuilder`. This used to be the case, but was inadvertently changed in https://github.com/zed-industries/zed/pull/15470. Release Notes: - N/A
Marshall Bowers created
a7ffc2b
Show current plan in user menu (#15513)
This PR updates the user menu to show the user's current plan. Also adds a new RPC message to send this information down to the client when Zed starts. This is behind a feature flag. Release Notes: - N/A --------- Co-authored-by: Max <max@zed.dev>
Marshall Bowers and Max created
161c6ca
terminal: Fix ctrl-a keybind on Linux (#15512)
- Disable Terminal ctrl-a (conflicts with readline). - Standardize modifier order to use ctrl-shift instead of shift-ctrl to match existing keys. - Move ctrl-shift-c (collab) to \!Terminal context (fix flickering in terminal right click menu). - Consolidate two Terminal blocks in linux keybind
Peter Tripp created
7c5f4b7
collab: Rework Stripe event processing (#15510)
This PR reworks how we process Stripe events for reconciliation purposes. The previous approach in #15480 turns out to not be workable, on account of the Stripe event IDs not being strictly in order. This meant that we couldn't reliably compare two arbitrary event IDs and determine which one was more recent. This new approach leans on the guidance that Stripe provides for webhooks events: > Webhook endpoints might occasionally receive the same event more than once. You can guard against duplicated event receipts by logging the [event IDs](https://docs.stripe.com/api/events/object#event_object-id) you’ve processed, and then not processing already-logged events. > > https://docs.stripe.com/webhooks#handle-duplicate-events We now record processed Stripe events in the `processed_stripe_events` table and use this to filter out events that have already been processed, so we do not process them again. When retrieving events from the Stripe events API we now buffer the unprocessed events so that we can sort them by their `created` timestamp and process them in (roughly) the order they occurred. Release Notes: - N/A
Marshall Bowers created
dca9400
assistant: Ensure that zed provider is listed as first option (#15496)
Release Notes: - N/A
Bennet Bo Fenner created
eedef48
Add more context to the terminal assistant (#15492)
Release Notes: - N/A
Kirill Bulatov created
73e3dfc
Switch editor::AcceptPartialInlineCompletion keybind to match VSCode (#15495)
Release Notes: - Fixed editor::AcceptPartialInlineCompletion keybind to match VSCode ([#15487](https://github.com/zed-industries/zed/issues/15487)).
Peter Tripp created
4bf2826
Assistant Panel: add keybinds for history and prompt library (#15486)
Release Notes: - N/A
Piotr Osiewicz created
1982a5a
gpui: Improve img element to support load from Assets (#15482)
Release Notes:
- N/A
Currently, the `img` element provided by GPUI only supports FilePath or
URL, but in actual applications we need to let `img` load an image
embedded in Assets.
The `svg` element can currently support this, but `img` cannot.
For example:
We have such an Assets directory:
```
assets
|- icons
|- images
|--- foo.png
```
```rs
// If give a path, considered an Asset
img("images/foo.png");
// If give a URI, considered a Remote image
img("https://foo.bar/images/foo.png");
// If give a PathBuf, considered a Local file
img(PathBuf::from("path/to/foo.png"));
```
## Example test
```
cargo run -p gpui --example image
```
<img width="827" alt="image"
src="https://github.com/user-attachments/assets/e45dcf7f-4626-4fb0-aca9-9b6e1045a952">
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Jason Lee and Marshall Bowers created
99bc90a
Allow customization of the model used for tool calling (#15479)
We also eliminate the `completion` crate and moved its logic into `LanguageModelRegistry`. Release Notes: - N/A --------- Co-authored-by: Nathan <nathan@zed.dev>
Antonio Scandurra and Nathan created
1bfea9d
Show "full" paths in the /file command output (#15483)
Same as /tabs command outputs them Before:   After:   Release Notes: - N/A
Kirill Bulatov created
b160e13
collab: Keep track of last seen Stripe event for each record (#15480)
This PR improves our Stripe event handling by keeping track of the last event we've seen for each record. The `billing_customers` and `billing_subscriptions` tables both have a new `last_stripe_event_id` column. When we apply an event to one of these records, we store the event ID that was applied. Then, when we are going through events we can ignore any event that has an ID that came before the `last_stripe_event_id` (based on the lexicographical ordering of the IDs). Release Notes: - N/A
Marshall Bowers created
2ada296
assistant: Make it easier to define custom models (#15442)
This PR makes it easier to specify custom models for the Google, OpenAI,
and Anthropic provider:
Before (google):
```json
{
"language_models": {
"google": {
"available_models": [
{
"custom": {
"name": "my-custom-google-model",
"max_tokens": 12345
}
}
]
}
}
}
```
After (google):
```json
{
"language_models": {
"google": {
"available_models": [
{
"name": "my-custom-google-model",
"max_tokens": 12345
}
]
}
}
}
```
Before (anthropic):
```json
{
"language_models": {
"anthropic": {
"available_models": [
{
"custom": {
"name": "my-custom-anthropic-model",
"max_tokens": 12345
}
}
]
}
}
}
```
After (anthropic):
```json
{
"language_models": {
"anthropic": {
"version": "1",
"available_models": [
{
"name": "my-custom-anthropic-model",
"max_tokens": 12345
}
]
}
}
}
```
The settings will be auto-upgraded so the old versions will continue to
work (except for Google since that one has not been released).
/cc @as-cii
Release Notes:
- N/A
---------
Co-authored-by: Thorsten <thorsten@zed.dev>
Bennet Bo Fenner and Thorsten created
13dcb42
Change PathLikeWithPosition<P> into a non-generic type and replace ad-hoc Windows path parsing (#15373)
This simplifies `PathWithPosition` by making the common use case concrete and removing the manual, incomplete Windows path parsing. Windows paths also don't get '/'s replaced by '\\'s anymore to limit the responsibility of the code to just parsing out the suffix and creating `PathBuf` from the rest. `Path::file_name()` is now used to extract the filename and potential suffix instead of manual parsing from the full input. This way e.g. Windows paths that begin with a drive letter are handled correctly without platform-specific hacks. Release Notes: - N/A
Santeri Salmijärvi created
41c550c
assistant panel: Avoid auth prompt on provider switch (#15478)
Previously, the following lead to a bug: 1. Set OpenAI key 2. Switch to Anthropic 3. Restart Zed 4. Switch provider to OpenAI -> get prompted for authentication prompt With this change, you won't get prompted for the OpenAI key again. Release Notes: - N/A Co-authored-by: Bennet <bennet@zed.dev>
Thorsten Ball and Bennet created
21ebbc3
Inline Assist: replace "accept" action on generation error with "restart" (#15476)
Release Notes: - N/A
Piotr Osiewicz created
530feec
tab_switcher: Add support for tab switcher in assistant panel (#15475)
Additionally, I've generalized the implementation of tab switcher so that - instead of explicitly listing panels it supports (at the time of writing it was just the terminal panel and nothing else), it now relies on Panel::pane trait method. As long as that's implemented, you get a tab switcher support for free. Release Notes: - Added support for tab switcher in Assistant panel.
Piotr Osiewicz created
0540291
settings: Introduce PRESERVED_KEYS to write default values (#15474)
This adds the optional `PRESERVED_KEYS` constant to the `Settings` trait, which allows users of the trait to specify which keys should be written to the settings file, even if their current value matches the default value. That's useful for tagged settings that have, for example, a `"version"` field that should always be present in the user settings file, so we can then reparse the user settings based on the version. Co-Authored-By: Thorsten <thorsten@zed.dev> Release Notes: - N/A --------- Co-authored-by: Thorsten <thorsten@zed.dev>
Bennet Bo Fenner and Thorsten created
fa19bc9
Provide user agent when performing HTTP requests (#15470)
Release Notes: - N/A --------- Co-authored-by: Nathan <nathan@zed.dev>
Antonio Scandurra and Nathan created
2a649fa
language model: Fix missing use_tool method in CopilotChatLanguageModel (#15466)
Broke CI after merging #14842 Release Notes: - N/A Co-authored-by: Thorsten <thorsten@zed.dev>
Bennet Bo Fenner and Thorsten created
0c8b17d
Hide blinking cursor when window is deactivated (#15408)
## Before https://github.com/user-attachments/assets/affb8407-a20e-4258-a8f7-b271da5d7b77 ## After https://github.com/user-attachments/assets/654fe7b9-330a-40c8-8885-72e69fa85b0a Release Notes: - Hide blinking cursor when window is deactivated ([4710](https://github.com/zed-industries/zed/issues/4710))
Jason Lee created
6f06558
Add GitHub Copilot Chat Support (#14842)
# Summary This commit implements Github Copilot Chat support within the existing Assistant panel/framework. It required a little bit of trickery and internal API modification, as Copilot doesn't use the same authentication-style as all of the existing providers, opting to use OAuth and a short lived API key instead of a straight API key. All existing Assistant features should work. Release Notes: - Added Github Copilot Chat support ([#4673](https://github.com/zed-industries/zed/issues/4673)). ## Screenshots <img width="1552" alt="A screenshot showing a conversation between a user and Github Copilot Chat within the Zed editor." src="https://github.com/user-attachments/assets/73eaf6a2-792b-4c40-a7fe-f763bd6417d7"> --------- Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>
Ryan Hawkins and Bennet Bo Fenner created
d93891b
collab: Lay groundwork for reconciling with Stripe using the events API (#15459)
This PR lays the initial groundwork for using the Stripe events API to reconcile the data in our system with what's in Stripe. We're using the events API over webhooks so that we don't need to stand up the associated infrastructure needed to handle webhooks effectively (namely an asynchronous job queue). Since we haven't configured the Stripe API keys yet, we won't actually spawn the reconciliation background task yet, so this is currently a no-op. Release Notes: - N/A
Marshall Bowers created
28c14cd
collab: Add separate `billing_customers` table (#15457)
This PR adds a new `billing_customers` table to hold the billing customers. Previously we were storing both the `stripe_customer_id` and `stripe_subscription_id` in the `billable_subscriptions` table. However, this creates problems when we need to correlate subscription events back to the subscription record, as we don't know the user that the Stripe event corresponds to. By moving the `stripe_customer_id` to a separate table we can create the Stripe customer earlier in the flow—before we create the Stripe Checkout session—and associate that customer with a user. This way when we receive events down the line we can use the Stripe customer ID to correlate it back to the user. We're doing some destructive actions to the `billing_subscriptions` table, but this is fine, as we haven't started using them yet. Release Notes: - N/A
Marshall Bowers created
66121fa
collab: Add endpoint for managing a billing subscription (#15455)
This PR adds a new `POST /billing/subscriptions/manage` endpoint that
can be used to manage a billing subscription.
The endpoint accepts a `github_user_id` to identify the user, as well as
an optional `subscription_id` for managing a specific subscription. If
`subscription_id` is not provided, it try and use the active
subscription, if there is only one.
Right now the endpoint only supports cancelling an active subscription.
This is done by passing `"intent": "cancel"` in the request body.
The endpoint will return the URL to a Stripe customer portal session,
which the caller can redirect the user to.
Here's an example of how to call it:
```sh
curl -X POST "http://localhost:8080/billing/subscriptions/manage" \
-H "Authorization: <ADMIN_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"github_user_id": 12345, "intent": "cancel"}'
```
Release Notes:
- N/A
Marshall Bowers created
4d8ad7a
docs: Update youtube link to new @zeddotdev channel name (#15453)
Peter Tripp created
e15d59c
collab: Add endpoint for initiating a billing subscription (#15452)
This PR adds a new `POST /billing/subscriptions` endpoint that can be
used to initiate a billing subscription.
The endpoint will use the provided `github_user_id` to look up a user,
generate a Stripe Checkout session, and then return the URL.
The caller would then redirect the user to the URL to initiate the
checkout flow.
Here's an example of how to call it:
```sh
curl -X POST "http://localhost:8080/billing/subscriptions" \
-H "Authorization: <ADMIN_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"github_user_id": 12345}'
```
Release Notes:
- N/A
Marshall Bowers created
8bb34fd
repl: Log Jupyter kernel process stderr and stdout (#15391)
Super simple piping of logs from the Jupyter kernels to the Zed logs. Release Notes: - Added logging of stderr from Jupyter kernels to the Zed logs
Kyle Kelley created