Show thread title and status in sidebar workspace entries#48645
Merged
mikayla-maki merged 9 commits intonew-multi-workspacefrom Feb 8, 2026
Merged
Show thread title and status in sidebar workspace entries#48645mikayla-maki merged 9 commits intonew-multi-workspacefrom
mikayla-maki merged 9 commits intonew-multi-workspacefrom
Conversation
Adds a visual test that renders the MultiWorkspace sidebar open with: - Two active workspaces (private-test-remote, zed) - Four recent projects (tiny-project, font-kit, ideas, tmp) Changes: - sidebar: Add test-support feature with set_test_recent_projects helper - zed Cargo.toml: Add sidebar/test-support to visual-tests feature - visual_test_runner: Add run_multi_workspace_sidebar_visual_tests
- Add AgentThreadStatus (Running/Completed/Errored) and AgentThreadInfo to MultiWorkspace for per-workspace thread tracking - Render thread info below each active workspace in the sidebar: spinning LoadCircle for running, blue check for completed, red X for errored - Top-align folder icons in workspace entries - Add close workspace button (X) on hover for each workspace entry - Add remove_workspace method to MultiWorkspace - Subscribe to AcpThread events in AgentDiff to push real-time thread status updates (title, stopped, error) to MultiWorkspace - Update visual test with Completed and Running thread states
- Remove AgentThreadInfo/AgentThreadStatus types and workspace_thread_infos HashMap from MultiWorkspace - Remove push_thread_info_to_multi_workspace and push_thread_error_to_multi_workspace from AgentDiff - Add acp_thread and agent_ui dependencies to sidebar crate - Sidebar now queries AgentPanel.active_agent_thread() directly to read thread title and status from AcpThread - Add AgentPanelEvent::ActiveViewChanged so sidebar subscribes to targeted events instead of observing all panel notifications - Sidebar subscribes to AcpThread entities (via cx.observe_in) for status changes and to AgentPanel events for thread switches - Move visual test thread info setup to sidebar.set_test_thread_info()
When an agent thread is active in a workspace, its title is now persisted
to the KVP store under a single key ('sidebar-last-thread-titles') as a
JSON map keyed by sorted worktree paths. When loading recent projects in
the sidebar, thread titles are looked up from this map and displayed as
a muted subtitle beneath the project name.
- Add db and serde_json dependencies to sidebar crate
- Add sorted_paths_key() helper for canonical path-based map keys
- persist_thread_titles() writes on every queue_refresh when thread info changes
- set_recent_projects() reads the map and populates recent_project_thread_titles
- Extract render_project_row() shared by workspace and recent project entries
- Add set_test_recent_project_thread_title() for visual test injection
- Update visual test to show thread titles on two recent project entries
AgentPanel now observes the active AcpServerView entity. When the server connection completes and the view transitions from Loading to Connected, the AcpServerView calls cx.notify(). The AgentPanel's observation picks this up and re-emits AgentPanelEvent::ActiveViewChanged, which the sidebar subscribes to. This closes the timing gap where the sidebar would refresh before the AcpThread existed and never learn about it.
d8e4f3a to
7009855
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds per-workspace thread info display to the multi-workspace sidebar, showing the last active agent thread's title and current status below each workspace entry.
Changes
LoadCirclefor running, blue checkmark for completed, red X for erroredAgentDiffsubscribes toAcpThreadevents (Stopped, Error, TitleUpdated, NewEntry) and pushes status updates toMultiWorkspace, which the sidebar observesArchitecture
AgentThreadStatusandAgentThreadInfotypes live onMultiWorkspace(workspace crate)MultiWorkspaceduring entry rebuild (no new cross-crate deps for sidebar)AgentDiff::handle_acp_thread_eventpushes thread info toMultiWorkspaceviawindow.root::<MultiWorkspace>()Visual test
Then, to see it:
Here's how it looks:
Release Notes: