Explorar el Código

docs(harness): 记录浏览器人工点验通过(含库中实测留痕)

用户在浏览器完成点验,回报「点完了,没问题」。把它落进记录,并且**从库里
取真实数据做证据**,不是只写一句「用户说没问题」:

- 1887 助手会话:该会话 1 行,c_title=首问,c_credit_code=访客_68e82b71…
- 1889 助手问答记录:2 轮 = 2 行(同一 c_session_id、不同 c_record_id,
  c_question/c_answer 均已写入)

这组数据同时证实三件事:一会话一行 + 一问一答一条的粒度正确、访客记录确实
落了库(访客_ 前缀)、开发环境确实处于访客态(没有自动登录)。

据此更新:
- feature_list:dms-chat-storage、policy-card-list-sidebar、
  remove-dev-auto-login 三条去掉「未做」标注,换成上述实测留痕
- completed/ 下两个计划的状态头改为「已完成并人工验证」

**未改**:policy-detail-index-mismatch 仍保留「浏览器未人工点过」的标注——
用户本次点验的是 DMS 与政策列表两条,那条 bug 的验收场景是「同一政策的两个
申报事项分别点开、内容不同」,属特定构造场景,未单独确认。不靠推断把状态
改好看。

验证:validate-harness 通过;DMS 两栏目查询结果与代码约定逐条对上。

Co-Authored-By: Claude Code <noreply@anthropic.com>
gongtianxiao hace 3 días
padre
commit
db7c0e8707

+ 6 - 4
harness/docs/exec-plans/completed/dms-chat-storage.md

@@ -1,12 +1,14 @@
 # 会话/问答记录/反馈落地 DMS
 
-> **状态**:✅ **已完成**(2026-09-17 归档到 `completed/`)
-> **结果**:会话、问答记录、反馈全部切到 DMS;回归脚本 36/36 通过(打真实 DMS)。
+> **状态**:✅ **已完成并人工验证**(2026-09-17 归档到 `completed/`)
+> **结果**:会话、问答记录、反馈全部切到 DMS;回归脚本 36/36 通过(打真实 DMS);
+> **浏览器人工点验通过(用户确认)**。
 > **存储粒度**:**一问一答一条**(1889 幂等键 `c_record_id`)。曾一度改成「一个会话一行、
 > 整段对话 JSON 塞进 c_answer」,同日按用户要求**改回本版**——理由是这样更贴近库表原本的
 > 语义(`chat_record` 就是一行一轮问答),也便于按轮次检索/统计。
-> ⚠️ **未做**:浏览器人工点验(发消息 → DMS 出现行 → 刷新 → 列表/历史 → 点赞 → 改名/删除)。
-> 自动化证据见 `harness/tools/verify-dms-chat-storage.mjs`。
+> **实测留痕**:用户真实提问后库中数据 —— 1887 该会话 1 行(`c_title`=首问、
+> `c_credit_code=访客_68e82b71…`)、1889 两轮问答 2 行(同 `c_session_id`、不同 `c_record_id`、
+> `c_question`/`c_answer` 均已写入),与约定完全一致。
 > **日期**:2026-09-17
 > **前置**:[`../active/dms-api-replacement.md`](../active/dms-api-replacement.md)(DMS 替换总方案)
 

+ 3 - 3
harness/docs/exec-plans/completed/policy-card-list-sidebar.md

@@ -1,11 +1,11 @@
 # 卡片区「更多」→ 新侧边栏「政策列表」— 实施计划
 
-> **状态**:✅ **已完成**(2026-09-17 归档到 `completed/`)
+> **状态**:✅ **已完成并人工验证**(2026-09-17 归档到 `completed/`)
 > **结果**:面板新增 `cardList` 模式,卡片区「更多」打开「政策列表」侧边栏
 > (本会话卡片跨消息聚合、去重、按匹配度排序;保留搜索框与热门搜索,无部门/分类筛选);
 > 详情面板的「返回政策事项列表」仍走旧列表(按要求只换「更多」入口)。
-> 回归脚本 `harness/tools/verify-policy-card-list.mjs` 31/31 通过
-> ⚠️ **未做**:浏览器人工点验。
+> 回归脚本 `harness/tools/verify-policy-card-list.mjs` 31/31 通过
+> **浏览器人工点验通过(用户确认)**
 
 ## Context(为什么做这件事)
 

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 5 - 5
harness/feature_list.json


+ 35 - 0
harness/progress.md

@@ -28,6 +28,41 @@
 
 ## 会话记录
 
+## Session 028
+
+- **日期**:2026-09-17
+- **本轮目标**:用户在浏览器完成人工点验,回报「点完了,没问题」——把这条验证落进记录
+- **已完成**:
+  - **浏览器人工点验通过**(用户确认),此前挂了几轮的「唯一验证缺口」关闭
+  - **从库里的真实数据取证**(不是只记一句「用户说没问题」):
+    - `1887` 助手会话:该会话 **1 行**,`c_title` = 首问「猫和老鼠讲述了什么故事」,
+      `c_credit_code` = `访客_68e82b71-a3ea-4332-b616-d174c4e9e4d4`
+    - `1889` 助手问答记录:**2 轮 = 2 行**(同一 `c_session_id`、不同 `c_record_id`,
+      `c_question` 与 `c_answer` 均已写入)
+    - 这组数据同时证实三件事:**一会话一行 + 一问一答一条**的粒度正确、
+      **访客记录确实落了库**(`访客_` 前缀)、**开发环境确实处于访客态**(没有自动登录)
+  - 更新条目证据(去掉「未做」标注,换成上述实测留痕):
+    `dms-chat-storage`、`policy-card-list-sidebar`、`remove-dev-auto-login`
+  - 两个已归档计划的状态头改为「已完成**并人工验证**」
+- **运行过的验证**:
+  - 直接查 DMS 两个栏目,读到用户测试留下的真实行(见上),与代码约定逐条对上
+  - `node harness/tools/validate-harness.mjs` 通过
+- **已记录证据**:本文件 Session 028;`feature_list.json` 三条的 evidence/verification;
+  `completed/` 下两个计划的状态头
+- **更新过的文件或工件**:`harness/feature_list.json`、
+  `harness/docs/exec-plans/completed/{dms-chat-storage,policy-card-list-sidebar}.md`、
+  根 `README.md`、本文件
+- **已知风险或未解决问题**:
+  - ⚠️ **`policy-detail-index-mismatch`(同政策多事项点详情内容一样)的浏览器验证仍未单独确认**。
+    用户本次点验的是 DMS 与政策列表两条;那条 bug 的验收场景是「同一政策的两个申报事项
+    分别点开、内容不同」,属于特定构造场景。**保守起见仍保留「浏览器未人工点过」的标注**,
+    等用户确认过再改——不靠推断把状态改好看
+  - ⚠️ DMS 临时 token **今晚 22:19 过期**(现在 15:41 仍有效)。过期后写入会静默降级
+    (仅控制台 warn),聊天与本地历史不受影响;需要新 token 时替换
+    `.env.development.local` 并重启 dev server
+- **下一步最佳动作**:若用户能顺手确认一下「同政策两个申报事项点开内容不同」,
+  即可关闭最后一条浏览器验证;否则维持现状标注
+
 ## Session 027
 
 - **日期**:2026-09-17

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio