Skip to content

Add Electron desktop shell and automated GitHub releases#536

Draft
fakechris wants to merge 13 commits into
mainfrom
feat/stage9-engine-default
Draft

Add Electron desktop shell and automated GitHub releases#536
fakechris wants to merge 13 commits into
mainfrom
feat/stage9-engine-default

Conversation

@fakechris

Copy link
Copy Markdown
Owner

What changed

  • add an Electron shell that reuses the daemon-served TurnkeyAI Control Center
  • package self-contained arm64 and x64 macOS DMGs with ad-hoc signing and SHA256 checksums
  • add a tested desktop:release helper that pushes the branch and an annotated desktop-v<version> tag
  • make tag pushes build, verify, and publish GitHub Release assets automatically
  • document local builds, release recovery, Gatekeeper behavior, and clean-machine acceptance

Why

TurnkeyAI needs to stay easy to debug through the existing web server while also being distributable as a macOS app without requiring an Apple Developer account. The release path should be repeatable from one explicit command and safe to rerun.

Validation

  • desktop tests: 11 passed
  • root typecheck and build: passed
  • desktop build: passed
  • arm64/x64 DMG signing and architecture verification: passed
  • mounted-DMG arm64 startup smoke: passed
  • full regression suite: 2966 passed, 33 skipped, 6 existing Direct CDP/role-runtime failures unrelated to this change
  • Standards and Spec reviews: passed

@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 69256f6d-8b63-431b-a1da-6b845a418a5b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/stage9-engine-default

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@gemini-code-assist gemini-code-assist Bot 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.

Code Review

This pull request introduces an Electron-based desktop shell (packages/desktop) for the TurnkeyAI Control Center, along with supporting daemon proof utilities, health check endpoints, and build/release scripts. It also enhances the mission completion evaluator, goal slot coverage, and observability snapshots to better handle unverified dimensions, browser failure buckets, and various edge cases. Additionally, the LLM adapter now sanitizes leading reasoning blocks, and the react-engine defaults to the engine path. A critical issue was identified in continuation-controller.ts where the helper function sliceUtf8 is used without being imported, which will cause a runtime ReferenceError.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

}
return sendCount - (currentRecorded ? 1 : 0) > 0;
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

high

The helper function sliceUtf8 is used here but it is not imported from ../tool-protocol or defined locally in this file. This will cause a runtime ReferenceError when attempting to slice the session continuation label. Please import sliceUtf8 from ../tool-protocol.

Suggested change
return sliceUtf8(label, 120);

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