Skip to content

Move a project to a new workspace from the chat sidebar - #304

Merged
BunsDev merged 6 commits into
mainfrom
sidebar-new-workspace
Oct 19, 2026
Merged

BunsDev merged 6 commits into
mainfrom
sidebar-new-workspace

Conversation

@BunsDev

@BunsDev BunsDev commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

Val asked for a way to make new workspaces from the chat sidebar.

The gap

A project's ⋯ menu offers Move to ‹workspace› only once a second workspace exists. With just the default workspace (Personal), the only way to start another one was Space's ⋯ Space options → New workspace, which is a different screen.

What changes

Each project's ⋯ menu in the chat sidebar gets Move to new workspace….

  • It opens a name field right under the project row.
  • Enter makes the workspace and moves the project's notes into it, in one step. The sidebar then groups projects under their workspaces, as it already did with two or more.
  • Escape, or leaving the field, makes nothing.

One step in main. The new command project:new-workspace ({ projectId, name }) calls NotesStore.moveProjectToNewWorkspace.

  • It links the project's notes, makes the workspace, and moves them.
  • If the move fails, it removes the new, empty workspace again and reports the move's error. A failed move never leaves a stray workspace.
  • An empty name is refused ("Name the workspace.").

It's registered beside project:workspace in both index.ts and commands.ts. The offline Store demo refuses it like its other Space commands. The Space path is unchanged.

Tests, red first

  • test/notes-projects.test.ts: the project moves into the new workspace, and its notes folder moves from Personal/ to the new workspace. A forced move failure leaves only the original workspaces and no new folder. An empty name is refused. It failed to compile before the method existed (TS2339).
  • e2e/sidebar-workspaces.spec.ts, new test:
    • With only the default workspace, Escape makes nothing.
    • Enter with "Clients" makes one group named Clients holding the project, and the notes marker is at notes/Clients/<project>/ and gone from Personal/.
    • Red: waiting for locator('[data-testid="project-new-workspace"]'), a click timeout.
    • The first red attempt was not valid: the disk filled up (ENOSPC) while the worktree's Electron binary was installing. It was reinstalled, and a test that already passes on main was run as a control (1 passed) before the red was taken again.

Checks on 016c329

macOS (Apple Silicon), Node 24.18.1, pnpm 10.34.5. The load average was about 50–316 during these runs.

Command Result
pnpm typecheck passed
pnpm build (desktop) passed
pnpm --filter @modex/desktop test 1,525 passed, 16 skipped of 1,541 (existing skips); second stage 21/21
pnpm --filter @modex/store-desktop test 16/16
e2e sidebar-workspaces + notes-tree 5/5
e2e app + layout + project-remove 30/30

Not run locally: the full pnpm test:e2e. CI runs it.

Coven-Harness: Claude Code / claude-opus-5-5

A project's menu offered "Move to <workspace>" only once a second
workspace existed, so with just the default workspace the only way to
start another was Space's options menu.

The menu now has "Move to new workspace...". Its name field makes the
workspace and moves the project's notes into it in one step
(project:new-workspace); if the move fails, the new, empty workspace is
removed again. Escape or leaving the field makes nothing.

Coven-Harness: Claude Code / claude-opus-5-5
@vercel

vercel Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
modex Ready Ready Preview Oct 19, 2026 5:55am UTC

Request Review

@github-code-quality

github-code-quality Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Code coverage overview

Languages: TypeScript

TypeScript / code-coverage-agent

main f85a5b3 sidebar-new-workspac... 0c3e91c +/-
63% 63% 0%

ℹ️ Calculations represent line coverage. Results may change as calculations are updated.


Updated October 19, 2026 06:29 UTC

Coven-Harness: Claude Code / claude-opus-5-5
Coven-Harness: Claude Code / claude-opus-5-5
Both entries kept in docs/status.md.

Coven-Harness: Claude Code / claude-opus-5-5
Both entries kept in docs/status.md.

Coven-Harness: Claude Code / claude-opus-5-5
@BunsDev
BunsDev merged commit f435065 into main Oct 19, 2026
13 checks passed
@BunsDev
BunsDev deleted the sidebar-new-workspace branch October 19, 2026 06:30
BunsDev added a commit that referenced this pull request Oct 19, 2026
Both entries kept in docs/status.md.

Coven-Harness: Claude Code / claude-opus-5-5
BunsDev added a commit that referenced this pull request Oct 19, 2026
Brings in #304 (move to a new workspace) and #311 (CF-5 retained full log).

Coven-Harness: Claude Code / claude-opus-5-5

This branch was successfully deployed

1 active deployment
Preview — 0c3e91cc Deployed Oct 19, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant