"Thirteen actions have no usable Objective-C surface" listed registerSiriShortcut, removeSiriShortcut, sendToWatch, updateWatchContext and isWatchReachable. All five have been served from Zig for some time — bridge_mobile_siri.zig and bridge_mobile_watch.zig. The list was never updated.
That matters more than a stale sentence usually would. For most of these actions this list is the only recorded reason anywhere — nothing in packages/zig/src/ says a word about StoreKit, ActivityKit, WidgetKit or AR. An assessment of what is still migratable reaches this doc, finds a confident "no usable Objective-C surface", and stops. A list that is 38% wrong is being read as authoritative.
Two surviving entries also overstate their case
- StoreKit.
Product.PurchaseResultis Swift-only, so the claim is true of StoreKit 2. StoreKit 1 is Objective-C and this repo already drives it from Zig —bridge_iap.zig, 36 selector calls, for macOS. Migrating in-app purchase on iOS is a decision about which StoreKit to target, not a mechanical impossibility. - WatchConnectivity. The note conceded
WCSession"is ObjC" and kept the actions in Swift anyway, "to stay with its peer". A preference, not a barrier — and it did not hold.
Two boundaries that were only ever implicit
AR/SceneKit (five actions, judged not worth objc_msgSend) and registerBackgroundTask (structural: BGTaskScheduler.register must run before launch finishes) are now recorded here. The AR boundary was supposed to be declared in capability_registry.zig with a reason — it never was, and this doc is the only place it exists.
Verified
Every claim re-checked against the modules' A blocks: none of the fourteen actions listed as unserved is served, and all five listed as migrated are.