# 多选快记问 DSH

多选 1–100 条有权读取的快记（包含他人发送的快记）后，在底部「转发」后点击「问 DSH」。插件复用列表中已加载的完整正文和附件清单，按需读取原件，打包 `快记摘录.md` 及独立图片/文件；动态照片同时携带运动视频，同一资源去重，同名文件加序号。成功后显示 DSH 独立新会话中的原生附件，输入框保持空白，等待用户自行发送。

右键快记的操作菜单也在「转发」后提供「问 DSH」，只处理当前快记（包含他人发送的可读快记），复用默认工作区和附件准备流程。菜单关闭后在会话底部展示进度或失败原因，准备期间禁用重复操作。

摘录每条快记包含用户名称，直接复用界面已加载的私聊名称、群成员备注及本人昵称，不为导出重新查询用户信息；无本地备注时回退消息发送者名称。正文折叠仅影响渲染，不影响本地数据；直接按列表顺序生成 Markdown，不请求正文详情。仅在原件清单缺失时最多 4 条并发补读附件信息，跳过地点天气和背景采音补全。

## 接口与兼容

- `source.message-snapshot.detail` 增加可选 `includeAttachments: true`；仅此请求附带完整 `contentBlocks`、`mediaUnavailable` 和标题。他人快记通过签名聊天关系调用聊天详情及媒体鉴权，不读取对方私有快记或环境信息；常规详情查看保留原有所有者限制。
- 新会话显式绑定客户端启动时配置的默认工作区，不继承当前会话的工作区。使用原生 `workspaces.create` 幂等解析工作区 ID。
- 同源 iframe 暴露 `__arkmeHarnessAttachmentDraft.prepare({ operationId, files, signal, progress })`，返回 `{ sessionId }`。此桥接没有发送方法。
- 依赖 DSH 0.1.5-rc.2 的 `sessions.create/scope/binding`、`conversation.createDrafts/fileUploads/input.for`。通过能力检测拒绝不支持的版本，不修改 DSH 私有 store 或编辑器 DOM。
- 普通文件等待原生上传完成；图片沿用原生待发送图片草稿机制。图片格式、数量、字节限制取自当前会话 `imageLimits`，普通文件错误由原生上传服务报告。

## 失败恢复

失败保留快记选择。重试复用操作 ID 和新会话 ID，释放本次未交付附件。草稿被编辑或用户切换 DSH 会话时停止交付；账号、来源切换以及组件卸载会取消操作。任何读取失败均不以部分内容报成功。富媒体展示关闭但存在原件时，明确报告附件不可用，不忽略原件。

本次功能不会自动生成共享链接。只有详情提供来源链接时将其写入摘录，不递归读取关联快记、延展记录或背景采音。

## 验证

覆盖完整正文/Markdown/长正文、附件归属与去重/重名、动态照片原件、失败重试、账号和会话切换、旧草稿保护、图片限制及原件读取。对话创建和附件准备链路没有模型请求；最终发送由 DSH 原生输入框负责。


## 按内容类型导出

使用本地字段补齐文字、媒体、语音、语音混合媒体、长文、动态照片、贴纸、合并转发、录音片段、共享录音、通话及延展快记。语音转写直接作为正文。可用时保留来源会话、主题、Agent 来源、编辑时间、耗时、提及、AI 润色前后文本和已采集的环境信息；空字段省略。

转发原消息和录音片段各自列出作者/说话人、时间和附件。嵌套原件加入统一去重集合；原作者名称保留快照，不套用转发者备注。共享录音仅导出已加载的摘要和转写，缺转写明确标记；转发快照截断时显式提示。缺失嵌套原件报错，不能静默遗漏。延展父快记仅引用已有快照，附件仅列名称，不递归读取或附加父快记原件。

动态照片标明图片和运动视频的对应关系。媒体清单列出类型、大小及已有时长；文内 arkme-asset 引用映射到实际导出的附件名。时间带本机时区偏移。内部权限引用、下载凭证等不写入摘录。
