ReviewOS

also looking at this

craft-native/craft

feat: finish native customization and platform seams

#401
Merged glennmichael123 wants to merge codex/issues-388-400-344 into main
21 files +707 -17
packages/ios/README.mdmodified+23-0
Changes to packages/ios/README.md
@@ -391,6 +391,29 @@ Appearance and navigation:
391391- `swipeNavigation`: an edge swipe goes back and forward through the page's
392392 history, pushState entries included.
393393
394Native tab-bar selection styling is opt-in and lives in the generated config,
395so the generated Swift never needs to be patched:
396
397```json
398{
399 "tabBar": {
400 "selection": { "cornerRadius": 8, "color": "#123456" }
401 },
402 "postGenerate": {
403 "command": "bun",
404 "args": ["run", "scripts/customize-native.ts"]
405 }
406}
407```
408
409`cornerRadius` is measured in points and `color` is `#RRGGBB`; omit either to
410keep its host default. `postGenerate` runs after `craft ios build` has written
411the Xcode project, with the generated project as its working directory. Craft
412does not invoke a shell: `command` and `args` are passed directly. The hook
413receives `CRAFT_PROJECT_ROOT`, `CRAFT_PLATFORM=ios`, and
414`CRAFT_GENERATE_PHASE=build`. A missing executable, non-zero exit, or invalid
415configuration fails the build with the hook's stderr in the diagnostic.
416
394417Debug builds let Safari's Develop menu inspect the webview, and relay the
395418page's console, uncaught errors, rejected promises and failed script loads to
396419the device log as `[craft page] …`, so a page that only breaks inside the app