
Security News
vlt 1.5.0 Adds Agent Skills Management
vlt 1.5.0 links skills from JavaScript dependencies to coding agents, with lockfile versioning and Socket data to filter out known malicious packages.
dsh-instance-manager
Advanced tools
DSH 实例管理面板:从侧边栏左下的图标打开,列出本机 3080-3129 与 19387 端口的全部 dsh web 实例(端口 / PID / 运行时长 / 会话数),支持优雅停止、两步确认停止当前实例、一键全部结束与新实例启动。Sidebar-launched instance panel for DeepSeek Harness: list every local dsh web instance on ports 3080-3129 and 19387 (port/PID/uptime/sess
DSH Web 的实例管理器。它为本机可见的每个 dsh web 实例显示一行状态,并负责这些实例的启动、打开与停止。配置 peer 后,同一面板也可查询其他机器上的实例。
入口是工作区左下、侧边栏右侧的菜单图标。
:端口 进入该实例界面;启动 token 由宿主即时换取,不进入面板状态与链接。instance_list、instance_start、instance_stop、instance_restart、instance_logs、instance_sessions。--no-open)。# 从 npm 安装并注册到 web profile(推荐)
dsh plugin --profile web add dsh-instance-manager
# 仅安装 npm package
npm install dsh-instance-manager
# 或从 GitHub 安装
dsh plugin --profile web add github:xswt442-cmd/dsh-instance-manager
npm install 只安装 package;bundle 进入 profile 后 DSH 才启用本插件,dsh plugin add 一次完成这两步。live:刷新间隔、Fleet token、peer 列表;宿主 watch 该节,修改即时生效。startup:端口清单;该节 applies: 'restart',宿主仅在构造时读取一次,未生效的修改在设置界面标为待生效。读取的来源由宿主版本决定:
config,该版本的设置服务不再提供 register;改条目 config 会重启本插件,live 一节的改动仍立即生效。dsh-instance-manager(live)与 dsh-instance-manager-startup(startup);live 通过 watch 生效,写入条目 config 的同名字段不会被读取。| 分节 | 字段 | 类型 | 默认 | 取值范围 |
|---|---|---|---|---|
| live | refreshIntervalMs | number | 4000 | 1000–60000 毫秒 |
| live | fleetToken | string(secret) | 无 | 任意非空字符串 |
| live | peers | string | ''(无 peer) | id@origin 逗号分隔,最多 16 条 |
| startup | portRange | string | '3080-3129,19387' | 逗号分隔的范围与单端口,端口在 1–65535,各段合计最多 1024 个 |
refreshIntervalMs 超出范围时取边界值,小数取整到最近整数。fleetToken 只写不读,不出现在任何 API 应答与日志中。peers 的 id 为 1–32 位 [A-Za-z0-9_-],origin 可省略 http:// 与 https://,带 userinfo 的 URL 被拒绝。peers 是单向配置,需要双向可见时在两端各配一份。portRange 的第一段限定新实例可启动的端口范围,其余各段只参与实例发现。--port 4000 手工启动的实例仍会出现在列表里。portRange 任一段不可用时,整份清单回落到内置默认值。19387;未运行本插件的桌面端宿主由该端口的探测进入列表,其行不带 runtime,也不由本插件托管。界面语言跟随 DSH Settings → General 的全局语言设置。本插件不单独存储语言偏好。
每个字段都有同名环境变量:没有设置服务的部署用它们配置,偏好项未填写时它们充当该字段的默认值。
$env:DSHIM_REFRESH_INTERVAL_MS = '4000' # live.refreshIntervalMs,仅接受十进制整数
$env:DSHIM_FLEET_TOKEN = '<long-random-secret>' # live.fleetToken
$env:DSHIM_PEERS = 'office@http://192.0.2.10:3080' # live.peers,格式同上表
$env:DSHIM_PORT_RANGE = '3080-3129,19387' # startup.portRange
$env:DSHIM_FLEET_TOKEN_REF = 'DSHIM_FLEET_TOKEN' # 存放 token 的环境变量名,见下节
单个字段的取值顺序:
base 层,位于用户已存的值之下、schema 默认值之上。DSHIM_PORT_RANGE 不会导致注册失败,该字段用内置默认值。DSHIM_FLEET_TOKEN_REF 的值是存放 token 的环境变量名。未设置该变量时,名称取 DSHIM_FLEET_TOKEN。每个远程请求按以下顺序取第一个非空值:
live 节的 fleetToken(条目 config 或已存设置),DSHIM_FLEET_TOKEN 作为 base 层参与该字段。心跳文件 <home>/run/instances/<port>.json 记录本插件的实例身份;action=self 应答与 agent 工具的行带其中的 pid、port、runtime 等字段。
runtime:desktop 表示桌面应用自己的宿主进程,任何停止操作都跳过它;node 表示普通 web 实例。判据是宿主被要求运行的入口脚本,因此环境变量(ELECTRON_RUN_AS_NODE)只作为诊断字段:桌面端启动的 web 实例同样带该变量。launcher:启动该实例的宿主类型,desktop 或 web;parentPid:发起启动的宿主 pid。两者由打过补丁的宿主注入,取不到时为 null,只写进心跳文件,不出现在 action=self 应答、agent 工具行与面板里。runtime,按 node 处理;只能靠端口探测发现的行不带该字段。name 是列表进程自己的可执行文件名,同一份列表里每行相同,不是被列实例的身份;实例身份由 runtime、pid 与 version 区分。Host 头共同判定,两者任一非回环即要求 bearer。cache-control: no-store。code,异常原文只写入宿主日志。<home>/launcher/logs/dshim-requests.log 记录一行:对端地址、准入路径、请求携带的 Host/Origin/Referer/User-Agent、目标端口与结果。dshim-selfexit.log 只记录触发者;Cookie 与 Authorization 既不读取也不写入。实例静默消失时,面板抽屉的「诊断」标签给出该实例的三份记录,每份都是最近 200 行:
崩溃黑匣子 dshim-crash.log:进程崩溃或未处理的 Promise 拒绝时写下一行头加异常栈。
自退出记录 dshim-selfexit.log:每次以本进程退出收尾的路由写一行,说明是崩溃还是被要求离开。
写操作追踪 dshim-requests.log:每个被接受的写操作一行,含对端地址、准入路径、Host/Origin/Referer/User-Agent、目标端口与结果。
三份文件由本机所有实例共用,因此崩溃与自退出按该实例的 pid 筛选,写操作按实例端口筛选。
诊断面只接受本机回环请求,且不做 fleet 转发:持有有效 fleet bearer 的对端与受信局域网浏览器都读不到它。远端行因此没有这个标签。
崩溃记录的筛选保留整条记录(头与异常栈),因此栈不会落到另一个实例名下。
这三份文件从未被读取也从未被清理;诊断面只读,不删除、不改写。
会话摘要的每一行都是纯标量投影,绝不整体序列化宿主内部的实时 session 对象。
title:折叠后的最新会话标题,来自宿主可选的 sessionTitle 服务。宿主没有该服务、或会话还没有合格输入时该字段不出现,此时面板退回 8 位短 id。agentPreset、parentSession、delegationDepth:来自会话 header 的谱系,缺失即不出现。委派深度只在真正被委派过时带上,顶层会话不带。cwd、subagent、events:工作目录、子代理标记与事件数。null。实例行的「重启」按钮与 agent 工具 instance_restart 在同一端口重启一个本地实例,替代手动 stop + start 两步。步骤固定为:转发停止(目标经自己的 appExit 优雅退出,会话落盘)→ 轮询等待端口真正空出来 → 在该端口启动 → 等它应答 action=self。
port_in_use;端口在 15 秒内仍未释放则返回 port_still_in_use,两种情况都不会启动到其他端口——用户要的就是原端口重启,换端口等于换了一个实例。--no-open)。工程边界与提交前检查见 AGENTS.md;发布流程见 docs/RELEASING.md。
FAQs
DSH 实例管理面板:从侧边栏左下的图标打开,列出本机 3080-3129 与 19387 端口的全部 dsh web 实例(端口 / PID / 运行时长 / 会话数),支持优雅停止、两步确认停止当前实例、一键全部结束与新实例启动。Sidebar-launched instance panel for DeepSeek Harness: list every local dsh web instance on ports 3080-3129 and 19387 (port/PID/uptime/sess
We found that dsh-instance-manager demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
vlt 1.5.0 links skills from JavaScript dependencies to coding agents, with lockfile versioning and Socket data to filter out known malicious packages.

Security News
Rust 1.100 will add opt-in dependency cooldowns to Cargo, giving security scanners and maintainers time to catch malicious crate releases.

Security News
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.