feat: improve desktop reliability and customization
Address reliability and consistency gaps across Agent Runtimes, persistence, settings, Knowledge, Magic Notes, Smart Heartbeat, and the download site. Runtime processes now have bounded lifecycle cleanup and atomic configuration rollback, while model packages and persisted mutations recover safely. Add a configurable global shortcut, protect unsaved work, improve modal and keyboard behavior, localize the built-in project without rewriting stored data, and lazy-load heavy renderer routes under enforced bundle budgets. Align project forms and disabled controls with shared typography and interaction states, and strengthen website release metadata validation and navigation accessibility. Release note: 修复 Runtime、设置、知识库、魔法笔记与智能心跳中的可靠性和交互一致性问题;新增可配置全局快捷键,改进无障碍与加载性能,并强化官网下载校验。
This commit is contained in:
+66
-12
@@ -1,14 +1,16 @@
|
||||
# GoodBuddy 静态官网
|
||||
|
||||
`sites` 是无需构建步骤或额外依赖的静态官网源码,可直接托管整个目录。
|
||||
`sites` 是无需构建步骤或额外依赖的中英文静态官网源码,可直接托管整个目录。
|
||||
|
||||
正式站点地址:<https://mesalogo.github.io/goodbuddy/>
|
||||
|
||||
首页将 GoodBuddy 定位为“桌面助手|AI 编程工具台”,优先展示三大桌面
|
||||
系统与双架构下载入口、统一 Agent Runtime,以及知识库、魔法笔记、
|
||||
智能心跳、桌面上下文和远程消息通道等桌面助手能力。下载区位于主要
|
||||
功能说明之前,并明确列出统信 UOS、银河麒麟、海光、兆芯、鲲鹏和飞腾
|
||||
首页将 GoodBuddy 定位为“免注册、支持信创软硬件的一站式 AI 助手”,
|
||||
优先展示三大桌面系统与双架构下载入口、统一 Agent Runtime,以及知识库、
|
||||
魔法笔记、智能心跳、桌面上下文和远程消息通道等桌面助手能力。下载区位于
|
||||
主要功能说明之前,并明确列出统信 UOS、银河麒麟、海光、兆芯、鲲鹏和飞腾
|
||||
对应的 Linux x64 / arm64 包。页面不重复设置底部下载推广区。
|
||||
英文页面位于 `en.html`,不展示信创适配文案,三个平台的下载按钮始终前往
|
||||
GitHub 最新正式 Release。
|
||||
首屏产品界面默认正面展示,在精确指针设备上使用克制的 3D 倾斜、
|
||||
柔和跟随光效和同步浮动标签;触屏设备保持静态布局,系统启用“减少动态
|
||||
效果”时不运行该交互。
|
||||
@@ -22,6 +24,14 @@
|
||||
设为 **GitHub Actions**。站点使用项目 Pages 地址,不需要 `CNAME` 文件
|
||||
或自定义域名 DNS 配置。
|
||||
|
||||
## 语言选择
|
||||
|
||||
首次访问时,`language.js` 使用浏览器的第一首选语言选择页面:中文语言进入
|
||||
中文首页,其他语言进入英文页。页头的语言按钮允许手动切换,并将选择保存在
|
||||
浏览器本地;之后访问优先使用手动选择。两个页面都声明 canonical 与
|
||||
`hreflang` alternate 地址。手动切换语言会保留当前 URL 片段,例如从下载区
|
||||
切换后仍停留在 `#download`。
|
||||
|
||||
## 本地预览
|
||||
|
||||
在仓库根目录运行:
|
||||
@@ -37,29 +47,73 @@ python -m http.server 4173 --bind 127.0.0.1 --directory sites
|
||||
```powershell
|
||||
node sites/scripts/validate.mjs
|
||||
node --check sites/app.js
|
||||
node --check sites/language.js
|
||||
node --check sites/release-index.js
|
||||
node --test sites/scripts/app.test.mjs sites/scripts/release-index.test.mjs
|
||||
```
|
||||
|
||||
校验脚本会检查必需文件、页内链接、本地资源、关键产品文案、主题与响应式
|
||||
规则,以及下载选择器是否从受信任的正式发布索引加载并保留 GitHub
|
||||
Release 回退入口。
|
||||
校验脚本会检查中英文页面、语言选择、页内链接、本地资源、关键产品文案、
|
||||
主题与响应式规则,以及中文下载选择器是否从受信任的正式发布索引加载并
|
||||
保留 GitHub Release 回退入口。它还计算浅色弱文本与控件边框的 WCAG
|
||||
对比度、检查移动导航和下载控件结构、本地字体及许可证。发布索引测试覆盖
|
||||
严格 SemVer、六个目标、格式和扩展名、文件大小、SHA-256、唯一文件名及
|
||||
不可变 URL,并按发布生成器的实际命名绑定版本、平台、架构和格式。移动
|
||||
导航行为测试同时覆盖现代 MediaQueryList 监听与旧版 Safari 的 `addListener`
|
||||
回退。英文下载入口固定指向 GitHub Release。
|
||||
|
||||
## 下载入口
|
||||
|
||||
官网正文不写死版本号,页面启动后读取最新正式发布索引。
|
||||
Windows、macOS 和 Linux 下载卡片分别提供处理器架构与安装包类型选择器,
|
||||
选择后直接下载经过发布校验的不可变版本对象。发布索引请求失败、
|
||||
格式无效或返回非受信任的官方下载地址时,按钮继续指向 GitHub 最新正式
|
||||
Release:
|
||||
过大、发生重定向、格式无效或任一字段返回非受信任的官方下载地址时,
|
||||
整组按钮会以 fail-closed 方式继续指向 GitHub 最新正式 Release,不会混用
|
||||
部分 OSS 数据:
|
||||
|
||||
```text
|
||||
https://github.com/mesalogo/goodbuddy/releases/latest
|
||||
```
|
||||
|
||||
校验规则与桌面更新检查保持一致:索引只能指向稳定 SemVer 版本,必须恰好
|
||||
包含 Windows、macOS、Linux 的 x64 / arm64 六个匹配目标;每个目标必须提供
|
||||
准确的两种格式和扩展名、正的安全整数大小、64 字符小写十六进制 SHA-256、
|
||||
全局唯一文件名,以及位于
|
||||
`https://goodbuddy.oss-cn-beijing.aliyuncs.com/releases/v${version}/`
|
||||
下、对文件名进行 URL 编码的精确地址。校验清单和 GitHub 回退地址也必须
|
||||
完全匹配,所有地址都不得包含凭据、端口、查询参数或片段。
|
||||
|
||||
安装包文件名必须与发布生成器完全一致:Windows 使用
|
||||
`GoodBuddy-${version}-windows-${arch}-setup.exe` 与
|
||||
`GoodBuddy-${version}-windows-${arch}-portable.zip`;macOS 使用
|
||||
`GoodBuddy-${version}-mac-${arch}.dmg|zip`;Linux x64 的 AppImage 与
|
||||
DEB 分别使用 electron-builder 的 `x86_64` 与 `amd64` 架构名,Linux
|
||||
arm64 使用 `arm64`。
|
||||
|
||||
## 字体与可访问性
|
||||
|
||||
站点随包提供约 48 KB 的 Inter Variable Latin 子集,不发起远程字体请求。
|
||||
拉丁字符优先使用该字体;中文依次使用系统提供的苹方、微软雅黑 UI、
|
||||
Noto Sans CJK SC 或思源黑体,并保留 `system-ui` 与无衬线回退。Inter 的
|
||||
SIL OFL 1.1 许可证位于 `assets/fonts/inter-OFL.txt`。
|
||||
|
||||
浅色主题的弱文本达到 WCAG AA 正文对比度,控件边框达到至少 3:1;
|
||||
站点也支持系统强制颜色与减少动态效果模式。动态替换下载链接时会保留
|
||||
“在新窗口打开”的屏幕阅读器说明。移动导航打开后会暂时将页头外内容设为
|
||||
`inert` 并聚焦第一个导航项;关闭时安全恢复原有 `inert` 状态和菜单按钮
|
||||
焦点,切换回桌面宽度也会解除隔离。媒体查询监听兼容现代浏览器和使用
|
||||
`MediaQueryList.addListener` 的旧版 Safari。
|
||||
|
||||
## 文件
|
||||
|
||||
- `index.html`:页面结构与简体中文内容
|
||||
- `en.html`:不包含信创适配文案的英文页面
|
||||
- `styles.css`:语义令牌、浅深主题、焦点与响应式布局
|
||||
- `app.js`:主题、移动导航和当前章节
|
||||
- `app.js`:主题、移动导航、当前章节和中文下载索引
|
||||
- `language.js`:浏览器语言自动选择与手动语言偏好
|
||||
- `release-index.js`:中文下载索引的严格、整页 fail-closed 校验
|
||||
- `assets/goodbuddy-light.png`、`assets/goodbuddy-dark.png`:由 `npm run icons` 与桌面应用同步生成的官方品牌图标
|
||||
- `assets/linux-plain.svg`:Devicon v2.17.0 提供的黑白 Linux 图标,许可见 `assets/devicon-LICENSE`
|
||||
- `scripts/validate.mjs`:无依赖静态检查
|
||||
- `assets/fonts/inter-latin-variable.woff2`、`assets/fonts/inter-OFL.txt`:本地 Inter Variable Latin 子集及许可证
|
||||
- `scripts/validate.mjs`:无依赖静态与对比度检查
|
||||
- `scripts/app.test.mjs`:移动导航、焦点、内容隔离和媒体查询兼容性回归测试
|
||||
- `scripts/release-index.test.mjs`:发布索引行为回归测试
|
||||
|
||||
Reference in New Issue
Block a user