본문으로 건너뛰기
P

dsh-msg-queue

pandaman0759/dsh-msg-queue

Adds a message queue to the sidebar foot: park a thought in a collapsible list, then send one entry to the current session when you choose instead of interrupting the running turn. Entries can be edited or deleted, the list holds two rows and scrolls beyond that, and an unsent composer draft is moved into the queue before a send rather than overwritten.

설치

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 里只有你写的队列文本与折叠状态。发送走的是你自己的会话输入机,不伪造会话事件。

관련 플러그인