Skip to content
CAI
Software that uses CAICheck a score

OpenSwiftUIProject/OpenSwiftUI

50.2

Adequate · 1 October 2026

171.6k

lines of production code

Swift

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

OpenSwiftUI is an open-source, cross-platform reimplementation of Apple's SwiftUI framework designed to render user interfaces on non-Darwin systems such as Linux and Windows. It provides a complete UI toolkit featuring a layout engine, a rendering pipeline for Quartz Core or terminal output, and a comprehensive set of view modifiers for styling, animation, and geometry effects. The system supports core SwiftUI capabilities including dynamic content, text formatting, accessibility, and environment-based theming, while maintaining compatibility with Apple's native APIs through platform-specific shims.

How it got here

2023–2024 — Core framework implementation and infrastructure

58 changes.

This period focused on establishing the foundational architecture of OpenSwiftUI, including the implementation of the core view graph, layout engine, and rendering pipeline. It also involved building essential UI controls, state management systems, and cross-platform integration layers while setting up comprehensive build, testing, and documentation workflows.

2025 — Core infrastructure and platform hosting

102 changes.

This period focused on establishing the foundational rendering engine, including the layout system, animation transactions, and gesture handling infrastructure. It simultaneously implemented the critical hosting layers for iOS, visionOS, and macOS, enabling SwiftUI views to be embedded within UIKit and AppKit applications. The work also introduced essential view modifiers, data binding mechanisms, and platform-specific integration shims to support these core capabilities.

2026 — Rendering backend and event system expansion

55 changes.

This period focused on introducing the OpenRenderBox (ORB) accelerated rendering backend and expanding the framework's event infrastructure to support complex gestures, hit-testing, and hardware keyboard input. Significant work was also dedicated to enhancing text and localization capabilities, including AttributedString support, while simultaneously broadening non-Darwin platform compatibility through new shims and bundled headers.

Features

Add 3D rotation effect support and display list utilities

This change introduces support for 3D rotation effects in the rendering layer. It adds a new helper for the \\_Rotation3DEffect.Data\ type, implementing equality, hashing, and approximate comparison logic to correctly handle rotation parameters like angle, axis, anchor, and perspective. Additionally, a new \DisplayListUtil\ module is added to facilitate rendering views into display lists and inspecting their content for color properties, enabling more robust testing and verification of visual output.

Sources/OpenSwiftUITestsSupport/Render · high confidence

Add @Bindable property wrapper for Observable objects

OpenSwiftUI now includes the \@Bindable\ property wrapper, allowing views to create two-way bindings to mutable properties of objects conforming to the \Observable\ protocol. This new capability enables developers to use the \$\ syntax to pass bindings to controls like \TextField\ and \Toggle\ directly from \@Observable\ models, providing a modern alternative to the legacy \@ObservedObject\ pattern for data-driven UI updates.

Sources/OpenSwiftUICore/Data/Binding · high confidence

Add @Entry, \#Preview, and @\_\_EntryDefaultValue macros

This change introduces the macro implementations for the OpenSwiftUI framework, enabling environment variable support via the @Entry property wrapper, preview rendering via the \#Preview macro, and default value handling via @\_\_EntryDefaultValue. The @Entry macro generates the necessary EnvironmentKey conformances and accessors to store and retrieve values in the environment, while the \#Preview macro expands into a DeveloperToolsSupport::PreviewRegistry struct to facilitate preview rendering in Xcode. These macros are registered in the OpenSwiftUIMacrosPlugin and provide the foundational syntax support for state management and UI previewing within the library.

Sources/OpenSwiftUIMacros · high confidence

Add Anchor, GeometryReader, and Layout Geometry APIs

This change introduces the core implementation for the Anchor API, allowing views to expose specific points or rectangles that can be resolved in other coordinate spaces via GeometryProxy. It adds GeometryReader, enabling content to be defined as a function of its own size and coordinate space, and implements supporting geometry types such as UnitPoint, Axis, Spacing, LayoutTraits, and ProjectionTransform to facilitate advanced layout and alignment calculations.

Sources/OpenSwiftUICore/Layout/Geometry · high confidence

Add AppKit color and appearance conversion support

This change introduces new AppKit integration files that enable converting between SwiftUI and AppKit types. Specifically, it adds initializers to create a SwiftUI \Color\ from an \NSColor\ (preserving dynamic appearance adaptability like Dark Mode) and implements \NSColor\ as a \ColorProvider\ to handle resolution in the current environment. It also includes a stub for \NSAppearance\ conversions and updates \ControlSize\ mapping to support the new \.extraLarge\ case available in macOS 26.0.

Sources/OpenSwiftUI/Integration/Graphic/AppKit · high confidence

Add AppKit overlay helpers for NSColor, NSView, and NSWindow

This change introduces new AppKit overlay files that bridge OpenSwiftUI with native macOS components. It adds NSColor category methods to handle appearance-dependent colors and initializers, NSView extensions to manage mask views, flipped states, and Core Animation layer delegates, and NSWindow utilities to retrieve the underlying Core Graphics display ID. These additions provide the necessary low-level integration points for rendering and window management on macOS.

Sources/COpenSwiftUI/Overlay/AppKit · high confidence

Add AppKit private API shims for gesture, layout, and accessibility support

This change introduces a set of Objective-C shim files in the AppKit integration layer to bridge OpenSwiftUI with macOS private APIs. The new headers and implementations expose internal AppKit selectors for gesture recognition (NSGestureRecognizer), view layout and hit-testing (NSView, \_NSConstraintBasedLayoutHostingView), accessibility internals (NSAccessibility), and application lifecycle events (NSApplication). These shims enable the framework to correctly route touch and tap gestures, manage safe area insets, handle layout constraints, and support accessibility features on macOS.

Sources/COpenSwiftUI/Shims/AppKit · high confidence

Add CGTK target

Added the CGTK target, which provides a Swift module map and header to bridge the GTK 4 library (linking against gtk-4) for use within the project.

Sources/CGTK · high confidence

Add Combine-based property wrappers for observable objects

OpenSwiftUI now supports the \@StateObject\, \@ObservedObject\, and \@EnvironmentObject\ property wrappers, allowing views to automatically update when underlying \ObservableObject\ data changes. This change introduces the necessary Combine integration, including the \AttributeInvalidatingSubscriber\ to handle invalidation and \SubscriptionLifetime\ to manage subscription lifecycles, enabling reactive data binding and state management within the view hierarchy.

Sources/OpenSwiftUICore/Data/Combine · high confidence

Add CoreGraphics geometry and utility extension implementations

This change introduces a comprehensive set of extension methods for CoreGraphics types (CGAffineTransform, CGPoint, CGSize, CGRect) and utility types (Collection, FloatingPoint, NSAttributedString, etc.) within the OpenSwiftUICore utility layer. For geometry types, it adds convenience initializers, transformation checks (isTranslation, isRectilinear), rounding capabilities, and Protobuf serialization support, enabling these structures to be used in animations and data encoding. It also provides mathematical operators, safe collection indexing, and floating-point comparison utilities, forming the foundational math and utility layer required for the UI rendering engine.

Sources/OpenSwiftUICore/Util/Extension · high confidence

Add Darwin-specific logging and method invocation shims

New header and implementation files for the OpenSwiftUI\_SPI module introduce a Darwin-only logging facility and a macro for safely invoking Objective-C methods. The \openSwiftUIShimsLog\ function provides a centralized \os\_log\ logger, while the \OPENSWIFTUI\_SAFE\_WRAPPER\_IMP\ macro allows code to dynamically resolve and call selectors with a fallback return value, addressing issues with class versus instance method resolution on Darwin platforms.

_Sources/OpenSwiftUI\SPI/Shims · high confidence

Add Divider and DividerStyle support

This change introduces the \Divider\ view and the \DividerStyle\ protocol to OpenSwiftUI, allowing users to insert visual separators in layouts. The implementation includes a \plain\ style that renders a colored line with thickness determined by the environment, and a \default\ style that delegates to the plain style. The \Divider\ view respects stack orientation, extending across the minor axis in stacks or rendering horizontally otherwise, and supports customization via the \dividerStyle(\_:)\ modifier.

Sources/OpenSwiftUI/Layout/Separator · high confidence

Add Dynamic Island preview components to the Stack example

The Stack example now includes a \DynamicIsland\ view and supporting types (\DynamicIslandExpandedContent\, \DynamicIslandMode\, etc.) that allow developers to preview Live Activity content in expanded, compact, and minimal modes within SwiftUI previews. This adds a new demonstration of how to structure and style Dynamic Island content using the JindoKit SPI, specifically showing a timer/running activity example.

Example/Shared/Layout/Stack · high confidence

Add DynamicContainer support

Introduces the DynamicContainer layout infrastructure, including the DynamicContainer, DynamicLayoutMap, and DynamicLayoutView components, along with the DynamicContainerAdaptor and DynamicContainerItem protocols. This adds the core mechanism for managing dynamic view lists within the layout system, enabling features like item insertion, removal, and transition handling for dynamic content.

Sources/OpenSwiftUICore/Layout/Dynamic · high confidence

Add Entry macro support

The Entry macro is now available in OpenSwiftUICore, allowing developers to use the @Entry attribute to automatically generate accessor properties and peer keys prefixed with \_\Key\. This macro delegates to the OpenSwiftUIMacros module to provide the underlying implementation.

Sources/OpenSwiftUICore/Macro · high confidence

This change introduces several new view types and properties to the OpenSwiftUI View module. EquatableView and its associated View extension (equatable()) allow developers to prevent child view updates when the view's content remains unchanged, optimizing rendering performance. A new \_CALayerView struct enables the integration of Core Animation layers within the view hierarchy, supporting custom layer updates. Additionally, IdentityLink provides a dynamic property for tracking view identity across updates, while LazyView and ParameterizedLazyView offer mechanisms for deferred view initialization.

Sources/OpenSwiftUI/View · high confidence

Add ForEach view support

Adds the \ForEach\ structure and the \DynamicViewContent\ protocol to OpenSwiftUICore, enabling the generation of views from an underlying collection of identified data. This includes the core \ForEach\ implementation with support for key-path-based or offset-based ID generation, as well as trait keys for managing view content offsets and IDs within the view hierarchy.

Sources/OpenSwiftUICore/View/DynamicViewContent · high confidence

Add Foundation overlay support for NSObject and NSThread

This change introduces new Objective-C overlay files in the COpenSwiftUI Foundation module to provide platform-specific utilities for Darwin targets. It adds an NSObject category that exposes methods to identify OpenSwiftUI instances and perform selector invocations, and implements a helper function to start NSThread instances using the modern startAndReturnError: API when available, falling back to the legacy start method for compatibility.

Sources/COpenSwiftUI/Overlay/Foundation · high confidence

Add HStack, VStack, ZStack, and zIndex support

Users can now arrange views in horizontal lines with HStack, vertical lines with VStack, and layered overlays with ZStack, all supporting configurable spacing and alignment. The new zIndex modifier allows explicit control over the front-to-back ordering of overlapping views. Additionally, HStackLayout, VStackLayout, and ZStackLayout are available for use in conditional layouts via AnyLayout.

Sources/OpenSwiftUICore/Layout/Stack · high confidence

Add HostingExample app with iOS, visionOS, and macOS support

The HostingExample application has been added, providing a cross-platform demo app that runs on iOS, visionOS, and macOS. The implementation includes platform-specific entry points (AppDelegate and SceneDelegate for UIKit-based iOS/visionOS, and NSApplicationDelegate for AppKit-based macOS) along with storyboard assets and an Info.plist that registers the Inter font. On iOS and visionOS, the app initializes a navigation controller that automatically pushes a hosting view controller displaying the root ContentView, while on macOS it presents the same ContentView in a centered NSWindow.

Example/HostingExample · high confidence

Add IdentifiedViewProxy and identifier lookup mechanisms

Introduces the \_IdentifiedViewProxy struct to expose view identification data (identifier, size, position, transform) and adds methods to ViewRendererHost and \_BenchmarkHost for locating views and their state by identifier. This enables internal and benchmark code to find specific views and bindings within the view graph using a breadth-first search and identifier matching.

Sources/OpenSwiftUICore/View/IdentifiedView · high confidence

Add LLDB hook to print SwiftUI display lists minimally

Developers debugging SwiftUI can now use a new LLDB command, \swiftui-display-list-minimal\, to redirect the display-list output from the verbose full description to a minimal form. This is achieved by patching the \DisplayList.description\ method to branch to \DisplayList.minimalDescription\ at runtime, which reduces console noise without requiring breakpoints. The hook is automatically imported for specific schemes via \.lldbinit-swiftui\ and supports arm64/arm64e targets on iOS 18.5+.

Scripts/LLDB · high confidence

Add LabelGroup view and styling support

Introduces the \LabelGroup\ view, which allows grouping multiple views to apply hierarchical styling (font and foreground color) based on their nesting level. This includes the \LabelGroupStyle\ protocol for customizing these styles and a default \BodyLabelGroupStyle\ that applies \.body\, \.subheadline\, and \.footnote\ fonts with corresponding primary, secondary, and tertiary colors.

Sources/OpenSwiftUI/View/LabelGroup · high confidence

Add LabeledContent view and label visibility controls

This change introduces the LabeledContent view, allowing you to pair a label with a value-bearing view in a consistent, context-aware layout. It includes the labelsHidden() modifier to omit labels from controls like Toggle or Picker, and the labelsVisibility(\_:) environment modifier (available in v6.0) to dynamically control label visibility within a view hierarchy. The implementation provides AutomaticLabeledContentStyle, which automatically selects the appropriate presentation (e.g., leading-trailing, columnar, or grouped form) based on the current platform and container context, ensuring labeled content adapts correctly to forms, lists, and toolbars.

Sources/OpenSwiftUI/View/LabelContent · high confidence

Add LazyState property wrapper for deferred initialization

OpenSwiftUI now includes the \LazyState\ property wrapper, allowing view state to be initialized lazily only when first accessed rather than immediately upon view creation. This new type conforms to \DynamicProperty\ and is available starting with OpenSwiftUI v5.0, providing a mechanism to defer expensive initialization or handle optional state more efficiently within SwiftUI views.

Sources/OpenSwiftUI/Data/State · high confidence

Add NSHostingController for AppKit integration

Introduced NSHostingController, an AppKit view controller that allows OpenSwiftUI view hierarchies to be hosted within macOS applications. This new component provides properties to manage root views, sizing options, safe area regions, and scene bridging (such as toolbars and titles), along with methods to calculate content sizes and trigger rendering, enabling developers to embed SwiftUI-like interfaces into existing AppKit windows and view controllers.

