From efd9d298c83374be2124ba9dd4cb9a55735367c1 Mon Sep 17 00:00:00 2001 From: Shangxin Date: Fri, 4 Sep 2026 01:05:54 +0000 Subject: [PATCH 01/17] build(uno): upgrade the Uno SDK to 6.7.22 6.7 is the first stable line that contains unoplatform/uno#21132, which re-syncs NavigationView with the latest WinUI sources and fixes the container-recycling selection defect behind #171. 6.8 is not an option: NuGet only publishes 6.8.0-dev.* and global.json sets allowPrerelease: false. Uno.WinUI.Lottie is the only Uno package pinned explicitly, so it moves with the line (6.6.166 -> 6.7.103); the rest stay implicit Uno.Sdk versions. 6.7 also pulls in the transitive WebView2Aot package, whose WebView2.dll declares a top-level "WebView2" namespace. A namespace in the global namespace wins simple-name lookup over a using-imported type, so the bare name in XtermTerminalView stopped resolving to the XAML control (CS0118); name the control type in full. net10.0-desktop builds Release with 0 warnings and 0 errors and the Presentation.Core suite is green. net10.0-browserwasm still fails UNOWA0001 on this machine, unchanged from 6.6.29 - WasmNativeWorkloadAvailable is false on both SDK versions - so the WASM head needs CI to verify. Co-Authored-By: Claude Opus 5 (1M context) --- BUILD_GUIDE.md | 2 +- README.en.md | 2 +- README.md | 2 +- SalmonEgg/Directory.Packages.props | 6 +++--- SalmonEgg/SalmonEgg/Controls/XtermTerminalView.xaml.cs | 8 ++++++-- SalmonEgg/global.json | 2 +- global.json | 2 +- 7 files changed, 14 insertions(+), 10 deletions(-) diff --git a/BUILD_GUIDE.md b/BUILD_GUIDE.md index be18ff567..a83a4f9a4 100644 --- a/BUILD_GUIDE.md +++ b/BUILD_GUIDE.md @@ -16,7 +16,7 @@ dotnet --version dotnet --info ``` -仓库通过 `global.json` 锁定 .NET SDK `10.0.302`,允许同一 feature band 内的 patch 前滚;Uno SDK 锁定为 `6.6.29`。版本不匹配时先安装 .NET 10 SDK,不要手改项目 TFM 或 `global.json`。 +仓库通过 `global.json` 锁定 .NET SDK `10.0.302`,允许同一 feature band 内的 patch 前滚;Uno SDK 锁定为 `6.7.22`。版本不匹配时先安装 .NET 10 SDK,不要手改项目 TFM 或 `global.json`。 ### 必需与可选依赖 diff --git a/README.en.md b/README.en.md index 266ccae83..31e927c84 100644 --- a/README.en.md +++ b/README.en.md @@ -25,7 +25,7 @@ With Salmon Egg, you can connect to local or remote ACP services, create and res ## Tech Stack -- Uno Platform 6.6+ (repo pin: `Uno.Sdk` 6.6.29) +- Uno Platform 6.7+ (repo pin: `Uno.Sdk` 6.7.22) - .NET 10 (repo pin: SDK 10.0.302, with 10.0.3xx patch roll-forward) - WinUI 3 on Windows - Clean Architecture + MVVM diff --git a/README.md b/README.md index 5686cc297..1de5daa5c 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Salmon Egg 是一款依托 ACP 协议打造的桌面端智能体客户端。 ## 技术栈 -- Uno Platform 6.6+(仓库锁定 `Uno.Sdk` 6.6.29) +- Uno Platform 6.7+(仓库锁定 `Uno.Sdk` 6.7.22) - .NET 10(仓库锁定 SDK 10.0.302,允许 10.0.3xx patch 前滚) - WinUI 3(Windows) - Clean Architecture + MVVM diff --git a/SalmonEgg/Directory.Packages.props b/SalmonEgg/Directory.Packages.props index d1b90902a..103f9feb6 100644 --- a/SalmonEgg/Directory.Packages.props +++ b/SalmonEgg/Directory.Packages.props @@ -21,7 +21,7 @@ - + @@ -33,14 +33,14 @@ - + - + diff --git a/SalmonEgg/SalmonEgg/Controls/XtermTerminalView.xaml.cs b/SalmonEgg/SalmonEgg/Controls/XtermTerminalView.xaml.cs index d5b1155df..7411f16ec 100644 --- a/SalmonEgg/SalmonEgg/Controls/XtermTerminalView.xaml.cs +++ b/SalmonEgg/SalmonEgg/Controls/XtermTerminalView.xaml.cs @@ -221,7 +221,11 @@ private void DetachSession(ILocalTerminalSession? session) } } - private void OnNavigationCompleted(WebView2 sender, CoreWebView2NavigationCompletedEventArgs args) + // Qualify the control type: Uno 6.7 brings in the transitive WebView2Aot package, whose + // WebView2.dll declares a top-level "WebView2" namespace. A global-namespace namespace wins + // simple-name lookup over a using-imported type, so the bare name resolves to that namespace + // (CS0118). The handlers below are for the XAML control, so name it in full. + private void OnNavigationCompleted(Microsoft.UI.Xaml.Controls.WebView2 sender, CoreWebView2NavigationCompletedEventArgs args) { if (!args.IsSuccess) { @@ -229,7 +233,7 @@ private void OnNavigationCompleted(WebView2 sender, CoreWebView2NavigationComple } } - private void OnWebMessageReceived(WebView2 sender, CoreWebView2WebMessageReceivedEventArgs args) + private void OnWebMessageReceived(Microsoft.UI.Xaml.Controls.WebView2 sender, CoreWebView2WebMessageReceivedEventArgs args) { _ = DispatchWebMessageAsync(args.WebMessageAsJson); } diff --git a/SalmonEgg/global.json b/SalmonEgg/global.json index 5e3e9590f..4ad1a3d3a 100644 --- a/SalmonEgg/global.json +++ b/SalmonEgg/global.json @@ -1,7 +1,7 @@ { // To update the version of Uno please update the version of the Uno.Sdk here. See https://aka.platform.uno/upgrade-uno-packages for more information. "msbuild-sdks": { - "Uno.Sdk": "6.6.29" + "Uno.Sdk": "6.7.22" }, "sdk": { "allowPrerelease": false diff --git a/global.json b/global.json index 6fac91021..6f9bda58a 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "msbuild-sdks": { - "Uno.Sdk": "6.6.29" + "Uno.Sdk": "6.7.22" }, "sdk": { "version": "10.0.302", From a9c8a232decf47d2c94129f9918e9ebd1d51f7c4 Mon Sep 17 00:00:00 2001 From: Shangxin Date: Fri, 4 Sep 2026 01:06:40 +0000 Subject: [PATCH 02/17] chore(styles): re-anchor the NumberBox override to Uno 6.7.103 UnoNumberBoxThemeOverrides.xaml is a copy of the framework template kept for unoplatform/uno#24021, which is still open, so the override stays. Its provenance comment pins an upstream version and a compliance test asserts that string, so the copy has to be re-checked against the new line rather than have the number bumped. Diffing the upstream template between the 6.6.166 commit and 6.7 shows a single change: PlaceholderTextContentPresenter now leaves the accessibility tree via AutomationProperties.AccessibilityView="Raw". Adopt it, then re-anchor the comment and the assertion to 6.7.103. The AppWindow.Closing remark in MainPage.Shutdown.cs cites a decompile of 6.6.166. Only the symbol's presence was re-checked on 6.7.103, not each host's value, so record that limit instead of silently re-pointing the citation at a version nobody verified. Co-Authored-By: Claude Opus 5 (1M context) --- SalmonEgg/SalmonEgg/MainPage.Shutdown.cs | 1 + .../SalmonEgg/Styles/Skia/UnoNumberBoxThemeOverrides.xaml | 6 +++--- .../Ui/XamlComplianceThemeResourcesTests.cs | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/SalmonEgg/SalmonEgg/MainPage.Shutdown.cs b/SalmonEgg/SalmonEgg/MainPage.Shutdown.cs index 6a31f2017..b7535dbbb 100644 --- a/SalmonEgg/SalmonEgg/MainPage.Shutdown.cs +++ b/SalmonEgg/SalmonEgg/MainPage.Shutdown.cs @@ -14,6 +14,7 @@ namespace SalmonEgg; /// 只在 Cancel && SupportsClosingCancellation 时才真的中止关闭。 /// (注意:lib/<tfm>/Uno.UI.dll 是 facade,那里该属性硬编码 false,据它会得出 /// "平台不支持取消"的相反结论。) +/// 该反编译结论取自 6.6.166;升级到 6.7.103 后只确认了符号仍在,未重新反编译逐个 host 的取值。 /// /// 为什么必须在这里 teardown、而不能只依赖宿主返回后再做:desktop 头原先只在 /// Platforms/Desktop/Program.cs 里等 host.RunAsync() 返回后才清理, diff --git a/SalmonEgg/SalmonEgg/Styles/Skia/UnoNumberBoxThemeOverrides.xaml b/SalmonEgg/SalmonEgg/Styles/Skia/UnoNumberBoxThemeOverrides.xaml index 33808b630..e4e04d0c0 100644 --- a/SalmonEgg/SalmonEgg/Styles/Skia/UnoNumberBoxThemeOverrides.xaml +++ b/SalmonEgg/SalmonEgg/Styles/Skia/UnoNumberBoxThemeOverrides.xaml @@ -1,6 +1,6 @@ - + - +