Skip to content

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 30 Aug 22:02
· 21 commits to main since this release

v0.5.0

新增两个功能域:插件市场与模型配置。导航从 Home / Settings 扩展为 Home / Plugins / Models / Settings。

Changes

  • 插件市场(Plugins 视图):浏览 dsh-plugins-store 社区目录(api.dshmk.com,7400+ 插件),支持搜索、分类筛选、星标/名称排序、滚动分页;一键安装/移除 web profile 插件,安装前内联二次确认;已装插件列表集中管理,Launcher 自管的授权插件标记「managed by launcher」且不提供移除入口
  • 市场安全边界:目录在 Rust 侧拉取并投影成精简列表(约 27MB 原文不进 WebView);「已验证」标记只认目录 validation.overall == "verified"(沙箱安装检查,非安全审计);安装 specifier 经字符白名单校验(拒绝相对路径、..、空白与控制字符);安装走 dsh plugin --profile web add,pnpm ≥10 默认拦截第三方生命周期脚本
  • 模型配置(Models 视图):编辑 ~/.dsh/settings.yaml 的模型域——默认模型(provider + model + reasoningEffort 七档思考等级)与自定义提供商路由(显示名 / Base URL / wire 协议 openai-completions|openai-responses|anthropic-messages / API Key 环境变量名 / 模型列表)
  • 模型配置边界:API 密钥只保存环境变量名,永不落盘;提供商高级字段原样透传保留(混入管理键时以 UI 为准);模型域之外的顶层键(llm-deepseek、agent-presets 等)保存时原样保留;保存后提示需重启 dsh web 生效
  • Rust 依赖:新增 serde_yaml 0.9(settings.yaml 读写)与 reqwest 0.12(blocking + rustls-tls + gzip,目录拉取,免系统 openssl)
  • 文档:CONTEXT.md 新增「插件市场」「模型配置」两域术语与语义边界;双语 README 亮点同步
  • 测试补充:市场目录投影与 identifier 白名单、已装列表受管标记、模型配置 round-trip / 外来键保留 / extra 剥离 / 空配置共 9 项 Rust 单测;市场与模型视图 6 项前端测试;E2E 冒烟扩展至 9 步(新增 Plugins/Models 导航)

验证

  • cargo test 57 项通过(另有 1 项 #[ignore] 真实目录拉取冒烟本地通过,3.2s 投影 7000+ 条)
  • 实机闭环:安装市场插件 → dependencies 键名与已装匹配逻辑一致 → 卸载 → 与安装前备份逐字节一致,profile 无残留
  • vitest 25 项通过;tsc --noEmit 无报错;pnpm build 通过
  • pnpm run check:i18n 通过:前端 178 key、Rust 表 136 条,无缺失无死 key
  • E2E 冒烟 9 步全绿
  • pnpm run check:release -- --tag v0.5.0 通过