Skip to content

feat: 接入 UniDesktop 桌面能力与可校验原生发布 - #66

Merged
MF-Dust merged 4 commits into
mainfrom
feat/unidesktop-sdk
Oct 6, 2026
Merged

MF-Dust merged 4 commits into
mainfrom
feat/unidesktop-sdk

Conversation

@MF-Dust

@MF-Dust MF-Dust commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner

Nori 的 Linux 待决授权缺少系统提醒,桌面能力也缺少统一的 SDK 接入。新增 UniDesktop SDK v0.2.0 C ABI 绑定,通过 IPlatformServices.DesktopIntegration 提供外观、壁纸、通知、常亮锁、媒体与会话/电源接口;Linux 授权发送只读提醒,Windows 情绪强调色备份改用 SDK 读取并删除旧注册表读取。

常亮锁保证只释放一次,Windows 检查线程归属并拒绝同一线程叠加锁;无播放器与没有强调色保留空值语义,读不到原值时不修改系统颜色;会话动作先检查对应能力位,除锁屏外要求显式确认。现有 Windows 可交互审批通知和 Avalonia 托盘继续保留:v0.2.0 C ABI 缺少通知回调/撤销,以及 Nori 依赖的托盘左键点击、动态菜单项更新和可见性接口。能力对应表与平台降级说明见 app/desktop/UniDesktop/README.md。

同时删除无调用、无配置引用的旧 PluginDescriptorSummary.cs 与旧网页桥接 BridgeMessage/BridgeResult 类型,保留仍在使用的 BridgeJson 序列化配置。处理 Codacy 意见:补全测试 switch 默认分支,集中静态常亮锁状态写入,将原生下载产物选择改为 Map 白名单;对固定根目录与白名单派生路径的动态文件名扫描误报逐行说明,保留双重 SHA-256 校验。

固定官方 Windows/Linux x64 产物与 SHA-256,不提交 SDK 二进制。CI 在构建测试前准备原生库;发布校验原生库哈希、库与许可证是否随包分发,并将 SDK 纳入第三方清单/SBOM。macOS/Linux arm64 沿用现有平台能力。未新增模型工具或自动改变用户的媒体、壁纸、睡眠与电源状态。

验证:

  • Release 解决方案构建通过。
  • 22 项 Core 平台/原生 ABI 测试、61 项 Desktop 通知/审批/表达通道测试通过。
  • 原生主题、会话能力和只读接口烟测;字符串释放、异常映射、未确认会话拒绝、线程归属与重复释放验证。
  • 原生库下载校验、发布缺库/篡改拒绝、发布结构 fixture、脚本语法与一方 TODO/FIXME 门禁通过。
  • 完整 Linux x64 槽式 FDD 发布通过,包含库与 MIT 许可证;发布包 65.96 MiB,第三方元数据生成验证通过。
  • 清理后 Release 全解决方案构建零警告;22 项 Core 测试与 298 项桌面桥接/SDK/外观测试通过,2 项已有图形测试在无显示环境按原设置跳过。
  • RID 白名单检查覆盖 Windows/Linux 缓存校验、macOS/arm64 降级,以及原型属性名和路径穿越输入拒绝。
  • 最新提交 ffa1dd9 的 Windows/Linux/macOS CI 全部通过,覆盖全量构建、测试、发布,以及 Windows ZIP/SBOM/notices 和 first-run、initialized、safe-mode 启动烟测;Codacy 复查通过。
  • 插件测试清理在 Windows 覆盖率运行中重复出现临时 DLL 映射尚未释放;清理助手增加仅 Windows 生效、最多 9 次且总等待 450 毫秒的回收重试,最终仍抛出错误。修改后本地 50 项插件测试通过,最新 Windows CI 覆盖率及三平台插件测试均通过。

@codacy-production

codacy-production Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 106 complexity · 0 duplication

Metric Results
Complexity 106
Duplication 0

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@MF-Dust
MF-Dust merged commit 27aeb7c into main Oct 6, 2026
5 checks passed
@MF-Dust
MF-Dust deleted the feat/unidesktop-sdk branch October 6, 2026 09:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant