# 已配置助理收件人显示 两目录均完成: - 单独展示“已配置收件人”卡片,突出已读取的 `displayName`;兼容旧字段 `name`。 - `nameKnown=false`、空昵称,或旧对象通用名“微信联系人”时,明确显示“昵称未读取,请核对联系编号”。不从编号或标签推断姓名。 - 单列显示完整联系编号,支持换行;不使用省略号或隐藏溢出。未选择时明确显示“未配置收件人”。 - 保留原提醒开启状态、不可用原因、刷新/选择/开关按钮状态及桥接调用。 - 名称和编号均通过现有 `esc` 转义。 - 两份 HTML 仅将 JS/CSS query 更新为 `review-picker2`。 范围核验:JS 除 `reviewAssistantPanel` 函数外的内容完全一致;CSS 仅追加收件人专用规则;HTML 字节差异仅为两处 cache query。备份位于 `frontend-before`,最终 SHA-256 和差异位于 `frontend-files.json`、`*-console-*.diff`。 离线验证使用 Chromium 与模拟 bridge,阻断网络: - 默认两目录共 128 项 DOM 断言通过,生成 8 张截图。 - 1x:1280×1000 CSS 视口;2x:960×850 CSS 视口,各覆盖可识别姓名和未知昵称。 - 验证完整编号、200 位长编号换行、恶意 HTML 字符串转义、旧对象兼容、显式未知标记、未选择/busy/不可用状态、按钮真实触发原 bridge 名称与账号参数。 - 已查看命名 1x、未知昵称 2x 截图;姓名和编号层级明确、没有裁切。 - 自定义资源根目录入口额外 64 项通过,可复用到冻结包 `_internal`。 入口:`test-review-panel.cjs`。默认报告:`panel-dom-results.json`(`status=passed`、`checks=128`、`screenshots=8`)。 冻结包测试设置环境变量 `REVIEW_PANEL_ROOT` 为包含 `assets/ui` 的目录,`REVIEW_PANEL_TAG=frozen`;报告输出 `panel-dom-results-frozen.json`,预期 64 项断言及 4 张截图。 主要截图: - `recipient-production-named-1x.png` - `recipient-production-named-2x.png` - `recipient-production-unknown-1x.png` - `recipient-production-unknown-2x.png` - `recipient-source-named-1x.png` - `recipient-source-named-2x.png` - `recipient-source-unknown-1x.png` - `recipient-source-unknown-2x.png` 未启动真实主程序、未发送消息、未修改用户配置。