ReviewOS

also looking at this

craft-native/craft

fix(ios): preserve busy errors through dispatch

#270
Merged glennmichael123 wants to merge codex/ios-busy-dispatch into main
3 files +33 -13
10 days ago

Summary

  • preserve BridgeError.Busy when iOS narrows a handler's inferred error set
  • centralize the existing handler-error narrowing so pool-refusal tests exercise the same conversion as dispatch
  • add a dispatcher-level regression assertion proving BUSY reaches the page rather than becoming NATIVE_CALL_FAILED

Closes #242.

Follow-up to #267: its enum and 27 production refusal paths were correct, but ios_dispatch.asBridgeError did not recognize the new variant and collapsed it through the catch-all.

Fail-first proof

With only the dispatcher assertion added, zig build test:ios failed exactly as expected:

expected error.Busy, found error.NativeCallFailed

Verification

  • zig fmt --check src/bridge_error.zig src/ios_dispatch.zig src/bridge_mobile_imagepicker.zig
  • zig build test:ios --summary all (9/9 steps; 1,217 pass, 12 skip)
  • normal SDK gate on current main before this patch: 566 pass, 0 fail

3 changed files on the files tab, with 0 review threads.

Sign in to comment on this pull request.