Skip to content

Re-add MultiWorkspace - #48800

Merged
mikayla-maki merged 14 commits into
mainfrom
re-add-multi-workspace
Feb 12, 2026
Merged

Re-add MultiWorkspace#48800
mikayla-maki merged 14 commits into
mainfrom
re-add-multi-workspace

Conversation

@rtfeldman

@rtfeldman rtfeldman commented Feb 9, 2026

Copy link
Copy Markdown
Contributor

Release Notes:

  • Added agent panel restoration. Now restarting your editor won't cause your thread to be forgotten.

@cla-bot cla-bot Bot added the cla-signed The user has signed the Contributor License Agreement label Feb 9, 2026
@zed-community-bot zed-community-bot Bot added the staff Pull requests authored by a current member of Zed staff label Feb 9, 2026
@mikayla-maki mikayla-maki added the run-bundling Configures PR to run the bundle step label Feb 9, 2026
@mikayla-maki
mikayla-maki force-pushed the re-add-multi-workspace branch from e3c7bf5 to 6776252 Compare February 10, 2026 19:10
@mikayla-maki
mikayla-maki marked this pull request as ready for review February 10, 2026 19:13
rtfeldman and others added 8 commits February 10, 2026 12:03
…rywhere (#48813)

Makes `Workspace::test_new` `pub(crate)` so it can only be called from
within the workspace crate. All external test code now uses
`MultiWorkspace::test_new` instead, which reflects the actual runtime
reality where `MultiWorkspace` is the window root.

- `Workspace::test_new` visibility changed from `pub` to `pub(crate)`
- Added `MultiWorkspace::test_add_workspace` helper for tests that need
additional workspaces
- Migrated ~285 call sites across 33 external files to use
`MultiWorkspace::test_new`
- Updated helper functions that took `&WindowHandle<Workspace>` to take
`&Entity<Workspace>`

Release Notes:

- N/A
This should fix the test CICD and get all the tests passing

Co-authored-by: Eric Holk \<eric@zed.dev\>

Release Notes:

- N/A

---------

Co-authored-by: Eric Holk <eric@zed.dev>
Panic was cause by a double workspace lease because the action register
was on workspace and the agent panel got the workspace id from it's weak
workspace handle

Co-authored-by: Eric Holk <eric@zed.dev>
Co-authored-by: Eric Holk <eric@zed.dev>
@mikayla-maki
mikayla-maki force-pushed the re-add-multi-workspace branch from 4c329e3 to af4d23e Compare February 10, 2026 20:08
Anthony-Eid and others added 4 commits February 10, 2026 12:49
This is used instead of defer_in in NewTextThread action handler to
avoid a double lease panic with workspace.

Co-authored-by: Eric Holk <eric@zed.dev>
Co-authored-by: Richard Feldman <oss@rtfeldman.com>
Fix rounded-corner bug when workspace switcher open

Release Notes:

- N/A

---------

Co-authored-by: Richard Feldman <oss@rtfeldman.com>
@mikayla-maki
mikayla-maki force-pushed the re-add-multi-workspace branch 3 times, most recently from b7f61f1 to d1cfad2 Compare February 11, 2026 23:25
@mikayla-maki
mikayla-maki enabled auto-merge (squash) February 12, 2026 00:56
@mikayla-maki mikayla-maki removed the run-bundling Configures PR to run the bundle step label Feb 12, 2026
@mikayla-maki
mikayla-maki merged commit ee3f40f into main Feb 12, 2026
27 checks passed
@mikayla-maki
mikayla-maki deleted the re-add-multi-workspace branch February 12, 2026 01:06
Veykril added a commit that referenced this pull request Feb 12, 2026
Caused by #48763 and
#48800

Release Notes:

- N/A *or* Added/Fixed/Improved ...
KyleBarton pushed a commit that referenced this pull request Feb 13, 2026
…ce entity lease (#49058)

Closes #49055

**Heads up**: This might be a naïve solution. I ran into the issue after
merging latest main into
#48896, and confirming that it
was unrelated to that PR and incoming from upstream.

Agent one-shot the fix, it works and tests pass. But I'm still wrapping
my head around the changes that led to the bug. I figured the breakage
is bad enough (I couldn't open devcontainers at all) to submit a
possibly naïve fix.

## Fix 

Hoists the `find_devcontainer_configs` call out of `new_dev_container`
and into the call site, where we already have a direct `&mut Workspace`
reference that doesn't go through the entity map. The computed configs
are passed into `new_dev_container` as an argument.

## What was happening

After #48800 ("Re-add MultiWorkspace"), `with_active_or_new_workspace`
nests a `Workspace` entity lease inside a `MultiWorkspace` entity lease.
The `OpenDevContainer` handler was also changed from async to sync in
the same PR, so `RemoteServerProjects::new_dev_container` now runs while
`Workspace` is leased. Inside `new_dev_container`, a
`WeakEntity<Workspace>::read_with` call tries to read `Workspace`
through the entity map, finds it already leased, and panics.

Release Notes:

- Fixed a panic when opening the dev container modal via the
`OpenDevContainer` action.
morgankrey pushed a commit that referenced this pull request Feb 19, 2026
Added 20 new actionable suggestions from merged PRs.

Processed ~60 PRs in this run:
- 20 actionable → queued
- ~39 unactionable (no docs needed)
- 1 failed (PR #48800: diff too large)
jasonsmithio pushed a commit to paddleboarddev/paddleboard that referenced this pull request May 31, 2026
Caused by zed-industries/zed#48763 and
zed-industries/zed#48800

Release Notes:

- N/A *or* Added/Fixed/Improved ...
pull Bot pushed a commit to Superoldman96/zed that referenced this pull request Jun 2, 2026
Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] ~~Unsafe blocks (if any) have justifying comments~~ (N/A)
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Corrects the value used for traffic light clearance/padding when
building with the macOS 26 SDK (or later). This was originally fixed in
zed-industries#45351 but regressed in zed-industries#48800 where `TRAFFIC_LIGHT_PADDING` was moved
to `ui/src/utils/constants.rs` but the local `build.rs` in `title_bar`
did not apply to the `ui` crate.

Release Notes:

- N/A
dandv pushed a commit to dandv/zed that referenced this pull request Jun 3, 2026
Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] ~~Unsafe blocks (if any) have justifying comments~~ (N/A)
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Corrects the value used for traffic light clearance/padding when
building with the macOS 26 SDK (or later). This was originally fixed in
zed-industries#45351 but regressed in zed-industries#48800 where `TRAFFIC_LIGHT_PADDING` was moved
to `ui/src/utils/constants.rs` but the local `build.rs` in `title_bar`
did not apply to the `ui` crate.

Release Notes:

- N/A
TomPlanche pushed a commit to TomPlanche/zed that referenced this pull request Jun 8, 2026
Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] ~~Unsafe blocks (if any) have justifying comments~~ (N/A)
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Corrects the value used for traffic light clearance/padding when
building with the macOS 26 SDK (or later). This was originally fixed in
zed-industries#45351 but regressed in zed-industries#48800 where `TRAFFIC_LIGHT_PADDING` was moved
to `ui/src/utils/constants.rs` but the local `build.rs` in `title_bar`
did not apply to the `ui` crate.

Release Notes:

- N/A
jonx pushed a commit to jonx/zed-aros that referenced this pull request Jul 17, 2026
Release Notes:

- Added agent panel restoration. Now restarting your editor won't cause
your thread to be forgotten.

---------

Co-authored-by: Anthony Eid <56899983+Anthony-Eid@users.noreply.github.com>
Co-authored-by: Eric Holk <eric@zed.dev>
Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
Co-authored-by: Anthony Eid <anthony@zed.dev>
Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
Co-authored-by: Cameron Mcloughlin <cameron.studdstreet@gmail.com>
jonx pushed a commit to jonx/zed-aros that referenced this pull request Jul 17, 2026
Caused by zed-industries#48763 and
zed-industries#48800

Release Notes:

- N/A *or* Added/Fixed/Improved ...
jonx pushed a commit to jonx/zed-aros that referenced this pull request Jul 17, 2026
…ce entity lease (zed-industries#49058)

Closes zed-industries#49055

**Heads up**: This might be a naïve solution. I ran into the issue after
merging latest main into
zed-industries#48896, and confirming that it
was unrelated to that PR and incoming from upstream.

Agent one-shot the fix, it works and tests pass. But I'm still wrapping
my head around the changes that led to the bug. I figured the breakage
is bad enough (I couldn't open devcontainers at all) to submit a
possibly naïve fix.

## Fix 

Hoists the `find_devcontainer_configs` call out of `new_dev_container`
and into the call site, where we already have a direct `&mut Workspace`
reference that doesn't go through the entity map. The computed configs
are passed into `new_dev_container` as an argument.

## What was happening

After zed-industries#48800 ("Re-add MultiWorkspace"), `with_active_or_new_workspace`
nests a `Workspace` entity lease inside a `MultiWorkspace` entity lease.
The `OpenDevContainer` handler was also changed from async to sync in
the same PR, so `RemoteServerProjects::new_dev_container` now runs while
`Workspace` is leased. Inside `new_dev_container`, a
`WeakEntity<Workspace>::read_with` call tries to read `Workspace`
through the entity map, finds it already leased, and panics.

Release Notes:

- Fixed a panic when opening the dev container modal via the
`OpenDevContainer` action.
jonx pushed a commit to jonx/zed-aros that referenced this pull request Jul 17, 2026
Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] ~~Unsafe blocks (if any) have justifying comments~~ (N/A)
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Corrects the value used for traffic light clearance/padding when
building with the macOS 26 SDK (or later). This was originally fixed in
zed-industries#45351 but regressed in zed-industries#48800 where `TRAFFIC_LIGHT_PADDING` was moved
to `ui/src/utils/constants.rs` but the local `build.rs` in `title_bar`
did not apply to the `ui` crate.

Release Notes:

- N/A
jolutz pushed a commit to jolutz/zed that referenced this pull request Aug 8, 2026
Release Notes:

- Added agent panel restoration. Now restarting your editor won't cause
your thread to be forgotten.

---------

Co-authored-by: Anthony Eid <56899983+Anthony-Eid@users.noreply.github.com>
Co-authored-by: Eric Holk <eric@zed.dev>
Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
Co-authored-by: Anthony Eid <anthony@zed.dev>
Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
Co-authored-by: Cameron Mcloughlin <cameron.studdstreet@gmail.com>
jolutz pushed a commit to jolutz/zed that referenced this pull request Aug 8, 2026
…ce entity lease (zed-industries#49058)

Closes zed-industries#49055

**Heads up**: This might be a naïve solution. I ran into the issue after
merging latest main into
zed-industries#48896, and confirming that it
was unrelated to that PR and incoming from upstream.

Agent one-shot the fix, it works and tests pass. But I'm still wrapping
my head around the changes that led to the bug. I figured the breakage
is bad enough (I couldn't open devcontainers at all) to submit a
possibly naïve fix.

## Fix 

Hoists the `find_devcontainer_configs` call out of `new_dev_container`
and into the call site, where we already have a direct `&mut Workspace`
reference that doesn't go through the entity map. The computed configs
are passed into `new_dev_container` as an argument.

## What was happening

After zed-industries#48800 ("Re-add MultiWorkspace"), `with_active_or_new_workspace`
nests a `Workspace` entity lease inside a `MultiWorkspace` entity lease.
The `OpenDevContainer` handler was also changed from async to sync in
the same PR, so `RemoteServerProjects::new_dev_container` now runs while
`Workspace` is leased. Inside `new_dev_container`, a
`WeakEntity<Workspace>::read_with` call tries to read `Workspace`
through the entity map, finds it already leased, and panics.

Release Notes:

- Fixed a panic when opening the dev container modal via the
`OpenDevContainer` action.
jolutz pushed a commit to jolutz/zed that referenced this pull request Aug 8, 2026
Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] ~~Unsafe blocks (if any) have justifying comments~~ (N/A)
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Corrects the value used for traffic light clearance/padding when
building with the macOS 26 SDK (or later). This was originally fixed in
zed-industries#45351 but regressed in zed-industries#48800 where `TRAFFIC_LIGHT_PADDING` was moved
to `ui/src/utils/constants.rs` but the local `build.rs` in `title_bar`
did not apply to the `ui` crate.

Release Notes:

- N/A
katopz added a commit to katopz/zed that referenced this pull request Aug 19, 2026
…alidation green (plan 024)

- zed_war_room_activity_bar bin (visual-tests feature): production-shaped
  offscreen window (MultiWorkspace + agent Sidebar + real panels via their
  ::load constructors) captured through the real Metal compositor in BOTH
  layouts. DEFAULT (agentic) settings honestly documented: Collab/Outline/
  Project/Git dock right while WarRoom docks left. CLASSIC layout
  (PanelLayout::EDITOR docks): left strip reads Project/Git/Collab/WarRoom/
  Outline - WarRoom directly behind Collab, asserted as dock data
  (panel_index_for_type: collab+1 == war_room, war_room+1 == outline, debug
  build so any priority collision would panic) and verified in pixels (52px
  icon pitch: collab@724, war_room@776, outline@828). Artifacts committed at
  .plans/024_war_room_activity_bar_{default,classic}{,_left}.png. Closes the
  last 'live-GUI remainder' GOAT item - no live session needed.
- test_action_namespaces regression fix (plan 013/024): actions! macros
  register globally at compile time, so the agent_board + war_room
  namespaces must appear in the expectation list; cargo test -p zed had
  never been run since they were added.
- Repo-wide ./script/clippy green (1041 crates, release/all-features/
  all-targets, deny-warnings) - it caught 2 redundant_clone lints in the new
  bin (fixed: last-use clones dropped). cargo test -p zed 79/79 single-
  threaded; upstream test_multi_workspace_session_restore (from upstream
  zed-industries#48800) flakes under default parallel threads only - passes isolated and
  single-threaded, tracked at .issues/014 (not a plan regression).
- Infra note: SD-card target dir had corrupt check caches (empty fingerprint
  dirs + 99% disk); healed debug by removing the 26 empty dirs and ran
  release clippy from an isolated NVMe CARGO_TARGET_DIR (removed after).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed The user has signed the Contributor License Agreement staff Pull requests authored by a current member of Zed staff

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants