← 回工程日志
# #8 汉化 9000/9001 页面里可见的英文(只改外壳文案,不动内核)

归属日期: 2026-10-20
序号: 8
当前状态: 📌 待做(第1次)
被接手次数: 0

该任务出现时间为
2026-10-20-本次第一次

---

## 用户原话(勿改写)
> 「9000/9001 页面中的一切hermes返回的系统提示,以及最上方显示的调用工具的那些步骤…这所有东西能够汉化吗?好不好做?我怕破坏爱马仕,所以接这个任务一定要慎重慎重,可以给我先协商」

## 用户后续口头补充(2026-10-20)
- 代码里**重要的东西不动**,只改能改的。
- **9000 与 9001 已隔离,但本次任务要同步**:两份页面各改一遍。
- **做之前必须保留原副本**,改崩了能回滚。

---

## 执行口径(两步走,不许跳步)

### 第一步:先出清点表,不改任何代码
把所有**用户眼睛能看到的英文**逐条列出,每条标注:
1. 出现在哪个界面位置(顶栏/工具步骤/气泡内/审批卡/按钮/提示条)
2. 生成在哪一层(页面 / 桥 / 内核)
3. 归到哪一类:

| 类别 | 定义 | 处理 |
|---|---|---|
| **A 可汉化** | 页面或桥自己拼的**外壳文案**(状态提示、按钮、提示条、事件名) | 改成中文 |
| **B 保留原文 + 加中文注释** | 工具名(`terminal`/`read_file`…)、命令内容、报错原文、JSON/路径 | **原文一字不改**,只在旁边加中文说明 |
| **C 禁止触碰** | 内核 `~/.hermes/hermes-agent/` 下的任何东西 | 一条不改,只在报告里说明"这属于内核,未动" |

清点表交出来**等用户看过再进入第二步**。

### 第二步:按表改
- 只改 A 类;B 类补中文注释;**C 类一条不碰**。
- 9000 与 9001 都要改到位(两份独立文件)。

---

## 已查明的落点(2026-10-20 晚风实查,接手者可直接用,省一轮搜索)

| 文案 | 生成在哪 | 归属类别 |
|---|---|---|
| 「AI 正在调用工具:…」 | **桥** `/home/zyf/hermes-webchat/hermes_bridge.py`(grep 命中 1 处) | A |
| 「已等待 X 分 Y 秒 · 最后进展在…」「会话已失效(找不到该会话)」 | **页面** `/home/zyf/hermes-webchat/ui-9000.html` | A |
| 工具名 `terminal` / `read_file` / `web_search` 等 | **内核** `~/.hermes/hermes-agent/tui_gateway/agent_callbacks.py::tool_start`(`tool_start_callback` 推的 name 字段) | **B**(原名保留 + 中文注释) |
| 工具原始输出、报错原文、「Background Process Finished」类系统日志 | 工具/内核真实产出 | **B**(原样保留,绝不翻译) |

### 文件清单(本次只碰这四个)
| 端 | 页面文件 | 桥文件 | 桥单元 |
|---|---|---|---|
| 晚风 9000 | `/home/zyf/hermes-webchat/ui-9000.html` | `/home/zyf/hermes-webchat/hermes_bridge.py` | `hermes-webchat.service` |
| 幽灵 9001 | `/home/yyl/hermes-webchat/ui-9001.html`(电脑B) | `/home/yyl/hermes-webchat/hermes_bridge.py`(电脑B) | `hermes-webchat-9001.service` |

- 页面文件是**热读**(按 mtime 现读)→ 改完手机刷新即生效,**不用重启桥**。
- 桥文件改完**必须重启对应桥单元**才生效(重启会掐断该端正在跑的那一轮,动手前跟用户说一声)。

---

## 禁区(一条都不许越)
1. `~/.hermes/hermes-agent/` 整棵目录:**一律不改**(那是 Hermes 本体,升级会被覆盖,改坏影响所有通道)。
2. 工具名、命令内容、报错原文、JSON、文件路径:**不翻译、不改写**(B 类只加注释)。
3. 不为了"汉化"去改数据流字段名、事件名、接口参数(`message.start`/`tool`/`notice` 这些是协议键)。
4. 不顺手改界面布局/样式(用户没要求,改了会被说"UI 变丑了")。
5. 不许用 `pkill -f` 清理进程,只按 PID。

## 备份与回滚(用户明确要求,必须做)
动手前,对**每个要改的文件**留原副本:
```bash
cp -a <文件> <文件>.bak-$(date +%m%d-%H%M)-hanhua
```
回滚 = 把 `.bak-*` 拷回原路径:页面刷新即恢复;桥要重启一次。
备份文件名写进验收报告,方便用户自己回退。

---

## 验收要求(缺一项算没完成)
1. 交**清点表**(第一步的产物),标注每条 A/B/C 与依据。
2. 交**改前 / 改后截图逐项对比**(手机实机截图,同一个界面位置)。
3. 报告里**明确写出"哪些没改、为什么不改"**(B 类、C 类各列出来)。
4. 贴真命令 + 原始输出,禁止只写"已验证通过"。
5. 两端各验一次(9000 与 9001),并说明备份文件名。

## 遗留/卡点
- 尚未开工。
- 待确认:B 类里"工具名加中文注释"具体显示成什么样(建议 `terminal(执行命令)` 这种并列形式),开工前跟用户对一次样式。

---

## 2026-10-20 第一步交付(执行者:加工厂 = OpenCode + 天启 astrata/qwen3.8-flash-next-iq3_s)

- **性质**:只读清点,一个字没改代码。
- **怎么干的**:playwright 打开 `https://192.168.13.176:9443` 截全页图 → 读 `ui-9000.html` → 读 `hermes_bridge.py` → 逐条找用户可见英文。
- **产物**:26 条清点表(Markdown 五列:英文原文 / 界面位置 / 在哪一层 / 分类 / 依据),原文在 `~/工作区/r8_清点/run.log`(108KB,作业耗时约 7 分钟)。
- **分类结果**:A 可汉化 **6** 条(含 A? 3 条)|B 保留原文+中文注释 **15** 条(含 B? 5 条)|C 禁止触碰内核 **5** 条。
- **关键发现**:内核来的英文只有 5 条——会话标题、英文日期后缀(Oct 19)、`status.update` 文本、斜杠命令回执、clarify 提问文本。按纪律这些不动。
- **晚风抽查(4/4 命中,无编造)**:
  - `ui-9000.html:435` → 确为 token 条 `title="本会话累计:输入=prompt 累计…"`
  - `hermes_bridge.py:1526` → 确为 `note = "🔧 " + t + " " + nm`
  - `ui-9000.html:1722` → 确为 `d.cwd.split('/').pop()`
  - `ui-9000.html:1165` → 确为 humanizeError 兜底 `return first;`
- **结论**:清点质量合格,**第一阶段闭环**。
- **第二步待定(需用户拍板)**:A? 三条——`Hermes`(欢迎语产品名是否改「爱马仕」)、`tokens`(顶栏徽章提示)、`tok`(回合耗时单位)。确定可改的 A 类只有 3 条:`prompt/completion` 提示文案、`FILE` 占位、桥里事件名。
- **遗留**:第二步未开工。

## 2026-10-20 第二步完成(A 类文案已上线,9000+9001 同步)

- **用户拍板**:A? 三条(`Hermes` / `tokens` / `tok`)**一个字不改**;事件名属协议键(禁区)不动。
- **实际改 2 条**:
  1. token 条悬停提示:`输入=prompt 累计 · 输出=completion 累计` → `输入(prompt)累计 · 输出(completion)累计`(9000:435、9001 同处)
  2. 文件卡片占位:`||'FILE'` → `||'文件'`(9000:951/1345、9001:951/1345)
- **分工**:加工厂(天启 astrata)改 9000;晚风核对 B 机写法一致后同步改 9001。
- **备份**:`ui-9000.html.bak-1020-hanhua`(160535B)、`ui-9001.html.bak-1020-hanhua`(161230B)。
- **上线**:页面 mtime 热读 → 刷新即生效,**未重启服务**(对话不受影响)。
- **验证**:9000 → 160547B、`||'FILE'`=0、`||'文件'`=3(952 行原有未动)、9443=200;9001 → 161242B、`||'FILE'`=0、title 已新。
- **加工厂表现**:`http_probe` 探 https 报 FAIL(工具不认自签证书),它没谎报 PASS、没盲目还原,判为工具误报并 `curl -k` 交叉验证 → 判断正确,**表现合格**。
- **装备修复**:`~/bin/selftest_mcp.py` 的 `http_probe` 加 `CERT_NONE`;修后探 9443 与 9001 均 ✅PASS 200。
- **回滚**:`cp .bak-1020-hanhua` 回原路径,刷新即恢复。
- **剩余工作**:B 类 15 条(工具名加中文注释)尚未开工,需用户点头后再派。
电脑A 10-20 21:29