Skip to content

6.6.166

Latest

Choose a tag to compare

@agneszitte agneszitte released this 30 Jul 01:32
438b300

Today, we're announcing Uno Platform 6.6.

This release brings Native Ahead-of-Time (AOT) compilation to Android, iOS, Linux, macOS, and Windows, adds an opt-in Vulkan rendering backend, and makes the Uno Platform MCPs seamless to use.

Uno Platform 6.6 also reduces XAML boilerplate, expands WinUI API coverage, introduces screen-reader support for Skia-rendered applications, and improves multilingual text input and rendering with complete IME composition and automatic font fallback.

Uno Platform 6.6 is available today. See the documentation for the different ways to get started or upgrade an existing project.

Note

Read more on our blog post!


Here's the full change log:

Features

  • BackButtonIntegration infrastructure (641553f)
  • BrowserInputHelper (6539db6)
  • ContextMenuOpening event (994e7a9)
  • FlyoutBase should take focus flag (915dba3)
  • ItemCollectionTransition (a6cbd5e)
  • KeyboardPresent API (765f8b6)
  • SelectionFlyout (880e566)
  • SplitMenuFlyoutItem (22491ac)
  • TextBox.SelectionFlyout (2c291ee)
  • TextControlFlyoutHelper extension (bc7a3e7)
  • VisualTree.AttachElement (7de7654)
  • A11y on WASM (365117e)
  • Add AutomationPropertiesExtensions for accessibility role overrides (9427b5a)
  • Add CLAUDE.md (159370a)
  • Add LeftMouseClick helpers (be9086b)
  • Add MoveMouse helper (86a20bf)
  • Add SelectionFlyout visibility logic for TextBlock (f74601a)
  • Add TextControlFlyoutHelper usages (1e9ec06)
  • Add additional InputHelper methods for mouse (522c170)
  • Add auxiliary automation types (1c26d28)
  • Add BindableTypeLinkerGeneratorTask for Native AOT property preservation (b621253)
  • add ConnectionState enum and HealthReport integration (79a1008)
  • Add ContextRequested routed event (04cf8e6)
  • Add custom CLR namespace global resolution (Phase 4) (ed40aeb)
  • Add disambiguation and explicit xmlns override tests (Phase 6) (2e5fede)
  • add DiscoveryIssueMapper and wire into HealthService (13a667e)
  • add dotnet version cache, EntryPoint regression tests, and doc fixes (4310d02)
  • add IDE channel lifecycle diagnostic logging (96c7eca)
  • add IdeChannelObserver to self-terminate host when IDE disconnects (a2dd20f)
  • Add idle state indicator to FPS diagnostic panel (a1b8f84)
  • Add implicit XAML namespace support (Phases 1-2) (f6f335f)
  • Add initial support for macOS VoiceOver (a14af51)
  • Add iOS 15 fallback for CAFrameRateRange in Skia renderer (21e75ca)
  • Add KeyDown event verification to When_Option_Or_Command_Key_Alone test (56bc4ee)
  • add ManifestAddInResolver for devserver-addin.json (575be98)
  • add Native AOT documentation (47dcaf7)
  • Add non-materializing enumeration for ResourceDictionary (9deb076)
  • Add Path_GeometryTransform manual test sample (e04162c)
  • Add platform-specific keyboard shortcuts for StandardUICommand (f4180d1)
  • Add polish tests and complete all implementation phases (Phase 8) (7fac9a5)
  • Add RenderingBackend builder API for Win32 and X11 (1ce0a28)
  • Add runtime tests for implicit XAML namespaces (Phase 3) (d8f4361)
  • Add Samples app help page (619620c)
  • Add SimpleTheme as a new UnoFeature (87b5cb3)
  • Add StrokeLineCap, StrokeLineJoin and related DependencyProperties to Shape (04eb2ef), closes #5426
  • Add support check for lock/unlock (a06e4e6)
  • Add support for .webp format (6d3000b)
  • Add support for generic type arguments in BindableTypeLinkerGenerator (924ac72)
  • Add support for Pen input injection (85db07b)
  • Add TryGetTarget method to ManagedWeakReference (cbcda40)
  • Add UnoSplashScreenScale MSBuild property support (7ceccc2)
  • Add Vulkan hardware acceleration for Android Skia backend (a9a4027)
  • Add Vulkan hardware acceleration for Win32 Skia backend (b15781d)
  • Add Vulkan hardware acceleration for X11 Skia backend (58abc24)
  • Add WinAppSDK XAML pre-processing targets (Phase 7) (5354d68)
  • Add WinUI runtime tests to CI pipeline (132e7de)
  • Add XmlnsPrefix implicit prefix and cross-assembly resolution (Phase 5) (5415403)
  • Additional conditions for ContextRequested (7070df2)
  • Adjust SyncGenerator.Reference (4d06fbb)
  • Adjustments for Popups (7126e97)
  • align devserver list and disco, show all servers with local flag (10bb6e8)
  • Apply stroke cap, join, and miter properties in Skia rendering (b305fab)
  • Back button press injection for runtime tests (204a724)
  • Bitmap decode size (0efc29e)
  • Bump to WinAppSDK 1.8.260101001 (194b385)
  • Bump WinAppSDK package to latest stable (470f2c2)
  • bypass controller for direct server launch in MCP mode (Phase 1b) (e25d686)
  • CascadingMenuHelper update to winui3/release/1.5.4 (e85459f)
  • clipboard Get/SetBitmap support for wasm (83fb6e5)
  • Code-behind generator (40684fa)
  • Compile .wasm.cs and .browserwasm.cs files for WebAssembly (ccf4980)
  • convention-based add-in discovery for DevServer startup (2b4d2a2)
  • Correctly generate WebView2 and Resources types (01a2d6f)
  • Correctly resolve any MUX type (267d707)
  • Dash triangle caps (39523ff)
  • declare MCP ServerInfo for protocol compliance (7623677)
  • Detect runtime platform for browser OS (2285627)
  • Dismiss popups and flyouts on back button press (3d7ca56)
  • Display source link for samples (f8d67ae)
  • Element-level theming (3c10975)
  • ElevationHelper (8341389)
  • Emit error for missing enum members (a698808)
  • Enable TextCommandBarFlyout in text controls (7fcd44d)
  • Enable touch simulation in non-debug scenarios (7d8f3c5)
  • Enhance GridViewItem and ListViewItem presenters with visual state management (a119d95)
  • Enter/Leave for KeyboardAccelerators (b0f38ca)
  • expose active server info in disco command (23f7f9d)
  • expose DiscoveryInfo from DevServerMonitor (e12eb85)
  • expose PushRequestedThemeForSubTreeByName/PopRequestedThemeForSubTreeByName as public API (b751504)
  • expose uno_health tool and resource in Host HTTP MCP (afa3154)
  • Extend FPS helper (6a5d51b)
  • FeatureConfiguration.Font.FallbackService (27dab2a)
  • FeatureConfiguration.TextBlock.RenderWhiteSpace (61102d3)
  • FlyoutHelper (07dc5e0)
  • Forward PasswordBox.CanPasteClipboardContent to base (c7ac050)
  • forward ideChannel through start command and expose in disco (17a3d79)
  • general clipboard support for skia-win32 (8f84317)
  • Generate property-specific linker descriptors instead of preserving all methods (34d6835)
  • GetVisualTree/SetVisualTree (c4fc4bb)
  • gitignore-aware recursive solution search (a34c9d4)
  • Handle F10 and Alt keys properly (b022f08)
  • Help page expansion (7ee1f57)
  • Implement WebResourceRequested event and filtering for CoreWebView2 (629a4f3)
  • Implement clipboard monitoring via XFixes (f1bc6fc)
  • Implement ContextFlyout parent chain search (c54c52b)
  • implement discovery functionality for Uno SDK and DevServer (1b3c574)
  • Implement EventTrigger, BeginStoryboard, and trigger collections (50abd87)
  • Implement flyout layer detection for touch cancel behavior (fea9412)
  • Implement Mica and Acrylic system backdrop support for macOS (b862ba1)
  • Implement new AutomationPeers (6785e22)
  • Implement OnRightTappedUnhandled event dispatch (0e11bf8)
  • Implement TextBox context menu positioning at selection (35e4e84)
  • Improve WinUI port skill (b4db208)
  • Improve WinUI runtime tests skill reliability (b87151c)
  • Improved sample categories filtering (fd82354)
  • Improvements for popup/flyout logic (ab0d6fc)
  • Initial a11y implementation for Win32 (d0c46d0)
  • instant MCP start with tool cache, bounded timeouts, and health diagnostics (47318c1)
  • integrate manifest-first discovery into add-in resolution (95c0523)
  • IsPropMethodCall DPs (8789822)
  • Keyboard accelerators in Samples app (3195a7d)
  • Keyboard shortcuts in Samples app (ec60066)
  • Lazy theme resource evaluation (1822a07)
  • Link CLAUDE.md to AGENTS.md (21acde4)
  • Make Runtime tests console log more reliable (041d70c)
  • Make spell-checking opt-in via SpellChecking UnoFeature (3a07a82)
  • map add-in discovery errors to health IssueCode values (4995bd1)
  • MenuFlyoutItemAutomationPeer (249db7a)
  • MenuFlyoutPresenterAutomationPeer (2dd23b4)
  • MenuFlyoutSubItemAutomationPeer (2cb949c)
  • Mouse input injection on WinAppSDK (4ea21ac)
  • parse project.assets.json for third-party add-in discovery (d1ec0f1)
  • Pixel-snap WrapPanel layout to prevent spurious wraps (7c00b06)
  • Position gamepad context menu at element center (a11afa5)
  • Replace SampleControlInfoAttribute with SampleAttribute (94321df)
  • Replace t4 templates with C# source generators (ea30a76)
  • resolve process names in devserver list command (208e3f4)
  • reuse active dev servers when rebinding ide channels (f4a1759)
  • Run each test repeatedly (bf6af44)
  • Run specific runtime test group, unload content explicitly after tests (3a21c35)
  • Set default context flyout and selection flyout for TextBlock and RichTextBlock (fe92f80)
  • Spec Kit (e16a1f4)
  • Spec Kit Claude commands (a9087a9)
  • Support Geometry.Transform (2ab4998)
  • Support for ContextRequested and ContextCanceled (9c5ccf7)
  • Support for GetAlphaMask (9de93e2)
  • Support for InputDevicePrefersPrimaryCommands (7126cdd)
  • Support for ProofingMenuFlyout (486b8b1)
  • Support for RoutedEvent XAML parsing (a05581a)
  • support globalPackagesFolder from nuget.config (87607c8)
  • support multiple active servers, prefix disco fields, reorder HR troubleshooting (a77c0c2)
  • Support static x:Bind in DataTemplate without x:DataType (cbf88bd), closes #22216
  • TextFormatting inheritance emulation (5ea1fd3)
  • ToggleMenuFlyoutItemAutomationPeer (e7c2f0d)
  • Triggers should run for already loaded elements (24c02d0)
  • Unit tests control auto-scroll (4e2e4a5)
  • Update Layout to WinUI 5f9e851133b3 (35cdb94)
  • Update MenuFlyout to winui3/release/1.5.4 (6d8fda0)
  • Update MenuFlyoutItem to winui3/release/1.5.4 (2cc5ef5)
  • Update MenuFlyoutPresenter to winui3/release/1.5.4 (2ec95b2)
  • Update MenuFlyoutSubItem to winui3/release/1.5.4 (4834584)
  • update Native AOT documentation (f978c30)
  • Update skills (af812df)
  • Update speckit (b3d80f7)
  • Update ToggleMenuFlyoutItem to winui3/release/1.5.4 (4af7ef0)
  • Update WebView navigation to handle absolute and relative URIs (c9159e1)
  • upgrade MCP SDK to 0.8.0, add health resource and cache metadata (2c15267)
  • Win32 IME Caret manager (0c8d228)
  • WinAppSDK code-behind gen (21bf71e)
  • WinUI runtime tests skill (ef08d56)
  • wire Launching and Shutdown state transitions (36d08bb)
  • wire ServerCrashed for hot reconnection (3d7aa48)
  • a11y: Add per-window accessibility router + owner interface (4833928)
  • a11y/macos: Per-window MacOSAccessibility + remove primary-only guard (d68162e)
  • a11y/macos: Wire MacOSAccessibility through the router (PR 1 bridge) (5dbf618)
  • a11y/macos-native: Per-window UNOAccessibilityContext (645adfe)
  • a11y/win32: Per-window Win32Accessibility via router + wrapper (b2503ed)
  • android: Add IME composition support for Skia Android (f2a285c)
  • devserver: add --all-ides flag for multi-IDE MCP operations (5a0b124)
  • devserver: add --force-roots-fallback for agents without MCP roots (3ef0d22)
  • devserver: add CLI-first MCP registration with agent fallback (e87541e)
  • devserver: add explicit solution selection (f92dea0)
  • devserver: add gemini cli profile (472ac2b)
  • devserver: add JetBrains Air MCP profile (cff99ae)
  • devserver: add MCP server.json for NuGet registry discovery (d5e5f34)
  • devserver: Add MCP setup foundation — models, I/O abstraction, and pure logic (a02ac97)
  • devserver: Add MCP setup Layer 2 — variant resolver and config scanner (0bdcfff)
  • devserver: Add MCP setup orchestrator with end-to-end tests (c8c1d32)
  • devserver: add MCP tool annotations to bridge tools (346e767)
  • devserver: add meta-tools for MCP clients without tools/list_changed (1b2cb98)
  • devserver: add note field, backup and dry-run to MCP setup (fc43c88)
  • devserver: Add per-location Transport column to mcp status (e3d11a0)
  • devserver: add Spectre spinner progress to mcp status (57be906)
  • devserver: auto-detect force-roots-fallback from client capabilities (323b697)
  • devserver: clarify MCP version flags (c004872)
  • devserver: finalize MCP setup formats (aedb19a)
  • devserver: Integrate MCP setup CLI commands — mcp status/install/uninstall (9345a80)
  • devserver: query agent CLIs for status detection (a860bad)
  • devserver: rename MCP clients (258f193)
  • devserver: rename mcp start to mcp serve (d27a383)
  • devserver: Sidecar ideChannelId in ambient registry for legacy hosts (8b059d7)
  • framebuffer: Add headless renderer as automatic fallback for CI (5c182f5)
  • framebuffer: Add local in-memory clipboard support (90cec6b)
  • framebuffer: Reverse default mouse wheel direction and add ReverseMouseWheel option (4691175)
  • hr: restrict workspace to the app's runtime-reported target framework (spec 047) (f54d054)
  • ios: Add DisableNumberPadPopover flag for iOS 26 TextBox (f304734)
  • ios: Add IME composition support for Skia iOS (f52f8ad)
  • ios: Add support for Geolocator.MovementThreshold (f82f3f7)
  • macos: Add IME composition support for Skia macOS (e39905b)
  • mcp: Add tools list priming and solution folder (c95febc)
  • samplesapp: Add ScrollViewer anchoring sample (58f8032)
  • scrollviewer: Implement CurrentAnchor and scroll anchoring (e22a31c), closes #4548, #23043
  • skia: Add IME composition support for TextBox (1680187)
  • Skia: Implement PlaneProjection and Matrix3DProjection (08a0d10)
  • textblock: TextHighlighters (4d7b667)
  • TextBlock: TextTrimming (55842b3)
  • wasm: Add IME composition support for WASM Skia TextBox (b68e641)
  • wasm: software rendering fallback (f3b1e17)
  • win32: Add IME composition support via TSF/IMM32 (d7fee7c)
  • win32: CFSTR_FILEDESCRIPTOR/CFSTR_FILECONTENTS support for drag&drop (a7b64ca)
  • win32: handle dragging for TYMED_ISTORAGE (71b1779)
  • win32: Implement Application.Exit() for Win32 Skia Desktop (f161763)
  • x11: Add IME composition support with XIM and D-Bus (c9f419c)

