Skip to content

(9/9) Launch and restart the packaged Electron app in isolation - #93

Draft
AntonNiklasson wants to merge 1 commit into
an/feedback-loops/8/visual-artifactsfrom
an/feedback-loops/9/packaged-smoke
Draft

AntonNiklasson wants to merge 1 commit into
an/feedback-loops/8/visual-artifactsfrom
an/feedback-loops/9/packaged-smoke

Conversation

@AntonNiklasson

@AntonNiklasson AntonNiklasson commented Nov 13, 2026 •

Copy link
Copy Markdown
Owner

Summary

Add pnpm test:desktop and run it in macOS CI. Launch the actual unsigned directory package twice, verify app.isPackaged and its shipped SQLite addon, read persisted data across restart, and confirm both embedded servers close on quit. Isolate Electron profile/config/cache, disable update downloads for the test, and restore/probe the host Node addon after packaging even on failure.

Validation

Local stack head 1d1d925 passed:

  • pnpm typecheck, pnpm test (171 unit/integration tests)
  • pnpm lint (including four boundary checks), pnpm fmt:check
  • pnpm test:e2e (five Chromium scenarios)
  • pnpm test:desktop (packaged macOS arm64 launch, restart, SQLite and shutdown)

These are local results; GitHub checks are reported separately.

How to review

Read harness/src/app.desktop.ts, then scripts/desktop-smoke.mjs. The desktop main-process changes only provide profile isolation and an update opt-out. Verified locally on macOS arm64; signing, installer/updater delivery and other platform launches are not covered.

Visuals

First-launch and restart PNGs plus packaged-process diagnostics are attached to desktop-report and the packaged-desktop-feedback CI artifact.

Related

Part of #84. Prerequisite: #83.

This PR is part of a stack; review and merge from the bottom upward. Each PR targets the preceding branch.

  1. #85: Use the sync package for all desktop GitHub access
  2. #86: Add a deterministic GitHub simulator
  3. #87: Run an isolated interactive status board
  4. #88: Verify renderer polling through the real sync engine
  5. #89: Show persisted sync health and stale-data warnings
  6. #90: Exercise conflict, review, rate-limit and partial-outage states
  7. #91: Guard clients against bypassing the public sync API
  8. #92: Attach named visual states to browser reports
  9. #93: Launch and restart the packaged Electron app in isolation ← This PR

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