跳过主要内容
P

dsh-msg-queue

pandaman0759/dsh-msg-queue

侧栏底部加一个待发送队列:把临时想到的话存进可折叠的列表,合适的时机再点某一条发送到当前会话,不必插队打断正在跑的回合。条目可编辑、可删除,列表一次露两条、更多滚动,发送前若输入框里还有草稿会先把草稿收进队列而不是覆盖掉。

安装

dsh plugin --profile web add github:pandaman0759/dsh-msg-queue

README

dsh-msg-queue · 临时消息队列

左侧一面可折叠的「待发送队列」。工作中突然想到什么,先写进队列存着,不插队打断正在跑的任务; 等合适的时机再点那一条的「发送」,它就以普通用户消息发给当前会话(等价于在输入框里打完再回车)。

用法

  • 开关就在左栏底部那一排的按钮「待发送 N」上(跟「用量/余额」同尺寸:高 42、圆角 12、浅灰底、整行可点), 点它展开/收起,折叠状态会记住;展开后不再有额外的标题行,上面直接是输入框和列表。
  • 点空白处自动收起;点某条的「发送」发出后也自动收起。
  • 写到上面的输入框 → 回车加入队列,Shift+回车换行;列表最多露两条,再多在这一块里滚动。
  • 每条都有 编辑 / 删 / 发送:发送 走官方提交通道,把文本塞进当前会话的输入框再提交(编辑时同样是回车保存、Shift+回车换行)。
  • 可以带图:输入框右下角的 + 选图(单个上限 16MB;只收图片——宿主的粘贴上传通道对其它文件会直接「上传失败」,实测 .txt 就是这样),字节存 IndexedDB(dsh-msg-queue/images),条目里显示缩略图;带图的条目点「发送」会先把图贴进输入框的附件栏并填好文字,然后交还给你按回车(插件读不到宿主的上传完成状态,硬自动提交会和上传赛跑、还会把上传搞失败),没贴进去就整条留在队列里。
  • 若点发送时输入框里还有你正在写的草稿,草稿会先被收进队列(提示「输入框草稿已存入队列」), 绝不会因为发一条队列消息而吞掉你写的东西。
  • 队列存在浏览器 localStorage(dsh-msg-queue:items:v1),跨会话、跨重启都在;折叠状态在 dsh-msg-queue:ui:v1。

它是怎么挂在界面上的

插槽作用域角色
shell.overlayroot左侧浮层卡片本体(官方"跨栏浮层"座位,加法式,不覆盖官方 UI)
conversation.composer.docksession零像素投递器:只为了拿到当前会话的 inputActions,渲染 null,把 setDraft/submit 注册到模块级发送桥

为什么不直接塞进 sidebar:这一版左栏里能增量的座位只有图标/动作(sidebar.panellist、sidebar.footer.action), 而 sidebar、sidebar.workspaces 都是 single + shadows-shipped-ui —— 往那儿注册等于整块替换官方 UI。 shell.overlay 的官方说明就是"你自己的跨栏浮层的加法座位",所以选它,卡片用 position: fixed 贴在左栏上方, 并且必须自己把 pointer-events 开回来(整层是 click-through)。

安装(已装好的话跳过)

# 在 DSH 里用插件管理器安装本地目录,等价于 plugin_manager install_bundle

宿主半边 index.js 是空逻辑,只负责让这个包成为 cordis 树上的一行 —— 浏览器产物靠这一行被扫出来加载。

数据与隐私

不联网、不上报;localStorage 里只有你写的队列文本与折叠状态。发送走的是你自己的会话输入机,不伪造会话事件。

相关插件