Commit Graph

33483 Commits

Author SHA1 Message Date
Nathan Sobo
5e41d48512 Update integration plans to reflect completed phases 2025-12-14 05:50:20 -07:00
Nathan Sobo
5c3b5a1d60 Eliminate RunnableVariant::Compat - all runnables now have source location metadata
- Remove RunnableVariant::Compat variant entirely
- Update PlatformScheduler::timer() to use async_task::Builder with RunnableMeta
- Update REPL's ZedDispatcher to wrap external Runnable with metadata
- Simplify all platform dispatchers (Mac, Linux, Windows, Test):
  - Remove Compat match arms
  - Use let-binding pattern for single-variant enum
- Remove unused trampoline_compat function from Mac dispatcher

All tasks now carry source location information for better debugging
and profiling. The RunnableVariant enum is now single-variant and
could be simplified further in a future change.
2025-12-14 05:49:25 -07:00
Nathan Sobo
02925409f0 Add is_ready() to GPUI Task for API parity with scheduler
Both GPUI and scheduler Task types now have identical APIs:
- ready(val) - create a task with an immediate value
- is_ready() - check if task has completed
- detach() - run task to completion in background

The only difference is GPUI's detach_and_log_err() which requires App context.
2025-12-14 05:41:36 -07:00
Nathan Sobo
c39581d52e Remove unused execution tracking from TestScheduler and TestDispatcher
The execution_hash/execution_count tracking was added speculatively but
has no actual consumers. Removing to reduce complexity.
2025-12-14 05:40:03 -07:00
Nathan Sobo
52e2650270 Unify RunnableMeta and add execution tracking to TestScheduler
Phase 2a partial - Unified RunnableMeta:
- Re-export RunnableMeta from scheduler crate in gpui/src/platform.rs
- Remove GPUI's duplicate RunnableMeta struct definition
- Remove RunnableVariant::Scheduler variant (now uses Meta for both)
- Update all platform dispatchers to remove Scheduler variant handling
- Update PlatformScheduler to use RunnableVariant::Meta

Phase 3c - Execution tracking:
- Add execution_hash and execution_count to TestScheduler state
- Add execution_hash(), execution_count(), reset_execution_tracking() methods
- Update step() to track execution order via location hashing
- Enables determinism verification in tests

Note: Waiting hints (Phase 3b) skipped - TestScheduler already has
superior pending_traces system with TracingWaker that automatically
captures backtraces for all pending futures.
2025-12-14 05:36:42 -07:00
Nathan Sobo
d5e1509b53 Fix formatting 2025-12-14 05:21:40 -07:00
Nathan Sobo
5b07e2b242 WIP: scheduler integration debugging 2025-12-14 04:56:42 -07:00
Nathan Sobo
9272b90672 WIP: Integrate scheduler crate into GPUI TestDispatcher
This commit integrates the scheduler crate's TestScheduler into GPUI's
TestDispatcher for deterministic testing. The TestDispatcher now uses
TestScheduler for:
- Clock/timing (via scheduler.clock())
- Random number generation (via scheduler.rng())
- Block-on tick configuration

GPUI's TestDispatcher maintains its own task queues (foreground, background,
delayed) because it needs to handle RunnableVariant with multiple variants
(Meta, Compat, Scheduler) that TestScheduler cannot process directly.

Key changes:
- TestDispatcher::new() now takes a seed (u64) instead of StdRng
- Clock and RNG are delegated to TestScheduler
- Added RunnableVariant::Scheduler for scheduler-based runnables
- Updated all platform dispatchers to handle the new variant

KNOWN ISSUE: Tests hang after completion. After running the collab
'workspace' tests, the test process hangs indefinitely after these pass:
  - test_contact_requests
  - test_server_restarts
  - test_random_channel_buffers
  - test_random_project_collaboration

The hang likely relates to teardown/cleanup when TestDispatcher shares
state with TestScheduler. Need to investigate:
1. Whether blocked_sessions in TestScheduler is properly cleaned up
2. Whether there are threads being parked that never get unparked
3. Whether the test macro teardown sequence interacts badly with scheduler
2025-12-14 04:56:04 -07:00
Nathan Sobo
8d714f0bc4 Fix race condition in test_collaborating_with_completion
The test had a race condition where LSP request handlers were registered
AFTER typing the trigger character. Whether this worked depended on task
scheduling order, which varies by seed.

Changes:
- Move handler setup BEFORE typing the trigger character in the test
- Make TestDispatcher::spawn_realtime panic to prevent future non-determinism
  from real OS threads escaping the deterministic test scheduler
- Add execution_hash() and execution_count() to TestDispatcher for debugging
- Add DEBUG_SCHEDULER=1 logging for task execution tracing
- Document the investigation in situation.md
2025-12-14 04:51:22 -07:00
John Tur
6cc947f654 Update cc and cmake crates (#44797)
This fixes the build when Visual Studio 2026 is installed.

Release Notes:

- N/A
2025-12-14 07:45:54 +00:00
Will Garrison
f2cc24c5fa docs: Add clarifying note about Vim subword motion (#44535)
Clarify the docs regarding how operators are affected when subword
motion in Vim is activated.

Ref:
https://github.com/zed-industries/zed/issues/23344#issuecomment-3186025873.

Release Notes:

- N/A

---------

Co-authored-by: Kunall Banerjee <hey@kimchiii.space>
2025-12-14 02:20:33 -05:00
Michael Benfield
488fa02547 Streaming tool use for inline assistant (#44751)
Depends on: https://github.com/zed-industries/zed/pull/44753

Release Notes:

- N/A

---------

Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
2025-12-14 03:22:20 +00:00
Cole Miller
dad6481e02 Disambiguate branch name in title bar (#44793)
Add the repository name when:

- there's more than one repository, and
- the name of the active repository doesn't match the name of the
project (to avoid stuttering with the adjacent project switcher button)

Release Notes:

- The branch name in the title bar now includes the name of the current
repository when needed to disambiguate.
2025-12-14 02:51:58 +00:00
Danilo Leal
0283bfb049 Enable configuring edit prediction providers through the settings UI (#44505)
- Edit prediction providers can now be configured through the settings
UI
- Cleaned up the status bar menu to only show _configured_ providers
- Added to the status bar icon button tooltip the name of the active
provider
- Only display the data collection functionality under "Privacy" for the
Zed models
- Moved the Codestral edit prediction provider out of the Mistral
section in the agent panel into the settings UI
- Refined and improved UI and states for configuring GitHub Copilot as
both an agent and edit prediction provider

#### Todos before merge:

- [x] UI: Unify with settings UI style and tidy it all up
- [x] Unify Copilot modal `impl`s to use separate window
- [x] Remove stop light icons from GitHub modal
- [x] Make dismiss events work on GitHub modal
- [ ] Investigate workarounds to tell if Copilot authenticated even when
LSP not running


Release Notes:

- settings_ui: Added a section for configuring edit prediction providers
under AI > Edit Predictions, including Codestral and GitHub Copilot.
Once you've updated you can use the following link to open it:
zed://settings/edit_predictions.providers

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>
2025-12-13 11:06:30 -05:00
Michael Benfield
56daba28d4 supports_streaming_tools member (#44753)
Release Notes:

- N/A
2025-12-13 00:56:06 +00:00
Josh Ayres
6e0ecbcb07 docs: Use relative_line_numbers instead of toggle_relative_line_numbers (#44749)
Just a small docs change

With the deprecation of `toggle_relative_line_numbers` the docs should
reflect that

Release Notes:

- N/A
2025-12-13 00:41:31 +00:00
Haojian Wu
4754422ef4 Add angled bracket highlighting for C++ (#44735)
Enables rainbow bracket highlighting for angle brackets (< >) in C++.

<img width="401" height="46" alt="image"
src="https://github.com/user-attachments/assets/169afdaa-c8be-4b78-bf64-9cf08787eb47"
/>


Release Notes:

- Added rainbow bracket coloring for C++ angle brackets (`<>`)
2025-12-13 01:38:44 +01:00
Marco Mihai Condrache
e860252185 gpui: Improve path rendering and bounds performance (#44655) 2025-12-12 23:01:16 +00:00
Anthony Eid
fad06dd00c git: Show all branches in branch picker empty state (#44742)
This fixes an issue where a user could get confused by the branch picker
because it would only show the 10 most recent branches, instead of all
branches.

Release Notes:

- git: Show all branches in branch picker when search field is empty
2025-12-12 17:59:35 -05:00
Xiaobo Liu
329ec645da gpui: Fix tab jitter from oversized scrolling (#42434) 2025-12-12 22:27:09 +00:00
Oleksiy Syvokon
e1d236eaf0 ep: Apply diff to editable region only and edit history fixes (#44737)
Release Notes:

- N/A

---------

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Agus Zubiaga <agus@zed.dev>
2025-12-12 21:18:13 +00:00
Agus Zubiaga
60f4aa333b edit prediction cli: Improve error handling (#44718)
We were panicking whenever something went wrong with an example in the
CLI. This can be very disruptive when running many examples, and e.g a
single request fails. Instead, if running more than one example, errors
will now be logged alongside instructions to explore and re-run the
example by itself.

<img width="1454" height="744" alt="CleanShot 2025-12-12 at 13 32 04@2x"
src="https://github.com/user-attachments/assets/87c59e64-08b9-4461-af5b-03af5de94152"></img>


You can still opt in to stop as soon as en error occurs with the new
`--failfast` argument.

Release Notes:

- N/A
2025-12-12 14:15:58 -03:00
localcc
a698f1bf63 Fix Bounds::contains (#44711)
Closes #11643 

Release Notes:

- Fixed double hover state on windows

Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
2025-12-12 14:49:29 +00:00
localcc
636d11ebec Multiple priority scheduler (#44701)
Improves the scheduler by allowing tasks to have a set priority which
will significantly improve responsiveness.

Release notes:

- N/A

---------

Co-authored-by: Yara <git@yara.blue>
Co-authored-by: dvdsk <noreply@davidsk.dev>
2025-12-12 06:32:30 -08:00
Agus Zubiaga
4d0e760b04 edit prediction cli: Progress output cleanup (#44708)
- Limit status lines to 10 in case `max_parallelism` is specified with a
grater value
- Handle logging gracefully rather than writing over it when clearing
status lines

Release Notes:

- N/A
2025-12-12 14:03:08 +00:00
localcc
8bd4d866b9 Windows/send keystrokes (#44707)
Closes #41176 

Release Notes:

- Fixed SendKeystrokes mapping on windows

Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
2025-12-12 05:51:11 -08:00
Piotr Osiewicz
47c30b6da7 git: Revert "Ignore whitespace in git blame invocation" (#44648)
Reverts zed-industries/zed#35960
cc @cole-miller

---------

Co-authored-by: Cole Miller <cole@zed.dev>
2025-12-12 14:28:25 +01:00
Lukas Wirth
18d344e118 language: Make TreeSitterData only shared between snapshots of the same version (#44198)
Currently we have a single cache for this data shared between all
snapshots which is incorrect, as we might update the cache to a new
version while having old snapshots around which then may try to access
new data with old offsets/rows.

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2025-12-12 14:15:50 +01:00
Agus Zubiaga
610cc1b138 edit prediction cli: Cargo-style progress output (#44675)
Release Notes:

- N/A
2025-12-12 09:43:16 -03:00
Xiaobo Liu
a07ea1a272 util: Avoid redundant Arc allocation in SanitizedPath::from_arc (#44479)
Release Notes:

- N/A

Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
2025-12-12 13:33:49 +01:00
Lukas Wirth
e03fa114a7 remote: Remove unnecessary and incorrect single quote in MasterProcess (#44697)
Closes https://github.com/zed-industries/zed/issues/43992

Release Notes:

- Fixed remoting not working on some linux and mac systems
2025-12-12 11:53:15 +00:00
Dino
17db7b0e99 Add keymap field to bug report issue template (#44564)
Update the issue template used for "Report a bug" to include a field
specifically for the user's keymap file, as we've seen multiple cases
where we end up asking the users for their custom keymap, to ensure that
they're not overriding existing defaults.

Release Notes:

- N/A
2025-12-12 11:17:15 +00:00
Kirill Bulatov
1afe29422b Move servers back from the background thread (#44696)
Partial revert of https://github.com/zed-industries/zed/pull/44631

With this and `sccache` enabled, I get 
<img width="3456" height="1096" alt="image"
src="https://github.com/user-attachments/assets/937760fb-8b53-49f8-ae63-4df1d31b292b"
/>

and r-a infinitely hangs waiting on this.

Release Notes:

- N/A
2025-12-12 11:16:17 +00:00
Lukas Wirth
a8aa7622b7 util: Fix shell builder quoting regressions (#44685)
Follow up to https://github.com/zed-industries/zed/pull/42382

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2025-12-12 11:06:49 +00:00
Agus Zubiaga
a66854e435 commit view: Reuse avatar asset (#44554) 2025-12-12 07:42:05 -03:00
Dino
12073e10f8 Fix missing buffer font features in Blame UI, Hover Popover and Markdown Preview (#44657)
- Fix missing font features in 
  `git_ui::blame_ui::GitBlameRenderer.render_blame_entry`
- Fix missing buffer font features in
`markdown_preview::markdown_renderer`
- Update the way that the markdown style is built for hover popovers so
  that, for code blocks, the buffer font features are used.
- Introduce `gpui::Styled.font_features` to allow callers to also set
  the font's features, similar to how `gpui::Styled.font_family` already
  exists.

Relates to #44209

Release Notes:

- Fixed wrong font features in Blame UI, Hover Popover and Markdown
Preview
2025-12-12 09:55:06 +00:00
Smit Barmase
1186b50ca4 git_ui: Fix commit and amend not working via keybinds in commit modal (#44690)
Closes #41567

We were using the git panel editor to check the focus where the commit
modal has its only editor.

Release Notes:

- Fixed an issue where commit and amend actions wouldn’t trigger when
using keybinds in the commit modal.
2025-12-12 14:41:48 +05:30
Lukas Wirth
65130a9ca9 windows: Fix more VSCode keybinds (#44684)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2025-12-12 07:04:55 +00:00
Dino
23d18fde8c git_ui: Always use latest commit message on amend (#44553)
Update the behavior of `git::Amend` to ensure that the latest head
commit message, if available, is always loaded into the commit message
editor, regardless of its state. The previous text, if any, is now also
restored after the amend is finished.

- Update `FakeGitRepository.show` to include a message in the returned
`CommitDetails` so we can assert that this specific commit message is
set in the commit message editor.
- Add default implementation for `FakeGitRepository.commit` and
`FakeGitRepository.run_hook` to ensure that tests are able to run and
don't panic on `unimplemented!()`
- Refactor `GitPanel.load_last_commit_message_if_empty` to
`GitPanel.load_last_commit_message`, ensuring that the head commit
message is always loaded, regardless of whether the commit message
editor is empty.
- Update `GitPanel.commit_changes` to ensure that the pending amend
state is only updated if the editor managed to actually commit the
changes. This also ensures that we don't restore the commit message
editor's contents when amending a commit, before the amend is actually
processed.
- Update `CommitModal.amend`, removing the call to
`GitPanel.set_amend_pending` as that is now handled by the background
task created in `GitPanel.commit_changes`.
- Split the `commit` and `amend` methods from the event handlers so that
the methods can be called directly, as is now being done by
`CommitModal.on_commit` and `CommitModal.on_amend`.

Release Notes:

- Updated the ‎`git: amend` command to always load the latest head
commit message, and to restore any previously entered text in the commit
message editor after the amend completes
2025-12-12 12:16:43 +05:30
Conrad Irwin
332c0d03d1 Terminal regex perf improvements (#44679)
Closes #44510

Release Notes:

- Improve performance of terminal link matching even more
2025-12-11 22:40:48 -07:00
Max Brunsfeld
b871130220 Restructure concurrency in EP CLI to allow running many examples in big rust repos (#44673)
Release Notes:

- N/A
2025-12-12 01:58:53 +00:00
Conrad Irwin
0a1e5f93a0 Allow triggering after release workflow manually (#44671)
Release Notes:

- N/A
2025-12-11 16:54:10 -07:00
Piotr Osiewicz
8d0fff688f rust: Change cwd of cargo run-esque tasks to use package root, not dirname of current file as cwd (#44672)
This also applies to `cargo clean` one.

Closes #20873

Release Notes:

- rust: Changed cwd of tasks that spawn a binary target to the root of a
current package (which used to be a directory of the current source
file).
2025-12-11 23:47:40 +00:00
Kirill Bulatov
717d898692 Show an underlying reason on file opening (#44664)
Based on the debug attempt from
https://github.com/zed-industries/zed/issues/44370

Release Notes:

- N/A
2025-12-11 23:20:25 +00:00
Max Brunsfeld
1cd7563f04 Add ep distill command, for generating edit prediction training examples (#44670)
Release Notes:

- N/A

---------

Co-authored-by: Oleksiy Syvokon <oleksiy@zed.dev>
Co-authored-by: Agus Zubiaga <agus@zed.dev>
2025-12-11 14:57:58 -08:00
Agus Zubiaga
fc6ca38989 edit prediction cli: Improve language server reliability (#44666)
We weren't waiting for ALL language servers of a buffer to start, only
the first one.

Release Notes:

- N/A
2025-12-11 22:30:51 +00:00
Yara 🏳️‍⚧️
1029a8fbaf Add support for manual spans, expand instrumentation (#44663)
Release Notes:

- N/A

---------

Co-authored-by: Cameron <cameron@zed.dev>
2025-12-11 22:29:47 +00:00
KyleBarton
07748b7bae Add scrolling functionality to markdown preview mode (#44585)
Closes #21324

Adds four new commands:
- `markdown::MoveUp`, `markdown::MoveDown` - these scroll up and down in
markdown preview mode, by no more than the height of a large headline.

- `markdown::MoveUpByItem`, and `markdown::MoveDownByItem` - these
scroll up and down by the height of the item at the top of the markdown
preview window. So headlines and large codeblocks, for instance, scroll
further than individual paragraph lines.

Also attempts to create sensible defaults:
`down` -> `markdown::ScrollDown`
`up` -> `markdown::ScrollUp`
`alt-down` -> `markdown::ScrollDownByItem`
`alt-up` -> `markdown::ScrollUpByItem`

And in Vim:

`ctrl-u` -> `markdown::ScrollPageUp`
`ctrl-d` -> `markdown::ScrollPageDown`
`ctrl-e` -> `markdown::ScrollDown`
`ctrl-y` -> `markdown::ScrollUp`


Release Notes:

- Added commands `markdown::ScrollUp`, `markdown::ScrollDown`,
`markdown::ScrollUpByItem`, and `markdown::ScrollDownByItem`
- Changed commands `markdown::MovePageUp` to `markdown::ScrollPageUp`
and `markdown::MovePageDown` to `markdown::ScrollPageDown`
2025-12-11 22:18:38 +00:00
Agus Zubiaga
37f2ac24b8 edit prediction cli: Skip worktree scan (#44658)
Release Notes:

- N/A

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2025-12-11 21:05:50 +00:00
Richard Feldman
b5a0a3322d Add GPT-5.2 support (#44656)
<img width="429" height="188" alt="Screenshot 2025-12-11 at 3 45 26 PM"
src="https://github.com/user-attachments/assets/fe9f1b86-7268-4c63-a8c2-75ac671012c9"
/>


Release Notes:

- Added GPT-5.2 support when using your own OpenAI key
2025-12-11 15:49:10 -05:00