← Back to PRs

#23636: iOS: normalize watch quick actions and fix test signing

by mbelinky open 2026-02-22 14:43 View on GitHub →
app: ios agents maintainer size: M
## Summary - normalize `watch.notify` payloads in iOS before delivery (trim fields, cap actions, derive priority/risk, add default quick actions for prompt flows) - extend mirrored iPhone watch-prompt notifications to support up to 4 quick actions and parse indexed action taps - fix iOS build/test blockers encountered during verification (`ntohl` usage, missing test-target signing config, missing `OpenClawKit` import in gateway security test) ## Testing - `cd apps/ios && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination 'id=00008130-000630CE0146001C' -only-testing:OpenClawTests/NodeAppModelInvokeTests test` - suite runs, but currently fails in existing test assertions unrelated to this PR scope (`handleInvokeCanvasCommandsUpdateScreen`, `watchReplyQueuesWhenGatewayOffline`) <!-- greptile_comment --> <h3>Greptile Summary</h3> This PR normalizes `watch.notify` payloads before delivery and extends iPhone watch-prompt notifications to support up to 4 quick actions. The changes include: - Replaced deprecated `ntohl` usage with Swift's `UInt32(bigEndian:)` initializer for network byte order conversion - Added comprehensive normalization for watch notification parameters (trimming fields, capping actions at 4, deriving priority/risk bidirectionally) - Implemented default quick actions for prompt flows (approval-specific and general defaults) - Extended notification action handling from 2 to 4 actions with indexed action identifier parsing - Fixed test target signing configuration by adding code signing settings to `OpenClawTests` - Added missing `OpenClawKit` import in gateway security tests The implementation maintains backward compatibility by preserving legacy primary/secondary action keys while adding indexed keys for actions 0-3. <h3>Confidence Score: 5/5</h3> - This PR is safe to merge with minimal risk - The changes are well-structured with comprehensive test coverage for the new normalization logic and action handling. The implementation correctly handles edge cases (empty strings, whitespace, nil values), maintains backward compatibility with legacy action keys, and properly caps actions at the platform limit of 4. The `ntohl` replacement is the correct Swift idiom, and the test signing configuration fix resolves a legitimate build issue. - No files require special attention <sub>Last reviewed commit: 8fd4518</sub> <!-- greptile_other_comments_section --> <!-- /greptile_comment -->

Most Similar PRs