# 即我内部分享链接预览：验证记录

日期：2026-09-28。范围：用户最新确认的原位蓝色链接预览，替代上一版下方卡片。

## 实现

- `share-link-preview.ts`：域名/路径白名单、Markdown 与普通文本中的链接收集、公开分享字段投影。
- `services/share-preview-service.ts`：地址来自配置而非用户 URL；`/s/` 只读既有认证 resolve 快照，凭证失效回退公开快照；其他公开接口无账号 Authorization。8 秒上限、2 MiB 响应上限、禁止重定向、切号取消。不调用详情流程后续的延展、原会话和媒体加载。
- `client/share-preview-client.ts`：可见性驱动、去重、最多 4 并发、64 条短期缓存、账号/环境隔离。
- `client/ArkmeShareLinkPreview.tsx`：仅蓝色链接文字，单条“原发送人：摘要”，可靠身份匹配时为“我：摘要”；多条标题+条数；长文标题；媒体/其他分享类型文字；审核/失效/权限状态。单行省略，无新增头像、边框或预览卡片。
- `ArkmeRichContent.tsx`：共用富文本 resolved 模式原位替换标签；混合内容保持普通文字与链接边界，多个链接各自原位显示。详情 raw 模式不变。
- 内部链接不再走通用网页标题抓取；保留现有消息分享详情打开行为，其他分享使用原始分享页。

## 自动化

相关 10 个测试文件共 377 项通过，覆盖：分享识别/投影、原作者身份（非昵称匹配、非转发人、排除 AI）、认证快照/公开回退与凭证边界、缓存与取消、真实富文本组件行内渲染、普通文字边界、修饰键点击、原富文本、服务架构、通用链接标题、Host 路由、上一轮链接边界及编辑器回归。运行时代码沿用上一轮完整构建（含类型声明检查）通过的版本。

查看者视角确认后补充 13 项回归：发给自己/私聊/群聊共用组件的 8 种发送与接收组合；换号待返回时清除旧“我”；不替换正文和标题内第一人称；缓存账号/环境隔离；同链接在原作者/转发人视角重算；个人快记缺身份时保留快照名称。均通过。未改正文/URL，也未修改运行时显示代码或重新部署无变化产物。

补充真实运行合同回归：`ArkmeAccountSessionOwner.subscribe` 注册时会立即回调一次。预览只对后续账号变更取消，避免首次订阅误取消请求；测试替身同步复现此合同。

补充历史内容回归：`[URL 后续文字](URL)` 保留后续文字，并在显示层放到可点击链接外，不批量修改历史正文。

## 3100 实际验证

- 保留原 3100 隔离配置、登录状态与本地数据，只替换其插件构建产物；替换前备份旧产物。
- 已有真实群消息 `/s/` 认证解析含原记录归属；本机 Host 路由返回 `ready`、`authorIsMe: true`，浏览器两条历史链接显示“我：摘要”。
- 浏览器检查 4 个真实链接：均为原位 `<a>`，高约 22.68 px、单行省略、未超出父容器，没有下方卡片；旧版卡片高 117 px 的呈现已取消。
- 已有“通话分享链接 + 测试”消息显示行内“通话记录”，附带文字保持普通文字；未调用通话详情产生查看记录。
- 另有个人快记返回 `access_mode: link_read_only`，items 仅含昵称、头像、正文、时间和 template_kind，没有原作者 ID 或 source_context。该链接保留原昵称，不凭同名/头像猜测“我”。此限制已同步到接口建议。
- 未发送测试消息、未创建分享、未加入群聊、未呼叫、未修改角色或账号资料。
- 页面原有头像引用告警、TRTC worklet 告警不属于此功能；不据此宣称全页面无历史告警。

## 验证边界

- 真实群消息快照的“我”、个人快记身份缺失回退及通话类别回退已验证；其余类型以当前源码合同、投影测试和接口替身验证为主，不代表已逐类完成生产联调。
- 本轮跨账号使用替身和共用组件验证，没有切换真实账号、向同事发送消息或完成手机端联调；A/B/C 三账号联调要求见 [跨端接口交接](internal-share-preview-cross-client-api-handoff-2026-09-28.md)。
- 已结束通话仍需无查看副作用的预览接口。自动贴图需要接入对应服务配置后才能显示项目和邀请人。
- 目前复用公开详情合同并在插件内裁剪，不是服务端统一轻量/批量预览接口；后续后端需求见方案文档第 5 节。
- 部分个人快记的认证解析也不返回作者身份，无法仅靠现有快照全面覆盖“我”。需后端返回可信 `viewer_is_author` 或原作者 ID；不能拿分享者 ID、昵称或头像替代。
- 没有修改已安装桌面端、其他端口或云端内容；没有提交、推送或发布。
