Skip to content

fix(inbox): 支持安全点击 Markdown 链接 - #26

Merged
Disdjj merged 3 commits into
mainfrom
fix-mobile-mail-links
Sep 4, 2026
Merged

fix(inbox): 支持安全点击 Markdown 链接#26
Disdjj merged 3 commits into
mainfrom
fix-mobile-mail-links

Conversation

@Disdjj

@Disdjj Disdjj commented Sep 4, 2026

Copy link
Copy Markdown
Member

能力变化

  • 信箱详情页保留显式 Markdown 链接的 href,渲染为可点击且可访问的原生 link。
  • 用户点按后由 runtime 复检并调用系统 Linking.openURL;系统拒绝时显示通用失败提示。
  • 只接受不超过 2,048 字符、无 userinfo、标准端口、非 IP literal 的 HTTPS hostname;拒绝 HTTP、mailto:tel: 和 custom scheme。
  • 保持 linkify: false、超过 600 token 降级纯文本及 Markdown 图片独立加载策略不变。

权限与平台差异

  • 未新增或修改 Android/iOS 权限、entitlement、原生模块或后台能力。
  • Android 与 iOS 都使用系统 URL handoff;Universal/App Link 可能由已安装 App 处理,成功只表示系统接受交接。
  • 信箱本地用户点击不使用 Android package visibility 约束下可能误判的 canOpenURL;远程 phone/apps 契约不变。

安全与隐私

  • Agent 投递内容不能自动打开链接,也不能触发任意 App UI 自动化。
  • UI 和 runtime 双层执行同一 URL policy;失败提示不回显不受信 URL 或 hostname。
  • 未新增日志字段,链接和正文不会进入普通日志或自动无障碍公告。

验证证据

在仓库锁定的 Node 22.23.1 / pnpm 11.21.0 下:

  • pnpm typecheck:通过
  • pnpm lint:通过
  • pnpm test:83 个 suites、398 项测试全部通过
  • 定向链接测试:3 个 suites、18 项测试全部通过
  • llmdoc validate:通过,仅有既有文档长度 warning
  • pnpm verify:文档、release metadata、App 配置、图标、原生模块、SDK device 入口、secrets、licenses 和依赖缓解检查通过;在 verify:expo 因仓库现有 Expo 补丁版本低于推荐版本而停止,与本次改动无关

未执行 Android/iOS 原生构建或双端真机点击验证;本次没有原生代码或权限配置变更。

回滚方式

回滚此 PR 即可恢复为只渲染链接文字、不提供系统 handoff 的行为;没有数据迁移、schema 变更或新增权限需要清理。

文档更新

  • 更新根 README.md 的当前能力说明。
  • 更新设备信箱能力、集成边界、Definition of Done 和有界 Linking handoff 文档。
  • 通过 llmdoc 原子提交刷新受影响文档指纹。

@Disdjj
Disdjj merged commit 79dc3e0 into main Sep 4, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant