# 0.3.1 验证记录 日期:2026-10-19(Australia/Sydney);目标宿主:DSH 0.2.1-rc.2。本版本修复用户在0.3.0 Desktop试用中发现的两处问题。 ## 搜索漏项 原搜索使用连续子串匹配,并在目录原顺序中只取前8项。`list projects`无法匹配`list_projects`名称,`project`也可能被其他工具的描述匹配占满结果。现统一分隔符,支持多词且顺序无关的匹配,优先排列名称匹配,再截取结果。 真实237项目录快照配合生产supervisor测试:`list projects`、`list_projects`、`LIST-PROJECTS`、`projects list`及完整本地工具名均把普通项目列表排在首位,单词`project`搜索也包含它。 ## 数值limit与显式范围 从本次相关会话的工具事件核对,失败调用同时包含`teamId`与数值`limit:100`。原范围兼容处理确实执行了移除teamId的同参数重试,但服务器对数值limit进入另一条校验路径,返回teamId缺失错误,因此插件保守地保留首次403。先前仅测试teamId的真实验证未覆盖这个组合。 远端发现schema将limit定义为字符串。同样的默认范围查询传入`limit:"100"`后成功。0.3.1仅将正安全整数limit转换为同值字符串;保留其他筛选、分页参数及原始调用者输入。范围回退仍要求特定403错误、没有额外slug,以及非空结果中每个项目的accountId都严格等于请求ID。没有通过丢弃筛选、改变授权或使用REST替代实现。 最终生产插件通过真实DSH ToolRuntime、官方MCP和两个Agent验证:空格搜索可见原工具名;加载后仅A可见;使用原失败组合`teamId + limit:100`成功返回7项、归属验证和来源说明保留;B的宿主禁用仍有效;卸载后schema移除。没有平台写入或部署。 该结果不证明请求ID不存在,也不证明其他团队范围操作已获得授权。`list_teams=[]`本身不能确定上述两件事。 ## 验证边界 类型检查、build与完整离线测试通过;测试覆盖数值limit组合、参数不变性、非法数值保持原样、写操作不归一化及搜索排序。最终0.3.1包在全新临时DSH_HOME中独立安装,真实Host和revisioned客户端模块启动、停用404、重新启用200和卸载清理全部通过;包内34个技能目录,host/client哈希与最终build一致。 工具定义字符测量仍为初始2,986、全量488,972、加载项目列表后5,655;不是token测量。长结果分页、元数据和OAuth验证范围见[0.3.0记录](VALIDATION-0.3.0.zh.md)。 ## 用户Desktop验收 用户于2026-10-19提供的新聊天截图确认:`list projects`搜索返回8项、首项为普通`list_projects`;加载成功且本会话只加载1项平台工具,显示schema预算2,668/32,000字符;原生调用接受显式teamId与数值limit100,返回7个项目。回复说明服务器拒绝显式选择器后使用默认范围,并核对7/7项目的accountId均等于请求ID。 这是用户截图支持的代表性模型交互验收。回复报告未读取本机令牌、未另写REST脚本、未重新授权或执行写入部署;这些行为声明未由本轮独立审计会话日志再次核对。截图没有提供新版上下文检查器的完整token分项,因此仍不声称实际token减少比例。 ## npm 发布与注册表安装 2026-10-19,`@adenxie/dsh-vercel@0.3.1`以公开包发布至npm,维护者为`adenxie`,`latest`指向0.3.1。注册表不带凭据的下载成功,SHA-1和SHA-512均与批准发布的安装包一致。包内174个文件、34个技能主文件,压缩后339,153字节;许可证、来源说明和类型声明均包含在内。运行时代码与Desktop验收版本相同。 随后在全新临时DSH_HOME中,通过官方CLI直接安装`@adenxie/dsh-vercel@0.3.1`,未使用本地tarball替代。真实Host启动、revisioned客户端模块注册、停用404、重新启用200及卸载清理均通过;host/client哈希与最终build一致,凭据保持隔离。 包地址:[npm](https://www.npmjs.com/package/@adenxie/dsh-vercel)。该发布不代表DSH Market已收录;市场投稿与维护者审核单独进行。