feat: paste local files into chat attachments
Copied local files previously required the attachment picker. The chat composer now imports one or more supported files directly from paste, sharing parsing progress, limits, and batch rollback with file selection. Text and screenshot paste remain available, and failures preserve drafts. Validation: prior 166 focused tests, typecheck, and lint passed; 28 targeted tests passed again before commit. The prior full suite had 4214 passes, 67 skips, and 6 window-recovery failures; window tests passed 10/10 alone. Native clipboard behavior was verified on Windows; macOS/Linux remain unverified. Release note: 现在可在文件管理器中复制一个或多个支持的本地文件,直接粘贴到聊天输入框添加附件;可查看读取和解析进度,失败时保留草稿与已有附件。
This commit is contained in:
@@ -52,10 +52,33 @@ PDF 不是所有文档唯一的中间格式。解析应同时保留:
|
||||
| 高保真审阅 | 视觉增强 | 原生解析、页面渲染、OCR 或视觉理解合并 |
|
||||
|
||||
PDF、DOCX、PPTX 和 XLSX 的解析结果保留章节定位及全文,不在附件入库时截断为
|
||||
256 KiB,也不以富化后 Prompt 的 1 MiB 上限阻止发送。本地选择与消息通道附件使用
|
||||
256 KiB,也不以富化后 Prompt 的 1 MiB 上限阻止发送。本地选择、文件粘贴与消息通道附件使用
|
||||
同一文本保存路径;原文件大小、解析器和 12 MiB 附件暂存容量仍按现有规则检查,超限时
|
||||
明确报错,不能用截断后的内容冒充全文。模型上下文窗口仍由所选 Runtime 处理。
|
||||
|
||||
#### 3.2.1 聊天附件入口
|
||||
|
||||
用户可点击附件按钮选择文件,也可在文件管理器中复制一个或多个文件后,在聊天输入框
|
||||
按 `Ctrl+V` 添加。macOS 使用系统粘贴快捷键 `Command+V`。粘贴文件不替换草稿文字,
|
||||
不自动发送;普通文本仍直接插入光标位置,系统截图仍作为图片附件添加。
|
||||
|
||||
本地文件选择与粘贴使用相同的格式及容量规则:
|
||||
|
||||
| 内容 | 支持范围 | 原文件大小上限 |
|
||||
| --- | --- | --- |
|
||||
| 文本、代码和配置 | C/C++、CSS、CSV、Go、HTML、Java、JS/JSX、JSON、日志、Markdown、Python、Rust、SQL、TS/TSX、TXT、XML、YAML | 256 KiB |
|
||||
| 图片 | JPEG、PNG、WebP | 12 MiB |
|
||||
| 文档 | PDF、DOCX、PPTX、XLSX | 20 MiB |
|
||||
|
||||
每条消息最多 8 个附件,Main 最多暂存 16 个上下文项目,合计不超过 12 MiB。
|
||||
图片转换和文档解析后的内容计入暂存容量。一次粘贴超过 8 个文件时拒绝本次粘贴并提示;
|
||||
批次本身未超限、但加上已有附件超过 8 个时,只保留剩余位置可容纳的附件并提示。
|
||||
|
||||
文件读取和解析期间显示文件名、处理阶段及批次序号,阻止重复文件导入和发送。
|
||||
不支持的扩展名、目录、超限文件、读取或解析失败会使本批次回滚;已有附件与草稿保留,
|
||||
错误显示在输入区。剪贴板中的虚拟文档若没有本地路径,提示先保存到本地后添加;
|
||||
无本地路径的截图继续使用图片粘贴入口。
|
||||
|
||||
### 3.3 本地优先
|
||||
|
||||
- 文本层和本地 OCR 均在设备上处理;
|
||||
|
||||
Reference in New Issue
Block a user