Commit Graph
115 Commits
Author SHA1 Message Date
Oleksiy Syvokon c093590f2e ep: Fix panic when merging events from different buffers (#49097)
Release Notes:

- N/A
2026-02-13 13:26:03 +00:00
Oleksiy Syvokon c981245a72 ep: Don't run predictions for excerpts with special tokens (#49040)
Release Notes:

- N/A
2026-02-13 13:47:28 +02:00
aa4e1b47dc Separate accepted edit predictions in edit history (#49056)
Release Notes:

- N/A

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2026-02-13 00:15:59 +00:00
Eric HolkandBen Kunkle 65027dd4aa Handle newlines better in parse_edits (#48960)
Release Notes:

- Fix a potential crash around multibyte characters in edit predictions

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>
2026-02-12 13:01:01 -08:00
25b1377d1d Unify zeta endpoints (#48900)
- [ ] Tests or screenshots needed?
- [ ] Code Reviewed
- [ ] Manual QA

Release Notes:

- N/A

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
Co-authored-by: Max <max@zed.dev>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2026-02-12 15:24:24 -05:00
Oleksiy Syvokon ceec6ee5f5 ep: Add SeedCoder prompt format (#49020)
Release Notes:

- N/A
2026-02-12 15:18:28 +02:00
Oleksiy Syvokon 90ff8fe6d6 ep: Add option to use prompt prefill (#48964)
Release Notes:

- N/A
2026-02-12 14:21:16 +02:00
Mikayla Maki 83de8a25e0 Revert PRs for landing in main (#48969)
We're going to re-apply these after landing the multiworkspace branch.

Release Notes:

- N/A
2026-02-12 00:28:17 +00:00
Katie GeerandZed Zippy f233ae4c29 Add telemetry for user-facing notifications (#48558)
## Summary

Adds a "Notification Shown" telemetry event that fires whenever a
user-facing notification is displayed in Zed. This helps the team
understand error patterns, notification frequency, and which parts of
the application generate the most notifications.

## Event Schema

| Property | Type | Description |
|----------|------|-------------|
| `notification_type` | `string` | `"error"` or `"notification"` |
| `source` | `string` | Origin category (e.g., `lsp`, `git`, `settings`,
`editor`) |
| `lsp_name` | `string?` | Language server name (only for LSP
notifications) |
| `level` | `string?` | Severity: `"critical"`, `"warning"`, or `"info"`
|
| `has_actions` | `bool` | Whether the notification has action buttons |
| `notification_id` | `string` | Debug string of the NotificationId |
| `is_auto_dismissing` | `bool` | Whether the notification
auto-dismisses |

## NotificationSource Categories

A new `NotificationSource` enum categorizes notifications by origin:

- `lsp` - Language server notifications
- `settings` - Settings/keymap parse errors
- `update` - App updates, release notes
- `extension` - Extension suggestions/errors
- `git` - Git operations, commit errors
- `project` - Project-level issues
- `collab` - Collaboration notifications
- `remote` - SSH/remote project errors
- `file` - File access errors
- `editor` - Editor operations (search, encoding)
- `agent` - AI assistant notifications
- `cli` - CLI installation
- `system` - Generic fallback

## Privacy

**Message content is intentionally not included** in telemetry because:
- LSP messages come from external servers and may contain file paths or
error chains
- Error messages may contain sensitive paths or API-related information
- The metadata alone provides sufficient insight for error tracking

## Implementation

Updated function signatures to include `NotificationSource`:
- `show_notification(id, source, cx, build_fn)`
- `show_toast(toast, source, cx)`
- `show_error(err, source, cx)`
- `show_app_notification(id, source, cx, build_fn)`
- `notify_err(workspace, source, cx)`
- `notify_async_err(source, cx)`
- `notify_app_err(source, cx)`
- `detach_and_notify_err(source, window, cx)`

Release Notes

- N/A (internal telemetry change)

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-02-11 10:21:37 -08:00
Ben KunkleandTom 9e1fed301d ep_cli: Include request_id in rated events and tag rated examples with experiment name and prompt format (#48883)
Closes #ISSUE

- [ ] Tests or screenshots needed?
- [ ] Code Reviewed
- [ ] Manual QA

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Co-authored-by: Tom <tom@zed.dev>
2026-02-10 11:44:16 -05:00
Ben Kunkle 5af15f7c9f Fix panic in zeta1 prompt parsing (#48822)
Closes #48712

- [ ] Tests or screenshots needed?
- [ ] Code Reviewed
- [ ] Manual QA

Release Notes:

- Fixed a panic when parsing predictions made by zeta1
2026-02-09 18:48:15 -05:00
Oleksiy Syvokon f0287d69e5 ep: Compress EP requests (#48793)
Benchmark results on 3,000 captured requests:

| Scenario          | Mean   | Savings | p95    | Savings |
|:------------------|-------:|--------:|-------:|--------:|
| Uncompressed      | 12,275 |       — | 35,896 |       — |
| zstd (no dict)    |  2,784 |  77.3%  |  7,193 |  80.0%  |
| zstd + global dict|  2,544 |  79.3%  |  6,862 |  80.9%  |
| brotli (no dict)  |  2,650 |  78.4%  |  6,857 |  80.9%  |

A trained zstd dictionary adds only 2% over plain zstd, which is not
worth added complexity.

Brotli compresses comparably but is 4 times slower.

Release Notes:

- N/A
2026-02-09 18:02:56 +02:00
Ben Kunkle 263d8e58d8 Remove zeta example capturing (#48627)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-06 16:11:40 -05:00
Max Brunsfeld c430681211 Do not pass zeta prompt format in production endpoint (#48541)
This allows us to switch the prompt format without client-side changes.

If we want to experiment with prompt formats or models other than the
currently-deployed one, we can use the raw endpoint, and do prompt
construction and output processing on the client.

This also adds an optional environment parameter to the raw endpoint, so
that we can use that endpoint in the new scheme where we're deploying to
separate environments for different zeta prompt versions.

Release Notes:

- N/A
2026-02-06 00:31:24 -08:00
Oleksiy Syvokon 389f66591c ep: Store cursor position in global coordinates (#48469)
This also fixes the isolated whitespace change metric, which is not
takes cursor position into account (it's okay to insert a newline if it
has a cursor on it)

Release Notes:

- N/A
2026-02-05 12:31:12 +00:00
Kenan Hasanaliyev 307f537ab3 Remove cmpl- prefix validation from Mercury feedback (#48410)
Release Notes:

- Removes unnecessary prefix validation from Inception API's returned
request ID.
2026-02-04 17:56:26 -05:00
Ben Kunkle 4cb85917c5 Differentiate between explicit rejection and ignored in ep acceptance tracking (#48409)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-04 17:54:11 -05:00
Kenan HasanaliyevandBen Kunkle e39c1906e1 edit_prediction: Add Mercury accept/reject tracking (#48306)
### Summary
Adds accept/reject tracking for Mercury edit predictions.

### Changes
Sends events to https://api-feedback.inceptionlabs.ai/feedback when:

Accept — user presses Tab
Reject — user presses Escape
Ignore — prediction dismissed implicitly (typing, cursor move, etc.)

Added `discard_explicit` method to the delegate trait to distinguish
explicit vs implicit dismissal. Updated `reject_prediction` and
`reject_current_prediction` methods with an `explicit` bool parameter to
thread this through to the Mercury feedback logic. Other providers are
unaffected—they use the default implementation.

Feedback is fire-and-forget in a background thread, only sent for
predictions that were shown.

### Data Collected
- Request ID (returned from Inception API)
- User action (either accept/reject/ignore)
- Client Zed version (to track updates made to Zed client which could
potentially affect nextedit implementation)


Release Notes:

- N/A

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>
2026-02-04 16:19:33 -05:00
Oleksiy SyvokonandBen Kunkle 3251f69657 ep: Lower max_output_tokens default for Ollama (#48370)
Zeta 1 should not be configurable, not by this setting.

Release Notes:

- N/A

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>
2026-02-04 16:07:23 +00:00
Max Brunsfeld 203d03d405 Remove sweep and mercury feature flags (#48329)
Release Notes:

- N/A
2026-02-04 07:53:49 +00:00
Max Brunsfeld 7c11b03838 Eagerly connect to Ollama (#48318)
Previously, Ollama would not show up as available until you opened some
UI that prompted connecting to Ollama, like the agent panel or the edit
prediction settings.

Release Notes:

- N/A
2026-02-04 04:24:30 +00:00
555c002499 Add initial support for edit predictions via Ollama (#48233)
Closes https://github.com/zed-industries/zed/issues/15968

Release Notes:

- Added the ability to use Ollama as an edit prediction provider

---------

Co-authored-by: Oleksiy Syvokon <oleksiy@zed.dev>
Co-authored-by: Ben Kunkle <ben@zed.dev>
2026-02-04 01:33:12 +00:00
Ben Kunkle 8fd3b85699 Migrate features.edit_prediction_provider to edit_predictions.provider (#48224)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-02 20:53:48 -05:00
Ben Kunkle b96f1c4738 Add sweep_ai privacy mode setting (#48220)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-02 17:33:14 -05:00
Piotr Osiewicz 9867f16c77 edit prediction: Drop project state after a project goes away (#48191)
Closes #48097

Release Notes:

- Fixed Copilot instances not being cleared up after their window is
closed.
- Copilot edit prediction provider now respects `disable_ai` setting.
2026-02-02 19:47:44 +01:00
Max BrunsfeldandZed Zippy 162f3efdd9 Fix issues with predicted cursor positions (#48205)
Release Notes:

- N/A

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-02-02 11:30:43 -07:00
versecafeandDanilo Leal 9c3ae09896 Improve icon selection for edit prediction providers (#47911)
Release Notes:

- N/A

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
2026-02-02 10:00:35 -03:00
Oleksiy Syvokon b874a40549 ep: Add V0131GitMergeMarkersPrefix prompt format (#48145)
Release Notes:

- N/A
2026-02-01 16:11:20 +02:00
Max Brunsfeld b642565526 Allow zeta2 to predict next cursor position along with edits (#47916)
* [x] capture and store teacher model's predicted cursor position
* [x] provide cursor position to student during distillation
* [x] eval cursor positions
* [x] parse and apply cursor position predictions at runtime

Release Notes:

- N/A
2026-01-31 16:16:32 +00:00
Ben Kunkle cfd6144af8 ep_cli: Only check cursor excerpt for reversals (#48044)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-30 16:01:16 -05:00
Lukas Wirth 949972bbbe project: Always allocate WorktreeIDs on the remote client (#47936)
Closes https://github.com/zed-industries/zed/issues/40342

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-29 15:31:13 +00:00
Ben Kunkle 1870425b2b ep_cli: rated-after: query (#47906)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-28 16:36:44 -08:00
2cd8b4241c Improve EP teacher prompt, add some CLI features (#47814)
Release Notes:

- N/A

---------

Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>
Co-authored-by: Ben Kunkle <ben@zed.dev>
Co-authored-by: Oleksiy <oleksiy@zed.dev>
2026-01-28 11:44:22 -08:00
versecafe 06b5ec4664 ep: Diagnostics as retrieval_chunks for sweep ep (#47441)
Release Notes:

- N/A
2026-01-27 19:46:10 -05:00
Ben Kunkle cedfc7e98c zeta2: Split out last edit in history (#47812)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-27 19:45:05 -05:00
Ben Kunkle 07e675db7b zeta2: Remove experimental_edit_prediction_context_retrieval setting (#47783)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-27 12:10:08 -05:00
Ben Kunkle cc1d3af65e Use faster brotli compression for sweep requests (#47776)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-27 11:07:02 -05:00
Max Brunsfeld bdb84818ac Send some traffic to zeta2 for testing (#47710)
Release Notes:

- N/A
2026-01-26 16:54:59 -08:00
Ben Kunkle b02192a9ef ep_cli: Add reversal metric (#47689)
Closes #ISSUE

Measure the model reversing user edits programatically, for a more
robust and consistent measurement than LLM-as-judge

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-26 17:14:02 -05:00
Max Brunsfeld a1df9baa29 Allow EP cli to fetch rejections from snowflake (#47628)
Release Notes:

- N/A
2026-01-26 10:49:44 +00:00
Max Brunsfeld bf19f03f51 Apply common prefix/suffix stripping to zeta2 and mercury (#47530)
Fixes an issue where edits would be shown like this:

<img width="1262" height="1072" alt="image"
src="https://github.com/user-attachments/assets/f3ec865a-4bf2-423c-8465-62a54a21a882"
/>

When they should be like this:

<img width="1260" height="388" alt="image"
src="https://github.com/user-attachments/assets/ac555a25-f222-48aa-b922-0ae5b9f4e260"
/>


Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-24 18:07:59 -08:00
Max Brunsfeld 2301c5f9f0 Send EP trigger as part of zeta2 prediction request (#47523)
Release Notes:

- N/A
2026-01-23 23:40:49 +00:00
Ben KunkleandZed Zippy ff34f22835 zeta2: Include context in captured examples (#47516)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-01-23 17:18:50 -05:00
Marshall Bowers 097cfae77e Add helper method for checking if the LLM token needs to be refreshed (#47511)
This PR adds a new `needs_llm_token_refresh` helper method for checking
if the LLM token needs to be refreshed.

We were duplicating the check for the `x-zed-expired-token` header in a
number of spots, and it will be gaining an additional case soon.

Release Notes:

- N/A
2026-01-23 20:50:50 +00:00
7c98f1732e copilot: Decouple authentication from the lifetime of any single Copilot instance (#47473)
Users had trouble signing in due to us relying on the Copilot::global
being set, which was never the case. We've decided to use a dedicated
LSP instance just for handling auth of Copilot Chat and other goodies.
That instance is subscribed to by local Copilot instances for projects.
When the Auth instance changes it's state, local instances are prompted
to re-check their own sign in status.

Closes #47352

Co-authored-by: dino <dinojoaocosta@gmail.com>

Release Notes:

- Fixed authentication issues with Copilot.

---------

Co-authored-by: dino <dinojoaocosta@gmail.com>
Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-01-23 17:20:16 +01:00
Oleksiy Syvokon 9a97c5c3db ep: Add a prompt with git-style merge markers (#47215)
Release Notes:

- N/A
2026-01-20 13:33:43 +00:00
Max Brunsfeld 50a90d35b2 Add a 'rejected patch' field to example specs, for DPO examples (#47043)
The `capture example` action now populates the markdown file with a noop
"Rejected Patch", so that you can easily specify the good and bad
output.

Release Notes:

- N/A
2026-01-18 20:25:23 -08:00
afaccf9c67 Fix edit history clearing bug in ep (#47017)
We were including changes due to Buffer.reload in the edit history.

Release Notes:

- N/A

---------

Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>
Co-authored-by: Agus Zubiaga <agus@zed.dev>
Co-authored-by: Ben Kunkle <ben@zed.dev>
Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-01-16 15:44:38 -08:00
Ben Kunkle d1e4ef09ee Fix not sending file_chunks parameter to Sweep in evals (#46999)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-16 11:56:33 -05:00
Ben Kunkle 73458a074c Fix context enabled race condition in edit prediction cli (#46997)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-16 15:55:39 +00:00