Teow9/dsh-isolation-pod ↗★ 0

dsh-isolation-pod

隔离舱:在 DSH 主会话之外运行受沙箱约束的隔离任务;主会话默认完全无感,结果返回与文件导出都要手动确认。 适合需要在独立子会话中运行受沙箱约束的任务,并手动确认结果返回与文件导出的用户。

Package
dsh-isolation-pod
Compatibility
Unverified
Version
0.1.3
License
MIT
Last updated
Sep 25, 2026

Install

This plugin has no verified bundle, or compatibility checks failed. Read the repository notes first. Read the full README ↗

使用

入口

侧边栏「新会话」下方的一行:盾牌图标 + 「隔离舱」。侧边栏收起成窄栏时只显示图标。 点击后中栏切换为隔离舱全宽面板,页签为 任务 / 新建 / 配置 / 导出记录。

侧边栏底部(设置旁)刻意不放入口:那一行与内置的 Cordis Plugin 按钮共用, 放带文字或固定宽度的按钮会被挤没。

首次使用:指定沙箱根目录

到「配置」页填入绝对路径(例如 E:\pod-work)。未配置时隔离舱会拒绝执行任何任务, 并且不会自动退回使用工作区或项目目录。

同页的 Agent preset(可用时是下拉框)决定隔离 Agent 能看到的工具: 白名单只是上限,不会被 preset 求交清空;preset 没提供的工具,调用时由 guard 打回并提示 「未被授权」。任务详情因此并排列出「可用工具」(白名单上限)与「隔离环境实有」 (该 pod 真实可见的工具面)以便对账。

任务

新建(填描述,可选沙箱子目录)→ 启动 → 在详情页看对话与生成文件 → 继续对话 / 返回主会话 / 导出到工作区 → 清理。主会话在此期间不会收到任何自动消息。

任务详情页从上到下依次是:状态与沙箱自检信息、对话、生成文件、返回主会话、导出到工作区、清理。 (任务处于 运行中 时,「导出到工作区」卡片不显示——先等它跑完或点「停止」。)

多轮对话

详情页底部是输入框:回车发送,Shift+回车换行,运行中可「停止」。

  • 续聊走 followUp,往同一个子会话再发一条用户消息;沙箱模式、审批策略、工具 guard、系统提示段 都挂在常驻子 Agent 上原样复用。不存在「续聊时隔离失效」的路径。
  • 转写按角色渲染:我 / 隔离舱 气泡、▶ ◀ 工具行、轮次分隔线;助手条目可展开思考过程, 首轮那条机器指令折叠为「本轮发给隔离舱的指令」。
  • 连续性仅在进程内有效:宿主重启后 canFollowUp 变为 false,输入框注明「该会话已随进程结束」, 历史仍可查看与导出。(明确不做重启后重挂。)

返回主会话

「返回主会话」区块:可附带一个文件路径,点「生成预览」得到一段文本,该文本可以自由编辑, 点「确认返回主会话」后才以一条用户消息注入主会话。默认不返回任何内容。

导出到工作区

选择生成文件 → 指定沙箱之外的绝对目标目录 → 选择方式(复制 / 移动)与冲突策略(覆盖 / 跳过 / 重命名)→ 点「导出到工作区」→ 在确认块里再次确认。每次导出都要重新确认,不存在自动延续的授权; allowRememberChoice 打开后也仅预填路径。复制模式下可「撤销此次导出」。

清理

  • 删除任务文件:删除该任务的任务目录(拒绝删除沙箱根目录本身)。
  • 清理任务记录与文件:同时移除记录并释放该子会话的常驻 Agent。
  • 两者都不触碰主会话,也不触碰沙箱之外的任何文件;子会话自身的历史日志由 DSH 管理,不在清理范围内。

首次使用:指定沙箱根目录

到「配置」页填入绝对路径(例如 E:\pod-work)。未配置时隔离舱会拒绝执行任何任务, 并且不会自动退回使用工作区或项目目录。

同页的 Agent preset(可用时是下拉框)决定隔离 Agent 能看到的工具: 白名单只是上限,不会被 preset 求交清空;preset 没提供的工具,调用时由 guard 打回并提示 「未被授权」。任务详情因此并排列出「可用工具」(白名单上限)与「隔离环境实有」 (该 pod 真实可见的工具面)以便对账。

配置项

在「配置」页修改,落到 \isolation-pod.json。

键默认值说明
sandboxRoot''沙箱根目录(绝对路径)。为空时拒绝执行任务;读回时会归一化(去尾部反斜杠)
allowWritestrue关闭后子会话以 read-only 模式运行
allowedToolspwsh, read, write, edit, glob, grep工具白名单,作为上限由 guard 强制执行
timeoutMs600000每轮对话的超时(毫秒),取值夹在 30 000–7 200 000;超时取消该轮并标记 timeout
readContexttrue是否把主会话最近若干条消息作为只读背景注入任务提示
maxConcurrent3同时运行的任务数上限(1–8)
enableExporttrue关闭后 exportEntries 直接拒绝
allowRememberChoicefalse是否允许导出时勾选「记住本次选择」(仅预填路径)
presetId'standard'在子会话里挂载的 Agent preset;空串表示不挂载