ReviewOS

also looking at this

craft-native/craft

fix(native): preserve workspace sources and native overlay lifecycle

#384
Merged chris wants to merge codex/windows-zig-cache-diagnostics into main
20 files +500 -227

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.

scripts/native-renderer-contract.test.tsmodified+4-2
Changes to scripts/native-renderer-contract.test.ts
@@ -263,7 +263,8 @@ describe('native renderer component contract', () => {
263263 expect(android).toContain('else if (requestedChecked is Boolean)')
264264 expect(guide).toContain('`checked` is a compatibility alias')
265265 expect(guide).toContain('`value` is null, and `value` takes precedence')
266 expect(navigationHome).toContain('<Switch testID="switch-value-precedence" :value="false" :checked="true" @value-change="toggleSwitch($event)" />')
266 expect(navigationHome).toContain('<Switch testID="switch-value-precedence" :value="false" :checked="true" @value-change="togglePrecedenceSwitch($event)" />')
267 expect(navigationHome).toContain('testID="switch-precedence-status"')
267268 expect(navigationHome).toContain('<Switch testID="uncontrolled-switch" />')
268269 expect(androidNavigationTest).toContain('non-null switch value should take precedence over checked')
269270 expect(androidNavigationTest).toContain('uncontrolled switch should keep its native toggle')
@@ -274,7 +275,8 @@ describe('native renderer component contract', () => {
274275 expect(componentTypes).toContain('checked?: boolean')
275276 expect(ios).toContain('props["checked"] as? Bool) ?? (props["value"] as? Bool) ?? false')
276277 expect(android).toContain('checkboxChecked is Boolean -> checkboxChecked')
277 expect(navigationHome).toContain('<Checkbox testID="checkbox-checked-precedence" :checked="false" :value="true" @value-change="chooseCheckbox($event)" />')
278 expect(navigationHome).toContain('<Checkbox testID="checkbox-checked-precedence" :checked="false" :value="true" @value-change="choosePrecedenceCheckbox($event)" />')
279 expect(navigationHome).toContain('testID="checkbox-precedence-status"')
278280 expect(androidNavigationTest).toContain('checked should take precedence over value')
279281 expect(iosNavigationTest).toContain('let uncheckedCheckbox = app.buttons["checkbox-checked-precedence"]')
280282 expect(iosNavigationTest).toContain('XCTAssertFalse(uncheckedCheckbox.isSelected)')