ReviewOS

also looking at this

craft-native/craft

fix(mobile): preserve native editing, navigation, and durable media requests

#369
Merged chris wants to merge codex/native-vertical-scroll-tab-swipes into main
36 files +864 -185

Review threads live on the whole diff, not on one commit, so none are shown here - a thread's line means something in the branch's final form, and painting it into an intermediate step would put it on code it is not about.

.github/workflows/mobile-e2e.ymlmodified+4-4
Changes to .github/workflows/mobile-e2e.yml
@@ -172,7 +172,7 @@ jobs:
172172 uses: actions/checkout@v6
173173 with:
174174 repository: stacksjs/stx
175 ref: 617826427dea89a203e7f6d254dffea211bad1ba
175 ref: 9d003f90714dc5c36daf262aaaa285a9671245e7
176176 path: .stx-compiler
177177
178178 - name: Install stx compiler dependencies
@@ -294,7 +294,7 @@ jobs:
294294 uses: actions/checkout@v6
295295 with:
296296 repository: stacksjs/stx
297 ref: 617826427dea89a203e7f6d254dffea211bad1ba
297 ref: 9d003f90714dc5c36daf262aaaa285a9671245e7
298298 path: .stx-compiler
299299
300300 - name: Install stx compiler dependencies
@@ -444,7 +444,7 @@ jobs:
444444 uses: actions/checkout@v6
445445 with:
446446 repository: stacksjs/stx
447 ref: 617826427dea89a203e7f6d254dffea211bad1ba
447 ref: 9d003f90714dc5c36daf262aaaa285a9671245e7
448448 path: .stx-compiler
449449
450450 - name: Install Android stx compiler dependencies
@@ -651,7 +651,7 @@ jobs:
651651 - uses: actions/checkout@v6
652652 with:
653653 repository: stacksjs/stx
654 ref: 617826427dea89a203e7f6d254dffea211bad1ba
654 ref: 9d003f90714dc5c36daf262aaaa285a9671245e7
655655 path: .stx-compiler
656656 - run: bun install --frozen-lockfile
657657 working-directory: .stx-compiler
docs/guides/native-stx.mdmodified+4-2
Changes to docs/guides/native-stx.md
@@ -73,13 +73,15 @@ renderer.
7373The maintained Mobile E2E workflow checks out one exact stx compiler commit for
7474both simulator hosts. Update the iOS and Android refs together; the workflow
7575contract test rejects compiler skew between them.
76The current pair is pinned to `617826427dea89a203e7f6d254dffea211bad1ba`,
76The current pair uses STX 0.2.593, pinned to `9d003f90714dc5c36daf262aaaa285a9671245e7`,
7777which preserves authored reconciliation keys and explicit grid row tracks in
7878static and reactive native styles, and keeps template indentation out of native
7979leaf button labels. Touchable primitives preserve authored accessibility roles
8080and let the hosts infer link or button semantics from their current destination.
8181Prepared hidden screens start unfocused before their mount hooks run; their
82appearance guards run when the host actually shows them. The native fixtures qualify its compiled
82appearance guards run when the host actually shows them. Scripted component
83clones receive independent setup, and retained keyed rows keep their handlers
84and local state after reordering. The native fixtures qualify its compiled
8385properties and mutation metadata together with both native models. Application
8486releases consume the normally published compiler after qualification.
8587
scripts/release-workflow.test.tsmodified+1-1
Changes to scripts/release-workflow.test.ts
@@ -19,7 +19,7 @@ type Job = {
1919}
2020const release = Bun.YAML.parse(readFileSync(join(import.meta.dir, '../.github/workflows/release.yml'), 'utf8')) as { jobs: Record<string, Job> }
2121const artifactDownload = 'actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093'
22const stxCompilerCommit = '617826427dea89a203e7f6d254dffea211bad1ba'
22const stxCompilerCommit = '9d003f90714dc5c36daf262aaaa285a9671245e7'
2323const needs = (job: Job) => typeof job.needs === 'string' ? [job.needs] : job.needs ?? []
2424const steps = (job: Job) => job.steps?.map(step => step.run ?? '').join('\n') ?? ''
2525