All plugins

DSH / BUNDLE / CLIENT-UI

dsh-upload-file

v0.5.0OctKwong30 / dsh-upload-file3c3bcb5c34

InstallableBundlesUI & client pluginsCommunity · Topic auto-analysisWeb UI

Overview

dsh-upload-file

让 dsh Web GUI 支持把任意文件上传进对话:composer 附件按钮(SVG 图标 + 多选)+ 待发送文件条(类图片上传)+ OS 文件拖拽上传 + 会话内文件卡片 + 宿主端持久化存储 + read_uploaded_file 模型工具(无需构建,纯 JS,中英双语文案)。

README / EN

Package documentation

Registry summary

让 dsh Web GUI 支持把任意文件上传进对话:composer 附件按钮(SVG 图标 + 多选)+ 待发送文件条(类图片上传)+ OS 文件拖拽上传 + 会话内文件卡片 + 宿主端持久化存储 + read_uploaded_file 模型工具(无需构建,纯 JS,中英双语文案)。

dsh.pub verifies the pinned bundle contract, runtime facts, and distribution semantics. The complete README remains in the source repository.

Read the full README on GitHub

LIMITATIONS

Known limitations

- 待发送文件条渲染在 composer **上方**(`conversation.input.dock` 槽位),shell 的图片条渲染在输入卡内部;位置略有差异但交互一致。 - 为让“仅发文件”消息可用,草稿中会写入一个不可见占位符(U+200B),发送钩子提交前剥离;若发送钩子因 shell 升级而失效,占位符会以空文本随消息发出(shell 会忽略空消息)。刷新页面后 rail 清空,但已上传的字节仍在 `~/.dsh/uploads/`(内容寻址,无害)。 - **会话内文件卡片依赖手写复刻官方用户气泡**:随 shell 升级可能漂移(官方 CSS 类名是构建期哈希)。若官方气泡样式更新导致观感不一致,只需同步本插件 `CHAT_CSS` 中的 `.dsh-uf-*` 规则;渲染逻辑崩溃时 slots 会自动回退到官方渲染器,不会白屏。卡片仅识别本插件生成的绝对 URL 链接(`/dsh-upload/raw/sha256:…`),旧格式(相对路径 / JSON 注释)消息按普通文本渲染。 - 混合拖入“图片 + 非图片”时,非图片由本插件上传,图片由 shell 图片管线处理;若你的 shell 的 drop 监听器在插件之后注册或调用了 stopImmediatePropagation,混合/纯图片拖放可能被其独占,此时用附件按钮即可。 - 上传文件不做定期清理;如需会话级生命周期可在宿主侧挂定时清理任务。 - 拖放提示条使用内联样式,未跟随皮肤主题;如需定制可自行加 CSS。 - 本包 lib/*.js 是可直接运行的产物;若想改用 TS/JSX 工程化,可参考 dsh-web-ui 家族仓库(tsdown + `dsh.bundle.patch`)的构建方式。