Skip to content

fix(desktop): first-launch resilience - #27

Merged
stretchcloud merged 1 commit into
mainfrom
fix/desktop-first-launch
Jul 7, 2026
Merged

fix(desktop): first-launch resilience#27
stretchcloud merged 1 commit into
mainfrom
fix/desktop-first-launch

Conversation

@stretchcloud

Copy link
Copy Markdown
Owner

Summary

  • Raises the desktop sidecar boot deadline 30s → 90s. On the very first launch Gatekeeper verifies the entire ~400 MB bundle; on slower machines that alone can exceed 30s, producing a spurious "server did not start" dialog even though the server was about to come up.
  • After 15s the splash now explains the wait ("first launch can take a minute while macOS verifies the app") instead of looking hung.
  • The startup-failure dialog now embeds the recent tail of ~/.campfire/logs/desktop-server.log, so failure reports are actionable.
  • A second app instance now logs that it is deferring to the running one before exiting.

Why

Follow-up hardening from real-world testing of the v0.4.0 DMG install flow (quarantined download → /Applications → first launch).

Testing

  • desktop bun tests green (6 tests)
  • Electron smoke run green on the spawn path (sidecar boot → UI load → clean teardown)
  • Verified the released v0.4.0 DMG installs and runs from /Applications after the documented Gatekeeper step (cold boot ~10-22s, warm ~3s)

- Raise the sidecar boot deadline from 30s to 90s: on the first launch
  Gatekeeper verifies the whole ~400MB bundle, which can exceed 30s on
  slower machines and produced a spurious 'server did not start' dialog
- Update the splash after 15s to explain that the first launch takes
  longer while macOS verifies the app
- Include the recent sidecar log tail in the startup-failure dialog so
  error reports are actionable
- Log when a second instance defers to the one already running
@stretchcloud
stretchcloud merged commit af1a77d into main Jul 7, 2026
1 check passed
@stretchcloud
stretchcloud deleted the fix/desktop-first-launch branch July 7, 2026 21:14
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