工件分享与对外交付
当 Agent 完成一个网页、报告、PDF 或多文件站点时,Myrm 可以把它变成只读分享链接,任何人在浏览器中即可打开——无需账号、无需安装、无需登录。这是「说 → 做 → 看 → 发」交付闭环的最后一环。一键分享链接
从工件卡片点击分享,即刻生成公开链接:- 对方零注册——链接直接在任意浏览器打开
- 只读设计——接收方可查看不可编辑;编辑在 Myrm 内部进行
- 可选密码门——为敏感内容(周报、合同草稿)设置密码保护
- TTL 自动过期——链接有效期 1–30 天(可配置),到期自动失效
不可变版本快照
分享链接始终锁定到工件的某个不可变版本:- 内容永不漂移——后续编辑工件不会污染已发出的链接
- 每个快照用 SHA-256 指纹,分享内容的字节可被证实
- 物化 bundle 被删除后,下次访问时自动从不可变快照重新物化
多文件 Bundle
Myrm 自动把一个页面需要的所有资源收集到单个分享 bundle:- HTML + CSS + JavaScript + 图片按真实引用链发现——不只是入口文件
- 嵌套目录被保留,子资源可正确解析
- 含单引号 URL 的内联样式被正确处理
- lockfile 与构建产物(
package-lock.json、node_modules)从 bundle 中排除 - 文档与 PDF即使 vault 对象无文件后缀也能正确输出媒体类型——中文命名文档按 Markdown 渲染,PDF 按 PDF 打开
分享生命周期——撤销、状态与审计
工件与对话分享链接支持随时主动撤销与全生命周期管理:- 一键撤销——撤销后链接立即返回 404「Link Revoked」,无宽限期、缓存不可绕过
- 已撤销密码链接——生命周期校验前置干密码门,已撤销密码链接对新访客直接显示失效页,绝不弹出密码框
- 撤销后的 token 永不复活——持久化
share_token_fingerprint与share_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 派生),撤销后重新分享需设置新密码;这是有意设计,旧密码无法重建旧链接