ZIm/crates
Michael Sloan 17ecf94f6f
Restructure agent context (#29233)
Simplifies the data structures involved in agent context by removing
caching and limiting the use of ContextId:

* `AssistantContext` enum is now like an ID / handle to context that
does not need to be updated. `ContextId` still exists but is only used
for generating unique `ElementId`.
* `ContextStore` has a `IndexMap<ContextSetEntry>`. Only need to keep a
`HashSet<ThreadId>` consistent with it. `ContextSetEntry` is a newtype
wrapper around `AssistantContext` which implements eq / hash on a subset
of fields.
* Thread `Message` directly stores its context.

Fixes the following bugs:

* If a context entry is removed from the strip and added again, it was
reincluded in the next message.
* Clicking file context in the thread that has been removed from the
context strip didn't jump to the file.
* Refresh of directory context didn't reflect added / removed files.
* Deleted directories would remain in the message editor context strip.
* Token counting requests didn't include image context.
* File, directory, and symbol context deduplication relied on
`ProjectPath` for identity, and so didn't handle renames.
* Symbol context line numbers didn't update when shifted

Known bugs (not fixed):

* Deleting a directory causes it to disappear from messages in threads.
Fixing this in a nice way is tricky. One easy fix is to store the
original path and show that on deletion. It's weird that deletion would
cause the name to "revert", though. Another possibility would be to
snapshot context metadata on add (ala `AddedContext`), and keep that
around despite deletion.

Release Notes:

- N/A
2025-04-24 21:29:33 +00:00
..
activity_indicator Git activity indicator (#28204) 2025-04-07 18:10:01 +00:00
agent Restructure agent context (#29233) 2025-04-24 21:29:33 +00:00
anthropic anthropic: Remove list of supported countries (#29346) 2025-04-24 15:17:33 +00:00
askpass Remove netcat dependency (#28920) 2025-04-16 19:46:36 -04:00
assets Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
assistant Restructure agent context (#29233) 2025-04-24 21:29:33 +00:00
assistant_context_editor agent: Support pasting images as context (#29177) 2025-04-22 09:01:01 +00:00
assistant_settings VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
assistant_slash_command Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
assistant_slash_commands Add ability to attach rules as context (#29109) 2025-04-21 20:16:51 +00:00
assistant_tool agent: Render diffs for the edit file tool (#29234) 2025-04-23 15:43:33 -03:00
assistant_tools agent: Improve initial file search quality (#29317) 2025-04-23 21:24:41 -03:00
audio Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
auto_update VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
auto_update_helper Update block diagnostics (#28006) 2025-04-15 09:35:13 -06:00
auto_update_ui Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
aws_http_client Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
bedrock Default to fast model for thread summaries and titles + don't include system prompt / context / thinking segments (#29102) 2025-04-19 23:26:29 +00:00
breadcrumbs breadcrumbs: Update multibuffer to match singleton (#28267) 2025-04-07 20:26:55 +00:00
buffer_diff Fix diff recalculation hang (#28377) 2025-04-10 22:58:41 +00:00
call VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
channel Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
cli Try to weak-link ScreenCaptureKit always (#28585) 2025-04-11 17:38:14 +00:00
client VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
clock Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
collab collab: Remove unused RateLimiter (#29343) 2025-04-24 14:23:17 +00:00
collab_ui VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
collections Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
command_palette Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
command_palette_hooks Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
component Add example agent tool preview (#28984) 2025-04-17 17:29:19 +00:00
component_preview component preview: Focus search input immediately upon opening (#29155) 2025-04-21 11:28:49 -03:00
context_server agent: Render diffs for the edit file tool (#29234) 2025-04-23 15:43:33 -03:00
context_server_settings VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
copilot Default to fast model for thread summaries and titles + don't include system prompt / context / thinking segments (#29102) 2025-04-19 23:26:29 +00:00
credentials_provider Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
dap debugger: Fix spawned debug adapters taking over Zed's shell (#29373) 2025-04-24 20:46:25 +00:00
dap_adapters debugger: Add support for inline value hints (#28656) 2025-04-23 22:27:27 +00:00
db debugger_ui: Move DEBUGGER_PANEL_PREFIX out of db (#28768) 2025-04-15 14:59:42 +00:00
debugger_tools debugger: Open debugger panel on session startup (#29186) 2025-04-22 19:35:47 -04:00
debugger_ui Terminal in debugger (#29328) 2025-04-24 14:26:09 -06:00
deepseek Default to fast model for thread summaries and titles + don't include system prompt / context / thinking segments (#29102) 2025-04-19 23:26:29 +00:00
diagnostics Show diagnostic codes (#29296) 2025-04-23 20:51:01 -06:00
docs_preprocessor Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
editor editor: Move blame popover from hover_tooltip to editor prepaint (#29320) 2025-04-25 01:52:24 +05:30
eval Restructure agent context (#29233) 2025-04-24 21:29:33 +00:00
extension extension: Use heck instead of convert_case for snake_case check (#28608) 2025-04-11 22:01:25 +00:00
extension_api zed_extension_api: Release v0.4.0 (#29237) 2025-04-22 21:07:52 +00:00
extension_cli Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
extension_host VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
extensions_ui Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
feature_flags agent: Expose web search tool to beta users (#29273) 2025-04-23 15:30:20 +00:00
feedback feedback: Update issue template URL (#28790) 2025-04-15 21:36:30 -04:00
file_finder VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
file_icons Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
fs Highlight merge conflicts and provide for resolving them (#28065) 2025-04-23 12:38:46 -04:00
fsevent Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
fuzzy Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
git Highlight merge conflicts and provide for resolving them (#28065) 2025-04-23 12:38:46 -04:00
git_hosting_providers VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
git_ui editor: Move blame popover from hover_tooltip to editor prepaint (#29320) 2025-04-25 01:52:24 +05:30
go_to_line VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
google_ai gemini: Fix issue when deserializing tool call (#29363) 2025-04-24 18:19:05 +00:00
gpui Fix context_stack race in KeyContextView (#29324) 2025-04-23 23:34:39 -06:00
gpui_macros Rename regex search tool to grep and accept an include glob pattern (#29100) 2025-04-20 00:53:30 +00:00
gpui_tokio Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
html_to_markdown Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
http_client Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
http_client_tls Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
icons agent: Support pasting images as context (#29177) 2025-04-22 09:01:01 +00:00
image_viewer VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
indexed_docs Add --user-data-dir CLI flag and propose renaming support_dir to data_dir (#26886) 2025-04-10 21:16:43 +00:00
inline_completion Show edit predictions usage in status bar menu (#29046) 2025-04-18 14:15:19 +00:00
inline_completion_button inline_completion_button: Show the usage limits returned from the API (#29239) 2025-04-22 21:16:54 +00:00
install_cli install_cli: Show feedback when installing CLI from welcome screen (#28532) 2025-04-11 01:47:40 +05:30
journal VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
language Show diagnostic codes (#29296) 2025-04-23 20:51:01 -06:00
language_extension Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
language_model Treat invalid JSON in tool calls as failed tool calls (#29375) 2025-04-24 16:54:27 -04:00
language_model_selector inline assistant: Fix model picker (#29136) 2025-04-21 01:12:57 +00:00
language_models Treat invalid JSON in tool calls as failed tool calls (#29375) 2025-04-24 16:54:27 -04:00
language_selector Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
language_tools Fix context_stack race in KeyContextView (#29324) 2025-04-23 23:34:39 -06:00
languages debugger: Add support for inline value hints (#28656) 2025-04-23 22:27:27 +00:00
livekit_api Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
livekit_client Fix deafening new participants (#28330) 2025-04-08 16:01:27 +00:00
lmstudio Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
lsp debugger: Add support for inline value hints (#28656) 2025-04-23 22:27:27 +00:00
markdown Show diagnostic codes (#29296) 2025-04-23 20:51:01 -06:00
markdown_preview Use buffer size for markdown preview (#29172) 2025-04-21 19:29:21 -04:00
media chore: Make objc a workspace level crate (#28258) 2025-04-07 18:46:09 +00:00
menu Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
migrator agent: Improve initial file search quality (#29317) 2025-04-23 21:24:41 -03:00
mistral Switch from open-codestral-mamba to codestral-latest for default mistral model (#29104) 2025-04-19 23:29:36 +00:00
multi_buffer Show diagnostic codes (#29296) 2025-04-23 20:51:01 -06:00
node_runtime Add --user-data-dir CLI flag and propose renaming support_dir to data_dir (#26886) 2025-04-10 21:16:43 +00:00
notifications Merge Component and ComponentPreview trait (#28365) 2025-04-08 16:09:06 -06:00
ollama ollama: Add DeepSeek v3 max token length (#29156) 2025-04-24 13:20:22 -04:00
open_ai open_ai: Remove list of supported countries (#29347) 2025-04-24 14:55:37 +00:00
outline Highlight merge conflicts and provide for resolving them (#28065) 2025-04-23 12:38:46 -04:00
outline_panel VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
panel Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
paths VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
picker agent: Refine language model selector (#28597) 2025-04-11 23:02:50 +00:00
prettier Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
project Terminal in debugger (#29328) 2025-04-24 14:26:09 -06:00
project_panel Allow creating entries when nothing is selected in the project panel (#29336) 2025-04-24 08:46:35 +00:00
project_symbols Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
prompt_store Restructure agent context (#29233) 2025-04-24 21:29:33 +00:00
proto Show diagnostic codes (#29296) 2025-04-23 20:51:01 -06:00
recent_projects VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
refineable Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
release_channel Fix handling of --system-specs argument so it happens before Application::new (#29240) 2025-04-22 21:32:32 +00:00
remote Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
remote_server Fix handling of --system-specs argument so it happens before Application::new (#29240) 2025-04-22 21:32:32 +00:00
repl VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
reqwest_client Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
rich_text Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
rope chore: Bump Rust version to 1.86 (#28021) 2025-04-03 23:32:50 +02:00
rpc rpc: Remove llm module in favor of zed_llm_client (#28900) 2025-04-16 20:22:44 +00:00
rules_library Rename "Prompt Library" to "Rules Library" (#29349) 2025-04-24 16:42:06 -03:00
schema_generator Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
search Rename regex search tool to grep and accept an include glob pattern (#29100) 2025-04-20 00:53:30 +00:00
semantic_index collab: Remove code for embeddings (#29310) 2025-04-23 18:27:46 -04:00
semantic_version Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
session Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
settings VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
settings_ui VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
snippet Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
snippet_provider snippet_provider: Use proper casing of VsCode in identifiers (#29038) 2025-04-18 12:11:54 +00:00
snippets_ui Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
sqlez Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
sqlez_macros Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
story Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
storybook Merge Component and ComponentPreview trait (#28365) 2025-04-08 16:09:06 -06:00
streaming_diff Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
sum_tree Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
supermaven Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
supermaven_api Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
tab_switcher tab_switcher: Add keybind to close tab tooltip (#27212) 2025-04-08 15:57:36 -06:00
task agent: Render diffs for the edit file tool (#29234) 2025-04-23 15:43:33 -03:00
tasks_ui debugger: More tidy up for SSH (#28993) 2025-04-21 16:00:03 +00:00
telemetry Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
telemetry_events Add new action to run agent eval (#29158) 2025-04-21 21:30:21 -07:00
terminal Terminal in debugger (#29328) 2025-04-24 14:26:09 -06:00
terminal_view Terminal in debugger (#29328) 2025-04-24 14:26:09 -06:00
text format: Re-implement support for formatting with code actions that contain commands (#28392) 2025-04-09 01:53:54 +00:00
theme VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
theme_extension Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
theme_importer theme_importer: Handle comma-separated token scopes (#27740) 2025-04-23 14:06:58 +00:00
theme_selector Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
time_format Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
title_bar project: Show detached head commit SHA in branch pickers (#29007) 2025-04-18 04:23:56 +05:30
toolchain_selector toolchain: Respect currently focused file when querying toolchains (#28875) 2025-04-16 19:05:57 +02:00
ui ui: Add inline_code method to label (#29306) 2025-04-23 19:27:56 -03:00
ui_input Merge Component and ComponentPreview trait (#28365) 2025-04-08 16:09:06 -06:00
ui_macros Merge Component and ComponentPreview trait (#28365) 2025-04-08 16:09:06 -06:00
ui_prompt markdown: Don't retain MarkdownStyle in favor of using MarkdownElement directly (#28255) 2025-04-07 19:03:24 +00:00
util Fix zed sometimes stopping by using setsid on interactive shells (#29070) 2025-04-18 15:04:26 -06:00
util_macros Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
vim VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
vim_mode_setting VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
web_search agent: Expose web search tool to beta users (#29273) 2025-04-23 15:30:20 +00:00
web_search_providers agent: Expose web search tool to beta users (#29273) 2025-04-23 15:30:20 +00:00
welcome VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
workspace Terminal in debugger (#29328) 2025-04-24 14:26:09 -06:00
worktree VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
zed debugger: Add support for inline value hints (#28656) 2025-04-23 22:27:27 +00:00
zed_actions Rename "Prompt Library" to "Rules Library" (#29349) 2025-04-24 16:42:06 -03:00
zeta Add new action to run agent eval (#29158) 2025-04-21 21:30:21 -07:00
zlog zlog: Add default filters (#29244) 2025-04-22 18:54:56 -04:00
zlog_settings VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00