Skip to content

Releases: wszhoho/dsh-file-attachment

v0.7.2

Choose a tag to compare

@github-actions github-actions released this 04 Nov 18:54

v0.7.2

变更

  • 聊天区文件图标升级为真实类型图标:文件引用芯片与文件卡片改用宿主共享组件库 @deepseek-ai/dsh-client-ui-primitives 的 FileTypeIcon(按扩展名渲染,与 dsh 内置附件展示同款),替换原先的通用自绘图标;宿主模块不可用时自动降级回原图标。
  • 文件芯片防超宽:长文件名不再撑破消息气泡——芯片最大宽度限制为容器宽度,文件名超出部分显示省略号,悬停仍显示完整路径。
  • 芯片垂直对齐修复:图标与文件名在同一水平线居中,芯片与气泡文字垂直居中对齐,消除错位。

v0.7.1

Choose a tag to compare

@github-actions github-actions released this 26 Oct 13:37

v0.7.1

新增

  • 视觉模型配置校验:兜底 VLM 的 Base URL / API Key / 模型名称三项任一缺失时,describe_image 工具与 /describe 路由统一提示「请正确配置视觉模型(设置→文件附件填写 Base URL、API Key 与模型名称)」,不再静默回退默认端点后报晦涩的连接错误。
  • 设置页保存前连通性检验:点「保存」先以表单参数调 POST /dsh-file-attachment/test(最小文本请求,30 秒超时),检验通过才写入配置;失败时配置保持原样,原因红字内联显示在按钮旁。检验期间显示「正在检验视觉模型,请稍候…」。三项全空视为不使用 VLM 兜底(只用文件上传功能),跳过检验直接保存。

变更

  • normalizeVlm 不再对 baseURL / model 回退默认值(空即未配置,可被检测);Base URL 与模型名的原默认值仅作设置页输入框 placeholder 示例。

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 14:10

v0.7.0

新增

  • 附件去重(文件名 + 大小):上传前客户端先调 POST /dsh-file-attachment/precheck 查重,命中直接复用已有文件路径、零字节上传(@路径 与芯片指向旧文件)。/save 侧对绕过预检的直连上传做同名同大小兜底后检,并发竞态下后到者自动收敛为先者路径。索引持久化于 .dsh-file-attachment/.index.json(懒加载、原子落盘、损坏自动备份重建),旧文件被手动删除后条目自动失效。精度说明:同名同大小即判重(元数据级),同名同大小但内容不同的文件会被复用——已确认可接受。

变更

  • 落盘不再按日期分子目录:由 .dsh-file-attachment/<YYYY-MM-DD>/<文件名> 改为平铺 .dsh-file-attachment/<文件名>;同名不同内容以 -N 序号共存。历史日期子目录不迁移,旧 @路径 引用保持有效。

v0.6.4

Choose a tag to compare

@github-actions github-actions released this 15 Oct 14:50

v0.6.4

性能

  • 上传链路改为原始字节流直传:/save 协议由「JSON + base64」改为「元数据走查询参数(name/sessionId URL 编码)+ 请求体即文件字节流」。客户端 saveFileToHost 直接提交 File/Blob,由浏览器原生分块流式上传,删除手写 bytesToBase64;大文件上传明显更快、界面不再因整文件转码卡顿。服务端流式落盘:先以独占方式写临时文件,边收边计数,超过 50MB 立即中断并清理残留(返回 413),完成后原子占用最终文件名。
  • 附件条缩略图改由 canvas 生成:输入框内联预览不再把整张原图的 base64 常驻内存,而是绘制 ≤256px 缩略图(PNG 保透明、其余输出 JPEG),解码失败自动回退类型图标;GIF 显示首帧静态图属预期。

