IORT-DOIT/dsh-meeting-room ↗★ 1

dsh-meeting-room

DSH 会议室 v6:单一「会议室」入口的工作台(房间树/新建/设置内置)、官方主题色、邀请列表只列真实顶层会话、聊天页简洁气泡,每个会议室自带内置记录员 AI(目标达成自动出草稿、须用户审核);你发的消息只写进会议室记录、永不进入与会者对话(要他们回应请点「唤醒与会者」),修复与会者每轮「本轮运行失败」(思考等级读取改走 ctx.get('llm') 并 await 官方 async 契约),踢人/驳回/再议/散会改用插件自带输入面板(不再依赖桌面客户端界面运行时不实现的 window.prompt),去掉房间页头的在线人数与记录员 chip;v5 起投递/唤醒时宿主自动激活与会者会话、发送后自动滚到底、「会议文件」在房间页头按钮;0.6.1 修复大 inode 下目录身份判定误报(合法目录被误拒);v7:去掉「唤醒与会者」按钮——每次发送自动给与会者发一行『有新消息』提醒(你的正文仍只留在会议室记录里),踢人不再弹「踢出理由」输入框(点 ✕ 直接踢出);v8:与会者 room_say 缺省 = 写进记录 + 自动接力(向除发言者外的成员各投一条不含任何正文的「有新发言」提醒,默认最多 6 跳、可用 autoContinueHops 调整、0 关闭;人类发言后额度归零),会议室不再「答完一轮就静止」;v9:《会议结果》与「会议文件」移到房间页右侧常驻栏(两个页签 + 收起/展开开关),新增只读预览端点 GET /rooms/:id/file?name=,删掉旧文件抽屉与聊天区内联结果盒;v10:修复「停在会议室页几秒被弹回聊天界面」——客户端粘性守卫(非用户主动导航就把面板抢回:先重挂 main 登记再设选中,400 ms 限流、6 s 内超 3 次放弃,localStorage 诊断环),宿主 index.js 与端点/工具/配置项均无增删;v11:取消自动接力的 6 跳上限(autoContinueHops 只当开关:0 关闭、非 0 开且可一直接力;回包去掉分母、不再写「已达上限」系统行;删掉内部 autoCapNoticed 状态),端点/工具/配置项仍无增删;v12:修掉「标记达成 / 散会」弹红框 signal timed out(客户端对触发记录员的两个接口改用 300 秒超时,宿主加 240 秒惰性看门狗、卡住就抛中文 503,并把失败原因写进会议记录)、新增第 13 个工具 room_task_done(与会者 AI 在真正有结论时发「任务完成」指令,记录员立即出草稿、仍由用户审核)、会议文件固定放进房间目录下的「记录/」「附件/」两个子目录(旧 files//results/ 自动搬家)、策划会议新增「文件管理」(保存方式 全部保存 / 只保存记录员的记录,后者在散会与结果发布后清空附件),端点无增删、配置项只加一个仅供自测调小的 recorderTimeoutMs;v13:修掉「新建子文件夹」把房间目录改成它自己的子目录导致无限复制(现在新建/选择文件夹 = 把整个房间搬到 <分类目录>\<新文件夹>\<房间id>,宿主对「搬进自己子目录」与「搬到分类目录本身」直接 400),散会后 room_say 与人类发言都不再广播(记录照写,重开会议恢复),唤醒消息里告诉与会者把文件写在房间「附件/」而不是桌面(与会者会话 cwd 是桌面),客户端新增普通会话式的自动下拉跟随(用户自己滚动即停跟随、不打断往回翻,另有「↓ 跳到最新」按钮)与右侧消息索引(每条消息一条横线,会议目标时间点加粗变色、悬停预览、点击跳转),端点/工具/配置项均无增删;v14:与会者写的会议文件真的会进房间「附件/」了(与会者会话是 workspace-write、只能写会话 cwd 与临时目录,所以改成在与会者 agent 作用域用影子工具把顶层文件名重定向到系统临时暂存区、本轮结束时由插件同名搬进「附件/」并刷新面板,唤醒消息相应改为「直接以相对文件名保存即可」),「文件管理」简化成只回答「会议文件留不留 + 放在哪个文件夹」,右侧消息索引改为悬浮一列、一个轮次一个刻度(主持人发言与目标时间点各算一轮,目标加粗变色),并修掉索引常量在样式对象之后声明导致的客户端启动崩溃;端点/工具/配置项仍无增删;v15:「文件管理」里的「文件夹」只留两个功能——「打开文件夹」(系统资源管理器,走第一方 /open-in-app/open,失败退回复制路径)与「选择文件夹」(直接弹系统文件夹界面,可在里面选或新建;选中的文件夹就是房间目录,客户端不再拼 <文件夹>\<房间id>,v13 的 joinPath 已删),换目录护栏新增「目标文件夹已经属于另一个会议室」400;与会者界面的「排队消息」不再堆积——同一位与会者最多挂一条未领取的自动接力提示,新提醒用 DSH 公开的 inbox.locate/replace 原地替换旧的那条(替换不了就退化为普通投递,绝不丢提醒),人类发帖与决议投递照旧每条新投;房间页头三个按钮并成一个(展开时「收起侧栏」、收起时「会议文件」);端点/工具/配置项仍无增删;v16:会议文件真的进「附件/」——真机取证发现 v14 的影子工具在部分宿主上根本没接管、且与会者多数用 pwsh 写绝对路径,改为三层兜底(①影子保留并暴露 rec.tools 状态;②投递即开窗 + tools/post-execute + agent/turn-stopping 做快照差集、本轮新建的移走原件、只被改过的取副本;③不依赖 agent 钩子的 sweepSession 在 room_say 与每次投递时按上次巡检时间收拢 cwd 顶层新文件、首次只立基线),新增唯一端点 GET /dsh-room/staging 只读诊断、唤醒消息文案与实现对齐;与会者守则由宿主以 agent 作用域 systemPrompt.section 注入(恒定文本只落一次、不进对话历史,拿不到就静默降级);《会议结果》驳回后把审核意见整套投给每位与会者要求逐条回应、记录员提示词新增第 5/6/7 条(只记最终共识/不编造/简洁);房间列表每个分组标题加「+」可在该分组目录下新建、「换分类目录」改走系统文件夹界面(拿不到再退回浏览式);「回到最底」按钮不再只在有新消息时出现(跟随即常驻、有新消息点亮);结果草稿编辑区标题改单行、正文随栏高伸展;底栏新增只读房间数据条(轮次/步/累计 tok/缓存命中/上下文占用,取自 sessionProjections 三视图、4 秒缓存、拿不到就整条不渲染);v17:批准重开不再只改状态(「与会者申请重开 → 用户批准」后立刻把「已重开 + 申请理由 + 当前目标 + 继续口径」整套投给全体并接力,修掉真机上「批准了但没人开始讨论」);与会者的权限请求可在会议室里实时批准 / 拒绝(宿主注册 ctx.on('approval/request'),只接管本房间成员并把请求挂到房间面板横幅上:点「允许」→ allowed-once、点「拒绝」→ rejected;非成员 / 超时 / 请求方取消一律 next() 交回 DSH 原审批链;新增房间级端点 GET/POST /rooms/:id/approvals,callId 走 body);聊天输入框上方那条数据条挪到输入框下方、原来输入框下方那条长提示整条删除;工具仍 13 个、配置项零新增;v18:修掉真机上「与会者的权限申请依然只弹在会话页、会议室不出现横幅」——DSH 把 approval/request 转发给浏览器的那座桥注册得早且阻塞等用户在会话页点按钮,普通注册的监听器永远轮不到,改为用 { global: true, prepend: true } 插到桥前面(仍只接管本房间成员、非成员照旧 next() 交回原链),房间成员 id 的 session- 前缀写法不一致也认得出,GET /dsh-room/staging 增加只读 approvals{ready,options,pending,seen} 诊断;客户端零改动、工具仍 13 个、配置项零新增

パッケージ
dsh-meeting-room
互換性
未検証
Harness ピア範囲
*
バージョン
0.18.0
ライセンス
MIT
最終更新
2026/10/01

インストール

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:IORT-DOIT/dsh-meeting-room

ドキュメント

README 全文を読む ↗

Configuration

Eight keys, defaults are fine:

KeyDefaultMeaning
root~/.dsh/meeting-roomstate root (rooms.json / settings.json)
category~/dsh/会议default parent folder for new rooms
roomIdmaindefault room id (v1-compatible routes)
maxReadMessages40room_read message limit (also the recorder's evidence limit)
maxReadChars40000room_read character limit
autoCloseGoalsfalsereserved
autoContinueHops6auto-relay switch: 0 = off, non-zero = on (no hop ceiling)
recorderTimeoutMs240000recorder stall guard (leave it alone)