chore: Skia Wasm initial a11y support#22736
chore: Skia Wasm initial a11y support#22736morning4coffe-dev wants to merge 138 commits intofeature/a11yfrom
Conversation
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Library-compiled templates (Release mode) set isHotReloadSupported=false,
so their {ThemeResource} bindings only carry the ThemeResource flag.
UpdateResourceBindingsForHotReload() was passing only HotReload, causing
the filter in DependencyObjectStore to skip all library bindings.
Adding ResourceUpdateReason.ThemeResource to the update reason ensures
library resource bindings are also refreshed during Hot Reload.
Fixes: unoplatform/Uno.Themes#1580
Co-authored-by: MartinZikmund <1075116+MartinZikmund@users.noreply.github.com>
Co-authored-by: MartinZikmund <1075116+MartinZikmund@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Replace MSBuild-based add-in discovery (2x dotnet build, 10-30s) with direct .targets XML parsing from the NuGet cache (~110ms). - Add TargetsAddInResolver that parses packages.json and buildTransitive/*.targets - Fix NUGET_PACKAGES="" producing dangerous relative paths in GetNuGetCachePaths - Add --addins flag to Host to skip MSBuild discovery when paths are pre-resolved - Forward --addins from controller to child server process - Resolve add-ins in CLI start and MCP paths before launching the host - Add --addins-only flag to disco command for pipe-friendly output - Show add-ins section with discovery method and duration in disco output - Add 18 unit tests for TargetsAddInResolver
…fixes - Add DotNetVersionCache to avoid repeated `dotnet --version` subprocess calls during startup (disk cache with 24h TTL + global.json sdk.version invalidation key) - Integrate cache into UnoToolsLocator and register in DI - Add EntryPoint regression tests to lock VS extension reflection-probed type names and constructor signatures - Fix MCP notification name in dev-server.md (tools/list_changed) - Add missing tools to using-the-uno-mcps.md (uno_app_start, Business tier) - Add --mcp-wait-tools-list to Antigravity setup guide - Add antigravity to ClientsWithoutListUpdateSupport in McpProxy - Create devserver-agent.md and reference it in AGENTS.md
… diagnostics - Enable tool cache unconditionally in --mcp-app mode for < 1s first list_tools - Add 30s bounded timeout to list_tools and EnsureRootsInitialized (no more infinite blocking) - Fix McpClientProxy TCS completion on connection error (prevents permanent deadlock) - Fix DisposeAsync hang by canceling TCS before awaiting client disposal - Remove incorrect ResourceUpdatedNotificationParams deserialization for ToolListChanged - Always invoke toolListChanged callback even with 0 tools to unblock waiters - Return structured MCP error responses for premature tool calls instead of exceptions - Add uno_health built-in tool with HealthReport model for startup diagnostics - Add 17 unit tests covering serialization, timeout patterns, and cache integration
…overy Add 17 unit tests (addins flag parsing, controller forwarding, NuGet cache path guard) and 5 PowerShell integration test functions (disco JSON output, addins-only, cleanup, Host --addins flag, package content).
Upgrade ModelContextProtocol SDK from 0.4.1 to 0.8.0. Add uno://health MCP resource, HealthReport fields (UnoSdkVersion, DiscoveryDurationMs), cache invalidation metadata (workspace hash, SDK version), and atomic cache writes.
- Link AmbientRegistry and CsprojUserGenerator sources into CLI project - Check AmbientRegistry for existing DevServer before launching - Write .csproj.user files CLI-side before server launch - Launch Host directly without --command start (2-process chain) - Manage long-running server process lifecycle and cleanup - Call StopMonitoringAsync on MCP proxy shutdown - Add Phase 1b unit tests for AmbientRegistry and direct launch args - Document IDEChannel single-connection limitation
- TCS resettable via ResetConnectionAsync (bugs 1+4) - Monitor loop continues after ServerStarted, raises ServerCrashed (bug 2) - Notification handler awaits async callback (bug 3) - Add 11 regression and bug-exposing tests
Extract health reporting into a dedicated HealthService class: - BuildHealthReport(), BuildHealthToolResponse() - HealthTool static Tool definition - HealthResourceUri constant McpProxy now delegates all health logic to HealthService via DI.
Extract tool caching and list operations into ToolListManager: - GetCachedTools(), PersistToolCacheIfNeeded(), RefreshCachedToolsFromUpstreamAsync() - ListToolsWithTimeoutAsync(), FetchToolsFromUpstreamAsync(), AppendBuiltInTools() - InitializeToolCachePath(), MarkShouldRefresh() HealthService now uses ToolListManager.CachedToolCount directly.
Pure rename for clarity — McpUpstreamClient better describes its role as the connection to the upstream DevServer MCP host.
Extract MCP Host building and handler registration into McpStdioServer: - BuildHost() constructs the stdio MCP server with all 4 handlers - Lifecycle-specific behavior injected via delegates - McpProxy now calls BuildHost() then wires callbacks and runs
|
🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22736/wasm-skia-net9/index.html |
|
🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-22736/docs/index.html |
|
The build 198843 did not find any UI Test snapshots differences. |
|
|
|
🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22736/wasm-skia-net9/index.html |
|
🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-22736/docs/index.html |
|
The build 198921 did not find any UI Test snapshots differences. |
2 similar comments
|
The build 198921 did not find any UI Test snapshots differences. |
|
The build 198921 did not find any UI Test snapshots differences. |
|
|
|
🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-22736/docs/index.html |
|
The build 198940 did not find any UI Test snapshots differences. |
|
🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22736/wasm-skia-net9/index.html |
|
🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-22736/docs/index.html |
|
The build 198940 did not find any UI Test snapshots differences. |
|
The build 198948 did not find any UI Test snapshots differences. |
|
|
|
🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22736/wasm-skia-net9/index.html |
|
🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-22736/docs/index.html |
|
The build 198954 did not find any UI Test snapshots differences. |
5 similar comments
|
The build 198954 did not find any UI Test snapshots differences. |
|
The build 198954 did not find any UI Test snapshots differences. |
|
The build 198954 did not find any UI Test snapshots differences. |
|
The build 198954 did not find any UI Test snapshots differences. |
|
The build 198954 did not find any UI Test snapshots differences. |
GitHub Issue: closes #
PR Type:
What is the current behavior? 🤔
What is the new behavior? 🚀
PR Checklist ✅
Please check if your PR fulfills the following requirements:
Screenshots Compare Test Runresults.