@@ -17,6 +17,45 @@ TypeScript/UI worklets.
1717
1818## Latest Update - 2026-06-29
1919
20+ ### 2026-06-29 13:47 EDT - limit UIAppearance tagging to UIKit proxies
21+
22+ - Goal:
23+ - Keep PR #46 scoped to generic runtime primitives for the RN module branch
24+ and stay simulator-only. No physical devices are part of this fix.
25+ - CI finding:
26+ - GitHub Actions run `28390374047` on `ac94954e` compiled the edited V8
27+ bridge in CI, then failed macOS `ApiTests.js Appearance` before iOS ran.
28+ - The failure was AppKit-only: `NSAppearance.appearanceNamed(...)` returned
29+ an object, but `appearance.name` read back as `undefined` instead of
30+ containing `Aqua`.
31+ - Root cause: static selector tagging matched every class selector starting
32+ with `appearance`, then fell back to the receiver class when the native
33+ object was not an exact UIKit `UIAppearance` proxy. That mislabeled the
34+ real AppKit `NSAppearance` instance and installed cache-backed own
35+ accessors that shadowed native properties such as `name`.
36+ - Changes:
37+ - `tagStaticAppearanceNativeResult` now requires
38+ `appearanceProxyCustomizableClassFromExactDescription(native)` to identify
39+ an exact UIKit customizable proxy target. If it cannot, tagging/accessor
40+ installation is skipped.
41+ - Source coverage now blocks the receiver-class fallback so AppKit
42+ appearance objects keep their native property access.
43+ - Verification:
44+ - `node packages/react-native/test/runtime-objc-property-setter.test.js`
45+ passed.
46+ - Runtime RN JS tests passed:
47+ `for f in packages/react-native/test/*.test.js; do node "$f" || exit 1; done`.
48+ - `npm run check:ffi-boundaries` passed.
49+ - `git diff --check` passed.
50+ - `npm run build:macos-cli` passed and compiled/linked the edited V8 bridge.
51+ - Focused local macOS `ApiTests`/`Appearance` launch attempt was blocked
52+ before app launch by the known local metadata-generator x86_64 link
53+ mismatch against arm64-only Xcode `libclang.dylib`.
54+ - Still next:
55+ - Commit/push the correction and watch fresh PR CI for macOS recovery plus
56+ the authoritative iOS simulator result.
57+ - If CI turns green, resume the dedicated simulator-only RNS parity sweep.
58+
2059### 2026-06-29 13:21 EDT - safe UIAppearance proxy accessors
2160
2261- Goal:
0 commit comments