Sources/OpenSwiftUI/Integration/Hosting/AppKit/Controller · high confidence

Add NamedColor example with preview support

A new example view demonstrating the usage of named colors (specifically 'custom') across different color schemes (light and dark) and contrast levels (standard and increased) has been added to the Shared Graphics examples. This file also includes a SwiftUI Preview, allowing developers to quickly visualize the named color behavior in the canvas.

Example/Shared/Graphics · high confidence

Add OpenSwiftUI compatibility to Example/Shared views

The Example/Shared module now supports rendering via OpenSwiftUI alongside standard SwiftUI. ContentView, FlowerView, and associated platform type aliases use conditional compilation (\#if OPENSWIFTUI) to import the correct framework, enabling the example app to demonstrate OpenSwiftUI-specific features like TintShapeStyle and vector glyph support.

Example/Shared · high confidence

Add OpenSwiftUI\_SPI utility infrastructure

This change introduces a new set of utility components within the OpenSwiftUI\_SPI module to support core runtime operations. It adds CoreGlue for initializing OpenSwiftUI glue classes, MovableLock for thread-safe synchronization with main-thread execution support, and TLS (Thread-Local Storage) helpers for managing per-thread geometry, transaction, and layout data. Additionally, it provides Interpose hooks to handle type description and protocol conformance fallbacks between SwiftUI and OpenSwiftUI, ProtocolDescriptor exports for view and style modifiers, PathData for path storage abstraction, and RenderUtil for frame rate management.

_Sources/OpenSwiftUI\SPI/Util · high confidence

Add PlatformViewRepresentable support for integrating UIKit and AppKit views

This change introduces the \PlatformViewRepresentable\ protocol and its supporting infrastructure (including \PlatformViewHost\, \PlatformViewCoordinator\, and layout options) to enable embedding native UIKit and AppKit views within the OpenSwiftUI view hierarchy. It provides the foundational bridging layer that allows developers to wrap existing platform-specific views and view controllers, handling lifecycle management, environment propagation, and layout constraints through a unified interface that abstracts away the underlying iOS/macOS implementation details.

Sources/OpenSwiftUI/Integration/Representable/Platform · high confidence

Add ProgressView support

Introduces the ProgressView control, enabling users to display both determinate (percentage-based) and indeterminate (spinning) progress indicators. The implementation includes linear and circular styles, date-relative progress views for timers, and platform-specific rendering via AppKit on macOS and UIKit on iOS/visionOS.

Sources/OpenSwiftUI/View/Control/ProgressView · high confidence

Add Protobuf encoding and decoding support for Foundation types

OpenSwiftUICore now includes a new Protobuf implementation that allows encoding and decoding data using the Protocol Buffers format. This change introduces \ProtobufEncoder\ and \ProtobufDecoder\ structs, along with the \ProtobufMessage\ protocol, enabling types to serialize themselves to and from protobuf representations. Specifically, Foundation types \URL\, \UUID\, \Data\, and \Locale\ now conform to \ProtobufMessage\, allowing them to be directly encoded and decoded. Additionally, a \CodableByProtobuf\ protocol and \ProtobufCodable\ property wrapper are provided to integrate this functionality with Swift's existing \Codable\ system.

Sources/OpenSwiftUICore/Data/Protobuf · high confidence

Add Quartz Core overlay shims for macOS

The library now includes overlay headers and implementations for Quartz Core on macOS, specifically introducing the CAChameleonLayer class and a shim for the internal \_CATransactionCompletionItem function. These additions provide the necessary bindings to support newer SDK features and internal transaction completion mechanisms within the SwiftUI rendering pipeline.

Sources/COpenSwiftUI/Overlay/QuartzCore · high confidence

Add SensoryFeedback API support

Adds the \sensoryFeedback\ view modifier, enabling developers to trigger haptic feedback on iOS, macOS, and watchOS when state values change. The implementation supports various feedback types including success, warning, error, selection, alignment, impact (with configurable weight and intensity), and path completion, with platform-specific handling via AppKit, UIKit, and WatchKit.

Sources/OpenSwiftUI/View/Control/SensoryFeedback · high confidence

Add Slider control with customizable styles

Introduces the \Slider\ view for selecting values from a bounded linear range, supporting labels, step increments, and editing change callbacks. The implementation includes an \AnySliderStyle\ wrapper and a \SliderStyleKey\ environment value, allowing users to apply custom or default system slider styles to the control.

Sources/OpenSwiftUI/View/Control/Slider · high confidence

Add Spacer support for flexible layout spacing

This change introduces the \Spacer\ view and related layout primitives (\\_HSpacer\, \\_VSpacer\, \\_TextBaselineRelativeSpacer\) to the OpenSwiftUI core layout system. Users can now insert flexible, expandable space within stacks (such as \HStack\ or \VStack\) to push sibling views apart or align content, with support for specifying minimum lengths along specific axes or the major axis of the containing stack.

Sources/OpenSwiftUICore/Layout/Separator · high confidence

Add StaticIf view and Visibility enum for conditional rendering

The framework now supports the \StaticIf\ view, which allows conditionally rendering different views or applying modifiers based on stable view inputs such as interface idioms or style contexts, enabling more optimized view hierarchy decisions. Additionally, the \Visibility\ enum has been introduced, providing \automatic\, \visible\, and \hidden\ cases to control the display state of UI elements like list row separators or dialog titles.

Sources/OpenSwiftUICore/View/Configuration · high confidence

Add TestingHost example app with platform-specific app delegate support

The Example/TestingHost directory now includes a new host application (TestingHostApp.swift) and its associated entitlements file. This app serves as a testing harness that conditionally imports OpenSwiftUI or SwiftUI and configures the appropriate app delegate (NSApplicationDelegate for macOS, UIApplicationDelegate for iOS) using the new adaptor patterns. The iOS delegate includes logic to disable hardware keyboards in the simulator, while the entitlements file configures sandboxing and file access permissions for the test environment.

Example/TestingHost · high confidence

Add TimelineView and Always-On Display support for iOS and visionOS

Introduces the \TimelineView\ API, allowing views to update their content based on a provided schedule (such as periodic intervals or specific dates) with a context that includes the current date and update cadence. This change also implements Always-On Display support for iOS and visionOS by integrating with the BacklightServices framework, enabling pre-rendered frames and timeline invalidation for features like clock faces or calendar events when the device is in low-power display mode.

Sources/OpenSwiftUI/Animation/Timeline · high confidence

Add Toggle view and SwitchToggleStyle

Introduces the \Toggle\ view component and the \SwitchToggleStyle\ for iOS and visionOS, allowing users to create switch-style toggles with label support and tint customization. The implementation includes the \ToggleStyle\ protocol and configuration, enabling custom toggle appearances and behaviors across supported platforms.

Sources/OpenSwiftUI/View/Toggle · high confidence

Add ToggleState enum for managing toggle states

The Toggle view now includes a new ToggleState enum with cases for on, off, and mixed states. This enum provides methods to toggle between states and determine the state based on a collection of bindings, enabling more robust state management for toggle components.

Sources/OpenSwiftUICore/View/Toggle · high confidence

Add UIKit color and interface style conversion support

Developers can now seamlessly convert between UIKit and OpenSwiftUI types. This change introduces initializers to create an OpenSwiftUI \Color\ from a \UIColor\ (preserving dynamic traits like Dark Mode) and vice versa, as well as conversions between \ColorScheme\ and \UIUserInterfaceStyle\. This enables better interoperability when integrating UIKit components with OpenSwiftUI views.

Sources/OpenSwiftUI/Integration/Graphic/UIKit · high confidence

Add UIKit overlay shims and testing swizzles for iOS/VisionOS

This change introduces a new set of Objective-C shim files in the COpenSwiftUI UIKit overlay to bridge specific UIKit behaviors for iOS and VisionOS. It adds helper functions to access the default UIContentSizeCategory, determine if a UIColor depends on the trait collection, and create custom UIViews with specific layers. Additionally, it includes a testing infrastructure that uses Objective-C method swizzling to override UIScreen scale and content margins, as well as UICollectionView animation behaviors, to support stable UI testing environments.

Sources/COpenSwiftUI/Overlay/UIKit · high confidence

Add UIKit update cycle integration and hosting view abstraction

This change introduces a new mechanism for synchronizing SwiftUI updates with the UIKit run loop via the \UIKitUpdateCycle\ API, allowing OpenSwiftUI to register pre-commit observers that flush updates at the appropriate time in the rendering pipeline. It also adds the \UIHostingViewable\ protocol to abstract the underlying \UIHostingController\ implementation, enabling the hosting layer to function without direct SDK dependencies on \UIHostingController\ (supporting platforms like watchOS where it is unavailable) and providing secure hosting controller variants.

Sources/OpenSwiftUI/Integration/Hosting/UIKit · high confidence

Add UIKit view and view controller representable protocols

This change introduces the \UIViewRepresentable\ and \UIViewControllerRepresentable\ protocols in the OpenSwiftUI UIKit integration layer, enabling developers to embed existing UIKit \UIView\ and \UIViewController\ instances directly within OpenSwiftUI view hierarchies. These protocols provide the standard lifecycle methods (\make...\, \update...\, \dismantle...\) and coordinator support required to bridge UIKit components into the OpenSwiftUI environment on iOS and visionOS.

Sources/OpenSwiftUI/Integration/Representable/UIKit · high confidence

Add ViewModifier protocol and implementation

Introduces the \ViewModifier\ protocol and its core implementation in \Sources/OpenSwiftUICore/Modifier\, enabling users to create reusable modifiers that can be applied to any view. This includes the internal \\_ViewModifier\_Content\ structure and extension methods that handle view and view-list generation, forming the foundation for applying custom styling and behavior changes to SwiftUI views.

Sources/OpenSwiftUICore/Modifier · high confidence

Add ViewThatFits layout and JindoTripleVStack SPI

Users can now use the \ViewThatFits\ view to adapt content to available space by selecting the first child view that fits within the proposed size on specified axes. Additionally, the \JindoTripleVStack\ layout is available as a SPI, allowing views to be arranged in leading, center, trailing, bottom, and notch regions with configurable horizontal sizing and spacing. The diff also adds conversion extensions between \EdgeInsets\ and \NSDirectionalEdgeInsets\ for platform compatibility.

Sources/OpenSwiftUI/Layout · high confidence

Add \_printChanges and \_logChanges debugging APIs for views and modifiers

Developers can now use the new \\_printChanges()\ and \\_logChanges()\ static methods on \View\ and \ViewModifier\ to identify which dynamic properties triggered a body refresh. \\_printChanges()\ outputs the names of changed properties (including \@self\ and \@identity\ markers) directly to the console, while \\_logChanges()\ records this information at the info level to the \org.OpenSwiftUIProject.OpenSwiftUI\ subsystem under the category "Changed Body Properties".

Sources/OpenSwiftUI/View/Debug · high confidence

Add accessibility heading levels and text content types

This change introduces new accessibility modifiers for Text views, allowing developers to specify heading hierarchy (h1–h6) and text content types (such as plain, console, messaging, or source code) to improve navigation and presentation for assistive technologies.

Sources/OpenSwiftUICore/View/Text/Accessibility · high confidence

Add alignment layout and guide infrastructure

This change introduces the core layout alignment system in OpenSwiftUICore. It adds the \AlignmentID\ protocol and built-in \HorizontalAlignment\/\VerticalAlignment\ guides, enabling custom alignment logic. It also implements \\_AlignmentLayout\, a unary layout that positions a single child view based on specified horizontal (\TextAlignment\) and vertical (\\_VAlignment\) guides, and defines the \TextAlignment\ enum (leading, center, trailing) with serialization support.

Sources/OpenSwiftUICore/Layout/Alignment · high confidence

Add core animation types and completion APIs

The animation system now supports a broader range of visual transitions, including Bezier-based easing (easeIn, easeOut, easeInOut), Spring animations, and custom animation definitions via the CustomAnimation protocol. Users can also configure animations to repeat, delay, or change speed, and can now receive callbacks when animations complete using the new AnimationListener and AnimationCompletion APIs.

Sources/OpenSwiftUICore/Animation/Animation · high confidence

Add core gesture and input event types

This change introduces the foundational event structures for user interaction in OpenSwiftUI, including hover, key, magnify, rotate, touch, and transform events. It also adds the \ModifierKeySource\ protocol and \ModifierKeyMonitor\ to track modifier key states, enabling the framework to handle complex input scenarios like keyboard shortcuts and multi-touch gestures.

Sources/OpenSwiftUI/Event/Event · high confidence

Add custom layout examples to the shared library

The Example/Shared/Layout/CustomLayout directory now includes four new Swift files demonstrating custom layout implementations: FlowLayout (a flow-based layout with configurable spacing and alignment), MyViewThatFitByLayout (a layout that selects the first subview fitting within constraints), MyViewThatFitExample (a demo view for the fitting layout), and MyZStack (a ZStack-like layout supporting alignment guides and text baselines). These files provide reusable layout components and demo views for the example project.

Example/Shared/Layout/CustomLayout · high confidence

Add generic Codable support utilities and wrappers

This change introduces new files in the Codable module to support flexible data encoding and decoding. It adds an AnyCodable type for handling arbitrary Codable values, a CodableAttributedString wrapper for attributed strings, and a suite of helper protocols and property wrappers (CodableByProxy, ProxyCodable, CodableRawRepresentable, JSONCodable) that enable custom types to be encoded via proxy objects or raw values.

Sources/OpenSwiftUICore/Data/Codable · high confidence

Add hardware keyboard input handling and shortcut binding APIs

OpenSwiftUI now supports direct hardware keyboard interaction through the new \onKeyPress\ view modifier, which allows views to react to key-down, key-up, and key-repeat events with granular control over event consumption. Additionally, the \keyboardShortcut\ modifier is implemented for both Views and Scenes, enabling developers to bind specific key combinations to control actions or scene management commands, including support for internationalization and localization of shortcut keys.

Sources/OpenSwiftUI/Event/InputEvent, Sources/OpenSwiftUI/View/Control/Picker · high confidence

Add ignoredByLayout() modifier to prevent geometry effects from affecting layout

Users can now call the new \ignoredByLayout()\ method on any \GeometryEffect\ to ensure its transform is applied only during rendering, not during layout calculations. This allows visual transformations (like scaling or rotation) to occur without altering the view's frame or position in the layout hierarchy, which is particularly useful for disabling layout shifts during transitions.

Sources/OpenSwiftUI/Render/GeometryEffect · high confidence

Add image rendering and conversion examples to the shared example project

The Example/Shared/View/Image directory now includes several new SwiftUI view examples demonstrating image handling capabilities. These include AsyncImageExample for loading remote images, ImageConversionsExample for converting between platform-specific image types (UIImage/NSImage) and SwiftUI Image, NamedImageExample showcasing decorative images and rendering modes (original vs. template), VariableImageExample demonstrating system images with dynamic variable values (like signal strength or battery), and SunsetSceneExample which combines various image and shape elements into a complex animated scene.

Example/Shared/View/Image · high confidence

Add initial focus management infrastructure

The framework introduces the foundational types for managing view focus, including the \FocusState\ property wrapper for binding focus state to view models, the \FocusedValue\ property wrapper and \FocusedValueKey\ protocol for sharing data with the currently focused view, and internal support structures like \FocusStore\, \FocusGroup\, and \FocusStoreLocation\. This change establishes the core mechanism for focus handling within the event system, though several components are currently marked as work-in-progress.

Sources/OpenSwiftUI/Event/Focus · high confidence

Add internal accessibility modifier infrastructure and label support

This change introduces the internal foundation for accessibility modifiers in OpenSwiftUI. It adds the \AccessibilityConfigurationModifier\ protocol to standardize how accessibility configurations are applied to views. Specifically, it implements \AccessibilityLabelModifier\ to support the \accessibilityLabel()\ view modifier, allowing users to set custom accessibility labels. Additionally, it includes \AccessibilityButtonShapeModifier\, which currently acts as a pass-through but is structured to support future button shape visibility controls.

Sources/OpenSwiftUI/Accessibility/Modifier · high confidence

Add internal build detection and protocol descriptor utilities

This change introduces utility functions to detect Apple internal builds via system security policies and provides protocol descriptors for Scene, Commands, and ObservableObject. These utilities support internal feature gating and runtime protocol resolution within the OpenSwiftUI framework.

Sources/COpenSwiftUI/Util · high confidence

Add internal tracing infrastructure for debugging view lifecycle and layout

This change introduces a new internal tracing subsystem within OpenSwiftUICore to help developers debug view rendering, layout, and state changes. It adds dedicated trace modules for custom events (tracking observable updates, transactions, actions, graph operations, and animations), layout operations (size calculations, child geometries, and cache lookups), and view reuse (tracking cache hits, misses, and mismatch failures). Additionally, it provides signpost-based tracing for body execution and dynamic property link creation/updates, along with support for descriptive dynamic property values in trace output.

Sources/OpenSwiftUICore/Tracing · high confidence

Add layout direction support for internationalization

OpenSwiftUI now supports left-to-right and right-to-left layout directions to accommodate different languages and locales. The system automatically adjusts view positioning based on the user's locale, and developers can override this behavior using the \layoutDirection\ environment modifier or read the current direction via \EnvironmentValues\. Additionally, a new \LayoutDirectionBehavior\ enum allows views and shapes to explicitly control whether they should mirror their content when the layout direction changes, supporting both fixed and conditional mirroring strategies.

Sources/OpenSwiftUICore/Layout/Direction · high confidence

Add layout edge and inset types

The layout system now includes explicit definitions for \Edge\ (top, leading, bottom, trailing), \AbsoluteEdge\ (top, left, bottom, right), and \EdgeInsets\ to manage spacing and positioning. This introduces support for locale-aware leading/trailing edges and provides the underlying data structures for view insets and edge-based layout calculations.

Sources/OpenSwiftUICore/Layout/Edge · high confidence

Add observation-based example views for color and counter state

The Example/Shared/Data location now includes ObservationExample.swift, which introduces two new previewable views: ObservationColorExample and ObservationCounterExample. These views demonstrate the use of the @Observable macro for managing reactive state, allowing users to toggle a color between red and blue or increment a counter via tap gestures within the example project.

Example/Shared/Data · high confidence

Add onPreferenceChange, transformPreference, and preference modifiers

This change introduces the core implementation for the preference system in OpenSwiftUICore (audited for 6.5.4). It adds the \View.onPreferenceChange\ modifier, allowing views to execute an action when a specific preference key's value changes, and the \View.transformPreference\ modifier, which enables transforming preference values before they are passed up the view hierarchy. Additionally, it implements the \View.preference\ modifier for writing values, along with the underlying infrastructure including \PreferenceKey\, \PreferenceCombiner\, \PreferenceList\, and \PreferenceBridge\ to manage value aggregation, bridging between view graphs, and host-readable preferences.

Sources/OpenSwiftUICore/Data/Preference · high confidence

Add onReceive view modifier for Combine publishers

Users can now subscribe to Combine publishers directly within SwiftUI views using the new \onReceive\ modifier. This change introduces the \SubscriptionView\ component, which wraps a content view and attaches a subscriber to a given publisher, executing a provided action whenever the publisher emits a value. The implementation ensures that actions are dispatched on the main thread, logging a runtime issue if updates originate from background threads, thereby enabling reactive data binding patterns consistent with Apple's SwiftUI API.

Sources/OpenSwiftUI/View/Combine · high confidence

Add platform-agnostic test helpers for UIHostingController layout and lifecycle

This change introduces new test support utilities in the Integration module to facilitate testing SwiftUI views across iOS, visionOS, and macOS. It adds PlatformAlias.swift to define platform-specific type aliases (e.g., UIHostingController vs NSHostingController) and PlatformHostingControllerHelper.swift, which provides helper functions like triggerLayout and triggerLayoutWithWindow. These helpers allow test authors to instantiate hosting controllers, trigger layout passes, and manage window lifecycles safely using async/await and confirmation patterns, ensuring consistent behavior regardless of the target platform.

Sources/OpenSwiftUITestsSupport/Integration · high confidence

Add runtime support for conditional and tuple type introspection

New runtime files (ConditionalMetadata.swift, TupleTypeDescription.swift, TypeConformance.swift) introduce the ability to inspect and project conditional types (such as Optional and \_ConditionalContent) and tuple types at runtime. This enables the framework to correctly handle and render views that depend on conditional content or tuple structures by providing descriptors and conformance checks for these complex types.

Sources/OpenSwiftUICore/Runtime · high confidence

Add stdout renderer with terminal view mode

The Renderer directory now includes a new Stdout example package that enables the OpenSwiftUI stdout renderer, allowing apps to output display-list commands or render a single-frame ANSI terminal view directly to standard output. This feature supports a terminal view mode that maps logical surfaces into terminal cells with solid color backgrounds and text content, configurable via terminal size and color modes (monochrome, ANSI 16/256, truecolor). The example demonstrates this on macOS using the AttributeGraph backend and on Linux using the Compute backend, with specific test coverage for both display-list and terminal output modes.

Renderer · high confidence

Add support for identifying views with unique identifiers

This change introduces the internal infrastructure for the \\_identified(by:)\ view modifier, allowing views to be uniquely identified within the view hierarchy. It adds \IdentifiedModifier\ to wrap views with a specific identifier, \IdentifiedViewTree\ to manage the resulting tree structure of identified proxies, and \IdentifiedViewsKey\ to handle preference reduction for these identifiers. This enables the framework to track and manipulate specific views by their unique keys.

Sources/OpenSwiftUI/View/IdentifiedView · high confidence

Add tappablePadding modifier for expanding tap targets

Users can now use the new \tappablePadding\ view modifier to increase the interactive tap area of a view without altering its visual layout. This modifier applies padding around the content, makes the entire padded area tappable via \onTapGesture\, and then removes the visual padding, allowing for more accessible touch targets in UI components.

Sources/OpenSwiftUIExtension · high confidence

Add variable blur effect with image masking

Users can now apply a variable blur effect to views using the new \variableBlur(maxRadius:mask:opaque:)\ modifier, which allows an image to act as a mask to control the blur intensity across the view. This capability is supported by new internal types (\VariableBlurEffect\, \VariableBlurStyle\) and a base \BlurStyle\ struct that handles radius, opacity, and dithering settings, with serialization support via Protobuf.

Sources/OpenSwiftUICore/Graphic/BlurStyle · high confidence

Add view positioning modifier

Users can now position the center of a view at a specific coordinate in its parent's coordinate space using the new \.position(\_:)\ and \.position(x:y:)\ modifiers, which accept a \CGPoint\ or separate x and y offsets respectively.

Sources/OpenSwiftUI/Layout/Modifier · high confidence

Added CALayer extensions for animation control and view testing

This change introduces SPI (System Private Interface) additions to \CALayer\ within the QuartzCore overlay, enabling OpenSwiftUI to manage layer behavior more precisely. Specifically, it adds a \setNoAnimationDelegate\ method that suppresses implicit Core Animation transitions by assigning a custom delegate, which is useful for ensuring deterministic rendering during updates. Additionally, it exposes properties for \viewTestProperties\ and \displayListID\ to support internal view testing and display list tracking mechanisms.

_Sources/OpenSwiftUI\SPI/Overlay/QuartzCore · high confidence

Added EditMode support for List views

OpenSwiftUI now supports edit mode for List views, allowing users to enable editing states (inactive, transient, active) via the \editMode\ environment value. This change introduces the \EditMode\ enum and the \EditModeScopeModifier\ view modifier, enabling built-in views like \List\ with \ForEach\ to provide delete and move controls when configured with \onDelete\ or \onMove\ modifiers. It also allows custom views to react to edit mode, such as switching between read-only and editable fields, and works in conjunction with \EditButton\ to toggle the state.

Sources/OpenSwiftUI/View/List · high confidence

Added GestureState property wrapper and SpatialTapGesture support

Developers can now track transient state during user interactions using the new @GestureState property wrapper, which automatically resets to its initial value when a gesture ends. Additionally, the library now supports SpatialTapGesture, allowing views to recognize tap events and report their location via the onTapGesture modifier, with support for specifying tap counts and coordinate spaces.

Sources/OpenSwiftUI/Event/Gesture · high confidence

Added InterfaceIdiom support for platform-specific view selection

This change introduces the \InterfaceIdiom\ protocol and associated types (such as \carPlay\, \mac\, \phone\, \watch\, etc.) to enable views to adapt to specific device idioms. It includes the \InterfaceIdiomPredicate\ for conditional view rendering and updates \\_GraphInputs\ to track the current interface idiom, defaulting to \mac\ or \pad\ on macOS, \phone\ on iOS/visionOS, and \nokit\ otherwise.

Sources/OpenSwiftUICore/View/InterfaceIdiom · high confidence

Introduced the \Link\ view in OpenSwiftUI, allowing users to create navigable controls that open a specified URL when tapped or clicked. The view accepts a destination URL and a label (which can be a string, localized key, or custom view) and delegates the actual opening behavior to the \openURL\ environment value, enabling customization via \OpenURLAction\.

Sources/OpenSwiftUI/View/Control/Link · high confidence

Added Quartz Core private API shims for advanced rendering and animation

This change introduces a set of Objective-C shims in the QuartzCore shim directory to expose private Core Animation APIs required for OpenSwiftUI's rendering pipeline. Specifically, it adds support for \CABackdropLayer\ for backdrop effects, \CAFilter\ with its associated input keys and types for image processing (such as blur and color adjustments), and extended \CALayer\ properties like \allowsDisplayCompositing\, \allowsGroupBlending\, and \contentsSwizzle\ for fine-grained control over layer rendering and alpha handling. It also includes \CAPresentationModifier\ and \CAPresentationModifierGroup\ to enable direct, shared-memory-based modification of layer properties for efficient, off-main-thread animation updates, as well as private \CADisplayLink\ and \CATransaction\ methods to support high-frame-rate rendering and background context activation.

_Sources/OpenSwiftUI\SPI/Shims/QuartzCore · high confidence

Added SPI shims for CoreUI, MobileGestalt, and kdebug to support Xcode 26 SDK

This update adds new shim headers and implementations for CoreUI (including UIUserInterfaceIdiom mapping and display gamut detection), MobileGestalt (device capability queries), and kdebug (kernel tracing), enabling OpenSwiftUI to interface with the Xcode 26 SDK's private frameworks and system APIs.

(repo-wide) · high confidence

Added UIKit and system-private API shims for gesture, layout, and event handling

This update adds a comprehensive set of header and implementation shims in Sources/COpenSwiftUI/Shims/UIKit (alongside HIServices, QuartzCore, and UserActivity) to bridge OpenSwiftUI with private UIKit APIs. These shims provide access to gesture recognizer containers and registration, hit-testing contexts, constraint-based layout hosting views, scroll and transform events, and UI update cycles, enabling the framework to integrate deeply with iOS input and layout systems.

Sources/COpenSwiftUI/Shims/UIKit · high confidence

Added ViewStyle API support

The framework now supports the ViewStyle API, introducing new protocols and types such as StyleContext, StyleModifier, and StyleableView. This enables views to be styled using a configuration-based approach, allowing for more flexible and composable styling logic. Users can now apply styles to views that conform to StyleableView, with the framework handling the application of style modifiers and configurations.

Sources/OpenSwiftUICore/View/Style · high confidence

Added ViewThatFits layout example

An example demonstrating the ViewThatFits layout has been added to the Shared Layout section. It shows how to conditionally display different view arrangements (a combined text and progress bar, a progress bar only, or text only) based on available horizontal space.

Example/Shared/Layout · high confidence

Added animation completion callbacks

Developers can now register callbacks that execute once animations finish using the new \withAnimation\ overload and \Transaction.addAnimationCompletion\ method. The \AnimationCompletionCriteria\ enum allows choosing between \.logicallyComplete\ (firing when logical transitions end, ignoring long tails) and \.removed\ (firing only after all animation resources are fully cleaned up).

Sources/OpenSwiftUI/Animation/Animation · high confidence

Added coordinate space layout infrastructure

This change introduces the core types and protocols for the layout coordinate space system, including \CoordinateSpace\, \CoordinateSpaceProtocol\, and specific implementations like \GlobalCoordinateSpace\, \LocalCoordinateSpace\, and \NamedCoordinateSpace\. It also adds \ScrollCoordinateSpace\ support, enabling views to define and reference named coordinate spaces (such as scroll view bounds) for geometric conversions, which is a prerequisite for features like \GeometryReader\ frame queries relative to specific ancestors.

Sources/OpenSwiftUICore/Layout/CoordinateSpace · high confidence

Added core accessibility types and platform support

This change introduces the foundational types and platform integration required for accessibility features. It adds the \LinkDestination\ control in \OpenSwiftUICore\ to handle URL opening logic, including support for sensitive URLs. It also adds Objective-C and C headers and implementations in \OpenSwiftUI\_SPI\ to bridge to Apple's private accessibility frameworks (\AXRuntime\ and \AccessibilitySharedSupport\), defining accessibility traits (\AXOpenSwiftUITraits\) and automation types (\AXAutomationType\) to expose UI element properties to assistive technologies.

_Sources/OpenSwiftUICore/View/Control, Sources/OpenSwiftUI\_SPI/Overlay/Accessibility, Sources/OpenSwiftUI\SPI/Shims/Accessibility · high confidence

Added date formatting and localization infrastructure

The framework now includes a new date provider system and localization support within the Foundation overlay. This adds \BaseDateProvider\, \DateProvider\, and \TimeIntervalProvider\ classes to handle date formatting, time intervals, and calendar unit alignment, along with a \DateFormattingContext\ to manage reference dates and display preferences. Additionally, new \Localization\ utilities enable localized string resolution and sentence boundary detection, allowing date and text content to be properly adapted to the user's locale.

_Sources/OpenSwiftUI\SPI/Overlay/Foundation · high confidence

Added example views for GeometryActionModifier and GeometryReader

New example views have been added to the Shared Layout Geometry section to demonstrate the usage of \GeometryActionModifier\ and \GeometryReader\. The \GeometryActionModifierExample\ view illustrates how to observe geometry changes and update state dynamically, while the \GeometryReaderExample\ view shows how to size subviews relative to their parent container.

Example/Shared/Layout/Geometry · high confidence

Added example views for ProgressView, Toggle, and conditional content

The Example/Shared/View directory now includes new demonstration views for several SwiftUI components. ProgressViewExample showcases various ProgressView initializers, including determinate and indeterminate states, custom labels, timer-based progress, and Foundation Progress integration. ToggleExample demonstrates the Toggle view with state binding. Additionally, ConditionalContentExample, EquatableDemoView, and NamespaceExample provide examples for conditional view content, the @Equatable macro, and namespace-based animations respectively, all accompanied by SwiftUI previews.

Example/Shared/View · high confidence

Added example views for ViewModifier behaviors

The Example project now includes shared SwiftUI view modifiers demonstrating specific behaviors: \AppearanceActionModifierExample\ shows view lifecycle events, \PreferenceActionModifierExample\ and \TransactionalPreferenceActionModifierExample\ illustrate preference change handling (including transactional support), and \ValueActionModifierExample\ demonstrates value change observation. These examples serve as usage references for the ViewModifier API.

Example/Shared/ViewModifier · high confidence

Added gesture interaction examples

New example views demonstrating tap gesture handling have been added to the shared examples. The SpatialTapGestureExample shows how to capture the location of a spatial tap to change a circle's color, while the TapGestureExample demonstrates double-tap detection to cycle through a set of colors on an image.

Example/Shared/Event · high confidence

Added gradient color space interpolation support

Users can now specify how colors in a gradient are interpolated using three distinct modes: device, linear, and perceptual. This is implemented via the new \Gradient.ColorSpace\ struct and the underlying \ResolvedGradient\ logic, allowing for more accurate or perceptually uniform color transitions depending on the selected space.

Sources/OpenSwiftUICore/Graphic/Gradient · high confidence

Added hit-test diagnostics and responder-based hit-testing support

The hit-testing subsystem now includes diagnostic tracing capabilities that log detailed, recursive descriptions of hit-test results, including view properties like frame, visibility, and opacity, to aid in debugging interaction issues. Additionally, responder-based hit-testing is now supported on macOS, allowing views that rely on the responder chain for event handling to correctly participate in hit-testing logic, with the behavior controllable via feature flags or user defaults.

Sources/OpenSwiftUI/Event/HitTest · high confidence

This change introduces a new C-based overlay implementation for CoreVideo's DisplayLink on macOS, providing the underlying mechanism for frame-synced display updates. The new \DisplayLink.c\ and \DisplayLink.h\ files in \Sources/COpenSwiftUI/Overlay/CoreVideo\ implement the \DisplayLinkCreate\, \DisplayLinkDestroy\, and time-management APIs required to integrate with the system's display refresh cycle, enabling SwiftUI rendering to synchronize with the screen's vertical blanking interval.

Sources/COpenSwiftUI/Overlay/CoreVideo · high confidence

Added macOS hosting view and controller configuration options

Introduced \NSHostingSceneBridgingOptions\ and \NSHostingSizingOptions\ for macOS, allowing developers to configure how SwiftUI hosting views and controllers interact with AppKit windows. \NSHostingSceneBridgingOptions\ enables automatic population of window titles, subtitles, and toolbars from SwiftUI modifiers, while \NSHostingSizingOptions\ provides control over how content size constraints (minimum, ideal, maximum, and preferred) are reflected in Auto Layout.

Sources/OpenSwiftUI/Integration/Hosting/AppKit · high confidence

Added non-Darwin dyld shims with Xcode 26 SDK version support

This change introduces platform-shim implementations for dyld private APIs in Sources/OpenSwiftUI\_SPI/Shims/dyld, enabling OpenSwiftUI to function on non-Darwin operating systems. The new dyld\_Private.c file provides stub implementations for functions like dyld\_get\_active\_platform and dyld\_program\_sdk\_at\_least, returning safe defaults (e.g., DYLD\_PLATFORM\_UNKNOWN or true) when not on Darwin. Additionally, the header file updates version constants to include Xcode 26 series versions (macOS 26.0–26.5 and iOS 26.0–26.5), ensuring compatibility with the latest SDK toolchains.

_Sources/OpenSwiftUI\SPI/Shims/dyld · high confidence

Added non-Darwin platform shims for CoreFoundation, Color, Font, and Text APIs

This change introduces a new \Shim\ directory containing platform-specific compatibility layers for non-Darwin environments (e.g., Linux). It adds \CFCompatObject\ to enable CoreFoundation object identity and hashing without the Objective-C runtime, implements \NDColor\ to replace \CGColor\ for color resolution, provides placeholder \CTFont\ and \CTFontDescriptor\ classes when CoreText is unavailable, and implements \NSParagraphStyle\ and related text layout enums to support text styling and rendering on non-Apple platforms.

Sources/OpenSwiftUICore/Shim · high confidence

Added scroll position and target management infrastructure

This change introduces the foundational types and graph inputs required for the new scroll position API. It adds \ScrollPosition\ and \ScrollTarget\ structs, along with supporting protocols like \Scrollable\ and \ScrollStateRequest\. The implementation includes graph input keys to track scroll state and anchors, and extends \Transaction\ with new properties such as \scrollTargetAnchor\, \disablesPageScrollAnimations\, and \scrollContentOffsetAdjustmentBehavior\ to control scrolling behavior and animations.

Sources/OpenSwiftUICore/View/Scroll · high confidence

Added shared example views for layout and content rendering

New example views have been added to the shared Example project to demonstrate specific UI behaviors. These include DynamicLayoutViewExample for conditional view rendering, InsetViewModifierExample for safe area insets on all edges, and ForEachExample which showcases dynamic data updates in ForEach loops, static ranges, key-path based iteration, and non-constant range handling.

Example/Shared/Layout/Dynamic, Example/Shared/Layout/Modifier, Example/Shared/View/DynamicContentView · high confidence

Added timeline scheduling infrastructure for animation updates

The library now includes the core types required for timeline-based animations, specifically the \TimelineSchedule\ protocol and its conforming implementations (\AlignedTimelineSchedule\, \TimerTimelineSchedule\, and \TimerIntervalTimelineSchedule\). This change introduces the ability to define custom schedules that provide sequences of dates for \TimelineView\ updates, supporting both normal and low-frequency modes to optimize performance on devices like watchOS.

Sources/OpenSwiftUICore/Animation/Timeline · high confidence

Addition of Animatable protocol and view modifiers

This change introduces the core \Animatable\ protocol and supporting types (such as \VectorArithmetic\, \AnimatablePair\, and \AnimatableArray\) that enable view properties to be animated. It also adds the \unanimatable()\ view modifier, which allows developers to disable animations for specific views, and implements the necessary view and view modifier integration points to process animatable data within the rendering graph.

Sources/OpenSwiftUICore/Animation/Animatable · high confidence

Adds Dynamic Type, text formatting, and layout environment support

This change introduces core utilities for text rendering in the \Sources/OpenSwiftUICore/View/Text/Util\ directory. It adds \DynamicTypeSize\ and the deprecated \ContentSizeCategory\ enums to handle scalable content sizes, along with the \dynamicTypeSize\ environment key and \.dynamicTypeSize()\ view modifier. It implements \EnvironmentConfigurableFormatter\ to sync Foundation formatters (like \DateFormatter\ and \NumberFormatter\) with environment values such as locale and time zone. Additionally, it provides \ScaledMetric\ for scaling numeric values based on text style, \ParagraphTypesetting\ for controlling text layout, \WritingMode\ for horizontal/vertical text direction, and \ReducedTimelineSchedule\ to manage update schedules for dynamic text attributes.

Sources/OpenSwiftUICore/View/Text/Util · high confidence

Adds core view input/output infrastructure and predicate system

Introduces the foundational types for view graph inputs and outputs, including the \\_ViewInputs\ and \\_ViewOutputs\ structs which manage attributes like environment, transaction, and preferences. Adds the \ViewInputPredicate\ protocol and its implementations (\ViewInputFlag\, \InvertedViewInputPredicate\, \OrOperationViewInputPredicate\) to enable conditional logic based on graph inputs. Also adds \CustomViewCountCache\ for tracking view counts during enumeration and platform-specific output helpers for ZStack and root geometry transforms.

Sources/OpenSwiftUICore/View/Input · high confidence

Adds layout modifiers for frame, padding, and safe area insets

This change introduces the underlying layout implementations for several core view modifiers. It adds \FrameLayout\ to support the \frame(width:height:alignment:)\ API, allowing views to be positioned within a fixed-size invisible frame. It includes \PaddingLayout\ to handle the \padding\ modifier, enabling specific or default padding on view edges. Additionally, it implements \InsetViewModifier\ to support the \safeAreaInset\ API, which allows content to be anchored to specific edges while adjusting the view's safe area and insetting the main content accordingly.

Sources/OpenSwiftUICore/Layout/Modifier · high confidence

Adds macOS accessibility request diagnostics and private attribute storage

This change introduces new internal support for accessibility diagnostics and private attribute management on macOS. It adds a C function to detect whether the current client is making an accessibility request, allowing for better debugging of accessibility interactions. Additionally, it implements private Objective-C extensions on \NSObject\ to store accessibility-related data, such as default action blocks, link rotor information, and attribute lock sources, using associated objects to maintain state without modifying the original class definitions.

Sources/COpenSwiftUI/Overlay/Accessibility · high confidence

Adds onAppear, onDisappear, background, overlay, and onChange view modifiers

OpenSwiftUI now supports several new view modifiers that allow developers to react to view lifecycle events and layer content. The \onAppear\ and \onDisappear\ modifiers enable actions to be triggered when a view enters or leaves the interface. Developers can now layer secondary content behind or in front of primary views using \background\ and \overlay\, with support for alignment and style modifiers. Additionally, the \onChange\ modifier allows closures to execute when a specific value changes, facilitating reactive updates based on state or environment changes.

Sources/OpenSwiftUICore/Modifier/ViewModifier · high confidence

AsyncImage view and platform-specific image provider implementations

This change introduces the AsyncImage view, allowing users to load and display images from URLs with support for custom placeholders and phase-based content updates. It also adds ImageProvider implementations for UIImage and NSImage, enabling seamless integration of UIKit and AppKit image types into OpenSwiftUI views, along with the necessary VectorImageLayer support for NSImage rendering on macOS.

Sources/OpenSwiftUI/View/Image · high confidence

Bidirectional bridging of UIKit traits to SwiftUI environment values

On iOS and visionOS, OpenSwiftUI now supports a bidirectional bridge between UIKit traits (via \UITraitCollection\) and SwiftUI environment values. This allows environment values conforming to \UITraitBridgedEnvironmentKey\ to be read from and written to the underlying UIKit trait collection, ensuring that changes in one system are reflected in the other. The implementation includes new files (\Environment+UITraitKey.swift\, \PlatformEnvironment.swift\, \UIKitEnvironment.swift\) that define the bridging protocol, configure platform-specific environment defaults, and handle the resolution and synchronization of traits like layout direction, size category, and color scheme between the two frameworks.

Sources/OpenSwiftUI/Data/Environment · high confidence

Bundled non-Darwin CoreFoundation and dispatch compatibility headers

The SwiftCorelibs module now ships with a bundled set of C headers for CoreFoundation (including CFArray, CFDictionary, CFData, CFNumber, CFCharacterSet, and CFBase) and Grand Central Dispatch (dispatch, os). These headers provide the necessary type definitions and API stubs to support non-Darwin platforms (Linux, WASI, Windows) without requiring the full Swift toolchain headers to be present locally. Users can opt to use their local Swift toolchain headers instead by setting the OPENSWIFTUI\_LIB\_SWIFT\_PATH environment variable, which overrides the bundled headers.

Sources/SwiftCorelibs · high confidence

Comprehensive Color system implementation with accent color and matrix support

This change introduces a complete Color rendering infrastructure within OpenSwiftUICore, replacing previous stubs with a fully functional system. Users can now utilize the new Color.accentColor static property to apply the system or app-defined accent color to views, and the View.accentColor modifier to customize this theme color for specific view hierarchies. The implementation adds support for ColorMatrix filters, allowing for complex RGBA color transformations, and establishes robust conversion pathways between OpenSwiftUI Color and platform-specific types like CGColor and UIKit/AppKit colors. Additionally, the system now properly resolves ColorScheme and ColorSchemeContrast environment values, ensuring that views correctly adapt to light/dark modes and accessibility contrast settings.

Sources/OpenSwiftUICore/Graphic/Color · high confidence

Core View system and modifiers implemented

The View module now provides the foundational infrastructure for the OpenSwiftUI view hierarchy. This includes the View protocol with its body and rendering lifecycle (\_makeView, \makeViewList), along with core view types such as EmptyView, Group, TupleView, and OptionalView. The ViewBuilder result builder is implemented to support conditional logic (buildIf, buildEither) and multi-statement closures. Additionally, view modifiers like tag(\:) and \_untagged() are available for managing view traits and selection state, and a new ConditionalGraphicsView protocol allows views to opt into a graphics-renderer body path.

Sources/OpenSwiftUICore/View · high confidence

Dynamic and resolvable text content support

The Text view now supports dynamic, resolvable string attributes that update automatically based on time and context. Users can display live dates, countdown timers, progress intervals, and other time-sensitive data that refreshes in the UI without manual intervention. This enables text elements to show current time, formatted date intervals, and progress percentages that update in real-time.

Sources/OpenSwiftUICore/View/Text/Resolve · high confidence

Expanded ShapeStyle capabilities with foreground, background, and material support

The ShapeStyle system now supports a richer set of styling options, including hierarchical foreground styles (primary, secondary, tertiary, etc.) and context-aware background styles that adapt to light/dark modes and platform-specific colors. Users can now apply blend modes to shape styles, use materials (like regularMaterial) for blurred backgrounds, and define custom drop or inner shadows. The implementation also introduces type-erased AnyShapeStyle for flexible style handling and anchored styles for precise coordinate mapping.

Sources/OpenSwiftUICore/Shape/ShapeStyle · high confidence

Expanded Text view capabilities with line limits, date formatting, and image attachments

The Text view now supports advanced formatting and layout controls. Users can cap or range-limit text lines using the new lineLimit modifiers, which apply to individual Text instances within a hierarchy. Date values can be displayed using predefined styles (time, date, relative, offset, timer) or custom FormatStyles, including attributed styles. Text views can now wrap Image instances for inline attachment, and support concatenation via the + operator. Additional features include text selection control, text scaling, justification, and custom attributes for extensibility.

Sources/OpenSwiftUICore/View/Text/Text · high confidence

Implement archivable views and modifiers

This change introduces the internal infrastructure for archiving SwiftUI views and modifiers, enabling the framework to serialize and deserialize view states. It adds the \\_ArchivableView\ and \\_ArchivableViewModifier\ protocols, along with supporting types like \ArchivableFactory\, \ArchivableDisplayList\, and \ArchivableLayoutComputer\, which handle the encoding of view hierarchies into display lists and layout data. This foundation allows views to be preserved and restored, a capability required for features like view state persistence or deep linking.

Sources/OpenSwiftUI/View/ArchivedView · high confidence

Initial Display List rendering engine and Quartz Core hosting layer support

This change introduces the core Display List rendering infrastructure for OpenSwiftUI, including the \DisplayList\ data structure, animation system, and platform-specific rendering backends. It adds \CAHostingLayer\ and \CAHostingLayerEvent\ to enable rendering SwiftUI views into Quartz Core layers, supporting mouse events and layer updates. The diff also includes a \DisplayListStdoutRenderer\ for terminal-based debugging output, a \DisplayListPrinter\ for serialization, and initial support for async layer updates and platform effects.

Sources/OpenSwiftUICore/Render/DisplayList · high confidence

Initial OpenSwiftUI documentation added

Added the initial documentation structure for OpenSwiftUI, including the main module overview, an introductory tutorial, and the documentation bundle configuration (Info.plist). This provides users with foundational guides on declaring user interfaces, managing data flow, and composing views across platforms.

Sources/OpenSwiftUI/OpenSwiftUI.docc · high confidence

Initial UIKit hosting infrastructure for iOS and visionOS

OpenSwiftUI now provides the foundational classes to host SwiftUI views within UIKit applications on iOS and visionOS. This change introduces \UIHostingController\ and \\_UIHostingView\ (along with supporting types like \UIHostingViewBase\ and \UIHostingControllerSizingOptions\), enabling developers to embed OpenSwiftUI content in standard UIKit view hierarchies. The implementation includes basic view lifecycle management, environment propagation, and sizing options, serving as the core integration layer for UIKit-based apps.

Sources/OpenSwiftUI/Integration/Hosting/UIKit/View · high confidence

Initial benchmarking infrastructure added

A new Benchmarks directory has been introduced to support performance testing, including a sample Swift benchmark using the Benchmark library, an Xcode workspace configuration, and VS Code launch settings for running the OpenSwiftUIBenchmark executable in both Debug and Release modes.

Benchmarks · high confidence

Initial implementation of the OpenSwiftUI Graph system

This change introduces the core Graph infrastructure for OpenSwiftUI, including the \GraphHost\ for managing view lifecycle and transactions, \\_GraphInputs\ for handling environment and phase data, and \GraphReuse\ logic to optimize view updates by reusing existing graph nodes. It also adds \\_GraphValue\ as a transient reference to values in the view hierarchy's dataflow graph, establishing the foundation for the framework's rendering and state management engine.

Sources/OpenSwiftUICore/Graph · high confidence

Initial stub implementation of Button, ButtonStyle, and ControlSize APIs

This change introduces the foundational structure for the Button control and its styling system in OpenSwiftUI. It adds the \Button\ view type, \ButtonRole\ (destructive, cancel), and the \ButtonStyle\ and \PrimitiveButtonStyle\ protocols along with their configuration structs. It also defines the \ControlSize\ enum (mini, small, regular, large, extraLarge) and the corresponding \controlSize\ environment key and view modifier. While the core types and styling infrastructure are now present, the actual rendering logic is currently stubbed out (returning \EmptyView\ or using abstract methods), with specific styles like \BorderlessButtonStyle\ marked as work-in-progress.

Sources/OpenSwiftUI/View/Control/Button · high confidence

Initial support for hosting SwiftUI views in AppKit on macOS

This change introduces the \NSHostingView\ class, allowing OpenSwiftUI view hierarchies to be embedded directly into AppKit applications on macOS. The new view acts as a bridge between the SwiftUI rendering engine and the AppKit view system, handling layout constraints, intrinsic content sizing, and event delivery. Users can now integrate SwiftUI components into existing macOS interfaces, such as custom controls or window content views, leveraging the standard AppKit layout and event mechanisms.

Sources/OpenSwiftUI/Integration/Hosting/AppKit/View · high confidence

Introduce ContainerValues API for scoped view data sharing

OpenSwiftUI now provides a \ContainerValues\ system that allows views to share data with their direct container views, similar to preferences but with stricter scoping. Developers can define custom values using the \ContainerValueKey\ protocol and the \@Entry\ macro, then set them on child views using the new \.containerValue(\:\:)\ modifier. These values are accessible to the immediate parent container (such as a \Group(subviews:)\) but do not escape or merge across intermediate containers, ensuring predictable data flow for complex view hierarchies.

Sources/OpenSwiftUI/View/Container, Sources/OpenSwiftUICore/View/Container · high confidence

Introduce OpenSwiftUI app lifecycle and platform-specific launchers

This change adds the foundational app lifecycle support for OpenSwiftUI, introducing the \App\ protocol and \AppGraph\ to manage the application's root scene and state. It provides platform-specific launchers for macOS (AppKit) and iOS/visionOS (UIKit) that initialize the \AppGraph\ and connect it to the native application delegates. Additionally, it implements \UIApplicationDelegateAdaptor\ and \NSApplicationDelegateAdaptor\ property wrappers, allowing developers to inject and manage native app delegates within the OpenSwiftUI \@main\ app declaration, and adds a \StdoutApp\ renderer for non-GUI environments.

Sources/OpenSwiftUI · high confidence

Introduce OpenSwiftUIBridge for type interoperability

The new OpenSwiftUIBridge module provides a \Bridgeable\ protocol and concrete implementations to convert between SwiftUI and OpenSwiftUI types. This enables bidirectional conversion for \Color\ and \Color.Resolved\ values, as well as placeholder support for \EnvironmentValues\, allowing developers to mix and match components from both frameworks.

Sources/OpenSwiftUIBridge · high confidence

Introduce Tuist-based project generation for the Example app

The Example app now uses Tuist for project generation, replacing the previous manual Xcode project setup. This change introduces a new build workflow managed by \Project.swift\ and \Tuist.swift\, supporting multi-platform deployment targets (iOS 18.0, macOS 15.0, visionOS 2.0) and distinct build configurations for SwiftUI and OpenSwiftUI modes. It adds configurable support for debug UI inspector servers (LookInside and LookIn) via environment variables, integrates with the \mise\ tool for dependency and toolchain management, and includes a \setup.sh\ script to streamline the generation process with optional Compute backend support.

Example · high confidence

Introduce View Alias system for indirect view composition

Added the \ViewAlias\ protocol and associated \viewAlias\ and \optionalViewAlias\ modifiers to \Sources/OpenSwiftUI/View/Configuration\, enabling developers to define placeholder views that are replaced by specific source views at render time. This change also includes the \OptionalViewAlias\ property wrapper for conditionally accessing these aliases and extends \ViewInputPredicate\ support, allowing for more flexible view hierarchy composition and reuse patterns within the framework.

Sources/OpenSwiftUI/View/Configuration · high confidence

Introduce core DynamicView infrastructure and ID-based view identity

This change adds the foundational implementation for dynamic views in OpenSwiftUICore, introducing the \DynamicView\ protocol and its internal containers (\DynamicViewContainer\, \DynamicViewList\) to manage view hierarchy updates and subgraph lifecycle. It also adds \AnyView\ for type-erased views, \IDView\ to bind view identity to a specific ID (resetting state when the ID changes), and \DebugReplaceableView\ to support Xcode Previews in debug builds. These components enable dynamic content rendering and identity tracking within the view graph.

Sources/OpenSwiftUICore/View/DynamicView · high confidence

Introduce core accessibility infrastructure and environment integration

This change adds the foundational types and environment bindings for accessibility support in OpenSwiftUI. It introduces \AccessibilityTechnologies\ to represent assistive features (VoiceOver, Switch Control, etc.) and exposes their status via new \EnvironmentValues\ properties like \accessibilityVoiceOverEnabled\ and \accessibilityLargeContentViewerEnabled\. The diff also adds \AccessibilityNode\ and \AccessibilityNodeList\ structures to manage the accessibility tree, \AccessibilityFocus\ for tracking focus states, and \AccessibilityAdditions\ to link platform elements to these nodes. Additionally, it implements \AccessibilityCore.UserSettings\ to resolve system accessibility preferences (such as Reduce Motion and Differentiate Without Color) into the environment.

Sources/OpenSwiftUI/Accessibility · high confidence

Introduce internal infrastructure for archived view hierarchies

This change adds the core internal types and protocols required to support view archiving in OpenSwiftUI. It introduces \ArchivedViewInput\ to manage configuration flags (such as stable IDs and precise text layout) and deployment version compatibility, \ArchivedViewCore\ to handle metadata serialization, and the \ConditionallyArchivableView\ protocol to allow views to provide an alternate \archivedBody\ when in an archived state. These components form the foundation for serializing and deserializing view hierarchies, though the actual writing logic remains a stub.

Sources/OpenSwiftUICore/View/Archive · high confidence

Introduces OpenSwiftUI\_SPI module with platform shims and SDK support

This change adds the OpenSwiftUI\_SPI module, providing a new layer of shims and base definitions to safely wrap private Darwin APIs and support newer SDK versions. The module includes \OpenSwiftUIBase.h\ and \OpenSwiftUITargetConditionals.h\ to define macros for Xcode 26 and 27 SDK additions, as well as visionOS support. It also introduces specific shim headers and implementations for CoreGraphics (e.g., \CGImageGetHeadroom\), GraphicsServices (e.g., \\_SimulatorSystemRootDirectory\), and various other private frameworks like QuartzCore, CoreFoundation, and Accessibility, ensuring compatibility and stability when accessing these internal APIs.

_Sources/OpenSwiftUI\SPI · high confidence

Introduces Update coordination system for view updates

Adds the \Update.swift\ file in \Sources/OpenSwiftUICore/Data\, implementing the core coordination logic for view updates. This includes thread-safe locking via \MovableLock\, depth tracking for nested update scopes, and action queuing/dispatching mechanisms. It provides APIs like \begin()\, \end()\, \perform()\, and \syncMain()\ to manage the lifecycle of update transactions and ensure actions are executed on the main thread, forming the foundation for the view update cycle.

Sources/OpenSwiftUICore/Data · high confidence

Introduces container-relative shapes and comprehensive shape rendering infrastructure

Users can now use \.containerShape\ to define a shape that automatically adapts to its container's insets, allowing child views to share the same rounded or custom geometry. This change also adds the \FillStyle\ API for controlling even-odd fill rules and antialiasing, implements the \InsettableShape\ protocol with \strokeBorder\ convenience methods for standard shapes like \Rectangle\ and \RoundedRectangle\, and establishes the core \Path\ storage and \ShapeLayer\ rendering logic required to display these shapes on screen.

Sources/OpenSwiftUICore/Shape · high confidence

New CoreGraphics SPI overlays for path, color, image, and view management

This change introduces a comprehensive set of new SPI overlay files in the CoreGraphics module to bridge OpenSwiftUI with platform-specific UIKit and AppKit rendering systems. It adds path manipulation utilities including a parser for SVG-like path strings and rounded rectangle creation, a unified color abstraction layer that resolves between NSColor and UIColor based on the target system, and platform-agnostic image handling for template modes and orientation. Additionally, it provides a CoreGraphics context provider for text rendering, shadow management via NSShadow, and a centralized view function layer that abstracts subview insertion, geometry updates, and display calls across UIView, NSView, and CALayer hierarchies.

_Sources/OpenSwiftUI\SPI/Overlay/CoreGraphics · high confidence

New Font API surface and CoreText resolution implementation

This change introduces the core implementation for the Font API in OpenSwiftUICore, adding new files such as Font.swift, CustomFont.swift, SystemFont.swift, and TextStyle.swift. It provides public static methods to create system fonts (e.g., .largeTitle, .body) and custom fonts (e.g., .custom(\_:size:)), along with modifiers for styling (e.g., .bold, .italic, .monospacedDigit). The implementation relies on CoreText for font resolution, utilizing private CoreText APIs to handle font descriptors, weights, and design traits, effectively bridging OpenSwiftUI's Font type with platform-specific font rendering.

Sources/OpenSwiftUICore/View/Text/Font · high confidence

New SwiftUI SPI interfaces for layout, preferences, and rendering

This change introduces new Swift interface definitions for the \SwiftUI\_SPI\ module, exposing several internal and platform-specific APIs. It adds the \JindoTripleVStack\ layout modifier (available on iOS 16.1+, tvOS 18.0+, watchOS 11.0+) with configuration options for notch handling and horizontal sizing, along with view modifiers like \jindoPosition\ and \jindoVerticalPlacement\. It also exposes the \onPreferenceChange\ view modifier (iOS 18.2+, macOS 15.2+) for handling preference updates with transactions, the \CAHostingLayer\ class for UIKit/AppKit integration (iOS 18.0+), and low-level rendering primitives including \DisplayList\ and \ViewGraph\ for accessing the view graph and display list outputs.

Example/Modules/Platform · high confidence

New Text view examples for layout, formatting, and typography

The example app now includes dedicated playgrounds for the Text view, demonstrating specific layout and typography features. Users can explore line limiting with the \reservesSpace\ option, custom font handling via an Inter font playground, and text layout behaviors like avoiding orphans and push-out. Additionally, examples cover foreground styling, standard date formatting, and system-specific format styles such as timers, stopwatches, and date offsets.

Example/Shared/View/Text · high confidence

New accessibility core types and platform support

This change introduces the foundational accessibility infrastructure for OpenSwiftUI, adding core types and platform support. It includes new files for managing activation points, announcement priorities, chart descriptors, custom content, and data series configurations. The update also establishes the \AccessibilityEnvironment\ to expose system preferences (such as Reduce Motion and Invert Colors) and implements the \AccessibilityCombinable\ protocol to handle the merging of accessibility attributes across view hierarchies.

Sources/OpenSwiftUICore/Accessibility · high confidence

New animation example views for the shared example project

Added a collection of new SwiftUI view examples in the Example/Shared/Animation directory to demonstrate various animation capabilities. These include ViewUnanimatableExample for the .unanimatable() view modifier, AnimationCompleteExample for logical and removal completion criteria, ColorAnimationExample for property-based animations, ElasticEaseInEaseOutAnimationExample for custom easing curves, RepeatAnimationExample for repeating animations, SpringAnimationExample for spring physics, TransactionExample for transaction-based animation overrides, and Timeline views (AnimatedColorTimelineView, BreathingColorView, ColorCodedClockView) for time-driven animations.

Example/Shared/Animation · high confidence

New build, documentation, and XCFramework automation scripts

The repository now includes a comprehensive set of shell scripts to streamline development and release workflows. \build.sh\ and \test.sh\ provide simple entry points for building and testing the project, including Linux support via \swiftly\. \build\_xcframework.sh\ and \build\_xcframework\_slice.sh\ automate the creation of XCFrameworks using Tuist, supporting multiple SDKs, architectures, and the Compute backend. Documentation workflows are enhanced with \build-documentation.sh\ for single-version DocC builds, \preview-documentation.sh\ for local multi-version site previews, and \extract-documentation-symbol-graphs.sh\ for managing versioned symbol graphs. Additionally, \update-gh-pages-documentation.sh\ handles publishing to GitHub Pages, and \sync\_launchagent.sh\ assists in setting up the development environment on macOS.

Scripts · high confidence

New cycle detection and structured logging infrastructure

The Log module now includes a CycleDetector that warns users when views or values attempt to update multiple times per frame or cycle between duplicate values, helping identify performance issues and infinite update loops. A new Logging implementation provides a unified logging API that supports both Swift Log and os\_log backends, with specific channels for internal errors, external warnings, and event debugging. Additionally, a Signposts module introduces structured performance tracing via kdebug and os\_signpost for key rendering and update phases, enabling better profiling of UI behavior.

Sources/OpenSwiftUICore/Log · high confidence

New environment keys and modifiers for window state, view enablement, and privacy redaction

OpenSwiftUI now exposes several new environment keys and view modifiers to improve control over UI state and privacy. Developers can use the new \appearsActive\ and \isEnabled\ environment values to adjust view styling based on window focus and interactivity. The framework introduces the \privacySensitive()\ modifier and \RedactionReasons\ (including \privacy\, \placeholder\, \invalidated\, and \screencaptureProhibited\) to allow views to be automatically redacted or obscured in response to system privacy settings or screen capture attempts. Additionally, new window environment keys (\windowAppearsFocused\, \windowAppearsMain\, etc.) are available to query window state, and \isLuminanceReduced\ helps adapt UI brightness for low-light environments.

Sources/OpenSwiftUICore/Data/EnvironmentKeys · high confidence

New example apps for benchmarking and state management patterns

The Example app now includes dedicated entry points for performance benchmarking and modern state management. Users can run the BenchmarkApp to measure rendering performance of specific views, or launch ObservableExampleApp and ObservableObjectExampleApp to see how the framework handles the Observation and Combine state management patterns respectively, with support for both UIKit and AppKit delegates.

Example/Example · high confidence

New example views for CAHostingLayer and color representables

Added two new example components in the shared integration area: CAHostingLayerExample, which demonstrates rendering SwiftUI content via a custom Core Animation hosting layer with platform-specific layout updates, and ColorRepresentableExample, which provides UIViewRepresentable/NSViewRepresentable and UIViewControllerRepresentable/NSViewControllerRepresentable wrappers that render a red background. These examples are available as SwiftUI previews and support both UIKit and AppKit platforms.

Example/Shared/Integration · high confidence

New geometry effect modifiers and transitions

This change introduces the core implementation for several view geometry effects in OpenSwiftUICore, including \rotationEffect\, \rotation3DEffect\, \scaleEffect\, and \offset\. It also adds the \matchedGeometryEffect\ API, allowing views to synchronize their geometry (position, size, or clip rect) across different parts of the view hierarchy using namespaces. Additionally, corresponding transition types (\ScaleTransition\, \OffsetTransition\) are provided to animate views using these effects.

Sources/OpenSwiftUICore/Render/GeometryEffect · high confidence

New gesture system infrastructure and modifiers

The gesture subsystem in OpenSwiftUICore has been significantly expanded with the addition of core infrastructure and a wide range of new gesture types and modifiers. Users can now utilize type-erased gestures via AnyGesture, combine gestures exclusively with ExclusiveGesture, and apply modifiers such as delayed, duration, coordinate space, category, and event filtering. The update also introduces new primitive gestures like DistanceGesture and EventListener, along with callback handling via CallbacksGesture, providing a more comprehensive and flexible gesture recognition API.

Sources/OpenSwiftUICore/Event/Gesture · high confidence

New graphics rendering primitives and filter infrastructure

This change introduces the core data structures and conversion logic for the new graphics rendering pipeline. It adds the \BackdropEffect\ struct for managing backdrop styling, the \GraphicsFilter\ enum to define supported visual effects (such as blur, color matrix, and hue rotation), and the \Shader\ struct for shader-based effects. Additionally, it provides \GraphicsConversions\ to map these internal filters to Quartz Core filters and \CatalogLookup\ to handle asset resolution based on environment values like color scheme and contrast.

Sources/OpenSwiftUICore/Graphic · high confidence

New layout geometry and transform types for view positioning and alignment

The layout system now exposes new internal types—\ViewDimensions\, \ViewFrame\, \ViewGeometry\, \ViewSize\, and \ViewTransform\—to manage how views are sized, positioned, and aligned. \ViewDimensions\ and \ViewSize\ provide access to a view's size and alignment guides within its own coordinate space, enabling custom alignment calculations. \ViewGeometry\ combines origin and dimensions to represent a view's position in its parent's coordinate space, including support for right-to-left layout adjustments. \ViewFrame\ represents the view's frame as a \CGRect\ with animation support. \ViewTransform\ handles coordinate-space conversions, allowing views to report their position and size relative to specific coordinate spaces (e.g., global, local, or custom spaces) via translations, affine transforms, and scroll geometry.

Sources/OpenSwiftUICore/Layout/View · high confidence

New layout system and view modifiers

The layout engine has been updated to support dynamic layout switching via AnyLayout, constrain view dimensions with aspectRatio and fixedSize, and control space apportionment with layoutPriority. Additionally, views can now extend beyond screen boundaries using the ignoreSafeArea modifier, which adjusts the proposed layout area to ignore safe area insets on specified edges.

Sources/OpenSwiftUICore/Layout · high confidence

New platform-specific gesture and event integration for macOS and iOS/visionOS

This change introduces the platform-specific event binding bridges and gesture recognizers for macOS (AppKit) and iOS/visionOS (UIKit). On macOS, it adds AppKitEventBindingBridge and AppKitGestureRecognizer to handle mouse, magnify, and rotate events, along with NSViewResponder for hit-testing. On iOS/visionOS, it adds UIKitEventBindingBridge, UIKitGestureRecognizer, UIKitHoverGestureRecognizer, and UIKitKeyPressResponder to handle touch, pan, scroll, and key press events, including gesture container management and modifier key handling. These components bridge native platform events to the OpenSwiftUI event system.

Sources/OpenSwiftUI/Event/Platform · high confidence

New render effect and async renderer examples added

The Example/Shared/Render directory now includes new SwiftUI view examples demonstrating specific rendering capabilities: async renderer transitions (including a custom transition to exercise inherited view updates), geometry effects (offset, rotation, and 3D rotation), matched geometry effects with clip shapes, and variable blur effects. These examples serve as visual tests and documentation for these rendering features within the shared example project.

Example/Shared/Render · high confidence

New rendering effects for blur, clipping, shadows, and opacity

The \RendererEffect\ directory now includes implementations for several view modifiers that alter how views are rendered. Users can apply a Gaussian blur with \blur(radius:opaque:)\, clip views to specific shapes or frames using \clipShape(\:style:)\ and \clipped(antialiased:)\, and add customizable shadows with \shadow(color:radius:x:y:)\. Additionally, view transparency is controlled via the \opacity(\:)\ modifier, and a new \foregroundLayer()\ modifier is available for iOS 2.0+ to isolate foreground rendering.

Sources/OpenSwiftUICore/Render/RendererEffect · high confidence

New rendering infrastructure and stdout renderer support

This change introduces the core rendering engine components for OpenSwiftUI, including the \PlatformDrawable\ protocol and \PlatformDrawableContent\ for managing display list rendering, \RasterizationOptions\ for configuring color modes and acceleration flags, and the \RendererLeafView\ protocol for generating display lists from leaf views. It also adds a new \stdout\ renderer option via \\_RendererConfiguration\, allowing users to output display lists as text or a terminal-cell canvas for debugging, and provides a \ViewRendererVendor\ API to detect whether the app is using OpenSwiftUI or Apple's native SwiftUI renderer at runtime.

Sources/OpenSwiftUICore/Render · high confidence

New responder infrastructure for hit-testing and content shapes

This change introduces the underlying responder classes and view modifiers that enable custom hit-testing regions and platform view integration. It adds the \contentShape\ and \contentShape(\_:eoFill:)\ view modifiers (along with their \\_ContentShapeModifier\ and \\_ContentShapeKindModifier\ implementations) to define arbitrary shapes for interaction testing, and introduces \PlatformViewResponderBase\ to bridge OpenSwiftUI views with UIKit/AppKit platform views for hit-testing. It also adds \AnyDragResponder\ and \AllowsWindowActivationEventsResponder\ to support drag interactions and window activation event handling.

Sources/OpenSwiftUI/Event/Responder · high confidence

New system timer, date offset, and date reference format styles

The Text view now supports three new system format styles for displaying time-based data: \SystemFormatStyle.Timer\ for countdown/stopwatch displays, \SystemFormatStyle.DateOffset\ for showing a date's offset from an anchor, and \SystemFormatStyle.DateReference\ for relative date formatting. These styles integrate with the new \TimeDataSource\ and \TimeDataSourceStorage\ protocols to provide live, automatically updating values in Widgets, Live Activities, and watchOS Complications. The implementation also adds support for calendar-dependent formatting, capitalization context awareness, size-adaptive field removal, and safe serialization for archived view inputs.

Sources/OpenSwiftUICore/View/Text/FormatStyle · high confidence

New transaction-based animation control APIs

This change introduces the \Transaction\ structure and the \transaction(\:)\ view modifier, providing a new mechanism to pass and mutate animation context within the view hierarchy. Users can now use \.transaction { ... }\ to modify animation properties (such as adding delays or changing animation types) for specific views, or use the value-based \.transaction(value:\:)\ modifier to apply transformations only when a specific value changes. This replaces or augments the older \.animation(\_:)\ modifier, which is now deprecated in favor of these more flexible transaction-based approaches.

Sources/OpenSwiftUICore/Animation/Transaction · high confidence

New typesetting language and line-height configuration APIs

Developers can now control text layout behavior for specific scripts using the new \typesettingLanguage\ and \typesettingLanguageAwareLineHeightRatio\ modifiers on \View\ and \Text\. These additions allow applications to specify an explicit language for typesetting (e.g., Thai) to ensure correct line height, line breaking, and spacing, or to customize the language-aware line-height ratio, addressing issues where text scripts differ from the device's UI language.

Sources/OpenSwiftUICore/View/Text/Typesetting · high confidence

New utility and shim infrastructure in OpenSwiftUICore/Util

This change introduces a comprehensive set of new utility files and shims to the OpenSwiftUICore/Util module, establishing foundational support for accessibility, attribute graph operations, and cross-platform compatibility. Key additions include AccessibilityShims for chart descriptors and custom content, AttributeGraphAdditions for async attributes and default rules, and CoreGlue for platform-specific layout and view generation. The update also adds Debugger detection, CoreSystemUtils for platform identification (Catalyst, UIKit, AppKit), and various Foundation and StandardLibrary extensions for date, duration, and floating-point handling. Additional utilities cover thread safety (ThreadSpecific, AtomicBox), run loop management, feature flags, and debugging descriptions (CustomRecursiveStringConvertible, SExpPrinter).

Sources/OpenSwiftUICore/Util · high confidence

New utility data structures and caching mechanisms

This change introduces a suite of new internal utility types to the Data/Util module, including AnyHashable2 for flexible hashable value storage, BitVector and BitVector64 for efficient bit manipulation, BloomFilter for probabilistic set membership testing, and ObjectCache with an LRU eviction policy for thread-safe key-value caching. It also adds ConcatenatedCollection for treating two collections as one, InlineArray (ArrayWith2Inline) for optimized small-array storage, Stack for LIFO operations, StrongHash for cryptographic hashing, and ScrapeableContent support for view content scraping, alongside PropertyList improvements for property management.

Sources/OpenSwiftUICore/Data/Util · high confidence

New view insertion and removal transitions

The \View.transition\ modifier now supports a comprehensive set of built-in animation effects for when views appear or disappear. Users can apply \.slide\ for a standard leading-to-trailing slide, \.move(edge:)\ to slide from a specific edge, \.push(from:)\ for a navigation-style slide with fade, \.blur(radius:)\ for a fade-and-blur effect, and \.blurReplace\ for a combined scale-blur animation. Additionally, transitions can be combined using \.combined(with:)\ or configured with different insertion and removal behaviors via \.asymmetric(insertion:removal:)\, and custom animations can be attached using \.animation(\_:)\.

Sources/OpenSwiftUICore/Animation/Transition · high confidence

New view modifiers for tasks, geometry actions, and hidden state

OpenSwiftUI now supports the \.task\ modifier to run asynchronous code before a view appears (and restart it when an ID changes), the \.geometryAction\ modifier to execute logic when a view's geometry changes, and the \.hidden\ modifier to hide content while optionally preserving preference values. These additions expand the available declarative APIs for handling side effects and layout-driven updates.

Sources/OpenSwiftUI/Modifier/ViewModifier · high confidence

Repository initialization with build, documentation, and contribution configuration

The repository is initialized with essential configuration files that define the project's build and documentation workflows. A \.swiftformat\ file enforces code style rules, while \.codecov.yml\ configures coverage reporting to ignore test files. Documentation is managed via \.vdc.json\ for VersionedDocC, which sets up versioned API documentation for modules like OpenSwiftUI, OpenAttributeGraph, and OpenObservation. Project management is handled by \Tuist.swift\ and \mise.toml\ files, which configure the Tuist build system and tool versions. Additionally, \CONTRIBUTING.md\ and \AGENTS.md\ provide guidelines for developers and AI agents on how to build, test, and contribute to the project.

(repo-wide) · high confidence

Scene-level modifiers for lifecycle, environment, preferences, and external events

OpenSwiftUI now supports applying modifiers directly to Scenes, enabling developers to manage scene lifecycle, environment, and routing without wrapping content in views. You can now use \onAppear\ and \onDisappear\ to run code when a scene becomes active or inactive, and \onChange\ to react to value changes (with a new two-parameter signature providing both old and new values, replacing the deprecated single-parameter version). Environment management is extended via \environment\, \environmentObject\, and \transformEnvironment\ to inject or modify values for the entire scene hierarchy. Preferences can be set or transformed at the scene level using \preference\ and \transformPreference\. Additionally, \handlesExternalEvents\ allows scenes to declare which external URLs or user activities should trigger the opening of a new scene instance.

Sources/OpenSwiftUI/Modifier/SceneModifier · high confidence

Support for @Environment with Observable objects

OpenSwiftUI now allows views to read objects conforming to the new \Observable\ protocol from the environment using the \@Environment\ property wrapper, in addition to the existing \ObservableObject\ support. This change introduces \Environment+Observation.swift\ to provide initializers for \@Environment\ that accept \Observable\ types (including optional variants) and adds a corresponding \.environment(\_:)\ view modifier to inject these objects into the view hierarchy. Internal utilities in \ObservationUtils.swift\ handle the integration with the observation tracking system, ensuring that views automatically update when the underlying observable state changes.

Sources/OpenSwiftUICore/Data/Observation · high confidence

Support for LocalizedStringResource in Text views

Text views now support initialization with \LocalizedStringResource\ (available from OpenSwiftUI v4.0), allowing developers to display localized strings defined via the Foundation \LocalizedStringResource\ API. This includes a new initializer \Text(\_ resource: LocalizedStringResource)\ and compiler support for appending \LocalizedStringResource\ instances within string interpolations, enabling seamless integration of modern localization resources into UI text components.

Sources/OpenSwiftUICore/View/Text/Localized · high confidence

Support for Text.LineStyle conversion between OpenSwiftUI and UIKit

Users can now convert between OpenSwiftUI's Text.LineStyle and UIKit's NSUnderlineStyle. This change adds initializer extensions that allow wrapping an NSUnderlineStyle into a Text.LineStyle and vice versa, facilitating interoperability when bridging text styling between the two frameworks.

Sources/OpenSwiftUI/Integration/Graphic/Platform · high confidence

Support for Xcode Previews with OpenSwiftUI views

Developers can now use the \\#Preview\ macro and \\_previewVC()\ helper to render OpenSwiftUI views directly in Xcode Previews. This change adds bridging shims that wrap OpenSwiftUI views in standard AppKit or UIKit hosting controllers, enabling seamless preview integration on macOS, iOS, tvOS, and watchOS.

Sources/OpenSwiftUI/Integration · high confidence

Support for configurable toolbar title display modes

Users can now control how navigation titles appear in toolbars using the new \toolbarTitleDisplayMode\ modifier. This change introduces \ToolbarTitleDisplayMode\ with options such as \.large\, \.inlineLarge\, and \.inline\, allowing titles to be displayed prominently below content, inline within the toolbar, or in a smaller centered format. The implementation includes \NavigationTitleKey\ and \NavigationTitleStorage\ to manage title state and preference reduction, along with \VersionSeedTracker\ to detect changes in preference values and trigger updates when the display mode or title content changes.

Sources/OpenSwiftUI/Data/Util, Sources/OpenSwiftUI/View/Navigation, Sources/OpenSwiftUI/View/Toolbar · high confidence

Support for custom alignment guides on views

Developers can now use the \alignmentGuide\ modifier on views to define custom horizontal or vertical alignment offsets. By providing a closure that computes a value based on \ViewDimensions\, views can be precisely positioned relative to one another within stacks and other layout containers, enabling more complex and fine-grained UI arrangements.

Sources/OpenSwiftUI/Layout/Alignment · high confidence

Support for displaying AttributedString content in Text views

Text views can now be initialized with an AttributedString, allowing users to display rich, styled text where attributes (such as color, bolding, and links) take precedence over view modifiers. This change introduces the necessary infrastructure to resolve AttributedString content into native attributed strings, supporting Foundation attributes like inline presentation intents and links, as well as Markdown syntax for styling localized strings.

Sources/OpenSwiftUICore/View/Text/AttributedString · high confidence

Behavioural changes

Add CoreText SPI shims for font and text composition support

This change introduces a new set of header shims in the CoreText shim layer to bridge Apple's private CoreText APIs for OpenSwiftUI. Specifically, it adds declarations for CTAdaptiveImageGlyph (enabling adaptive image glyphs on macOS 15+/iOS 18+), CTCompositionLanguage (supporting language-specific text composition for Japanese and Chinese variants), CTFontLegibilityWeight (mapping to Accessibility Bold Text settings), and CoreTextSPI (providing functions like CTFontDescriptorCreateWithAttributesAndOptions and font metrics helpers like CoreFontGetLineHeight). These shims enable the framework to resolve text styles, measure NSAttributedString, and handle font rendering details that rely on these private APIs.

_Sources/OpenSwiftUI\SPI/Shims/CoreText · high confidence

Add module map for OpenSwiftUISymbolDualTestsSupport

A module map file has been added to the OpenSwiftUISymbolDualTestsSupport source directory, defining the module and exporting all its contents. This change supports the build system's ability to recognize and link the module correctly, particularly in the context of the new Tuist-based single XCFramework build configuration.

Sources/OpenSwiftUISymbolDualTestsSupport · high confidence

Add private CoreServices shims for URL opening configuration

Added Objective-C shim headers for private CoreServices APIs (\LSApplicationWorkspace\ and \\_LSOpenConfiguration\) to support advanced URL opening capabilities. These shims expose the \openURL:configuration:completionHandler:\ method on the application workspace, allowing the framework to pass configuration options (such as sensitivity flags and target connection endpoints) when opening URLs, which is required for the updated \OpenURLAction\ handling.

Sources/COpenSwiftUI/Shims/CoreServices · high confidence

Adds localized date formatting configuration resources

A new localization resource file (CoreDateProvider.strings) has been added to configure specific date and interval formatting behaviors, such as controlling punctuation in weekday names, whitespace requirements for designators, and the display of hyphens in date intervals.

_Sources/OpenSwiftUI\SPI/Resources · high confidence

Complete ViewGraph lifecycle and rendering infrastructure

The ViewGraph subsystem in OpenSwiftUICore has been audited and completed for version 6.5.4, introducing a full event lifecycle and rendering pipeline. This change adds the \ViewGraphFeature\ protocol and \ViewGraphFeatureBuffer\ to manage graph-wide behaviors, \ViewGraphGeometryObservers\ to track and notify layout size changes, and the \ViewRendererHost\ protocol to coordinate updates for root views, environment, transforms, and focus. It also establishes the \ViewGraphRender\ and \ViewRenderingPhase\ structures to handle display list rendering and asynchronous update states, ensuring the view graph correctly manages its outputs and delegates.

Sources/OpenSwiftUICore/View/Graph · high confidence

Deprecation of legacy AnimatableModifier and \_AnimatableView protocols

The \AnimatableModifier\ and \\_AnimatableView\ protocols in the OpenSwiftUI animation system are now deprecated in favor of using \Animatable\ directly. This change updates the internal view and modifier creation logic to align with the modern animation API, ensuring that developers migrate away from the older protocol definitions while maintaining compatibility through the existing \\_makeView\ and \\_makeViewList\ implementations.

Sources/OpenSwiftUI/Animation/Animatable · high confidence

Expanded Image rendering capabilities with HDR, vector glyphs, and platform integration

The Image view now supports high dynamic range (HDR) content via the new \allowedDynamicRange\ modifier and \Image.DynamicRange\ API, enabling proper rendering of extended range images. It also adds native support for vector glyphs (SF Symbols) and vector layers through the \GraphicsImage\ contents model, allowing for scalable system graphics. Platform-specific image handling is improved with the introduction of \CorePlatformImage\ for Darwin systems and comprehensive \CGImage\ conversion initializers that support orientation, scale, and accessibility labels. Additionally, image rendering behavior is enhanced with explicit control over interpolation quality, antialiasing, and resizing modes (tile/stretch).

Sources/OpenSwiftUICore/View/Image · high confidence

Expanded UIFoundation shims for advanced text layout and rendering

This update adds a comprehensive set of Objective-C shims to the UIFoundation module to support modern text layout, paragraph styling, and graphics context handling. The changes introduce support for adaptive image glyphs, Markdown presentation intents, and detailed paragraph styles including horizontal alignment, line break strategies, and text encapsulation. Additionally, it provides safe wrappers for Core Text and string drawing operations, new geometry value helpers, and the infrastructure for custom text graphics context providers, enabling more precise control over text measurement, drawing, and layout in OpenSwiftUI.

_Sources/OpenSwiftUI\SPI/Shims/UIFoundation · high confidence

Implement State property wrapper with Observation support

The State property wrapper in OpenSwiftUICore has been updated to support the new Observation framework, allowing views to react to changes in stored values using the modern @Observable macro. This change introduces a new internal storage mechanism (StoredLocation) that manages value updates and notifies observers, ensuring that view hierarchies update correctly when state changes. Users can now store observable objects in State and have subviews automatically refresh when those objects' properties change, provided the subviews read the relevant properties.

Sources/OpenSwiftUICore/Data/State · high confidence

Implement VariadicView children management and graph integration

The VariadicView subsystem now includes the core \_VariadicView\_Children implementation, enabling the framework to properly manage and render arbitrary numbers of child views within layouts like HStack and VStack. This change adds the necessary View protocol conformance to Children, allowing them to be processed by the AttributeGraph system via ForEach, and implements the RandomAccessCollection logic to correctly index and access individual child elements, including their traits and view IDs.

Sources/OpenSwiftUICore/View/VariadicView · medium confidence

Introduce LayoutComputer and UnaryLayoutView for layout engine abstraction

The layout system now uses a new \LayoutComputer\ struct to wrap layout engines, providing a unified interface for layout calculations such as size fitting, spacing, and child geometry retrieval. This change introduces \DerivedLayoutEngine\ to delegate common layout behaviors and supports tracing via \TracingLayoutEngineBox\ for debugging. Additionally, \UnaryLayoutView\ is added to handle layout computation for single-child views, supporting both standard and position-aware placement contexts to correctly manage geometry, position, and safe area insets within the attribute graph.

Sources/OpenSwiftUICore/Layout/LayoutComputer · high confidence

Introduce OpenRenderBox (ORB) rendering backend for DisplayList views

The DisplayList rendering system now supports an accelerated OpenRenderBox (ORB) backend alongside the existing CoreGraphics path. On both macOS and iOS/visionOS, drawing views are instantiated as ORBDrawingView when hardware acceleration is available and supported, falling back to CGDrawingView otherwise. This change introduces the OpenRenderBoxView and OpenRenderBoxLayer base classes to manage the ORB layer lifecycle and asynchronous rendering, and updates the platform-specific view definitions (AppKit and UIKit) to wire up ORB support, including specific hit-testing views for shapes and proper layer configuration for accelerated drawing.

Sources/OpenSwiftUI/Render/DisplayList · high confidence

Introduce PlatformItemList representations and WidgetAuxiliaryViewMetadata API

This change adds the internal \PlatformItemList\ infrastructure required to render list items with platform-specific styling and behavior. It introduces the \PlatformItemListGenerator\ to construct item graphs, \PlatformItemListFlags\ to control which item attributes (such as selection, text, layout, and accessibility) are processed, and an \IncludesStyledTextModifier\ to enable styled text support. Additionally, it implements the \WidgetAuxiliaryViewMetadata\ API, allowing widgets to expose detailed text and graphic metadata (including dates, attachments, and colors) for auxiliary views.

Sources/OpenSwiftUI/Integration/PlatformItemList · high confidence

Introduce platform hosting infrastructure and background transparency controls

This change adds new internal platform integration files to the hosting layer. It introduces \HostingViewTransparentBackgroundReason\ to track specific reasons for transparent backgrounds (such as Catalyst sidebar or list item backgrounds), establishes a \HostingViewRegistry\ to manage active hosting views, and adds environment value support for managed and supplied bridges within \HostingControllerUtilities\. These additions provide the underlying infrastructure for managing view hosting states and background rendering behaviors on the platform.

Sources/OpenSwiftUI/Integration/Hosting/Platform · medium confidence

Introduces new View Responder architecture for hit-testing and content shape handling

The event responder system in OpenSwiftUICore has been restructured with a new class hierarchy (ViewResponder, MultiViewResponder, LeafViewResponder) and supporting types (ResponderNode, ContentShapeKinds, ContentPathObserver). This change implements the underlying mechanics for hit-testing, including platform-specific defaults for visionOS, and enables content shape modifiers to influence interaction, drag previews, context menus, hover effects, and accessibility visuals. Users will see more accurate and flexible hit-testing behavior and support for defining custom shapes for various UI interactions.

Sources/OpenSwiftUICore/Event/Responder · high confidence

Introduction of semantic versioning for conditional feature availability

The library now uses a semantic versioning system (v1 through v7) to manage feature availability, allowing components to enable or disable functionality based on the SDK version the app was built with or its deployment target. This change introduces a \Feature\ protocol and \SemanticFeature\ types that map specific UI behaviors—such as navigation view layouts, list styling, and accessibility options—to specific OS releases (e.g., iOS 18.0 for v6), ensuring that new behaviors are only active when the underlying platform supports them.

Sources/OpenSwiftUICore/Semantic · high confidence

Lazy container context tracking infrastructure added

The layout system now includes internal infrastructure to track when a view is being laid out within a lazy container. A new \IsInLazyContainer\ flag and corresponding extensions on \\_GraphInputs\, \\_ViewInputs\, and \\_ViewListInputs\ allow the layout engine to identify and handle lazy container contexts, which is a prerequisite for supporting \ForEach\ within lazy containers.

Sources/OpenSwiftUICore/Layout/LazyContainer · high confidence

Migration of build configuration to xcconfig files with updated platform availability

Build settings previously managed in the project file have been moved to a structured set of xcconfig files in Configurations/Shared. This change introduces specific configurations for OpenSwiftUI and SwiftUI targets across debug and release schemes, establishing a minimum deployment target of iOS 18.0 and macOS 15.0. It also updates the availability macros to support the latest platform versions, including iOS 26, macOS 26, tvOS 26, watchOS 26, and visionOS 26, ensuring the library correctly exposes features available on these future OS releases.

Configurations/Shared · high confidence

Moved OpenURLAction to OpenSwiftUICore with updated system handling

The OpenURLAction implementation has been relocated to the OpenSwiftUICore module, centralizing the logic for handling URL opening actions. This change updates the underlying system handling mechanism for the action, ensuring that both default and custom URL handlers are processed through the core event system. Users relying on the @Environment(\\.openURL) modifier or custom OpenURLAction instances will see their URL opening behavior managed by this new core location, which supports the standard Result types (handled, discarded, systemAction) for controlling flow.

Sources/OpenSwiftUICore/Event/SystemEvent · medium confidence

New CI infrastructure for UI test validation and binary release management

The CI pipeline now includes dedicated scripts to validate UI test execution and handle binary releases. A new \check\_uitest\_selection.sh\ script verifies that UI tests actually ran and distinguishes between expected snapshot recording issues and unexpected failures, while \collect\_uitest\_failures.sh\ extracts and organizes reference and failed snapshot images from test logs. Additionally, \release.js\ and \update\_binary\_package.sh\ automate the creation of release drafts, validate artifact integrity via SHA-256 digests, and update the binary package repository with code-signed XCFrameworks and macro sources.

Scripts/CI · high confidence

New build configuration files for testing and example targets

Added xcconfig files to define build settings for the Example, HostingExample, TestingHost, and UI/Interaction test targets, including bundle identifiers and code signing entitlements. Introduced an Info.plist for the OpenSwiftUI framework that exposes build metadata such as the AG backend, renderer backend, library type, and local dependency usage via build-time variables. Configured the test targets to enable Swift modules, include availability macros, and link necessary bridging headers and entitlements.

Configurations · high confidence

New environment system implementation with caching and observation support

The environment subsystem has been replaced with a new implementation that introduces \CachedEnvironment\ for optimized attribute caching and animated frame handling, alongside \EnvironmentKey\ and \DerivedEnvironmentKey\ protocols to support custom and dynamically computed environment values. This change adds the \@Environment\ property wrapper for reading values, \transformEnvironment\ for modifying existing values, and \environment(\:\:)\ for setting them, while integrating with the \OpenObservation\ framework to ensure views automatically update when environment data changes.

Sources/OpenSwiftUICore/Data/Environment · high confidence

New event binding and dispatch infrastructure for gestures

The event handling system in OpenSwiftUICore has been restructured to support a new event binding and dispatch model. This change introduces core types such as \Event\, \EventBinding\, and \EventID\, along with a dedicated \EventBindingManager\ that tracks active gesture bindings and coordinates event dispatch to responder nodes. The update also adds specific event types for user interactions, including \MouseEvent\, \PanEvent\, and \PhysicalButtonEvent\, and provides a comprehensive set of debug triggers (via the \OpenSWIFTUI\_EVENT\_DEBUG\ environment variable) to log event phases, bindings, and gesture states for troubleshooting.

Sources/OpenSwiftUICore/Event/Event · high confidence

Platform-specific URL handling and core glue implementation

The \OpenSwiftUIGlue\ class now provides concrete implementations for opening URLs, delegating to \UIApplication.shared.open\ on iOS/tvOS, \NSWorkspace.shared.open\ on macOS, and handling sensitive URLs via \LSApplicationWorkspace\ on iOS and visionOS. Additionally, the \OpenSwiftUIGlue2\ class implements platform-specific logic for detecting status bar visibility and configuring default environment values, establishing the foundational glue between OpenSwiftUI and the underlying platform APIs.

Sources/OpenSwiftUI/Util · high confidence

Support for system accent colors and named colors on macOS and visionOS

OpenSwiftUI now resolves system accent colors and CoreUI named colors on macOS and visionOS. On macOS, the library integrates with native APIs to detect hardware accent settings and map standard accent names (such as red, orange, or multicolor) to the corresponding system catalog colors. Additionally, it enables dynamic resolution of named colors by bridging to UIKit on iOS/visionOS and AppKit on macOS, ensuring that named colors respect the current trait collection and appearance environment.

Sources/OpenSwiftUI/Graphic · high confidence

Tuist build scripts now enforce persistent local caching with remote caching disabled

The Tuist build infrastructure has been updated to ensure that local compilation caching is always enabled and persistent, while remote caching is explicitly disabled. The \tuist\_xcodebuild\ helper in \Scripts/Tuist/common.sh\ now passes specific environment variables (\COMPILATION\_CACHE\_ENABLE\_CACHING=YES\, \COMPILATION\_CACHE\_KEEP\_CAS\_DIRECTORY=YES\, \COMPILATION\_CACHE\_REMOTE\_SERVICE\_PATH=\) to Xcode, guaranteeing that build artifacts are stored locally in DerivedData regardless of the CI or local environment. This change is accompanied by a new test suite in \Scripts/Tuist/Tests/common-tests.sh\ that verifies the build commands include these caching flags and that remote cache setup commands are not executed.

Scripts/Tuist · high confidence

Updated DynamicProperty implementation to version 6.5.4

The DynamicProperty subsystem in OpenSwiftUICore has been updated to align with the 6.5.4 specification. This includes a complete reimplementation of the core DynamicProperty protocol, the \_DynamicPropertyBuffer for managing property state, and the UnsafeHeterogeneousBuffer for underlying storage. The update introduces new capabilities such as the \DynamicPropertyBehaviors\ option set (supporting \allowsAsync\ and \requiresMainThread\), enhanced tracing support via \traceMountedProperties\, and improved logging for changed body properties. Additionally, the \Namespace\ property wrapper has been updated to match the new behavior, ensuring consistent identifier generation and lifecycle management.

Sources/OpenSwiftUICore/Data/DynamicProperty · high confidence

Fixes

Add dladdr-based symbol path resolution shim for non-Darwin platforms

A new C shim layer (OpenSwiftUI\_CSymbols) has been added to provide a portable way to resolve the file path of a symbol given its memory address. The implementation uses the standard dladdr function, which resolves the previously reported build issues on non-Darwin platforms where this functionality was missing or broken.

_Sources/OpenSwiftUI\SPI/Shims/CSymbols · high confidence

Fixes image environment override issue in Text view

Resolves a bug where UIImage to Image environment overrides were not handled correctly. The change introduces a new \TypesettingConfiguration\ file that bridges UIKit's \UITraitCollection\ to OpenSwiftUI's typesetting language settings, ensuring that the system's typesetting language is properly read from and written to mutable traits.

Sources/OpenSwiftUI/View/Text · medium confidence

Test coverage

Add test stubs for FlexFrameLayout and ViewGeometry; Added CI test suites for release, interaction, and optional workflows; Added gesture debug data print tree stub; Added internal test infrastructure and benchmarking support; Added internal test infrastructure for performance and view testing; Added test stubs for BidirectionalCollection insertion sort and CGSize extension; Added test stubs for CodableEffectAnimation and VelocitySampler; Added test stubs for ColorMatrix, CatalogLookup, and GraphicsContext; Added test stubs for DisplayList, CAFrameRateRange, and Rotation3DEffect; Added test stubs for ImageOrientation and AccessibilityText APIs; Added test stubs for SwiftUI internal data structures and Foundation types; Added test support data structures and helpers; Added test support for runtime issue tracking and AIGC tagging; Expanded UI and interaction test coverage for OpenSwiftUI; Expanded test coverage for OpenSwiftUI compatibility and bridge APIs.

Dependencies

Add benchmarking and update example project dependencies

This change introduces a new Benchmarks package (using package-benchmark 1.20.0) and updates the Example project's dependency manifest to include swift-snapshot-testing 1.19.3, swift-syntax 603.0.2, and other libraries, while also adding a new StdoutRenderer example.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 54 → 50 (-4.0)
  • Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 64 → 64 (-0.2)
  • Architecture 94 → 90 (-4.1)
  • Maturity 81 → 81 (+0.0)
  • Readiness 59 → 45 (-14.4)
  • Security 39 → 41 (+2.0)
  • Performance 71 (new)

Resolved (218)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (35 lines × 3) (Example/Example/ExampleApp.swift)
  • Duplicated block (6 lines × 2) (Sources/OpenSwiftUICore/View/Text/AttributedString/Text+AttributedString.swift)
  • Duplicated block (7–13 lines × 2) (Sources/OpenSwiftUICore/View/Archive/ConditionallyArchivableView.swift)
  • FixmeComment (Example/OpenSwiftUIUITests/Layout/AspectRatioLayoutUITests.swift)
  • FixmeComment (Example/OpenSwiftUIUITests/Layout/AspectRatioLayoutUITests.swift)
  • FixmeComment (Example/OpenSwiftUIUITests/Layout/AspectRatioLayoutUITests.swift)
  • FixmeComment (Example/OpenSwiftUIUITests/Layout/FixedSizeLayoutUITests.swift)
  • FixmeComment (Example/OpenSwiftUIUITests/Render/GeometryEffect/MatchedGeometryEffectUITests.swift)
  • FixmeComment (Example/OpenSwiftUIUITests/Shape/ShapeStyle/BackgroundStyleUITests.swift)
  • FixmeComment (Example/OpenSwiftUIUITests/UITests/SnapshotTesting+Testing.swift)
  • FixmeComment (Example/OpenSwiftUIUITests/UITests/SnapshotTesting+Testing.swift)
  • FixmeComment (Example/OpenSwiftUIUITests/View/Image/AsyncImageUITests.swift)
  • FixmeComment (Example/OpenSwiftUIUITests/View/ProgressViewUITests.swift)
  • FixmeComment (Sources/OpenSwiftUICore/Shape/Path.swift)
  • FixmeComment (Sources/OpenSwiftUIExtension/TappablePadding.swift)
  • FixmeComment repeated across 43 files (Example/OpenSwiftUIUITests/Graphic/Color/ColorUITests.swift)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • …and 198 more

New (299)

  • AttributedString.isStyled (cognitive 16) (Sources/OpenSwiftUICore/View/Text/AttributedString/Text+AttributedString.swift)
  • AttributedString.isStyled (cyclomatic 17) (Sources/OpenSwiftUICore/View/Text/AttributedString/Text+AttributedString.swift)
  • AttributedString.redact (cognitive 16) (Sources/OpenSwiftUICore/View/Text/AttributedString/Text+AttributedString.swift)
  • ChangedBodyProperty.swift.changedBodyProperties (cognitive 36) (Sources/OpenSwiftUICore/Data/DynamicProperty/ChangedBodyProperty.swift)
  • ChangedBodyProperty.swift.changedBodyProperties (cyclomatic 21) (Sources/OpenSwiftUICore/Data/DynamicProperty/ChangedBodyProperty.swift)
  • ClosestFitCache.callAsFunction (cognitive 17) (Sources/OpenSwiftUICore/View/Text/Text/Text+SizeFitting.swift)
  • Coverage not measured — Swift suite
  • CustomRecursiveStringConvertible.swift.colorNameForColorComponents (cognitive 67) (Sources/OpenSwiftUICore/Util/CustomRecursiveStringConvertible.swift)
  • CustomRecursiveStringConvertible.swift.colorNameForColorComponents (cyclomatic 66) (Sources/OpenSwiftUICore/Util/CustomRecursiveStringConvertible.swift)
  • Dependency not covered by the committed resolution: lookinserver
  • Dependency not covered by the committed resolution: lookinside-release
  • Dependency not covered by the committed resolution: opencombine
  • Dependency not covered by the committed resolution: opencombine
  • Dependency not covered by the committed resolution: swift-crypto
  • Dependency not covered by the committed resolution: swift-log
  • Dependency not covered by the committed resolution: versioneddocc
  • Dictionary.transferAttributedStringStyles (cognitive 34) (Sources/OpenSwiftUICore/Util/StandardLibraryAdditions.swift)
  • Dictionary.transferAttributedStringStyles (cyclomatic 30) (Sources/OpenSwiftUICore/Util/StandardLibraryAdditions.swift)
  • Duplicated block (10 lines × 2) (Sources/OpenSwiftUICore/Layout/AspectRatioLayout.swift)
  • Duplicated block (10 lines × 2) (Sources/OpenSwiftUICore/Layout/Edge/EdgeInsets.swift)
  • …and 279 more

Changes since last survey

  • 36 commits — 20 feature/other, 16 fixes

By area

  • Sources/OpenSwiftUICore — 10 commits
  • Sources/OpenSwiftUI — 5 commits
  • (root) — 3 commits
  • Renderer/Stdout — 3 commits
  • Scripts/CI — 3 commits
  • Tests/OpenSwiftUICoreTests — 3 commits
  • Example/Tests — 2 commits
  • Example/Modules — 1 commit
  • Example/Shared — 1 commit
  • Example/Tuist — 1 commit
  • Sources/COpenSwiftUI — 1 commit
  • Sources/OpenSwiftUIExtension — 1 commit
  • Sources/OpenSwiftUIMacros — 1 commit
  • Sources/OpenSwiftUI_SPI — 1 commit

Notable commits

  • fix: fix(compute): adopt observer removal fix (#1107)
  • fix: fix(extension): support OpenSwiftUI tappable padding (#1102)
  • fix: fix(gesture): prevent layout gesture reset crashes (#1085)
  • fix: fix(gesture): restore double-tap recognition (#1095)
  • fix: fix(gesture): restore iOS gesture container handling (#1088)
  • fix: fix(hosting): hide private platform overrides from module interfaces (#1089)
  • fix: fix(hosting): restore SwiftUI renderer subview overrides
  • fix: fix(identity): correct seed allocation and restore IdentityLink (#1093)
  • fix: fix(macros): support availability attributes on previews (#1105)
  • fix: fix(observation): restore body updates for observable state (#1104)
  • fix: fix(path): implement containment and path transforms (#1098)
  • fix: fix(release): handle draft release lookups
  • fix: fix(release): sync OpenObservation macro sources (#1106)
  • fix: fix(tests): isolate feature user defaults (#1103)
  • fix: fix(text): set async thread flags for text filters (#1111)
  • fix: test: fix frame sizing and view graph test isolation (#1090)
  • change: chore(compute): bump to 0.6.0 and restore binary default (#1115)
  • change: chore: disable gesture container feature temporary
  • change: chore: update animation example
  • change: docs: update platform support status
  • …and 16 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

OpenSwiftUIProject/OpenSwiftUI was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit b17d55b85bb3380a45afeca183426b846e990b98 — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.