mirror of
https://github.com/wu736139669/hapi.git
synced 2026-11-06 01:11:37 +00:00
On iOS 27, SwiftUI re-runs a representable's update only when an environment value read during it changes; even @Environment(\.self) is tracked per key. AnchoredTranscriptList copied context.environment without reading keys, and compared metrics later in a drain that is often deferred. A theme switch or a system text size change therefore never reached the hosted rows: text kept its old size and colors. updateUIViewController now reads every runtime-changing value the rows follow (Dynamic Type, bold text, typography, locale, direction, color scheme, theme, link action, enabled state). Rows still receive the complete environment snapshot. The tests drive Dynamic Type through UIKit traits, as the system does. On iOS 27 a SwiftUI dynamicTypeSize override does not reach a UIKit representable's environment, and the app never sets one above the list. A new test checks that theme-only and text-size-only changes reach visible rows without reconfiguring cells; it fails without the fix. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>