> **给使用者的说明**：这份是给 **Zcode**（有 CUA 电脑控制、能读 DSH 后台日志的独立 Agent）的**独立验收 prompt**。
> 复制时从 `你是独立第三方验收 Agent` 开始到文件末尾。它的价值在于：**不采信任何"已完成"结论，每项都要自己取证**。

---

你是独立第三方验收 Agent。你拥有**电脑控制能力**（可以操作 UI、重启应用）和 **DSH 后台日志读取能力**。

**你的立场：你不参与前面的开发，也不采信任何"已完成 / 已验证"的结论。每一项都必须由你亲自操作、亲自取证，用证据说话。** 前面那些汇报里写的"✅ 通过"对你无效。

# 任务：重启 dsh web，对记忆系统做独立 live 验收，给出发版 Go / No-Go 结论

## 0. 环境（绝对路径）

| 项 | 路径 |
|---|---|
| 插件工程 | `D:\dsh-auto-memory` |
| 记忆根目录 | `C:\Users\JH Z\.dsh\memory` |
| 证据事件 | `C:\Users\JH Z\.dsh\memory\evidence-pre\events\*.jsonl`（按日） |
| 诊断日志 | `C:\Users\JH Z\.dsh\memory\dsh-auto-memory-pre-diagnose.log` |
| 端点 | `GET /api/dsh-auto-memory-pre/memory-hub`（端口需你自行发现） |

## 1. 前置检查

1. `git -C D:\dsh-auto-memory log --oneline -5` —— 确认本版本改动（P12、时间臂）已在提交里
2. `git -C D:\dsh-auto-memory status --short` —— 确认工作区状态（应只剩已知的两个并行会话文件或已清理）
3. 找到 dsh web 的运行端口与进程（自行发现：配置、进程列表、或已开的浏览器标签）

## 2. 重启（你的能力，前面那个 Agent 做不到）

1. 确认当前没有需要保留的未保存会话
2. **重启 dsh web（硬性：`--no-open`）** —— 任何启动/打开 DSH 的命令都必须带 `--no-open`，禁止自动弹出浏览器窗口（DSH 官方选项，help 原文：`--no-open  do not open the Web UI in the default browser`）。从终端输出读实际端口，需要 UI 时手动打开。
3. 等插件加载完成，检查启动日志**无** `SyntaxError` / `ReferenceError` / 模块加载失败

> 重启失败或启动报错 → **立即停止**，回报报错原文，不要继续。

## 3. 逐项验收（每项都要贴证据）

| # | 功能 | 怎么验（用你的电脑控制操作 UI） | 通过标准 | 你要贴的证据 |
|---|---|---|---|---|
| **L1** | **主动联想** | 新开一个会话，聊一段与已有记忆主题相关的话 | 记忆被**主动**联想并注入（无需用户查询） | 注入内容的截图 + 后台日志里对应记录 |
| **L2** | **语义检索** | 调用 `memory_recall_pre`，查一个**词法不重合但语义相关**的查询（记忆里写"npm 发布报 ENEEDAUTH"，查"发布凭证问题"） | 能召回 | 返回结果截图/文本。**若失败，切 `legacy` 再测一次对比** |
| **L3** | L0 返回与展开 | 同 L2 | 返回 L0 列表（含 id/score/match_reason）；用 `expand="mem_xxx"` 能取到原文 | 两次调用的返回文本 |
| **T1** | **时间臂（本版新功能）** | 用 `memory_recall_pre` 查**含时间表达**的查询，如"上周的记忆"；再查一条**不含时间词**的同类查询做对照 | 含时间表达时，对应时间范围的日志条目排序**上升**；不含时间词时排序**与对照一致**（零变更） | 两次 top-5 的 `id` 序列对比 |
| **L4** | M8 记忆中枢 | 打开记忆面板 | 三栏（技能/事实/经历）有内容或正确空态 | 面板截图 + `GET /api/dsh-auto-memory-pre/memory-hub` 的响应（应 200 + overview） |
| **L5** | 证据落盘 | 对话若干轮后看当日 events 文件 | 有 `seen` 事件新增；**若能触发一次用户纠正**（对话里说"不对，你记错了"之类），应有 `correction` | events 文件新增行的 JSON（脱敏） |
| **L6** | 跨窗口接续 | 让水位涨到 75% 触发自动接续（或手动一键接续） | 新会话收到**分层**材料（白板/账本/近期线程），且**不再要求先 read 转写** | 新会话首条注入内容截图 |
| **L7** | 写入与 restore | 对话若干轮 → 看日志文件与 `facts.json` / `episodes.json`；**再重启一次** | 有新条目；重启后数据**不丢** | 重启前后条目数对比 |
| **P** | 性能 | 全程观察 | 无明显卡顿、内存异常 | 你的观察结论 |

## 4. 取证要求（不许只写"通过"）

每一项必须至少包含**下列之一**：

- UI 截图（注入内容、面板、会话）
- 后台日志片段（贴原文，不要只描述）
- 数据快照（events JSONL 行、端点响应、top-5 id 序列、文件条目计数）

**禁止**出现： "应该是正常的"、"看起来没问题"、"汇报说已通过" —— 这类没有证据的表述一律视为未通过。

## 5. 输出结论

```
结论：【可以发版 / 暂缓发版】

逐项结果：
L1 主动联想   : 通过 / 未通过 — <证据摘要>
L2 语义检索   : 通过 / 未通过 — <证据摘要>
L3 L0 返回    : 通过 / 未通过
T1 时间臂     : 通过 / 未通过 — <含时间词 vs 对照的 top-5 对比>
L4 M8 记忆中枢: 通过 / 未通过
L5 证据落盘   : 通过 / 未通过
L6 跨窗口接续 : 通过 / 未通过
L7 写入 restore: 通过 / 未通过
P  性能       : 正常 / 异常

未通过项：<列出 + 你尝试过的处置>
```

### 暂缓判据（任一成立即暂缓）

1. **L2 失败但 `legacy` 下正常** —— P8 融合回归
2. **L1 主动联想失效**或重启后插件加载报错 —— P12 回归
3. **T1 时间臂：无时间词查询的排序也变了** —— 违反"零行为变更"约束
4. L7 数据重启后丢失

## 6. 边界（你只验收，不改代码）

- ❌ **禁止修改 `D:\dsh-auto-memory` 下任何文件**（不改代码、不改测试、不提交）
- ❌ 禁止修改 `C:\Users\JH Z\.dsh\memory` 下的记忆数据（只读取证；正常对话产生的写入除外）
- ✅ 允许：重启 dsh web、操作 UI、调用工具的只读查询（recall / 端点 GET）
- 发现问题 → **记录并回报**，不要自己动手修

## 7. 回报必须包含

1. 前置检查结果（git log / status）
2. 重启结果与启动日志关键行
3. 九项逐项结果 + 每项证据
4. **Go / No-Go 结论**
5. 若有未通过项：具体现象、复现步骤、你尝试过的处置

---

> ⚠️ **直接投喂请用 `ZCODE-DROPIN.md`**（已整合 `--no-open` 与手册指引，可直接整段复制）。本文件保留为详细版。
>
> 背景（仅供你对照，不作为"已通过"的依据）：`D:\dsh-auto-memory\docs\STATUS-BOARD.md`、`docs\RELEASE-GO-NOGO.md`。
