Home

mweinbach / agent-coworker

publicmweinbach/agent-coworker
Overview Code History Branches Pull requestsIssuesInsights
main
HomeOverview Code PRsIssues

fix: refresh mobile pairing state

4 months ago

216c15e
Authored
mweinbach5/23/2026, 10:19:08 PM
Fix the Expo web simulator LogBox crash by skipping the native LogBox stack patch on web and adding a web module stub.

Clean up the mobile glass header control so the Expo header action is a single Pressable with non-interactive glass skin, and update the workspace menu trigger to use Expo Router Link.Trigger without nested button semantics.

Add a dev QR paste path for simulator pairing, web-safe mobile headers, missing web dependencies, and desktop remote-access trusted-phone refresh polling so Electron notices phones paired through the running H3 endpoint.

Verification: bun test test/mobile.header-glass-button.test.ts test/mobile.pairing-scan-handler.test.ts test/mobile.logbox-polyfill.test.ts apps/desktop/test/mobile-relay-bridge.test.ts apps/desktop/test/mobile-relay-ipc.test.ts apps/desktop/test/remote-access-page.test.ts; bun run app:mobile:typecheck; bun run typecheck; bun run docs:check; bunx expo export --platform ios --output-dir /tmp/cowork-mobile-export; git diff --check; bun test --max-concurrency 1.

Parent8614b52

31 files changed
  • apps/desktop/electron/ipc/mobileRelay.ts+10−0
  • apps/desktop/electron/preload.ts+6−0
  • apps/desktop/electron/services/mobileRelayBridge.ts+44−0
  • apps/desktop/electron/services/serverManager.ts+27−0
  • apps/desktop/src/lib/desktopApi.ts+2−0
  • apps/desktop/src/lib/desktopCommands.ts+6−0
  • apps/desktop/src/lib/webAdapter.ts+3−0
apps/desktop/src/ui/settings/pages/RemoteAccessPage.tsx
+29
−0
  • apps/desktop/test/helpers/mockDesktopCommands.ts+1−0
  • apps/desktop/test/mobile-relay-bridge.test.ts+39−0
  • apps/desktop/test/mobile-relay-ipc.test.ts+79−0
  • apps/desktop/test/remote-access-page.test.ts+5−0
  • apps/mobile/bun.lock+74−58
  • apps/mobile/package.json+2−0
  • apps/mobile/src/app/(app)/(tabs)/settings/_layout.tsx+4−2
  • apps/mobile/src/app/(app)/(tabs)/settings/index.tsx+5−1
  • apps/mobile/src/app/(app)/(tabs)/skills/_layout.tsx+4−2
  • apps/mobile/src/app/(app)/(tabs)/threads/_layout.tsx+4−2
  • apps/mobile/src/app/(app)/(tabs)/workspace/_layout.tsx+4−2
  • apps/mobile/src/app/(app)/(tabs)/workspace/index.tsx+2−2
  • apps/mobile/src/app/(app)/_layout.tsx+4−2
  • apps/mobile/src/app/(pairing)/_layout.tsx+4−2
  • apps/mobile/src/app/(pairing)/index.tsx+1−0
  • apps/mobile/src/app/(pairing)/scan.tsx+61−3
  • apps/mobile/src/components/ui/header-glass-button.tsx+55−37
  • apps/mobile/src/components/ui/sf-symbol.tsx+2−1
  • apps/mobile/src/polyfills/logbox-install.web.ts+1−0
  • apps/mobile/src/polyfills/logbox.ts+1−1
  • test/mobile.header-glass-button.test.ts+30−0
  • test/mobile.logbox-polyfill.test.ts+23−1
  • test/mobile.pairing-scan-handler.test.ts+25−0