ReviewOS

also looking at this

craft-native/craft

docs(ios): retire three refusal notes that outlived their refusals

#112
Closed chris wants to merge docs/retire-stale-refusal-notes into main
2 files +14 -9
packages/zig/src/bridge_mobile_display.zigmodified+4-3
Changes to packages/zig/src/bridge_mobile_display.zig
@@ -600,9 +600,10 @@ fn applyBadge(count: i64) !i64 {
600600/// what happened rather than swallowing it.
601601///
602602/// The completion handler is `nullable` in the header, so nil is legal and no
603/// block is needed. Note that `requestAuthorizationWithOptions:`, which Swift
604/// also calls, is *not* nullable there — passing nil to that one crashes, which
605/// is part of why authorization is not attempted here.
603/// block is needed. `requestAuthorizationWithOptions:`, which the spec also
604/// calls, is *not* nullable there — passing nil to that one crashes, which is
605/// why it needs a real block. It has one now: `requestBadgeAuthorization`
606/// above asks before this writes, so this function no longer runs unasked.
606607fn setBadgeThroughNotificationCenter(count: c_long) bool {
607608 const UNCenterClass = objc.objc_getClass("UNUserNotificationCenter") orelse return false;
608609 const sel_current = objc.sel_registerName("currentNotificationCenter") orelse return false;
packages/zig/src/bridge_mobile_permissions.zigmodified+10-6
Changes to packages/zig/src/bridge_mobile_permissions.zig
@@ -65,8 +65,10 @@
6565//! those took actions *away* from the shim because the shim's answers were
6666//! fabricated or broken; these shim answers are real, and taking them away
6767//! would trade working behaviour for a tidier table. The cost is that the
68//! conformance ratchet keeps counting `openSettings` as not-yet-migrated —
69//! which is the truth.
68//! conformance ratchet keeps counting the payload values above — location,
69//! photos, contacts, calendar, reminders — against `requestPermission`, which
70//! is the truth. It no longer applies to `openSettings`: that one is claimed,
71//! and the ratchet counts it as migrated.
7072//!
7173//! ## What is carried across exactly
7274//!
@@ -123,10 +125,12 @@ const Id = ?*anyopaque;
123125
124126/// The action names, spelled exactly as the Swift `case` labels spell them.
125127///
126/// `openSettings` is deliberately absent — see the module comment. Adding it
127/// here without first giving `ios_async` a boolean-literal reply would ship
128/// the truthy-`"denied"` bug, and the conformance scan would count the action
129/// as migrated while the shim was still the only honest server of it.
128/// All three are claimed. `openSettings` was not, and this comment said so
129/// long after it stopped being true — the module comment above records both
130/// the original objection and why a module-owned global block answered it.
131/// A doc comment that contradicts the `A` block three lines below it is worse
132/// than none: `scheduleNotification` sat with the shim for days after its
133/// blocker was fixed because nobody re-read the note that described it.
130134pub const A = struct {
131135 pub const check_permission = "checkPermission";
132136 pub const request_permission = "requestPermission";