Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
4139046
workspace: Add MultiWorkspace wrapper for window root
mikayla-maki Jan 20, 2026
109eeaa
Update tests and crates to use MultiWorkspace as window root
mikayla-maki Jan 23, 2026
eb67e93
WIP: TODO: finish code review, and then polish this feature
mikayla-maki Jan 27, 2026
977e489
whoops
mikayla-maki Jan 28, 2026
b1834ea
WIP: Close review of multiworkspace integration with Zed
mikayla-maki Jan 28, 2026
67f138e
WIP: Rewrite dev containers to capture context up front
mikayla-maki Jan 29, 2026
a31805d
notifications: Replace notify_async_err with notify_workspace_async_err
mikayla-maki Jan 29, 2026
c61f852
workspace: Refactor WorkspaceStore and extract MultiWorkspace
mikayla-maki Jan 30, 2026
1b7da6d
multi-workspace: Make path opening and quit multi-workspace aware
mikayla-maki Jan 30, 2026
b1d52ee
Finish the refactor
mikayla-maki Jan 30, 2026
94cff5d
Merge remote-tracking branch 'origin/main' into new-multi-workspace
mikayla-maki Jan 31, 2026
8518a1a
Add command palette filtering
mikayla-maki Jan 31, 2026
d0a9f36
Fix clippy
mikayla-maki Jan 31, 2026
17a7d63
clippy?
mikayla-maki Jan 31, 2026
a331bc0
windows
mikayla-maki Jan 31, 2026
e7e48f4
Fix main workspace panels not being displayed
danilo-leal Feb 2, 2026
d62ceed
Merge remote-tracking branch 'origin/main' into new-multi-workspace
danilo-leal Feb 2, 2026
4d75f8d
Remove unused import
danilo-leal Feb 2, 2026
ef1bf44
Add button to open and close the sidebar
danilo-leal Feb 2, 2026
9419c9c
Fix sidebar header height alignment
danilo-leal Feb 2, 2026
a34d182
Don't close the sidebar as you click on different list items
danilo-leal Feb 2, 2026
aef8851
Extract multiworkspace sidebar into it's own crate and trait
Anthony-Eid Feb 2, 2026
fe68e9e
merge
Anthony-Eid Feb 2, 2026
dcc7549
move Danilo's changes to sidebar crate
Anthony-Eid Feb 2, 2026
92ab130
Put back some lost changes on sidebar crate creation
danilo-leal Feb 2, 2026
91c9263
Fix icon typos and wrong file names
danilo-leal Feb 2, 2026
0923a77
Iterate on icons
danilo-leal Feb 2, 2026
ff0a51a
Don't close the sidebar upon creating a new workspace
danilo-leal Feb 2, 2026
b784365
Add thread item with dummy data
danilo-leal Feb 3, 2026
9478cc9
Make the side bar render a picker for search and keyboard nav
danilo-leal Feb 3, 2026
4b4abd5
Merge remote-tracking branch 'origin/main' into new-multi-workspace
danilo-leal Feb 3, 2026
37757bc
Add some UI tweaks
danilo-leal Feb 3, 2026
5030f6b
Merge branch 'main' into new-multi-workspace
mikayla-maki Feb 3, 2026
129d621
Make sidebar show active thread sessions
Anthony-Eid Feb 4, 2026
1ed9d07
cargo fmt & clippy errorrrs yay
Anthony-Eid Feb 4, 2026
7a17160
Merge remote-tracking branch 'origin/main' into new-multi-workspace
danilo-leal Feb 4, 2026
a3971a4
Fix outline modal not showing up
danilo-leal Feb 4, 2026
63ab979
Add keybindings to open the sidebar
danilo-leal Feb 4, 2026
93a249c
Editor outline uses editor's workspace instead of active editor
Anthony-Eid Feb 4, 2026
4c4ef1f
Revert "Make sidebar show active thread sessions"
Anthony-Eid Feb 4, 2026
c1a5229
Fix focus issues with the sidebar
danilo-leal Feb 4, 2026
426d303
Show recent projects in picker
Anthony-Eid Feb 4, 2026
d67369e
Adjust UI and search for active workspaces/recent projects
danilo-leal Feb 4, 2026
89c3a97
Add some small UI adjustments and add keybinding
danilo-leal Feb 4, 2026
f39dbc7
Make sidebar subscribe to project events so it updates the list
danilo-leal Feb 4, 2026
f4fc5e1
Use empty workspace to open recent projects
danilo-leal Feb 4, 2026
45263d9
Use worktree paths to avoid case where an active project is also show…
danilo-leal Feb 4, 2026
dce72fd
Display full path also for projects within active workspaces
danilo-leal Feb 4, 2026
c98f1d0
Improve recent projects buttons from the welcome page
danilo-leal Feb 4, 2026
c3dc7a6
Call new workspace method directly instead of dispatching the action
danilo-leal Feb 4, 2026
bfe17e1
Only show active workspace tooltip if there are worktree on it
danilo-leal Feb 4, 2026
17a1d10
Add new method to focus the active workspace active pane
danilo-leal Feb 4, 2026
57b0e46
Merge branch 'main' into new-multi-workspace
danilo-leal Feb 4, 2026
ad07e38
Fix clippy
danilo-leal Feb 4, 2026
7d04560
Fix agent notifications when workspace is in background within MultiW…
mikayla-maki Feb 6, 2026
0b3a7e9
Fix sidebar opening through title bar button click
danilo-leal Feb 6, 2026
c3b9b75
Merge remote-tracking branch 'origin/main' into new-multi-workspace
danilo-leal Feb 6, 2026
3d5f885
Fix clippy
danilo-leal Feb 6, 2026
5bc0f9d
Merge remote-tracking branch 'origin/main' into new-multi-workspace
danilo-leal Feb 6, 2026
9f51400
persistence: Return window_id from session workspace locations for Mu…
mikayla-maki Feb 7, 2026
523f09d
Finish implementing persistence with active workspace restoration
mikayla-maki Feb 7, 2026
a1e829d
Add a scoped KVP (#48709)
mikayla-maki Feb 8, 2026
4feeffc
Show thread title and status in sidebar workspace entries (#48645)
rtfeldman Feb 8, 2026
d008f26
Implement multiworkspace persistence
mikayla-maki Feb 8, 2026
48c5061
Fix tests
mikayla-maki Feb 8, 2026
5dafa39
Finish multiworkspace serialization
mikayla-maki Feb 8, 2026
5fdb660
incorporate kyle's feedback
mikayla-maki Feb 8, 2026
5d23127
Merge branch 'main' into new-multi-workspace
mikayla-maki Feb 8, 2026
d119675
fmt and clippy
mikayla-maki Feb 9, 2026
c893962
fix tests on windows and linux
mikayla-maki Feb 9, 2026
c4e7edd
Fix todo
mikayla-maki Feb 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 30 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,7 @@ members = [
"crates/schema_generator",
"crates/search",
"crates/session",
"crates/sidebar",
"crates/settings",
"crates/settings_content",
"crates/settings_json",
Expand Down Expand Up @@ -395,6 +396,7 @@ rules_library = { path = "crates/rules_library" }
scheduler = { path = "crates/scheduler" }
search = { path = "crates/search" }
session = { path = "crates/session" }
sidebar = { path = "crates/sidebar" }
settings = { path = "crates/settings" }
settings_content = { path = "crates/settings_content" }
settings_json = { path = "crates/settings_json" }
Expand Down Expand Up @@ -853,6 +855,7 @@ refineable = { codegen-units = 1 }
release_channel = { codegen-units = 1 }
reqwest_client = { codegen-units = 1 }
session = { codegen-units = 1 }
sidebar = { codegen-units = 1 }
snippet = { codegen-units = 1 }
snippets_ui = { codegen-units = 1 }
story = { codegen-units = 1 }
Expand Down
5 changes: 5 additions & 0 deletions assets/icons/workspace_nav_closed.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions assets/icons/workspace_nav_open.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions assets/keymaps/default-linux.json
Original file line number Diff line number Diff line change
Expand Up @@ -594,6 +594,7 @@
"ctrl-alt-b": "workspace::ToggleRightDock",
"ctrl-b": "workspace::ToggleLeftDock",
"ctrl-j": "workspace::ToggleBottomDock",
"ctrl-alt-j": "multi_workspace::ToggleWorkspaceSidebar",
"ctrl-alt-y": "workspace::ToggleAllDocks",
"ctrl-alt-0": "workspace::ResetActiveDockSize",
// For 0px parameter, uses UI font size value.
Expand Down Expand Up @@ -653,6 +654,13 @@
"ctrl-w": "workspace::CloseActiveDock",
},
},
{
"context": "WorkspaceSidebar",
"use_key_equivalents": true,
"bindings": {
"ctrl-n": "multi_workspace::NewWorkspaceInWindow",
},
},
{
"context": "Workspace && debugger_running",
"bindings": {
Expand Down
8 changes: 8 additions & 0 deletions assets/keymaps/default-macos.json
Original file line number Diff line number Diff line change
Expand Up @@ -655,6 +655,7 @@
"cmd-alt-b": "workspace::ToggleRightDock",
"cmd-r": "workspace::ToggleRightDock",
"cmd-j": "workspace::ToggleBottomDock",
"cmd-alt-j": "multi_workspace::ToggleWorkspaceSidebar",
"alt-cmd-y": "workspace::ToggleAllDocks",
// For 0px parameter, uses UI font size value.
"ctrl-alt-0": "workspace::ResetActiveDockSize",
Expand Down Expand Up @@ -714,6 +715,13 @@
// "foo-bar": ["task::Spawn", { "task_tag": "MyTag" }],
},
},
{
"context": "WorkspaceSidebar",
"use_key_equivalents": true,
"bindings": {
"cmd-n": "multi_workspace::NewWorkspaceInWindow",
},
},
{
"context": "Workspace && debugger_running",
"use_key_equivalents": true,
Expand Down
8 changes: 8 additions & 0 deletions assets/keymaps/default-windows.json
Original file line number Diff line number Diff line change
Expand Up @@ -589,6 +589,7 @@
"ctrl-alt-b": "workspace::ToggleRightDock",
"ctrl-b": "workspace::ToggleLeftDock",
"ctrl-j": "workspace::ToggleBottomDock",
"ctrl-alt-j": "multi_workspace::ToggleWorkspaceSidebar",
"ctrl-shift-y": "workspace::ToggleAllDocks",
"alt-r": "workspace::ResetActiveDockSize",
// For 0px parameter, uses UI font size value.
Expand Down Expand Up @@ -657,6 +658,13 @@
"f5": "debugger::Continue",
},
},
{
"context": "WorkspaceSidebar",
"use_key_equivalents": true,
"bindings": {
"ctrl-n": "multi_workspace::NewWorkspaceInWindow",
},
},
{
"context": "ApplicationMenu",
"use_key_equivalents": true,
Expand Down
2 changes: 1 addition & 1 deletion crates/agent_ui/src/acp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ mod mode_selector;
mod model_selector;
mod model_selector_popover;
mod thread_history;
mod thread_view;
pub(crate) mod thread_view;

pub use mode_selector::ModeSelector;
pub use model_selector::AcpModelSelector;
Expand Down
19 changes: 16 additions & 3 deletions crates/agent_ui/src/acp/message_editor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -815,8 +815,13 @@ impl MessageEditor {
}

if self.prompt_capabilities.borrow().image
&& let Some(task) =
paste_images_as_context(self.editor.clone(), self.mention_set.clone(), window, cx)
&& let Some(task) = paste_images_as_context(
self.editor.clone(),
self.mention_set.clone(),
self.workspace.clone(),
window,
cx,
)
{
task.detach();
return;
Expand Down Expand Up @@ -1084,6 +1089,7 @@ impl MessageEditor {

let editor = self.editor.clone();
let mention_set = self.mention_set.clone();
let workspace = self.workspace.clone();

let paths_receiver = cx.prompt_for_paths(gpui::PathPromptOptions {
files: true,
Expand Down Expand Up @@ -1134,7 +1140,14 @@ impl MessageEditor {
images.push(gpui::Image::from_bytes(format, content));
}

crate::mention_set::insert_images_as_context(images, editor, mention_set, cx).await;
crate::mention_set::insert_images_as_context(
images,
editor,
mention_set,
workspace,
cx,
)
.await;
Ok(())
})
.detach_and_log_err(cx);
Expand Down
Loading