修复

  • 同名并发保存不再互相覆盖:落盘由「先探测存在再写入」改为 open('wx') 独占创建 + EEXIST 递增序号重试,消除竞态——同一天重复拖入同一文件稳定得到 a.png / a-1.png / a-2.png,原件绝不被顶掉。
  • describe_image 错误提示中文化:文件不存在 / 无读取权限 / 指向目录 / 空文件等情况给出明确中文提示(如「图片文件不存在:<路径>」),不再向模型抛出 Node 原始报错(ENOENT: no such file or directory…)。
  • describe_image 增加大小前置拦截:识别前先 stat,非普通文件、空文件、超过 20MB 的图片在读取之前直接拒绝,避免超大文件整体读入内存转 base64。

变更

  • 内部重构:图片与文档两条入口共用的 chip 插入逻辑收敛为单一函数,消除约百行逐字重复代码,行为不变。

v0.6.3

Choose a tag to compare

@github-actions github-actions released this 11 Oct 13:05

v0.6.3

变更

  • 图片落盘前最大分辨率上限 640 → 900:上传/粘贴图片在落盘前的等比缩小阈值由「宽或高任一边 >640」调整为「>900」——两边都不超过 900 时原样保留,更大的图也只缩到 900,聊天预览与放大查看时更清晰。GIF 仍原样保动画、PNG 仍保透明、其余格式缩放后按 JPEG 输出,处理逻辑不变。

v0.6.2

Choose a tag to compare

@wszhoho wszhoho released this 10 Oct 13:30

修复

  • 模型切换后门控仍按旧模型判定:agent.options 只是创建时的快照,不会随 model/selection 更新(实际选择是经 waterfall listener 注入请求的可变 selection)。上一版 evaluate() 只读 options,导致会话默认多模态模型时 deny 了 describe_image,切到纯文本模型后仍按旧值维持隐藏。现 evaluate(agent, sel?) 按三级优先级取权威路由:durable model/selection 事件的 data > session.requestHeader().config(最近一次请求的实际路由)> agent.options(仅创建兜底);并新增 [dsh-file-attachment] vision-gate: <model> cap=<…> deny=[…] 诊断日志,能力判定过程可直接在运行日志核对。

v0.6.1

Choose a tag to compare

@wszhoho wszhoho released this 10 Oct 13:06

修复

  • 纯文本模型不再出现 read_image 报错:0.6.0 的门控只隐藏了多模态会话的 describe_image,但纯文本会话里 host 原生 read_image 仍然可见——模型误调它必然抛「model does not declare image input」错。现改为对称双向门控:明确声明不含 image 输入的会话同时对该 agent restrict({ deny: ['read_image'] })(该工具对其毫无用处),仅留 describe_image 作 VLM 兜底;支持图片的会话仍隐藏 describe_image;能力未知(catalog absent / 查询失败)时两边都不动。deny 集随模型切换原子互换,disposer 幂等管理。设置页提示文案同步更新。

v0.6.0

Choose a tag to compare

@wszhoho wszhoho released this 10 Oct 07:39

新增

  • describe_image 多模态能力门控:会话开始(agent/created)与模型切换(session 事件 model/selection)时,经 llm.resolveModelInfo() 读取所选模型的 inputModalities;声明支持 image 输入的会话通过 agent.ctx.tools.restrict({ deny: ['describe_image'] }) 仅对该 agent 隐藏该工具(模型改用原生 read_image 直接看图,不再中转 VLM),纯文本或能力未知的会话保留该工具作 VLM 兜底。隐藏为 scoped 操作,不影响其他会话;disposer 幂等管理,agent 销毁随 scoped world 回退。设置页提示文案同步更新。

v0.5.13

Choose a tag to compare

@wszhoho wszhoho released this 29 Sep 15:48

v0.5.13

变更

  • 支持 DSH 0.2.0-rc.2:peerDependencies 中 @deepseek-ai/dsh 的版本范围新增 >=0.2.0-rc.1 <0.3.0-0,DSH 0.2.0-rc.x 用户可直接安装本插件,无需再手动跳过 peer 依赖校验。