Skip to content

Restore iOS widgets/App Intent + fix CloudKit relay voice fidelity & dedup - #8

Merged
malpern merged 1 commit into
mainfrom
fix/restore-ios-widgets-and-relay-fidelity
Jun 30, 2026
Merged

Restore iOS widgets/App Intent + fix CloudKit relay voice fidelity & dedup#8
malpern merged 1 commit into
mainfrom
fix/restore-ios-widgets-and-relay-fidelity

Conversation

@malpern

@malpern malpern commented Jun 30, 2026

Copy link
Copy Markdown
Owner

A code review of the CloudKit-relay PR (#7) found its squash accidentally dropped the iOS widget/control/Siri feature set, plus three relay correctness issues. This restores them and fixes the relay.

Restored (regression from #7)

  • ReadTextIntent + VoxClawShortcuts (Siri/Spotlight/Shortcuts "Read Text Aloud")
  • ReadClipboardControl (Control Center) + ReadClipboardWidget (home screen) back in the bundle, with WidgetBridge/ReadClipboardIntent
  • handlePendingClipboardRead + scenePhase wiring so the control/widget App-Group hand-off triggers a read

Relay fixes

  • Voice fidelity: makeRelayEngine now accepts rate + instructions; both receiver paths (CloudKit wake + LAN) pass the sender's values, so relayed speech matches the source's speed/prosody.
  • Dedup watermark: advances to the newest fetched sentAt (sender clock) instead of receiver Date.now, fixing skipped/duplicated messages from clock skew or the fetch->watermark race. Payload now carries sentAt.
  • Efficiency: CloudSpeechRelay caches zoneEnsured so steady-state send() skips the redundant zone-save round-trip.

Verification

  • swift build clean; iOS app + widget extension BUILD SUCCEEDED; 279/279 tests pass

🤖 Generated with Claude Code

…dedup

The CloudKit-relay PR (#7) accidentally dropped the iOS widget/control/Siri
feature set when its branch was squashed. Restore them, and fix three relay
issues found in review.

Restore (regression from #7):
- ReadTextIntent + VoxClawShortcuts (Siri/Spotlight/Shortcuts "Read Text Aloud")
- ReadClipboardControl (Control Center) + ReadClipboardWidget (home screen)
  back into the widget bundle, with WidgetBridge/ReadClipboardIntent
- handlePendingClipboardRead + scenePhase wiring so the control/widget's
  App Group hand-off actually triggers a read

Relay fixes:
- makeRelayEngine now accepts rate + instructions; both receiver paths
  (CloudKit wake + LAN) pass the sender's values so relayed speech matches
  the source's speed/prosody instead of using the receiver's defaults.
- Dedup watermark advances to the newest fetched record's sentAt (sender
  clock) instead of the receiver's Date.now, which could skip records written
  during the fetch->watermark window and was sensitive to clock skew. Payload
  now carries sentAt.
- CloudSpeechRelay caches a zoneEnsured flag so steady-state send() no longer
  does a redundant zone-save round-trip on every relayed message.

Verified: swift build clean, iOS app + widget extension BUILD SUCCEEDED
(AppIntents training re-registers the Read shortcut), 279/279 tests pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@malpern
malpern merged commit 1225fa7 into main Jun 30, 2026
2 checks passed
@malpern
malpern deleted the fix/restore-ios-widgets-and-relay-fidelity branch June 30, 2026 03:45
malpern added a commit that referenced this pull request Jun 30, 2026
)

README, SKILL.md, and CHANGELOG were missing the features added in #7/#8.

- README: cross-device iCloud relay in the pitch + Features; expanded iOS
  section (Control Center control, home-screen widget, Siri/Shortcuts, Live
  Activity, TestFlight, relay receiver + privacy note); /ack example; bumped
  tech stack to Swift 6.4 and added CloudKit/WidgetKit/App Intents/ActivityKit;
  fixed a user-specific absolute path in the iOS build instructions.
- SKILL.md: documented the POST /ack endpoint (project_id required, agent_id
  scopes to one agent, relays to LAN peers, {"status":"acknowledged"}); added
  /ack to the 404 endpoint list. Verified semantics against HTTPRequestParser
  and the relayAck path.
- CHANGELOG: added an Unreleased section for the relay + iOS additions and the
  two relay fixes (voice fidelity, dedup).

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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