Skip to content

fix(migration): restore macOS startup and desktop return - #2880

Merged
bobleer merged 1 commit into
GCWing:mainfrom
bobleer:bob/fix-macos-migration-desktop-restart
Sep 8, 2026
Merged

fix(migration): restore macOS startup and desktop return#2880
bobleer merged 1 commit into
GCWing:mainfrom
bobleer:bob/fix-macos-migration-desktop-restart

Conversation

@bobleer

@bobleer bobleer commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Summary

Fix two legacy migration regressions: macOS Desktop could exit immediately after handing off to Data Migrator, and development builds closed after choosing Do not remind me or Remind me later instead of returning to Desktop.

  • Implement macOS writer-process inventory using the system ps, preserving application paths with spaces and reporting inspection failures explicitly.
  • Persist the onboarding choice before restarting Desktop. Development launchers supervise the migration handoff and restore Desktop with its frontend server and, for desktop:dev, Rust hot reload.
  • Add focused regression tests and document the development handoff workflow.

Type and Areas

Type: Bug fix / regression fix

Areas: Desktop/Tauri, Data Migrator, local migration service, development scripts

Motivation / Impact

Previously, macOS process inspection returned an unimplemented error during migrator bootstrap, after Desktop had already exited. Separately, all Debug builds deliberately skipped restarting Desktop when migration was dismissed or completed. The development supervisor now waits for a matching migration completion handoff and relaunches the development host with the handled run ID, avoiding another onboarding prompt for that return.

Verification

  • cargo test -p openbitfun-legacy-migration --lib handoff::tests — 9 passed, including real macOS process inventory.
  • cargo test -p openbitfun-data-migrator --lib — 8 passed, including saved-choice ordering, restart failure visibility, and matching development handoffs.
  • node --test scripts/desktop-dev-migration.test.mjs scripts/data-migrator-tauri-build.test.mjs scripts/frontend-workbench-dev-baseline.test.mjs scripts/prepare-dsh-profile.test.mjs — 21 passed.
  • node --check scripts/dev.cjs, pnpm run fmt:rs, pnpm run check:repo-hygiene, and git diff --check — passed.
  • pnpm run desktop:dev — rebuilt successfully on macOS; native startup logs confirmed main-window creation, display, and frontend page-load completion. The reporter also confirmed the initial macOS startup fix.

The new dismissal-to-relaunch behavior is covered by Rust and Node regression tests; it was not repeated manually through the migration UI. Windows, Linux, packaged release builds, remote workspaces, remote control, Peer Device Mode, and Detached Dispatch were not exercised.

Reviewer Notes

AI-assisted implementation; testing level: focused automated tests plus local macOS startup verification. The temporary restart channel is Debug-only and supplied by the development launcher. Persisted migration formats and remote protocols are unchanged. Release builds continue to restart the trusted sibling Desktop executable. No migration of user data was performed during verification.

Checklist

  • This PR is focused and does not include secrets, temporary prompts, generated scratch files, or unrelated artifacts.
  • Relevant verification is recorded above, or skipped checks are explained.
  • User-facing strings, docs, and locales are updated where applicable.

@bobleer
bobleer merged commit b4809fa into GCWing:main Sep 8, 2026
13 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.

1 participant