fix: route mobile exec approvals to reviewer device#95175
Conversation
|
Codex review: needs maintainer review before merge. Reviewed June 21, 2026, 9:05 AM ET / 13:05 UTC. Summary PR surface: Source +80, Tests +459, Other +64. Total +603 across 30 files. Reproducibility: yes. Source inspection on current main shows no reviewer-device binding and foreground iOS server events ignore exec approval events; the PR body adds after-fix review-host and clean iPhone simulator proof. Review metrics: 1 noteworthy metric.
Stored data model Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land after a Gateway/approval owner confirms the reviewer-device model, keeping reviewer binding limited to trusted approval-runtime registration and operator.approvals clients. Do we have a high-confidence way to reproduce the issue? Yes. Source inspection on current main shows no reviewer-device binding and foreground iOS server events ignore exec approval events; the PR body adds after-fix review-host and clean iPhone simulator proof. Is this the best way to solve the issue? Yes, with maintainer sign-off. Threading the initiating Gateway device through chat run context into trusted approval-runtime registration is narrower than exposing backend approvals to all approval-scoped operators. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 8a7906c716d2. Label changesLabel justifications:
Evidence reviewedPR surface: Source +80, Tests +459, Other +64. Total +603 across 30 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
85afa3b to
ed761da
Compare
* fix: route mobile exec approvals to reviewer device * fix: surface iOS approval events in foreground * fix: forward codex approval reviewer device * test: harden approval reviewer device contract * test: cover reviewer approval fallback resolvers
Summary
operator.approvalscan see and resolve their own chat-triggered exec approvals.exec.approval.requestedandexec.approval.resolvedoperator events in the iOS foreground app, so mobile approval UI does not depend solely on APNs delivery/notification taps.Evidence
node scripts/run-vitest.mjs src/gateway/server-methods/approval-shared.test.ts src/gateway/server-methods/server-methods.test.ts src/agents/bash-tools.exec-approval-request.test.tspassed: 221 tests.xcodebuild test -project apps/ios/OpenClaw.xcodeproj -scheme OpenClaw -destination 'id=D13D9552-08B1-42B1-A444-D429D4BA655E' -only-testing:OpenClawTests/NodeAppModelInvokeTestspassed: 71 tests..agents/skills/autoreview/scripts/autoreview --mode localreported no accepted/actionable findings before commit.cd2ad47743f59af624433340c658e2055eca3f8b.pnpm validate:host-health,pnpm validate:security-controls -- --public-url https://openclaw-foundation-ios-review.westus2.cloudapp.azure.com, andpnpm validate:reviewer-setup -- --setup-payload-file ....Run the approval demo., saw the foregroundExec approval requiredprompt withAllow Once, approved it, and Chat repliedThe approval demo completed.src/gateway/server-channels.test.tslifecycle timeout cases; a focused Azure rerun of that file/project passed 40/40 tests.Known unrelated failure
The broad Azure changed gate currently appears blocked by an unrelated
src/gateway/server-channels.test.tstiming flake in thegateway-serverproject. The branch does not modify that file or the channel lifecycle code, and the focused rerun passed on Azure.