Skip to main content

工件分享与对外交付

当 Agent 完成一个网页、报告、PDF 或多文件站点时,Myrm 可以把它变成只读分享链接,任何人在浏览器中即可打开——无需账号、无需安装、无需登录。这是「说 → 做 → 看 → 发」交付闭环的最后一环。

一键分享链接

从工件卡片点击分享,即刻生成公开链接:
  • 对方零注册——链接直接在任意浏览器打开
  • 只读设计——接收方可查看不可编辑;编辑在 Myrm 内部进行
  • 可选密码门——为敏感内容(周报、合同草稿)设置密码保护
  • TTL 自动过期——链接有效期 1–30 天(可配置),到期自动失效

不可变版本快照

分享链接始终锁定到工件的某个不可变版本
  • 内容永不漂移——后续编辑工件不会污染已发出的链接
  • 每个快照用 SHA-256 指纹,分享内容的字节可被证实
  • 物化 bundle 被删除后,下次访问时自动从不可变快照重新物化

多文件 Bundle

Myrm 自动把一个页面需要的所有资源收集到单个分享 bundle:
  • HTML + CSS + JavaScript + 图片按真实引用链发现——不只是入口文件
  • 嵌套目录被保留,子资源可正确解析
  • 含单引号 URL 的内联样式被正确处理
  • lockfile 与构建产物package-lock.jsonnode_modules)从 bundle 中排除
  • 文档与 PDF即使 vault 对象无文件后缀也能正确输出媒体类型——中文命名文档按 Markdown 渲染,PDF 按 PDF 打开

分享生命周期——撤销、状态与审计

工件与对话分享链接支持随时主动撤销与全生命周期管理
  • 一键撤销——撤销后链接立即返回 404「Link Revoked」,无宽限期、缓存不可绕过
  • 已撤销密码链接——生命周期校验前置干密码门,已撤销密码链接对新访客直接显示失效页,绝不弹出密码框
  • 撤销后的 token 永不复活——持久化 share_token_fingerprintshare_revoked_fingerprints 集合,撤销过的链接即使重新分享也永久 404
  • 防搜索引擎收录——所有公开分享响应统一携带 X-Robots-Tag: noindex, nofollow + Cache-Control: no-store + Referrer-Policy: no-referrer,已撤销链接无法通过缓存/索引副本访问
  • UI 实时状态——分享对话框每次打开都展示当前状态(unshared / revoked / active / password_protected)、链接地址与剩余有效期;撤销后对话框保持打开显示「已撤回」
  • 撤销审计日志——每次撤销操作均被记录,随时可追溯
  • 删除会话级联失效——删除源会话立即令其分享失效(404「Content Unavailable」)

安全设计

部署模式

工件分享在三种部署模式下行为一致——分享物从你自己的沙箱提供,数据不离开实例:
  • 本地 WebUI——自托管,链接由本机提供
  • Tauri 桌面端——由桌面实例提供
  • 云托管——由控制平面调度的专属沙箱提供

诚实边界

  • 只读分享是有意选择:外部接收方只能查看,协作编辑超出单用户沙箱架构范围
  • 撤销是终极手段,非实时协作——noindex/no-store 在源头阻止收录,但已被接收方下载保存的副本无法追回
  • 密码门是单因子——用于防止意外泄露,而非企业级访问控制
  • 密码链接重新分享需重设密码——密码不落库(HMAC 派生),撤销后重新分享需设置新密码;这是有意设计,旧密码无法重建旧链接