Skip to content

LookInside 3.0: Swift Host with activation built in - #38

Merged
Lakr233 merged 3 commits into
mainfrom
swift-host
Oct 7, 2026
Merged

Lakr233 merged 3 commits into
mainfrom
swift-host

Conversation

@Lakr233

@Lakr233 Lakr233 commented Oct 7, 2026 •

Copy link
Copy Markdown
Member

LookInside 3.0 replaces the Objective-C Mac app with a Swift rewrite. Do not merge this on its own; see Merge order.

What changes for users

  • Activation runs inside the app. The separate activation helper is no longer installed, launched or updated. Existing activations carry over, because the app reads the same state file and keychain key. The first time 3.0 signs with that key, macOS asks for the login keychain password; choose Always Allow. Going back to 2.3.x keeps working.
  • Requires macOS 14 or later.
  • The MCP server is removed, along with the bundled lookinside-mcp CLI.
  • Gesture Debug and Attach to App on Device carry over from 2.3.x.

What changes in the code

  • Host, LookinCore models and activation are Swift. Packages/LookInsideActivation holds the activation code; Packages/LookInsideHostCore holds the shared logic.
  • Our own frame transport and usbmuxd client replace the vendored Peertalk. The bytes on the wire are unchanged, so Servers 0.2.9 and earlier still connect. LookInside Server 1.0.0 is supported.
  • Sources/ mirrors LookInside-Server 1.0.0.
  • ReactiveObjC, ShortCocoa, Peertalk, the MCP bridge and the bundled LookinServer sources are deleted.
  • Attach to App on Device runs on the new usbmuxd client. Its frames were cross-checked against the injector's own frame decoder in both directions, and the JSON wire check passes.
  • Release builds are checked for debug overrides and scanned for private keys. CI builds the app, runs the gesture-model and activation tests, and runs gitleaks.

Verified locally (Xcode 27.0)

  • Debug and Release builds succeed. The Release build is free of debug overrides.
  • Activation package: 200 tests pass. Host core: 115 pass. Security gates, dashboard, Xcode view hierarchy and launch/toolbar/read suites pass. Gesture-model tests pass.
  • LookInside-Server 1.0.0 suites pass, including the iOS Simulator run.

Not yet verified

  • The UI end-to-end dumps and the side-by-side screenshot comparison. They were skipped because the test Mac was locked.
  • Upgrading a 2.3.12 user (the keychain prompt) on a VM.
  • Attach to App on Device against a device running the injector app.
  • Gesture Debug on a device.

Merge order

  1. Merge together with the parent repository change that removes the Auth helper and mcp_ref from the release train. This release.yml ignores mcp_ref and no longer stages the helper into Web. The old train would still sign and publish a helper for every app release.
  2. LookInside-Release removes the helper signing workflow, and LookInside-Web adds the trial rate limit. Both can merge independently.
  3. Do not tag release/app/3.0.0 until the items under "Not yet verified" pass.

🤖 Generated with Claude Code

Lakr and others added 3 commits October 7, 2026 21:59
LookInside 3.0 is a rewrite of the Mac app in Swift.

- Activation runs inside the app (Packages/LookInsideActivation). The
  separate lookinside-auth-server helper is no longer installed, launched
  or updated. Existing activations carry over: the app reads the same
  state file and keychain key, so the first signing asks for the login
  keychain password once (choose Always Allow), and going back to 2.3.x
  keeps working.
- The connection to inspected apps uses our own frame transport and
  usbmuxd client instead of the vendored Peertalk. The bytes on the wire
  are unchanged, so Servers 0.2.9 and earlier still connect, and
  LookInside Server 1.0.0 is supported.
- LookinCore is mirrored from LookInside-Server 1.0.0 (C headers and
  Swift); the Objective-C Host, ReactiveObjC, ShortCocoa and the bundled
  LookinServer sources are gone.
- Gesture Debug and Attach to App on Device are carried over, the latter
  on the new usbmuxd client.
- The MCP bridge and the bundled lookinside-mcp CLI are removed.
- Requires macOS 14 or later.
- Release builds are checked for debug overrides and scanned for private
  keys; CI runs gitleaks.

BREAKING CHANGE: requires macOS 14; the MCP server is no longer included.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The app target hard-coded MARKETING_VERSION = 2.3.13, which hid the
xcconfig default (3.0.0). Release builds pass the version on the command
line, so only local builds were affected.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Lakr233
Lakr233 merged commit 552a73c into main Oct 7, 2026
2 checks passed
@Lakr233
Lakr233 deleted the swift-host branch October 7, 2026 14:17
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