Skip to content

feat(companion): add iPhone Buddy app and watch sync#218

Open
fengye404 wants to merge 19 commits into
wxtsky:mainfrom
fengye404:codex/apple-companion-prototype
Open

feat(companion): add iPhone Buddy app and watch sync#218
fengye404 wants to merge 19 commits into
wxtsky:mainfrom
fengye404:codex/apple-companion-prototype

Conversation

@fengye404
Copy link
Copy Markdown

@fengye404 fengye404 commented Jun 4, 2026

Summary

This PR adds Code Island Buddy for iPhone and Apple Watch, plus the Mac-side publishing bridge needed to mirror Code Island sessions outside the Mac. It includes the iPhone app, Live Activity / Dynamic Island / Lock Screen / StandBy surfaces, Apple Watch app and widget, Bluetooth/local-network sync from the Mac, tests, smoke scripts, and App Store release documentation.

The iOS app has already been successfully published on the App Store as a free app available globally: https://apps.apple.com/us/app/code-island-buddy/id6773881129

The China mainland App Store storefront is temporarily unavailable because the required ICP filing is not ready yet.

Screenshots

iPhone Buddy Dynamic Island StandBy
iPhone Buddy question flow Dynamic Island waiting for answer StandBy long message preview
Watch Status Watch Message Watch Actions Watch Activity
Apple Watch status page Apple Watch message page Apple Watch actions page Apple Watch activity page

The Mac surface is Settings -> Buddy, where this PR adds and renames the iPhone Buddy broadcasting controls. A Mac screenshot is not embedded because there is no committed clean Mac settings screenshot in the branch.

Changes

Added

  • iPhone Buddy app with local Mac discovery, demo mode, and session mirroring.
  • Live Activity, Dynamic Island, Lock Screen, and StandBy views for Code Island session status.
  • Apple Watch app and watchOS widget for status, messages, actions, and activity views.
  • Mac-side local-network and Bluetooth publishing for iPhone Buddy background refresh.
  • Shared companion payload models, including question details and prioritized multi-session previews.
  • App Store metadata, review notes, privacy policy draft, device testing guide, screenshots, and smoke scripts.

Changed

  • User-facing Apple companion copy now uses iPhone Buddy / Buddy naming.
  • iPhone, Live Activity, StandBy, and Watch rendering handle multiple prioritized sessions.
  • iOS project metadata is prepared for public 1.0.0 build 4.
  • Branch has been updated by merging upstream main before opening this PR.
  • README files now mention the free and open-source Code Island Buddy App Store release.

Compatibility Notes

  • Existing Mac app behavior remains unchanged unless the new Buddy broadcast setting is enabled.
  • The iOS/watchOS app code is contained under ios/CodeIslandCompanion/; product docs and screenshots are contained under apple-companion/.
  • The Mac-side integration is limited to Settings -> Buddy, AppState payload publishing, and the local-network/Bluetooth publisher classes.
  • This PR does not move or reorganize existing Mac source directories.

Testing

  • git diff --check
  • swift test
  • swift test --filter AppleCompanionPayloadTests
  • swift test --filter 'AppleCompanionPayloadTests|AppStatePrimarySourceTests|AppStateQuestionFlowTests'
  • swift test --filter 'AppleCompanionPayloadTests|AppStatePrimarySourceTests|AppStateQuestionFlowTests|JSONLTailerTests|ESP32ProtocolTests'
  • scripts/check-companion-ui-regressions.sh
  • scripts/smoke-companion.sh
  • scripts/smoke-companion-ui.sh
  • StandBy screenshot captured from the iPhone simulator in landscape orientation and added to apple-companion/images/.

Release Notes

This PR does not include a signed Mac DMG artifact. The final Mac DMG should be produced by the maintainer after merge using the repository's Developer ID certificate, Apple notarization profile, Sparkle update signing key, and GitHub Release permissions.

nguyenvanduocit pushed a commit to nguyenvanduocit/CodeIsland that referenced this pull request Jun 5, 2026
No new upstream code changes since f878234 (May 31). Documents
three new items: issue wxtsky#216 (third T-057 report), issue wxtsky#217
(global shortcuts, not applicable), PR wxtsky#218 (iOS companion,
out of scope). Corrects prior scout error noting issues as disabled.

https://claude.ai/code/session_01TEbc5ZfFBaJNtzVRnMPdnT
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