Skip to content

fix(workspace): add an entry point to reopen the local workspace - #891

Merged
xintaofei merged 5 commits into
spacering-net:mainfrom
ker2xu:fix/workspace-open-local-entry
Oct 9, 2026
Merged

xintaofei merged 5 commits into
spacering-net:mainfrom
ker2xu:fix/workspace-open-local-entry

Conversation

@ker2xu

@ker2xu ker2xu commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Summary

After reopening a saved remote-only session, there was no explicit workspace action to open the local workspace. This adds an entry point that works even when the remote server is unavailable or its credentials have expired.

  • Add Open local workspace to desktop Quick actions and the macOS Window menu.
  • Route the action through the local shell transport and a dedicated desktop command.
  • Unminimize, show and focus the local window, and include it in the remembered session for the next launch.
  • Add the action and failure message to all ten locales.

Validation

  • Standalone frontend regressions: 20 tests passed, including local access with an unavailable remote transport and hiding the action in web mode.
  • Standalone Rust workspace model/database tests: 18 passed.
  • Frontend lint/static build and Rust clippy for all targets with test-utils passed.
  • Native macOS checks on the combined build covered remote-only startup, local access while offline or credentials had expired, and restoring the opened local window on the next launch.
  • This branch and the remote recovery branch each start from the same baseline and merge cleanly with each other.
  • GitHub Test workflow concluded action_required with zero jobs executed; CI validation is pending.

Related work

Companion changes: Dock activation and remote restoration and recovery.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The implementation consistently uses the local transport, reuses established window restoration behavior, and includes focused regression coverage.

0 open findings

What changed in this PR

Adds a reliable desktop entry point for reopening the local workspace from remote-only sessions.

Changes:

  • Routes local workspace opening through the local shell transport.
  • Adds Quick Actions and macOS Window menu entries.
  • Adds localization and regression coverage.
File Description
src/​lib/​remote-workspace.ts Adds the local workspace API.
src/​lib/​api-popup-windows.test.ts Verifies local transport routing.
src/​components/​layout/​quick-actions-dropdown.tsx Adds the desktop Quick Action.
src/​components/​layout/​quick-actions-dropdown.test.tsx Tests visibility and routing.
src-tauri/​src/​lib.rs Registers the command.
src-tauri/​src/​commands/​windows.rs Shows, focuses, and remembers the local window.
src-tauri/​src/​app_menu.rs Adds the macOS Window menu entry.
src/​i18n/​messages/​en.json Adds English messages.
src/​i18n/​messages/​zh-CN.json Adds Simplified Chinese messages.
src/​i18n/​messages/​zh-TW.json Adds Traditional Chinese messages.
src/​i18n/​messages/​ja.json Adds Japanese messages.
src/​i18n/​messages/​ko.json Adds Korean messages.
src/​i18n/​messages/​es.json Adds Spanish messages.
src/​i18n/​messages/​de.json Adds German messages.
src/​i18n/​messages/​fr.json Adds French messages.
src/​i18n/​messages/​pt.json Adds Portuguese messages.
src/​i18n/​messages/​ar.json Adds Arabic messages.

🧠 Review effort: Balanced


Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.

…ends

A remote window whose connection cannot be loaded, or whose credentials
expired, renders a notice in place of the whole workspace, so Quick
actions is not there to reach the local workspace from, and Windows has
no application menu to fall back on. Without the companion recovery
change, a server that stays down also lands here once the event socket
gives up.

Both notices now carry an "Open local workspace" button on the desktop.
A failure is said under the button: the window's toaster belongs to the
workspace the notice replaces.
…ndows

In the local workspace the row could only focus the window it was picked
from. Cover the failure toast in the tests as well.
@xintaofei

Copy link
Copy Markdown
Collaborator

codeg work task 292 is done — #891 (6 files, +265/-20).

@xintaofei
xintaofei merged commit 1b68ee1 into spacering-net:main Oct 9, 2026
7 checks passed
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.

3 participants