| 1 | # Apple clients · 2026-09-12 |
| 2 | |
| 3 | The `RastrilloApple` product adds browser approval, ephemeral same-origin HTTP, |
| 4 | Keychain sessions and a SwiftUI sign-in view for macOS 14+ and iOS 17+. |
| 5 | The platform-independent RastrilloNative product remains separate. |
| 6 | Calendar and Memoria use these components in their first native clients. |
| 7 | |
| 8 | `server/` is a separate Go module, `amadan.net/rastrillo/native/server`. |
| 9 | Applications supply their existing session and admission middleware. Browser |
| 10 | approval binds a five-minute, single-use request to a 256-bit verifier hash. |
| 11 | The app and browser display the same code. Exchange authenticates the approved |
| 12 | browser cookie from a fresh context and rechecks admission before minting a |
| 13 | separate ordinary session. Resource authorization stays in each application. |
| 14 | There is no cross-origin cookie jar, HTTP cache or external redirect following. |
| 15 | |
| 16 | `tools/bundle-mac.py <native-directory> <Name>` builds a SwiftPM executable |
| 17 | `<Name>Mac`, derives a padded rounded Mac icon from the iOS master, bundles the |
| 18 | Lucide notice when the app has `LICENSE.lucide` (and refuses to bundle an app |
| 19 | whose Swift sources or SVGs name Lucide without it), and signs the development |
| 20 | app ad hoc. It does not notarize it. |
| 21 | |
| 22 | Run `make ci` for Swift unit tests, the existing Mac/iOS companion builds, |
| 23 | and Go authentication tests with the race detector. |
| 24 | |
| 25 | Independent review: `/root/native_review`, dispatched by this Codex session, |
| 26 | found an inherited-session-context vulnerability in exchange. Fixed using a |
| 27 | fresh cancelable context. Its regression presents Bob's session while exchanging |
| 28 | Alice's approval after Alice loses membership. Independently selected mutations |
| 29 | removing proof checking, expiration, one-time consumption, approval admission, |
| 30 | exchange admission and fresh-context handling all failed the regression suite |
| 31 | on 2026-09-12; all mutations were reverted. Review did not approve a merge. |
| 32 | |