Performance Improvements

  • avoid creating unnecessary FrameworkTemplatePool entry (c158701)
  • Avoid re-checking theme resources on each frame (ac00582)
  • binary search for correction index to start with instead of starting from the beginning (213280f)
  • Cache SKPoint array (529d452)
  • cache SKFontManager.Default.MatchCharacter calls (05c04d4)
  • Caching disposable (51516a4)
  • on macOS and Windows, load CLDR data from a shared icudt.dat instead of dynamically linking the data (bdcc92b)
  • Optimize TryGetTarget to avoid redundant checks (6b6d5a3)
  • AcrylicBrush: add a new implementation without CompositionEffectBrush with downscaled blurring (6b24c60)
  • devserver: reuse fresh solution snapshots (9fe508b)
  • textblock: improve character-level text wrapping performance for long "words" (b32d6b8)
  • wasm: deduplicate render requests (d2bfc67)
  • win32: prevent render timer drift (1a33943)
  • x11: avoid X lock contention between the render thread and the event loop thread (5ee4a79)

Bug Fixes

  • AndroidX version overrides (0c0699c)
  • ContextFlyout parenting (351d6eb)
  • End key shortcuts don't work at the start of TextBox (1f8e4ae)
  • FlowLayout orientation default (91858e2)
  • IsSelectionRequired (cfde7d3)
  • TextBlock cleanup (0eb5ccd)
  • TextBlock selection on right tap (8f086b7)
  • Themes.Active alignment (0597a83)
  • Acrylic bleed through neighboring elements (a4dc32e)
  • Acrylic opacities do not match WinUI (203a0b5)
  • add check before enumerating trim point candidates (26d1f99)
  • Add defensive guards for accessibility NREs during element initialization (5cd52be)
  • Add forceRefresh parameter and same-theme early-out to NotifyThemeChanged (6177508)
  • Add KA to target collection (926f9c4)
  • Add missing partial (5329787)
  • add missing Canvas.Save() before stroke ClipPath in CompositionSpriteShape (026c224)
  • Add missing key mappings on FrameBuffer (5075d9a)
  • Add missing PageUp mapping on X11 (8688d78)
  • Add missing partial modifier to Given_DependencyProperty_PropMethodCall (dfba3b0)
  • Add NativeRenderer to Sdk.props.buildschema.json (16819af)
  • Add partial modifier to VectorExtensions (bb99c8d)
  • Add unicodeKey parameter to match test pattern (33b2557)
  • Add UNO_MIXIN_GENERATION guard to DependencyPropertyMixinGenerator (24d7cd1)
  • Address code review feedback - add pragma directives and clarify docs (26f525e)
  • Address comments (f4e6a8a)
  • Address dash end rendering differences (f5aae81)
  • Address default rendering behavior (2a7be3f)
  • address PR review comments (0b90f52)
  • Address PR review comments for backspace handling (59da8f5)
  • Address PR review comments for FPS diagnostic (e3ef88a)
  • Address PR review comments on code-behind generator (280ac4a)
  • Address PR review comments — use production code in tests, scope case-folding, use StartOnceGuard (dc819f7)
  • address review comments (quick fixes) (4827381)
  • address review feedback on descriptions, timing, and logging (2c1cd28)
  • address review feedback — reset stale HostRespondedNoMcp, extract decisions (9a5fe28)
  • address review feedback — unused usings, exception hardening (9f116dc)
  • Address review — cache TTL, defensive copy, reset state on restart (34f872e)
  • Adjust Matrix3D logic (1315216)
  • Adjust PlaneProjection logic (9297a3f)
  • Adjust SelectionFlyout position to top of selection (fa6ae21)
  • Adjust anchor update frequency (96ba065)
  • Adjust attribute (5eae0e0)
  • Adjust conditions for UI tests (1e5a5c5)
  • Adjust dash rendering, pathe effect calculation (0fca35e)
  • Adjust exception type (39534b6)
  • Adjust generation for collection types (1d217e6)
  • Adjust MCP start and testing (2143ba4)
  • Adjust method signature (1bdee4f)
  • Adjust paths for ResourceDictionaries (4ab208b)
  • Adjust positioning of invisible input (171977d)
  • Adjust target for IClosableNotifier and ClosableNotifierHandler (b679233)
  • Adjust test (05a64eb)
  • Adjust test for native targets (b3c6604)
  • Adjust theme change propagation for application-level theme (bbe6823)
  • Adjust underlying type (1bb6bb6)
  • align GetLineAt empty-text lastLine with ParsedText (507f274)
  • Align theming logic with WinUI parity review findings (3246ecc)
  • Allow ShowAt to work without placement target (4c1a254)
  • Allow Enter key propagation in WASM Skia TextBox for focus navigation (4863b17)
  • Allow Key property in XAML for KeyboardAccelerator (8f7d262)
  • Allow opening default text flyouts in secondary windows (fb3e41c)
  • allow XAML HR when debugging with mono runtime (9ce3b37)
  • Apply GetRequestedThemeOverride pattern for theme walk (e242f19)
  • Apply theme to theme resources (9d23399)
  • Apply XamlStyler formatting to AlphaMaskTests.xaml (c431c6d)
  • Avoid ContextFlyout and SelectionFlyout memory leaks (4e6262e)
  • Avoid Frame tests in WinUI (78e1958)
  • Avoid BitmapIcon flicker by skipping redundant Image.MonochromeColor reloads (83847c4)
  • Avoid duplicating context menus for TextBlock (7cd36a4)
  • Avoid failing assert in inertia (ab538f2)
  • Avoid leak (2251ef0)
  • Avoid leaking theme for popups (2eccffb)
  • Avoid locking up scroll (ecdfb8f)
  • Avoid modifier output to be included in TextBox (fa34443)
  • Avoid NRE on WASM startup (d5c6aa1)
  • Avoid overwriting Foreground due to inheritance (56beec5)
  • Avoid propagating exception on UI thread for WinUI (22138dc)
  • Avoid recognizing bare language qualifiers in non-folder context (cd4c243)
  • Avoid Samples app JSON exception on startup (de7f815)
  • Avoid stack overflow in BindableTypeLinkerGeneratorTask (6024b09)
  • Avoid test flakiness (82f341e)
  • Backspace handling (c02da6c)
  • BringIntoView scrolls to caret position in TextBox with disabled internal scroll (526bc5c)
  • Build issues (d24128d)
  • cancel parent direct manipulations again after the press bubble settles (e5cbb8d)
  • Change Assert.AreEqual(0,_.Count) to Assert.IsEmpty (98b957e)
  • Change Assert.AreEqual(N,_.Count) to Assert.HasCount (ba20530)
  • Change Assert.IsTrue( >/</>=/<= ) to Assert.IsLessThan/GreaterThan/OrEqual (23219e5)
  • Change command line argument separator from space to '&' (771ebf1)
  • Change scale metadata types from int to float in build schema (2869ae9)
  • Check callback before consuming guard and deduplicate legacy cache (e7cf8dc)
  • CI build removing catalyst (f467e1c)
  • Close SelectionFlyout when selection is cleared (c11643c)
  • close race window in UnoDevEnvironmentService (5a2e690)
  • close stdin for Codex CLI to prevent hang on Linux/macOS (87e4ac5)
  • Close window after test (a391978)
  • Code scanning alert for Clear-text logging of sensitive information (c7a1e2a)
  • Collection type interface generation (cb4f4e2)
  • consolidate process chain formatting and review fixes (78c3fc5)
  • Correct IsTextSelectionEnabled check (23d525e)
  • Correct control reference in FocusNative method (6dcb1c6)
  • Correct default value for MenuFlyout shadow (3efada0)
  • Correct number pad mappings for numbers (f7e3c93)
  • Correct platform-specific attribute handling (c818c30)
  • Correct spelling error 'yourd' to 'your' in FAQ (ac2b700)
  • Correct unpackaged app source folder path for WinAppSDK builds (d99cfcd)
  • Correctly check for PasswordBox in TextCommandBarFlyout (fe40659)
  • Correctly check for TextBox in TextCommandBarFlyout (5aa7e88)
  • Correctly close submenus (6056ab0)
  • Correctly map numpad Enter (76b0f71)
  • Correctly resolve foreground (b7f79e6)
  • Correctly resolve Foreground property (0fa43dc)
  • Correctly retrieve foreground property in FE (7805153)
  • Correctly trigger context requested (5e8cf55)
  • Correctly unsubscribe from Clipboard changes (67912d7)
  • Create failed tests directory before test execution (54fcf98)
  • Culture recognition (56ba9ea)
  • Cursor theming (252c8d3)
  • data-context propagation around non-FE DO (7c2d15a)
  • Deduplicate MCP tools to prevent duplicate tool listing in WSL/pre-release (e494285)
  • Default Button style has incorrect padding (b7379b6)
  • defer DevServer start until MCP roots, recursive solution search (92bf383)
  • Disable element-level theming on native Android and native iOS (2ef4866)
  • Disable test on WinUI (0510aed)
  • Dispatch RequestRedraw to UI thread (4fb6992)
  • dispose HttpResponseMessage in readiness probe loop (40159ab)
  • don't dim disabled ListView/GridView item content (a6f538e)
  • don't use grapheme clusters after they have removed from a line due to TextTrimming or MaxLines (ad0fda2)
  • Drain stderr, cache git check-ignore, stop monitor on non-Uno workspaces (#22982) (05bebd0)
  • Drop MSBuild requirement (8852145)
  • Drop UWP-specific paths from generator (2ff8ac3)
  • eliminate race condition in ApplyUpdatedTypes _handlerActions capture (94a244e)
  • Enable CA1847 and fix single-char string lookup violation (012a643)
  • enhance caret positioning for IME candidate window in SinglelineInvisibleTextBoxView (ee6edf4)
  • enhance focus recovery logic and cache automation peer for stability (1fed83a)
  • Enhance ListView automation peer handling in tests (31d70f2)
  • Ensure BackButtonIntegration has precedence over default handling (2da4595)
  • Ensure ContextFlyout Opening event subscription for default flyouts (c5176f2)
  • Ensure all TextBox and PasswordBox controls have flyouts by default (221878b)
  • Ensure ASB popup overlaps header when opening upward (53b03c0)
  • ensure implemented toc.yml is valid for DocFX when no views are analyzed (5cb3f57)
  • Ensure streams are disposed properly for ImageSource (77f3863)
  • Enter on Button.Flyout (f7f91f7)
  • Enter/Leave alignment (1c64258)
  • escape Spectre.Console markup tags and fix test naming (17be509)
  • Exceptions in generator (5e1a2cf)
  • Exclude When_Waiting_For_Another_Thread on Android (ecd9fb2)
  • expose discovered solutions, fix CI failures and review feedback (f941b4b)
  • Filter parented popups in PopupRoot theme propagation (cd3fa20)
  • Fire triggers immediately when set after element is already loaded (f507c46)
  • Fix indentation in SnapShotTestGenerator.cs (0870ad0)
  • Fix invalid TFMs used to init project (77c696e)
  • Fix markdown formatting in documentation (1f13db2)
  • fix native clipping never cleared on AppleUIKit (d3cc9f9)
  • Fix remaining CA1847 violations in FontHelper files (2ea88ec)
  • Flyout hiding logic (d31ef2c)
  • Formatting changes (dfad263)
  • Gate PostInitializationOutput with UNO_MIXIN_GENERATION define (e195208)
  • Generation for Microsoft.Windows.AppLifecycle (3e04da6)
  • Generation issues (892cc88)
  • Generator adjustment for indexers (ff2e07d)
  • GetPositionInSetCore recursion (421394d)
  • guard AbsoluteUri in Skia SvgImageSource loading (0673d36)
  • Guard ApiExtensibility usings with HAS_UNO in ContextFlyout tests (2c7dd90)
  • guard OnBringIntoViewRequested to only target this TextBox (f8f33fa)
  • Guard StatusBar references with platform-specific conditionals (f65af2d)
  • Guard Uno-specific SetExplicitRequestedTheme with #if HAS_UNO (769d2a6)
  • Handle insertLineBreak events for Android virtual keyboards (2ca9a34)
  • Handle mixin source generators in Sync generator (40c0d6e)
  • Handle potential null reference for parent menu flyout in MenuFlyoutPresenter (ec17afb)
  • Handle TextElement owners in ToolTip theme forwarding (782c388)
  • harden DevServer monitor with race fixes, health polling and handle leak prevention (3122259)
  • harden path handling, IO exceptions, and timing comments (c38c607)
  • health reports HostNotStarted even when active server exists (3bab905)
  • health verifies host reachability instead of hardcoding (8972fba)
  • Hit-test click location before resigning native first responder (8316cae)
  • Hot reload resource update (755b99e)
  • Hyperlink theming (2108b57)
  • implement initial focus synchronization for accessibility support for Wasm (26d809b)
  • Improve error handling and resource disposal in LoadedImageSurface (d8d6c56)
  • improve focus recovery logic to handle disabled elements correctly (ca40fd2)
  • improve MCP startup timeouts and readiness probing (26b4e63)
  • Improve reliability of CalendarView test (9f7adf3)
  • Improve reliability of Win32 taskbar icon display (981655b)
  • Improve Skottie smoothness (b878aa1)
  • improve trackpad scrolling (31e7607)
  • Improve WinUI command line handling (89ff5a7)
  • Improved generation for non-obj (2a013aa)
  • include IsBackwardSelection in selection cache and fix backward-selection caret index (9dd967c)
  • include rollForward/allowPrerelease in dotnet version cache key (26840a0)
  • include searched directories in HarfBuzz error message (bd5b98e)
  • include ThemeResource reason in Hot Reload resource binding updates (364bf63)
  • Inertia can lock up when changing directions rapidly (1e91112)
  • Inheritance base matching (ec4696a)
  • Install Windows App Runtime 1.8 from official source (7b54435)
  • Install Windows App Runtime dependencies before MSIX package (75b9a60)
  • Invalid slnf project references (105a3ea)
  • Invalid parameter name (fd01014)
  • Invalidate measure on Path.Data change (1f2706c)
  • Invoke default ContextRequested handlers during bubbling (455368f)
  • iPadOS fast scrolling issue (2aabeeb)
  • ipados numeric keypad overlap on padded NumberBox (ef9a63d)
  • Keep selection active when context flyout opens (0495c76)
  • Last command in overflow list gets truncated (3548116)
  • Leak issues (52a28f4)
  • Leak tests (1ca541d)
  • limit caret-targeting BringIntoView to TextBox with disabled internal scroll (f9c655d)
  • limit StartBringIntoView to when internal scroll is disabled (37a4b13)
  • listen for macOS natural scrolling changes (8d83e5a)
  • Listen to gestures when ContextRequested is attached (16645ce)
  • Load explicitly mentioned assemblies, don't probe (3526091)
  • Loading runtime tests control (12d88ba)
  • lock-free ChannelSession for race-free IDE channel rebinding (cd53bb1)
  • Logic check (0014197)
  • macos dispatch filepicker calls to main thread (cc3366c)
  • macOS window close and quit shortcuts (95075d9)
  • make both .wasm.cs and .browserwasm.cs compile for both IsBrowserWasm and UnoRuntime=WebAssembly (7a3f022)
  • make DiscoveryInfo and ResolvedAddIn public to match DevServerMonitor accessibility (de71a00)
  • make keep-alive timer testable with configurable delay (18215e0)
  • Make mixin Generate() methods public, fix test assertions and comments (f32a8c8)
  • Make test file name shorter (972742b)
  • Match StrokeLineJoin behavior with WinUI (e3b5c3f)
  • MD (3eed3a1)
  • mem-leak in FrameworkTemplate (c931c9f)
  • Memory leaks for flyouts (3348a05)
  • Method rename (6b3e608)
  • Missing Assert adjustments (9b29238)
  • move AmbientRegistry to global service container (560006b)
  • Move collection implementations to UI/Xaml directory (5327755)
  • Move SetTheme persistence to after NotifyThemeChangedCore (9864318)
  • Native build (98e6105)
  • nested menuflyout closing on hover (2fa2296)
  • normalize 2-part NuGet versions when resolving cache paths (16b382a)
  • notify parent ScrollViewers on text change to keep caret visible (2bb2b7a)
  • Only count types with properties in descriptor generation message (161c83f)
  • Optimize accessibility property updates by using CachedAutomationPeer (b92699b)
  • Optimize provider lookup to prevent unnecessary creation and improve garbage collection (2d36ca5)
  • Override acceptsFirstResponder on host views (4549cea)
  • Partial modifier missing (afee81a)
  • pass unicodeKey on Enter and use strict assertion in test (00319bb)
  • Paste only when available (ac1d62a)
  • Path conflicts on WinUI build (88ca71f)
  • Pin theme resource dictionary at parse time (e206b65)
  • Popup/Flyout theming (508cfff)
  • Position native text input at TextBox location for iPadOS floating keyboard (ec96faa)
  • Positioning for ContextRequested (50a0244)
  • preserve uno_health selection state (da69127)
  • Prevent duplicate SelectionFlyout visibility update queues (d9a24c6)
  • prevent phantom crash on AmbientRegistry reuse and inject hostVersion (be9a8b0)
  • Prevent segfault when rapidly creating/closing windows for tests (675319d)
  • Prevent StackOverflow in automation peer methods by implementing depth checks and re-entrancy guards (c64ba63)
  • prevent stale DevServer hosts and address PR review feedback (78bcf56)
  • propagate package list errors to trigger MSBuild fallback (c35977a)
  • Propagate startup exceptions for Host.Run (1ce95d5)
  • Proper ToolTip positioning (0dea9b1)
  • Properly handle ContextFlyout (1c8aa1e)
  • publish IDE state snapshot on every client connection (e6ee5dd)
  • publish Ready status after late IDE channel rebind (6345d79)
  • Push element theme when Style is changed from code-behind (3f73df1)
  • RaiseStructureChangedEvent signature (fa52426)
  • Redirect stdin in git check-ignore to prevent zombie processes (fixes #22982) (b584ea8), closes #22982
  • Remove Windows.Phone namespaces (78a2ac6)
  • Remove duplicate (090d843)
  • Remove duplicate AutomationPeer member definitions and activate Skia RaiseAutomationEvent (8ad3b52)
  • Remove duplicate float constructors in Point, Size, and Rect (4c2a4a1)
  • Remove GenerateMixins reference (194d035)
  • Remove trailing space in markdown documentation (f2dcc1c)
  • Remove UWP from Sync generator (ea655e8)
  • Remove XamlControlsResourcesV2 rewrite from XAML source generator (795b21a)
  • removed HD folder (e02d61d)
  • Rendering of last dash (4b8b374)
  • Reorder NotifyThemeChangedCore to match WinUI sequence (7800bf3)
  • Reparenting in multi-window (f5251e9)
  • Replace Assert.ThrowsException with Assert.ThrowsExactly for MSTest compatibility (b60482d)
  • replace hardcoded client names with capability detection (a30d7b2)
  • replace MemoryStream/BinaryWriter with BinaryPrimitives in GetLengthPrefixedArray (29a811d)
  • replace TargetFrameworkVersion with GetTargetFrameworkVersion (0032d39)
  • report cached tool count in health regardless of upstream state (2ba0972)
  • Reset notification guard when callback throws to allow retry (f41ea20)
  • resettable startup guard, stale connection disposal and readiness short-circuit (4b7ddcb)
  • resolve 4 prerequisite bugs for hot reconnection (Phase 1c-1) (b435e15)
  • resolve AmbientRegistry with explicit ILogger factory (070ac11)
  • Resolve bridge port polling when controller reuses existing DevServer (d92f069)
  • resolve ThemeResource not updating on first app theme switch (4f68f90)
  • restore XamlScope in ElementStub.Materialize for StaticResource resolution (5c5f8cf), closes #23088
  • reuse discovery.AddIns in ResolveAddInsForCommand (3b7656d)
  • Revert CascadingMenuHelper.cs - it uses WeakReference not ManagedWeakReference (a8c927b)
  • RotationX direction (5529a0b)
  • Route DevServer CLI non-MCP logs to stdout instead of stderr (c7a5c1b)
  • Run on UI thread correctly on WinUI (b953afa)
  • Samples app asserts (baccccd)
  • Scan full args for mcp serve detection (7288b0c)
  • Scrolling reliability (281b853)
  • Selection sync from native text view on iOS (46543ed)
  • set Host MCP ServerInfo version from InformationalVersion (29aae50)
  • set theme before raising ActualThemeChanged event (5bd80ed)
  • Show actual exceptions in UnoPlatformHost.Run() instead of swallowing them (11805f8)
  • Simplify Android generator to use PostInitializationOutput (573bca7)
  • Simplify Enter/Leave (e113165)
  • Skip foreground change handling in BitmapIcon when ShowAsMonochrome is false (fdce4d5)
  • spelling and markdown lint in disco page (d87599c)
  • Steam-based image never loads (3f26152)
  • Stop timer when entering idle to prevent counter oscillation (6e25a14)
  • Suppress pipeline output in test functions returning port values (6222995)
  • Sync generator adjustment (49f6a96)
  • Target should be weak (3c72cbf)
  • terminate adopted servers on CLI exit and improve MCP version diagnostics (bec0d5f)
  • Test failing on iOS & Android (24315a4)
  • ToolTip theme forwarding (55e8266)
  • trigger tool cache lazy-load in health report (192bde9)
  • UIElement Event Registration under NativeAOT (a89d366)
  • Undo workarounds (ee6dc9c)
  • Unfreeze foreground theme resources (e82de1e)
  • update focus handling to ensure proper XamlRoot usage and improve focus management (3737895)
  • Update for Hot Reload (26ad336)
  • Update project reference to renamed SampleAttribute.cs (fda964b)
  • Update provider to use ConditionalWeakTable for improved memory handling (32e5a85)
  • update sample comments and replace Task.Delay with WaitFor in tests (892a085)
  • Update specs/003-skia-opengl-backends/po-intake-skia-opengl-backends.md (1888ad6)
  • update the timestamp for the scroll arg event (2cf6478)
  • Use $(NetUnitTests) instead of hardcoded net9.0 in CLI test project (14f9a59)
  • Use DispatcherQueue for RunOnUIThread (5fde0b8)
  • Use dotnet build for generator project (285d7c9)
  • Use artifact inner path in screenshots comparer (e0b09f2)
  • Use atomic CompareExchange to eliminate TOCTOU race in notification guard (49ab6f1)
  • Use consistent certificate variable name (c3509e6)
  • Use correct category name without closing menu pane (8c05e29)
  • Use correct parameter name in Rect height validation (0443705)
  • Use CultureInfo.InvariantCulture for char.ToUpper calls (f586b2a)
  • Use danger-full-access sandbox for Codex CLI on all platforms (1710904)
  • Use DeviceTargetHelper for platform keyboard checks in tests (370e8b7)
  • Use double.PositiveInfinity for MaxWidth/MaxHeight defaults on UIKit (7678936)
  • use JsonException instead of JsonReaderException in test (1d6fa80)
  • Use lock-free pattern for notification guard and improve test quality (006c026)
  • Use OpenPlayground() method to load Playground sample correctly (b05e637)
  • Use RegisterPostInitializationOutput + RegisterSourceOutput correctly (b3668f5)
  • use StringComparison.Ordinal in NormalizeFilePath for deterministic path parsing (df02e3e)
  • use unique temp filename for atomic registry write (51d22b8)
  • Use Uri.LocalPath to decode percent-encoded file paths on Linux X11 pickers (79dbdd6)
  • Use VerticalAlignment.Stretch for VerticalAlignmentProperty default (2da9f1f)
  • Validate enum underlying types and values (5dabb90)
  • validate roots argument in force-roots-fallback path (1752f0f)
  • Validate that EventTrigger only supports Loaded event (508e145)
  • Visual state theme resources resolution (0e0ca2b)
  • Visual tree discrepancy (beb2ca0)
  • Wait for loaded (52b0997)
  • Wait for NavigationCompleted before ExecuteScriptAsync in test (09895a8)
  • Wasm TextBox a11y selection handling and browser input synchronization (234ad3a)
  • WebView2 references (264f398)
  • WebView2 swallows arrow keys after losing focus on macOS (2c0c8ec), closes #22819
  • Win32 a11y IsOffscreen and IsEnabled updating properties (66e08f2)
  • Win32 a11y provider to support automation peer resolution and improve event handling (956a90e)
  • WinUI parity (32deb37)
  • WinUI sync generator (e4f0d63)
  • wrap regression tests in #if HAS_UNO for WinAppSDK build (fef7051)
  • android: Clear stale _platformTextApplyInProgress flag (368de5c)
  • android: consolidate ICU loading fallback (ff8a88f)
  • android: dismiss soft keyboard when focusing read-only TextBox (a6a828e)
  • android: Don't swallow key events when platform applies text (a2ca645)
  • android: gate libicu.so fallback on API 31+ with legacy API 21-23 attempt (7845525)
  • android: icu loading (6c6fb07)
  • android: Ignore passive autocorrect compositions (e15cd8e)
  • android: JNI-based setChecked to span AndroidX.Core 1.16/1.17 (8589263), closes #22999
  • android: Prevent double text application during IME composition (bd3df08)
  • android: publish and linkmode set to none (a19b1e6)
  • android: report attempted ICU library names on load failure (4a5bf25)
  • android: skip libicuuc.so attempt on API 24-30 and fail fast (8f73f5b)
  • android: suppress soft keyboard for read-only TextBox on Skia (e50cc2c)
  • android: Use ApplicationActivity.RenderView for TextInputPlugin (ed164ab)
  • CheckBox: remove Margin on AnimatedIcon to keep the check glyph centered (d3c9f1e)
  • ci: Add error handling and fix version matching in iOS setup (0013607)
  • ci: Improve iOS runtime download error handling and version matching (4dbfb59)
  • ci: Stabilize iOS builds on macOS-15 (7747ed6)
  • ci: Use distinct file names per Linux stage to avoid retry collisions (6c588a2)
  • deps: bump Microsoft.Kiota.Abstractions to 1.22.2 (b0caa11)
  • deps: bump System.Security.Cryptography.Xml to 8.0.3 (01dc686)
  • deps: pin Kiota in Graph sample heads (38939e9)
  • devserver: add .csproj.user generation and fix review feedback (8b8fe1d)
  • devserver: address additional review feedback (6bb4732)
  • devserver: address MCP review feedback (9656798)
  • devserver: address PR review feedback (a8c08a1)
  • devserver: address PR review feedback (c4523d5)
  • devserver: address remaining review feedback (3f57565)
  • devserver: address review feedback (2693cef)
  • devserver: address review feedback (ab617db)
  • devserver: address review feedback and CI spell check (3eae68b)
  • devserver: address review feedback on CLI-first registration (65d3beb)
  • devserver: adjust CI test prompt to override select_solution warning (b4411e9)
  • devserver: align MCP docs and paths (32cf0d6)
  • devserver: align path and health semantics (e2fc2cc)
  • devserver: always accept set_roots directory as workspace (22a954a)
  • devserver: backup config files before any writes (7bbf59e)
  • devserver: check CLI availability before native strategy fallback (1645c7c)
  • devserver: close remaining review gaps (fd48d55)
  • devserver: correct arg order in AssemblyRef mismatch warning (ab41452)
  • devserver: correct Windsurf config path to ~/.codeium/windsurf/ (8ef0b3c)
  • devserver: debounce FSW error handler to prevent infinite git processes (fixes #22828) (baca17f), closes #22828
  • devserver: Default InformationalVersion to 0.0.0-dev for local builds (06976af)
  • devserver: detect SDK version changes in global.json for restart (0f57722), closes #22855
  • devserver: dispose debounce tokens (fc11b84)
  • devserver: finish review cleanup (024d78a)
  • devserver: fix server.json packageArguments schema format (7d21f30)
  • devserver: forward auto-discovered solution path to StartCommandHandler (6d5a61c)
  • devserver: forward host stdout/stderr to console in direct mode (40350a2)
  • devserver: guide agents to call uno_app_set_roots in health report (a0ff6ce)
  • devserver: guide reselection after restore (dc799bf)
  • devserver: guide restart for complex transitions (5aa3f80)
  • devserver: handle deferred roots startup (34a5328)
  • devserver: handle empty or invalid JSON in config files gracefully (3585ace)
  • devserver: handle JSONC comments between property name and value (7d9f0be)
  • devserver: handle non-object JSON root in ConfigScanner (07aabb4)
  • devserver: harden mcp input handling (df62d60)
  • devserver: harden MCP operations (04b5d30)
  • devserver: harden MCP setup handling (bc86d04)
  • devserver: harden monitor and path logic (7ba7b15)
  • devserver: harden path debounce logic (3acfc1a)
  • devserver: harden path selection (cb68f68)
  • devserver: honor selected solution identity (3f7db2f)
  • devserver: improve Codex selection flow reliability (ff574e6)
  • devserver: increase roots-fallback test timeout for uno_app_initialize (73fdf9c)
  • devserver: keep MCP meta-tools stable (d151852)
  • devserver: launch host in direct mode to fix IDE channel on older SDKs (13f64c1)
  • devserver: list config file paths in multi-file warnings (13d1219)
  • devserver: load assemblies on demand when the bridge misses (75b80c8)
  • devserver: lock-free progress for parallel CLI queries (ce34902)
  • devserver: log codex JSON and restrict test to health+select tools (8d36dad)
  • devserver: log version in mcp mode (aa0bfec)
  • devserver: make copilot-cli file-backed via ~/.copilot/mcp-config.json (dde9a08)
  • devserver: make tests cross-platform (Linux/macOS compatible) (5df649c)
  • devserver: mcp status filters to requested IDE instead of querying all (998689e)
  • devserver: normalize built-in tool ordering (9d96247)
  • devserver: pin concrete DI to v10 in DevServer.Tests (CS0433 on 6.6) (860430f)
  • devserver: pin concrete DI to v10 in DevServer.Tests (CS0433 on 6.6) (fa34145)
  • devserver: polish discovery path output (f5a9de7)
  • devserver: preserve mcp fail-fast startup (3ca63b4)
  • devserver: preserve MCP JSONC comments (54ad327)
  • devserver: prevent file fallback crash on native-only profiles (40fcb93)
  • devserver: prevent MCP handlers from blocking indefinitely (27d4afc)
  • devserver: prevent PowerShell splatting from splitting args (2a15f80)
  • devserver: propagate cancellation from quarantined StartAsync (f626a22)
  • devserver: quarantine failing add-in hosted services (526e3c6)
  • devserver: read XDG_DATA_HOME for ambient registry on Linux (a92ed30)
  • devserver: redirect host stdin to prevent MCP message theft (c9cd0db)
  • devserver: refine MCP uninstall behavior (b4860c6)
  • devserver: remove DestructiveHint from select_solution annotation (630330c)
  • devserver: remove stale args key during OpenCode command merge (11d72af)
  • devserver: remove unused usings and discard unused variable (833170d)
  • devserver: resolve npm .cmd shims on Windows for CLI execution (e322ed9)
  • devserver: resolve post-rebase compilation errors (1f0fda4)
  • devserver: resolve Uno workspaces for mcp (f38b110)
  • devserver: restore explicit workspace override (37c578b)
  • devserver: retry host start in safe mode after startup crash (efadeef)
  • devserver: route errors to stderr for non-MCP commands (c9a7d1d)
  • devserver: run FileSystemWatcher.EnableRaisingEvents off main thread (7db92b8)
  • devserver: skip CLI-first install when profile has no add commands (edd8068)
  • devserver: skip global CLI flags in MCP subcommand arg parser (d7ad0c9)
  • devserver: skip unsupported transports per profile (ef63918)
  • devserver: soften select_solution description to not block agents (d4074e6)
  • devserver: split Claude desktop config (471c08a)
  • devserver: tighten MCP status detection (367ab65)
  • devserver: tighten workspace semantics (450816e)
  • devserver: timeout FileSystemWatcher.EnableRaisingEvents to prevent hang (9c640d2)
  • devserver: update E2E tests for uno_app_initialize JSON response (307f0e9)
  • devserver: use Arguments string instead of ArgumentList (aeefce8)
  • devserver: use ILogger for CliCommandRunner DI resolution (5c565da)
  • devserver: use single-token command arg for host process (ce6f914)
  • devserver: validate assembly identity before on-demand load (903041f)
  • devserver: watch workspace mutations (bd659ba)
  • devserver: wire excludeFromDetection and validate --tool-version (f648889)
  • devserver-cli: Address Copilot review on host launch plan (5d7bfba)
  • devserver-cli: Address review panel — shared resolver, 1-major cap, roll-forward coupling (cb85396)
  • devserver-cli: Fall back to compatible host TFM + enable major roll-forward (453426f)
  • devserver-mcp: audit and update MCP client registration profiles (5b0a5c4)
  • devserver-vs: Address Copilot review on disco probe — async streams + cancellation (9a0aed8)
  • devserver-vs: Skip in-process spawn when an external host is already serving the solution (d6821d6)
  • docs: close tab groups and fix admonition syntax in native-aot.md (9fab51a)
  • docs: close tab groups and fix admonition syntax in native-aot.md (e2d7eca)
  • docs: Correct mis-resolved uno.uitest and uno.resizetizer pins (1d95d9e)
  • docs: Enhance setup guide for Claude Code with Uno Platform (640c4f9)
  • docs: match external docs hashes (8d21417)
  • docs: mention native-aot.md within using-skia-desktop.md (be11fe0)
  • docs: preserve external docs formatting (12a51c2)
  • docs: Remove duplicate uno-check line (85c3e07)
  • docs: use aka link for upgrade guide instead of hardcoded path (d71130e)
  • droid: statusbar inset after deeplinking 2 (7435603)
  • focusvisual: fix clipping issues (0b455b3)
  • framebuffer: Pass exception objects to Error() instead of using Message (dd6d8e6)
  • hot-reload: adapt the workspace target-framework backport to 6.6 (409a4db)
  • hot-reload: drop the TargetFramework promotion for a global-property allow-list (1724cfc)
  • hot-reload: only request an explicit IDE hot reload inside Visual Studio (d0f1a20)
  • hot-reload: only request an explicit IDE hot reload inside Visual Studio (d0cd59e)
  • hot-reload: report browserwasm from the skia client flavor running in the browser (3a19ff2)
  • hr: Log loaded, reported and kept TFMs on every workspace-filtering path (e6fc2a9)
  • hr: Probe runtime platform for hot-reload TFM on skia-mobile heads (20d7c6f)
  • hr: Re-point hot-reload baselines to the RID-specific build outputs (e55dde6)
  • hr: Warn when the single loaded flavor mismatches the app's TFM (e88365f)
  • image: image loading when the path contains a space (3388b19)
  • IME: fix IME detection and candidate window position on Linux (893346d)
  • IME: fix IME setup on macos (f3644fc)
  • ios: anchor native TextBox view only for iPad floating numeric keypad (e9f1504)
  • iOS: FileOpenPicker not returning video files (627c851)
  • ios: Gate number pad popover opt-out on iPad numeric keyboard (5766a55)
  • iOS: iPadOS wheel scroll (e9dac05)
  • ios: Merge duplicate GetFirstRectForRange override (e02c464)
  • ios: Merge duplicate GetFirstRectForRange override (a94c59f)
  • iOS: MultiLineTextBox arrow keys and selection (931cc3d)
  • ios: Only fire composition events during active IME composition (5a5843f)
  • iOS: scrollwheel events iPad and Catalyst (dc71a83)
  • iOS: SingleLineTextBox arrow keys and selection (aec58c3)
  • iOS: skia mouse scroll smoothness (c62a56e)
  • iOS: skia trackpad scroll too fast (0999fb1)
  • ios: Skip caret/frame anchoring when popover is disabled (aa2f11d)
  • iOS: trackpad natural scrolling on macos (8b8fbd1)
  • ios: Use objc_msgSend for allowsNumberPadPopover (c9138ea)
  • iOS: wheel scroll for mouse (3e5ff31)
  • iPadOS: smooth scroll when using trackpad (508900b)
  • itemcontainer: pointer state tracking (80b97c5)
  • linuxframebuffer: distinguish permission errors when probing DRM cards (22e5615)
  • linuxframebuffer: fail with actionable error when software renderer init fails (a9da4ad)
  • linuxframebuffer: restore test mode before exit when DRM rendering (ad0ca1e)
  • linuxframebuffer: stop render thread and release framebuffer in SoftwareRenderer.Dispose (71dc94f)
  • listview: blank space above on refresh+selection (4ecf186)
  • logging: fix logging type when doing typeof(typename).Log() (a491f1e)
  • LoopingSelector: Suppress SelectionChanged during intermediate scroll events (7895f61)
  • macOS: external trackpad events (00febe2)
  • macOS: external trackpad handle (5825a18)
  • macOS: ignore option and command as standalone keys (7a5f1fc)
  • macOS: precise scrolling lagging (f0f0060)
  • macOS: Skia resign first responder (5e47ba8)
  • macOS: WebView2 postMessage after re-added to visual tree (ba1504b)
  • mcp: Adjust roots support for windows paths (07cd13a)
  • mcp: Ensure devserver is started on calling uno_app_set_roots (af30f09)
  • mcp: Use solution dir parameter (a0f46ee)
  • msbuild: centralize Uno task loading (3f28389)
  • msbuild: make fluent merge incremental (b7586a3)
  • msbuild: optimize task copy incrementality (0565029)
  • msbuild: scope override cache cleanup (23dd9cd)
  • msbuild: skip unchanged nuget override copies (9e7f0c5)
  • msbuild: tolerate stale delete locks (0a9b7ca)
  • passwordbox: prevent copy and cut (9a96170)
  • PathGeometry: handle PolyLineSegment, PolyBezierSegment and PolyQuadraticBezierSegment (63a22c9)
  • RadioButtons: selection reset on visual-tree unload (d87c2f6)
  • RadioButtons: selection reset on visual-tree unload for android-native (75a6194)
  • RangeBase: value coercion (9316277)
  • RefreshContainer: invalid pull states (fb857eb)
  • sdk: align Linux SkiaSharp native asset on desktop (7f832a8), closes #23658
  • skia: Address latest IME PR review comments (9ae64d4)
  • skia: Clamp IME-reported cursor position to newText length (99415ce)
  • skia: Clamp indices in ReplaceCompositionText to text bounds (485cecf)
  • skia: improve subpixel clipping and rendering (0db3542)
  • skia: Replace selected text when IME composition starts (f8b2553)
  • skia: Reset composition state in EndImeSession defensively (b752315)
  • skia-win32: defer native element SetWindowPos to present time (bdd6283)
  • skia-win32: opt into native z-ordering for native hosts (59ec429)
  • tasks: pin task host runtime selection (b6292fe)
  • test: add [RequiresFullWindow] to DatePicker/TimePicker theme tests (b102e2d)
  • test: avoid port collision in McpModeWithRootsFallback test (5ea26fb)
  • test: harden Codex integration test against LLM flakiness (4ac11f7)
  • test: install CLI as local tool in compat tests (eb93358)
  • test: launch Host exe/dll correctly per platform in CLI tests (2f2b2b6)
  • tests: add RequiresFullWindow to remaining app-theme tests (e7ab7f0)
  • tests: ensure Light theme at start of ThemeResource tests (26a296e)
  • tests: require full window for app-level theme tests (73aed8c)
  • tests: Reset KeyboardStateTracker between runtime tests (3f3176d)
  • tests: use XamlReader.Load pattern for ThemeResource regression tests (b7b0db8)
  • textblock: avoid 1-pixel gaps in backgrounds of adjacent characters (4c4bb33)
  • textblock: fix invalidation when font fallback asyncronously gets a new font (be2e14b)
  • TextBox: adjust multiline invisible for arrow navigation (b725bb7)
  • textbox: factor the width of trailing spaces in measurements (2346556)
  • TextBox: iOS report changed correctly (670fcbf)
  • TextBox: iOS Skia moving cursor with arrow keys (8138972)
  • textbox: propagate TextAlignment to TextBlock correctly (3bdff92)
  • textbox: subpixel gaps between adjacent selected characters (fe91429)
  • TextBox: sync selection between managed and native (088225c)
  • theming: apply popup theme before tree-enter (a3f1276)
  • theming: don't dim disabled ListView/GridView items (e93b93f)
  • theming: don't dim disabled ListView/GridView items (422c284)
  • theming: honor owner theme in VisualState setter (651c3d2)
  • theming: Mark re-pinned ThemeResourceReference as resolved (99f0160)
  • theming: notify logical flyout items on popup open (f05b5ae)
  • theming: popup falls back to anchor theme on first open (d06d1db)
  • theming: push owner inherited theme around resource lookups (a1b5df0)
  • theming: Re-pin app-level ThemeResource overrides (f3e790e)
  • theming: remove v2 ListView/GridView disabled-item dim (88a535d)
  • theming: split event/foreground guard from binding guard on first walk (acdba6a), closes #23177
  • timepicker: display 0 instead of 12 for selected value (0d1a5d9)
  • TimePicker: period section selection (14c9de4)
  • uitests: Replace invalid assert helpers (fbcdd91)
  • wasm: adjust timing of BrowserRenderer construction (fbd5cec)
  • wasm: avoid exception in the first render call (ba565e0)
  • wasm: make sure the splash screen is removed only after fonts preloading is done and a new frame is generated (7a0f722)
  • wasm: Use input selectionStart for IME cursor position (636e8ac)
  • win32: avoid flickering when attaching windows (dd983f4)
  • win32: cache native-view clip paths correctly. (335da85)
  • x11: avoid harfbuzz crashes after a WebView is loaded (bc654b8)
  • x11: drop XIM fallback as it causes input issues on WSL (e98e7c7)
  • x11: make init sync (fceab73)
  • x11: pass extension instance as ContentChanged sender (d077b6c)
  • x11: Use int cast for IME spot location coordinates (2c578b5)
  • x11: use private display for clipboard atom queries (ca168a8)
  • x11: verify libXfixes load and add logging for clipboard monitoring (2d2ea76)

Reverts

  • drop SelectorItem disabled-state suppression (9102c91)
  • keep v2 ListView/GridView templates 1:1 with WinUI (1162509)
  • restore v2 ListView/GridView templates to WinUI 1:1 (2b315f9)

BREAKING CHANGES

  • These are legacy namespaces coming from Windows Phone. Only the already implemented types will remain available. (78a2ac6)