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