Commit Graph
122 Commits
Author SHA1 Message Date
Oleksiy Syvokon a3d5f56be8 ep: Encode cursor position in the predicted patch (#49450)
Release Notes:

- N/A
2026-02-18 09:55:26 +00:00
Max Brunsfeld 301a892885 Put back logic for passing data collection choice to cloud (#49426)
Release Notes:

- N/A
2026-02-17 17:43:40 -08:00
Max Brunsfeld 4315ed2ca1 Filter collection of snowflake requests to those with latest schemas (#49424)
This allows us to just pull requests that have the latest EP request
schema with the `predicted` boolean on events in the edit history.

Release Notes:

- N/A
2026-02-17 16:37:28 -08:00
Marshall BowersandTom f09b9c0cdd edit_prediction: Route edit prediction rating through Cloud (#49385)
This PR updates the `Edit Prediction Rated` event to be routed through
Cloud instead of the normal telemetry pipeline.

Closes CLO-224.

Release Notes:

- N/A

---------

Co-authored-by: Tom <tom@zed.dev>
2026-02-17 18:12:14 +00:00
Max Brunsfeld 274a5f7ee4 Fix EP CLI issues found when generating new teacher predictions (#49327)
Release Notes:

- N/A
2026-02-17 09:33:34 +02:00
Oleksiy Syvokon 3328e3d5cd ep: Fix panic when merging events from different buffers (#49097)
Release Notes:

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

- N/A
2026-02-13 13:47:28 +02:00
a0adc63011 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 ed6de51e3e 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
f3b95842c5 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 fc0ffc51df ep: Add SeedCoder prompt format (#49020)
Release Notes:

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

- N/A
2026-02-12 14:21:16 +02:00
Mikayla Maki 4d00186953 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 2d26605348 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 315babdcdb 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 83e847cbd9 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 f88fa4ae01 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 20fcb76d23 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 79a3bf5615 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 d09e6cd7b9 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 f7133c0e57 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 d9959fb5cf 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 b5765efcff 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 7c3499cc84 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 e4f962dee3 Remove sweep and mercury feature flags (#48329)
Release Notes:

- N/A
2026-02-04 07:53:49 +00:00
Max Brunsfeld 2da19466d4 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
0d99eb5d40 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 c095fef8ec 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 856a930a45 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 56a637917f 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 2af2b30f88 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 a261164ec8 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 5cc4846d67 ep: Add V0131GitMergeMarkersPrefix prompt format (#48145)
Release Notes:

- N/A
2026-02-01 16:11:20 +02:00
Max Brunsfeld 84b8478185 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 18516486b2 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 b26bc404ea 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 a5d2dc5122 ep_cli: rated-after: query (#47906)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-28 16:36:44 -08:00
9a6e79b00c 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 bf05aa0c2f ep: Diagnostics as retrieval_chunks for sweep ep (#47441)
Release Notes:

- N/A
2026-01-27 19:46:10 -05:00
Ben Kunkle e4822e8690 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 7d7afcbe2d 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 f7e911b0ff 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 61c3f2b199 Send some traffic to zeta2 for testing (#47710)
Release Notes:

- N/A
2026-01-26 16:54:59 -08:00
Ben Kunkle 80f14d0c32 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 44df5c6a85 Allow EP cli to fetch rejections from snowflake (#47628)
Release Notes:

- N/A
2026-01-26 10:49:44 +00:00
Max Brunsfeld d706d56b48 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 435947af60 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 ff556c5c22 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 c39b31c346 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
d16c39a164 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