also looking at this
feat(ios): haptic, whose reason expired when ios_config landed
#134
18 files
+562
-163
| @@ -103,10 +103,13 @@ | ||
| 103 | 103 | //! posting); a field that is **present with the wrong type** is refused, never |
| 104 | 104 | //! coerced. |
| 105 | 105 | //! |
| 106 | //! **The `config.enableBackgroundTasks` gate has no Zig mirror.** It appears | |
| 107 | //! nowhere in `packages/zig/src`, so the three actions here are served | |
| 108 | //! unconditionally — the securestore and notifcancel modules document the same | |
| 109 | //! choice. In an app that left the gate at its default `false` this changes a | |
| 106 | //! **The `config.enableBackgroundTasks` gate is read, not skipped.** | |
| 107 | //! `ios_config.gateFor` maps all three actions to `.background_tasks`, so | |
| 108 | //! `ios_dispatch.offerToModules` answers `CAPABILITY_DISABLED` before this | |
| 109 | //! module is asked. This paragraph used to say the flag "appears nowhere in | |
| 110 | //! `packages/zig/src`" and that the actions were served unconditionally — true | |
| 111 | //! when written, false since `ios_config.zig`, and repeated in eight other | |
| 112 | //! module headers that were equally true and are equally false. In an app that left the gate at its default `false` this changes a | |
| 110 | 113 | //! hang into an answer: `schedule` now reaches the scheduler and reports |
| 111 | 114 | //! whatever it says (a rejection, until the plist gains |
| 112 | 115 | //! `BGTaskSchedulerPermittedIdentifiers`), and the cancels report the no-op |