Release Notes:
- Fixed a (potential) small error in erf estimation. Technically, the
error is negligible.
I am not sure where the current calculation for erf come from and if it
is intended or a simple mistake. However it looks slightly different
from the official calculation, notably
[this](https://en.wikipedia.org/wiki/Error_function#Approximation_with_elementary_functions)
from Wikipedia.
I will add a comment if it is intended.
Son
created
2db2b63
assistant: Add annotations to more languages (#15866)
- Add "New Context" button next to the hamburger
- Add "History"
- Allow Pane tab rendering callback to return items for both left and
right side of the tab bar.

Release Notes:
- N/A
Piotr Osiewicz
created
bf403ca
chore: Remove assistant labels for users without feature flag enabled (#15899)
Click to expand commit body
Release Notes:
- N/A
Piotr Osiewicz
created
9907742
Allow /workflow and step resolution prompts to be overridden (#15892)
Click to expand commit body
This will help us as we hit issues with the /workflow and step
resolution. We can override the baked-in prompts and make tweaks, then
import our refinements back into the source tree when we're ready.
Release Notes:
- N/A
Nathan Sobo
created
c8f1358
Allow prompt templates to be overridden in the zed configuration directory (#15887)
Click to expand commit body
I need this to refine our prompts on the fly as I work.
Release Notes:
- Templates for prompts driving inline transformation in editors and the
terminal can now be overridden in the `~/.config/zed/prompts/templates`
directory. This is an advanced feature, and prevents you from getting
upstream changes. It's intended for use by Zed developers.
<img width="862" alt="image"
src="https://github.com/user-attachments/assets/ae8c479d-d9f9-4c46-bb1a-be411ab07876">
Release Notes:
- Added additional context about available to kernel sessions
- Fixed bug in kernelspec launch choosing first available kernel
matching the language rather than selected name
---------
Co-authored-by: Jason <jason@zed.dev>
Kyle Kelley
and
Jason
created
a54e16b
collab: Add `usages` table to LLM database (#15884)
Click to expand commit body
This PR adds a `usages` table to the LLM database.
We'll use this to track usage for rate-limiting purposes.
Release Notes:
- N/A
b19f85f
collab: Remove unused parameter to `run_database_migrations` (#15883)
Click to expand commit body
This PR removes the unused `ignore_checksum_mismatch` parameter to
`run_database_migrations`.
We were always passing `false`, which meant the behavior didn't need to
be parameterized.
Release Notes:
- N/A
Marshall Bowers
created
7f6d091
collab: Setup database for LLM service (#15882)
Click to expand commit body
This PR puts the initial infrastructure for the LLM service's database
in place.
The LLM service will be using a separate Postgres database, with its own
set of migrations.
Currently we only connect to the database in development, as we don't
yet have the database setup for the staging/production environments.
Release Notes:
- N/A
104d7ad
Don't insert unnecessary space below the end of an inline transformation (#15865)
Click to expand commit body
We achieved this by allowing block decorations to have a height of `0`
and superimposing the border on top of the line, as opposed to carving
out space below it.
Release Notes:
- N/A
---------
Co-authored-by: Jason <jason@zed.dev>
Antonio Scandurra
and
Jason
created
2e27448
assistant: Fix inline assistant not working for non-terminal panel views (#15864)
Click to expand commit body
Fixes #15729
Release Notes:
- Fixed an issue where the terminal inline assistant would not appear
when opening a terminal in the center pane
([#15729](https://github.com/zed-industries/zed/issues/15729)).
Bennet Bo Fenner
created
33afbe9
Add LLM service to kubernetes deployment action (#15863)
cf5f4dd
Authorize access to language model providers based on country (#15859)
Click to expand commit body
This PR updates the LLM service to authorize access to language model
providers based on the requester's country.
We detect the country using Cloudflare's
[`CF-IPCountry`](https://developers.cloudflare.com/fundamentals/reference/http-request-headers/#cf-ipcountry)
header.
The country code is then checked against the list of supported countries
for the given LLM provider. Countries that are not supported will
receive an `HTTP 451: Unavailable For Legal Reasons` response.
Release Notes:
- N/A
Marshall Bowers
created
9c6ccaf
Allow user to restart transformation after stopping without a diff (#15858)
Click to expand commit body
Release Notes:
- N/A
Co-authored-by: Jason <jason@zed.dev>
Antonio Scandurra
and
Jason
created
411934b
Introduce a new `/workflow` command (#15854)
Click to expand commit body
This subsumes the previous built-in prompt.
Release Notes:
- N/A
ruby: Bump extension version to v0.1.0 Why not v0.0.9? I think the Ruby
extension is mature, and it's time to release the first minor version.
But I am totally OK with changing it to 0.0.9.
Included changes:
- https://github.com/zed-industries/zed/pull/15778
- https://github.com/zed-industries/zed/pull/15762
- https://github.com/zed-industries/zed/pull/15110
- https://github.com/zed-industries/zed/pull/15297
Release Notes:
- N/A
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Vitaly Slobodin
and
Marshall Bowers
created
874f0c0
assistant: Use tools in other providers (#15803)
Click to expand commit body
- [x] OpenAI
- [ ] ~Google~ Moved into a separate branch at:
https://github.com/zed-industries/zed/tree/tool-calls-in-google-ai I've
ran into issues with having the API digest our schema without tripping
over itself - the function call parameters are malformed and whatnot. We
can resume from that branch if needed.
- [x] Ollama
- [x] Cloud
- [ ] ~Copilot Chat (?)~
Release Notes:
- Added tool calling capabilities to OpenAI and Ollama models.
Piotr Osiewicz
created
be514f2
Improve streaming git diffs to be less jumpy during inline assistant generation (#15853)
Click to expand commit body
Release Notes:
- Improved streaming git diffs to be less jumpy during inline assistant
generation
---------
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
Kirill Bulatov
and
Antonio Scandurra
created
a054a2a
ruff: Refactor language server loading (#15852)
Click to expand commit body
This PR refactors the language server loading in the Ruff extension to
mirror our other extensions.
Also fixed an issue where the cached binary path was not being
respected.
Release Notes:
- N/A
Marshall Bowers
created
8231009
inline_completion_button: Do some cleanup (#15849)
Click to expand commit body
This PR does some cleanup in the `inline_completion_button` after
#15443.
Release Notes:
- N/A
Marshall Bowers
created
1c3f303
ruby: Support "binary" settings for Rubocop and Solargraph (#15110)
Click to expand commit body
Hello, this pull request adds support for specifying and using the
"binary" settings for Rubocop and Solargraph LSPs. AFAIK, Ruby LSP does
not require the bundler context but that could be added later easily.
In Ruby world, like in Node.js world, almost all
projects rely on project specific packages (gems) and their versions.
Solargraph and Rubocop gems are usually installed as project
dependencies. Attempting to use global installation of them fail in most
cases due to incompatible or missing dependencies (gems).
To avoid that, Ruby engineers have the `bundler`
gem that provides the `exec` command. This command executes the given
command in the context of the bundle.
This pull request adds support for pulling the `binary` settings to use
them in starting both LSPs. For instance, to start the Solargraph gem in
the context of the bundler, the end user must configure the binary
settings in the folder-specific settings file like so:
```json
{
"lsp": {
"solargraph": {
"binary": {
"path": "/Users/vslobodin/Development/festivatica/bin/rubocop"
}
}
}
}
```
The `path` key must be an absolute path to the `binstub` of the
`solargraph` gem. The same applies to the "rubocop" gem. Side note but
it would be awesome to use Zed specific environment variables to make
this a bit easier. For instance, we could use the `ZED_WORKTREE_ROOT`
environment variable:
```json
{
"lsp": {
"solargraph": {
"binary": {
"path": "${ZED_WORKTREE_ROOT}/bin/rubocop"
}
}
}
}
```
But this is out of the scope of this pull request. The code is a bit
messy and repeatable in some places, I am happy to improve it here or
later.
References:
- https://bundler.io/v2.4/man/bundle-exec.1.html
- https://solargraph.org/guides/troubleshooting
- https://bundler.io/v2.5/man/bundle-binstubs.1.html
This pull request is based on these two pull requests:
- https://github.com/zed-industries/zed/pull/14655
- https://github.com/zed-industries/zed/issues/15001
Closes https://github.com/zed-industries/zed/issues/5109.
Release Notes:
- N/A
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Vitaly Slobodin
and
Marshall Bowers
created
7cef5b2
Add menu item to switch Supermaven and Copilot (#15443)
Click to expand commit body
Adds a "Use Supermaven" and "Use Copilot" menu item to the signed out
menus for each of the autocomplete providers to make it easier to switch
between them without having to update your local settings json.
<img width="222" alt="image"
src="https://github.com/user-attachments/assets/6f760f4e-5527-4971-bdaf-383bc99649bd">
Release Notes:
- Added menu items to quickly switch between Supermaven and Copilot
inline completions when the provider is not configured
Kevin Wang
created
f4a58e5
typescript: Make it possible to use local vtsls (#15775)
Click to expand commit body
Related things:
https://github.com/zed-industries/zed/issues/7902
https://github.com/zed-industries/zed/issues/4978
Release Notes:
- Added: positibily to use locally installed vtsls
56abd68
assistant: Cleanup model selector (#15843)
Click to expand commit body
We changed the following for the model selector:
- Fixed displaying checkmarks for selected models when using models with
the same name from different providers
- We now show the icon for the active model instead of displaying the
provider name in the trigger of the model selector
- Only display the footer when the language models feature flag is zed,
so that we don't release the hint for Zed Pro to preview tomorrow
<img width="253" alt="image"
src="https://github.com/user-attachments/assets/f95ccfb6-c0cf-43d4-9637-e2823100a427">
Release Notes:
- N/A
---------
Co-authored-by: Thorsten <thorsten@zed.dev>
Bennet Bo Fenner
and
Thorsten
created
fb1cd7c
blade: Update to pick up Intel memory coherency fix & fix calling blade params (#15829)
Click to expand commit body
Builds on @kvark's PR https://github.com/zed-industries/zed/pull/15781
by fixing call to Blades `create_texture_view` the arguments of which
had changed.
Picks up https://github.com/kvark/blade/pull/153
Release Notes:
- Fixed Zed flickering on Linux when using Intel graphics.
([#14101](https://github.com/zed-industries/zed/issues/14101)).
---------
Co-authored-by: Dzmitry Malyshau <kvark@fastmail.com>
Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
Jaakko Sirén
,
Dzmitry Malyshau
, and
Thorsten Ball
created
44ae9ef
Cancel workflow step automatically when moving outside <step> tag (#15842)
Click to expand commit body
Also, open edit suggestions automatically as soon as the edit step is
resolved.
Release Notes:
- N/A
Adds support for [Goto
Declaration](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_declaration)
LSP command.
I am particularly interested in [this for Rust
projects](https://rust-analyzer.github.io/manual.html#go-to-declaration),
to be able to navigate to the place where a trait method is declared,
coming from a trait method implementation.
I noticed this was something I could do in VSCode before, but was
somehow missing is Zed. Thanks to the already existing infrastructure
for Goto Definition, I just followed and copy-paste-adapted it for Goto
Declaration.
As a bonus, I added `ctrl-F12` and `alt-ctrl-F12` as default macOS
keybindings for `GoToDeclaration` and `GoToDeclarationSplit`,
respectively. They are not keybindings from another editor, but I
figured they made sense to be grouped along with the other *F12
commands.
### Release Notes:
- Added "Go to declaration" editor action.
- vim: Breaking change to keybindings after introduction of the `Go to
declaration` editor action. The new keybindings are the following (and
can be found [here](https://zed.dev/docs/vim), alongside the other key
bindings):
- `g d` - Go to definition
- `g D` - Go to declaration
- `g y` - Go to type definition
- `g I` - Go to implementation
https://github.com/user-attachments/assets/ee5c10a8-94f0-4e50-afbb-6f71db540c1b
---------
Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
Luis Cossío
and
Thorsten Ball
created
82db5de
terminal: Fix context menu keybindings flicker (#15771)
1f97741
linux: Add shortcuts for left/right keys in prompts (#15779)
Click to expand commit body
Fixes https://github.com/zed-industries/zed/issues/15151
Release Notes:
- Fixed prompts on Linux not being navigable by arrow keys
([#15151](https://github.com/zed-industries/zed/issues/15151)).
apricotbucket28
created
45afe9d
ruby: Add support for *.rbs files (#15778)
Click to expand commit body
Hi, this pull request adds support for RBS files for the Ruby language.
[RBS](https://github.com/ruby/rbs) is a language to describe the
structure of Ruby programs.
This pull request:
- adds a new grammar to the Ruby extension for RBS
https://github.com/joker1007/tree-sitter-rbs
- configures the Ruby extension to use the added grammar.
Release Notes:
- N/A
Vitaly Slobodin
created
ca95113
collab: Add support for more providers to the LLM service (#15832)
Click to expand commit body
This PR adds support for additional providers to the LLM service:
- OpenAI
- Google
- Custom Zed models (through Hugging Face)
Release Notes:
- N/A
Marshall Bowers
created
8e9c2b1
Introduce a separate backend service for LLM calls (#15831)
Click to expand commit body
This PR introduces a separate backend service for making LLM calls.
It exposes an HTTP interface that can be called by Zed clients. To call
these endpoints, the client must provide a `Bearer` token. These tokens
are issued/refreshed by the collab service over RPC.
We're adding this in a backwards-compatible way. Right now the access
tokens can only be minted for Zed staff, and calling this separate LLM
service is behind the `llm-service` feature flag (which is not
automatically enabled for Zed staff).
Release Notes:
- N/A
---------
Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Max Brunsfeld
,
Marshall
, and
Marshall Bowers
created
4ed43e6
collab: Ignore Stripe events that are older than an hour (#15830)
Click to expand commit body
This PR makes it so any Stripe events we receive that occurred over an
hour ago are marked as processed.
We don't want to process an old event long after it occurred and
potentially overwrite more recent updates.
This also makes running collab locally a bit nicer, as we won't be
getting errors for a bunch of older events that will never get processed
successfully.
The period after time after which we consider an event "stale" can be
modified, as needed.
Release Notes:
- N/A
Release Notes:
- Added logging in debug mode of raw kernel output from REPL.
- Fixed REPL kernels not being shut down completely on close of Editor
Kyle Kelley
created
ab1fabe
gpui: Align SVG sprites to whole pixels (#15822)
Click to expand commit body
Related to https://github.com/zed-industries/zed/issues/12352 (and old
issue https://github.com/zed-industries/zed/issues/643)
This fixes visual glitches that could happen when rendering icons on
Linux and Windows (and in the Blade backend)



Release Notes:
- Linux: Fixed visual glitches when rendering icons.
apricotbucket28
created
27779e3
Refactor: Restructure collab main function to prepare for new subcommand: `serve llm` (#15824)
Click to expand commit body
This is just a refactor that we're landing ahead of any functional
changes to make sure we haven't broken anything.
Release Notes:
- N/A
Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Jason <jason@zed.dev>
Max Brunsfeld
,
Marshall
, and
Jason
created
705f7e7
collab: Include `geoip_country_code` in initial span (#15819)
Click to expand commit body
This PR changes how we report the `geoip_country_code` in the tracing
spans.
I wasn't seeing it come through in the logs, and I think it was because
we didn't declare the field on the initial span.
Release Notes:
- N/A
Marshall Bowers
created
04ad088
assistant: Remove old model selector code (#15817)
Click to expand commit body
This PR removes the old model selector code, as it was no longer used
after #15693.
Release Notes:
- N/A
Marshall Bowers
created
03cc18d
assistant-panel: Update model selector to a combo-box (#15693)
Click to expand commit body
This updates the model selector to be a combobox (filterable list)
This PR causes the following regression: There is no longer a message in
the inline assistant explaining context is included from the assistant
panel. Will follow up with some sort of solution soon.
Before:

After:


Release Notes:
- N/A
---------
Co-authored-by: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
Nate Butler
and
Marshall Bowers
created
f11f3f2
collab: Attach GeoIP country code to RPC sessions (#15814)
Click to expand commit body
This PR updates collab to attach the user's GeoIP country code to their
RPC session.
We source the country code from the
[`CF-IPCountry`](https://developers.cloudflare.com/fundamentals/reference/http-request-headers/#cf-ipcountry)
header.
Release Notes:
- N/A
Marshall Bowers
created
be0ccf4
assistant: Show error messages in popover notification (#15808)