# 研究结果与安装状态:接入、验收及边界 此前独立保留的产品草稿现已接入公开入口。它们分别属于可靠性修复、新增保存能力和诊断增强,不应统称为同一个 bug 修复。此前 CLIENT/RUNTIME 报告修复仍见 [1856 修复记录](release-review-1856-fixes.md)。 ## 1. 研究派发依赖 - Pi `search-parallel-subagent`、DSH `research_parallel`:含 searcher 的波次先检查共享 `fused_search` / `fetch_page` 开关;DSH 同时检查父范围内的工具登记。 - 初始依赖关闭时零派发;每个 searcher 启动前再次检查,捕获后续偏好变化。已有子任务正常完成,尚未启动的任务报告失败,不丢弃已启动同伴的结果或清理。 - 无工具 summarizer 不要求这两个依赖。预取消不启动子任务。 - 不启用关闭的工具、不扩大权限。工具入口开关与内部引擎能力仍是不同概念。 ## 2. 显式保存与恢复 ```json {"questions":["一个研究问题"],"intent":"研究方向(必填)","preferences":["官方来源"],"save_results":true} ``` 新运行现在直接写 `search-boost-research-v2` 且 `metadata.schemaVersion=5`;旧的 `search-boost-research-v1` 文件仍按只读历史分支读取(`restoration.historical=true`、`h1:` cursor、保留原 schema 版本),不会就地升级,也不会伪造 v5 字段。返回 `inputSummary` 与成功保存后的 `savedResultId`。空结果也可显式保存,但会披露空快照警告;保存成功不代表搜索成功,应查看 stopReason。保存完整选中结果集,而不是首屏;快照只保留公开材料和类型化元数据,不保存活游标、未知字段、内部日志或配置密钥。问题、意图、偏好与摘录本身可能敏感,应按私有研究数据管理。`constraints` 作为逐材料硬门槛已退役:非空数组在任何网络前被拒绝,省略或 `[]` 仅告警。 ```json {"saved_result_id":"","page_size":20} ``` 在同一 SearchBoost home 中恢复本地结果并生成新游标;之后按 `nextCursor` 翻页。恢复不进行搜索或 Jev 请求。cursor 与 saved_result_id 不能混用,也不能混入新研究输入或 save_results。快照与原有进程内游标是不同能力:`s5:`/`h1:` 分页游标仍有30分钟/32份保留限制;快照不会因进程重启失效,也不会自动更新为最新资料。 **公开工具入口仍遵循显式开关和 Jev 配置锁。** 删除 Jev 配置时不会为了恢复而自动解锁/开启工具。下列 CLI 命令无需 Jev,可以离线列出和读取导出快照: ```sh search-boost research list search-boost research export --output ``` - 路径:`$SEARCH_BOOST_HOME/state/research/.json`,默认 home 为 `~/.search-boost`。 - 单快照最多64MiB,原子私有写入;POSIX 文件0600、创建目录0700。Windows 权限依赖 ACL,不据此宣称完成原生 ACL 验收。 - 默认不保存。保存失败或取消不生成成功 ID;失败保留已算出的页面并给出警告。 - 缺失、损坏、超限、符号链接/硬链接文件及非普通状态目录被拒绝,不转为一次新搜索。读取和导出重新验证公共契约,递归剥离未知字段。 - 导出须显式指定新文件,以独占创建拒绝覆盖已有文件/链接。不自动上传、删除或清理快照;用户可自行删除对应文件。 - `inputSummary.constraintPolicy=explicit_per_material` 只说明显式文档约束语义,不代表结果已被事实核实。`retrievalSufficient`、进度及阈值仍不是答案完整性或真实性证明。 ## 3. 安装状态入口 - CLI:`search-boost status`、`search-boost status --json`。 - 双语 TUI:默认平铺首页 → 查看当前状态(文件夹模式:更新与状态 → 查看当前状态)。 - 显示当前命令所属包、宿主登记、可定位磁盘包版本及载荷比对。版本号相同不代表字节一致;旧版/缺失/不可核验证据分别披露。 - 只读配置、目录和磁盘载荷,不启动宿主、不调用插件安装命令、不改动禁用项、凭据或登记。配置诊断仅输出警告数量,不回显原始错误/配置内容。 - `loadedVersion:null`,重载/重连未证实。磁盘比对不是运行中宿主握手;DSH owning-host 解析、Grok 原生插件缓存不能由 profile 文件推断。 ## 验证记录 - 本地60个隔离测试入口通过,模拟用户状态及源树未变化;230个 JS/MJS 文件语法检查通过,diff 检查通过。 - `test-parallel-research.mjs`:Pi/DSH 真实适配路径、初始零派发、DSH 范围限制、预取消、无工具摘要、晚变更拒绝及同伴清理。子进程/原生服务为确定性测试替身,无模型调用。 - `test-research-persistence.mjs`:选择器产生的认可材料(排除拒绝/待判材料)、全量快照与分页、重启/缓存清空、MCP/Pi/DSH 公开恢复、类型契约、未知字段/日志剥离、开关、CLI 导出、不覆盖、大小/损坏/链接/目录/失败保存/取消。 - `test-installation-status.mjs`:真实 CLI JSON/文本及双语 TUI,带注释的多行/转义 TOML、旧 Pi 磁盘包、禁用 DSH、含秘密的损坏配置、只读性和未知运行版本。 - 真实 DSH SDK 输出与 schema 编译回归通过。上述材料与服务均为隔离夹具,不是付费搜索/Jev 的质量、成本实验,也不是 Windows/macOS GUI 或已运行会话的加载证明。 独立只读审查已完成(工作流 `dc8725c8-726d-4007-b103-911e524228d5`、reviewer `ba322e77-45eb-4cf2-ae66-6f9bf655fe7a`),结论为 OK with notes,无源码阻断问题。依据审查补充空快照警告、状态检查路径/旧版标记及对应回归,并清理未用代码。提交时须显式包含新增模块和测试,防止缺失载荷。每快照64MiB不等于总存储限制;list 会读取各快照,用户需自行管理积累的数据。新提交的三平台 CI 结果另行记录。 这份记录不构成整体发布放行:不发布 npm、不修改 dist-tag、不自动合并、不更新用户已安装的宿主。