Skip to content

Releases

v0.10.1

Choose a tag to compare

@github-actions github-actions released this 02 Sep 20:01
5bd2608

修复

  • 被主机名单挡下的主机不再显示一个可勾的「自启」开关。自启逻辑本来就跳过这些主机,
    但表格照旧渲染出可点的开关,勾着的那两台看上去像「开机会拉起」——而它们永远不会被
    拉起。现在开关按死并写明原因(存的值一个字不改,把它移出黑名单后照原样生效)。

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 02 Sep 19:36
de7172e

新增

  • defaults.hostFilter 用正则决定哪些 ~/.ssh/config 条目值得纳管,白名单与黑名单
    各一份:整串锚定(git.* 命中 git.neodrive.neolix.net,不命中 mygit-box)、
    忽略大小写、黑名单优先;白名单为空表示全放行,一旦非空就只纳管命中的条目。
    改名单立即重算全表,不需重启 manager。界面在「管理 → 全局默认」里编辑(每行一条
    正则),CLI 为 dshc config set defaults.hostFilter.deny 'git\..*,github\.com'
    (none 清空)。
  • 主机表新增默认折叠的「已屏蔽」分组与「清理已屏蔽(N)」:确认后只删除 config 里被
    名单挡下的条目与 manager 运行记录,~/.ssh/config 一个字都不动;仍有实例在跑的会
    被跳过并在提示里点名。新增端点 POST /api/hosts/clear-blocked。
  • POST /api/reload 的响应新增 filtered(本轮被名单挡下、因此未纳管的条目),与
    orphaned 分开回报;dshc ls 给被挡下的主机标「已屏蔽(命中的规则)」。
    HostView 新增 blocked 字段(null 或 {rule, pattern, reason})。

变更

  • 出厂黑名单默认挡下常见代码托管入口:git\..*、github\.com、gitlab\..*、
    gitee\.com、bitbucket\.org、ssh\.dev\.azure\.com、vs-ssh\.visualstudio\.com、
    .*\.git。这会改变升级后的默认行为:此前已纳管的这类主机不会被删除,但会移入
    「已屏蔽」分组并退出探测、自动拉起与巡检。要继续用其中某台,把它从黑名单移除或加进
    白名单即可。
  • 被名单挡下的主机退出一切自动化(探测、全量探测、自动拉起、manager 重启后的状态恢复、
    巡检、dshc init 的候选、批量配置同步的源与目标),远程动作返回 NOT_ALLOWED。
    例外是「关停」:真有实例在跑时关停始终可用——拒掉它等于把那个进程扣死在远端,
    只能靠改名单才停得掉。「打开」也保留。
  • 名单是用户可编辑的正则,因此有护栏:每份最多 32 条、单条最长 200 字符、不接受控制
    字符;把「内部有变长量词或分支」的分组重复两次以上((a+)+、(a{2,4})+、
    (x|xx)+、(a+){12})会被 VALIDATION 当场拒收并说明理由,因为这类写法撞上长主机名
    要走天文数字的回溯步数,会把 manager 卡死在一次配置保存里。(gitlab|github)\..*
    这类真正用得上的写法不受影响。

v0.9.3

Choose a tag to compare

@github-actions github-actions released this 02 Sep 16:38
a49ba13

修复

  • 主机表每行的分隔线重新连成一条。操作列复用了卡片头那个带 display: flex 的
    .row-actions,而它挂在 td 上:这一格于是不再是表格单元格,不跟同行其他格拉平
    高度(68px 的行里它只有 39px),自带的下边框比别人早二十多像素落笔——一行的分隔线
    断成错位的两段,行内的勾选框与按钮也差半个像素。flex 现在收在格子里的一层包装上。

v0.9.2

Choose a tag to compare

@github-actions github-actions released this 02 Sep 16:09
b8b1a9e

修复

  • 拉起真的会用探测解析出的 dsh 绝对路径了。runLaunchSequence 重拼内部 spec 时把
    dshPath 漏掉了一层,模板于是退回裸 dsh 交给 PATH 查找——canon 那类装法
    ($HOME/.canon/node/bin)不在非交互 SSH 的 PATH 里,远端日志只留一行
    nohup: failed to run command 'dsh': No such file or directory,页面上表现为
    「远端进程启动后立即退出」。dsh 装在 PATH 里的主机不受影响,这也是它此前没被发现的
    原因。
  • 拉起模板不再接受「省略 dsh 路径」:缺路径直接 VALIDATION 拒绝拼装,不再静默降级成
    PATH 查找。此前那条兼容形态正是上面那次漏传能一路跑到真机才现形的原因。

v0.9.1

Choose a tag to compare

@github-actions github-actions released this 01 Sep 14:40
5830f81

修复

  • 手动实例扫描要求 dsh 与 web 在命令行里紧挨着,不再把「命令行里同时提到
    dsh 和 web」的进程算成实例。本机主机受害最深:Center 派给其他主机的
    ssh <host> sh -c '<探测脚本>' 原样驮着 command -v dsh 与 profiles/web,
    于是一轮 14 台的并发探测能在本机凭空变出五个「手动实例」(PID 每轮都换一批)。
    除了「另有 N 个手动实例」的假账,它还会让本机的一步拉起被
    ADOPTION_AVAILABLE 拦成领养对话框,而那几行幻影因端口未知全都按不动。

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 01 Sep 13:37
701604e

修复

  • 探测现在认得只在交互 shell 里现身的 dsh:候选目录补上 canon 的
    ~/.canon/node/bin、~/.canon/bin,并在 login shell 空手而归后退到交互
    shell 嗅探(装进 ~/.bashrc 的 PATH 只有交互 shell 看得见)。此前这类
    目标一律被判为「远端未安装 dsh」,实际上装好且 web profile 就绪。
  • 版本探测与拉起都会先把 dsh 所在 bin 目录并入 PATH。dsh 常是
    #!/usr/bin/env node 脚本、解释器与它同住一个目录,此前用绝对路径拉起只会
    在日志里留下一行 env: 'node': No such file or directory 然后当场退出。
  • 主机表操作列不再按实例归属增删按钮:同一状态的两行给出同样多、同样顺序的
    按钮,只读领养的实例把「重启」「关停」置灰并写明「非本工具拉起」。不误杀
    契约不变,此前差异只体现为按钮凭空少两个,看不出原因。
  • 可排序表头(主机 / 状态 / dsh / PID)不再比其余表头右移一个按钮内边距、也不再
    亮一档:排序控件压成裸文字,排序方向改用只向右延伸的箭头指示。
  • 一台主机上有多个手动 dsh web 时,「拉起」的确认框会把每个候选的 PID、端口与
    命令行列成单选,只读领养选中的那一个;端口未知的候选留在原位禁用并写明要重新
    探测,全部不可领养时确认按钮直接置灰,只留「强拉第二份」与「取消」。此前对话
    框不问是哪一个,领养请求不带 PID,被后端以「有多个手动 dsh web,请指定 PID」
    挡回,页面上无路可走。
  • dshc start <host> --adopt 新增 --pid <pid> 指定领养对象;交互提示里也可直接
    输入 PID,非交互模式会连候选清单一起印出并要求显式 --pid,不再替用户猜。
  • 领养动作的 operation-done 帧丢失时,主机进入 running 也能解开按钮忙态
    (此前只有 start/stop/restart/reconnect 有这条兜底,领养要等 30s 超时)。

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 01 Sep 08:32
a16e959

修复

  • 没有 ss 的远端(两台目标 pod 均无 ss/lsof/netstat)现在会回落到
    /proc/net/tcp{,6} 判定监听状态:复核的 LISTEN 不再恒为 unknown,
    --port 0 手动实例的实际端口也能被发现。两者都不可得时仍回 unknown,
    保持「unknown 不作否定证据」。
  • 舰队分析的语义摘要上界从 60s 提高到 120s。它是唯一跑本机模型的一步,
    实测 100 组载荷约需 50s,原上界比通用上界(90s)还紧,导致正常舰队规模下
    常态超时并静默降级为纯确定性聚合。
  • acceptance:matrix 的三处等待不再用与 --timeout 无关的固定上限封顶,
    失败信息也会指出真实阶段(插件就绪 / DSH 建会话 / 注入 / 清理)而非一律
    归到 Center 阶段。
  • 舰队分析卡片的「分析」按钮现在跟随写权限:与 manager 失联时按钮直接禁用并
    给出与主机表一致的说明。此前按钮恒为可用态,失联时点击既不发请求也不出任何
    提示,看起来像点了没反应。

文档

  • 补齐英文手册的 “Pod-local E2E plugin topology (explicit operator path)” 节,
    与中文手册对齐,明确 Center 的 SSH/tunnel 控制面、pod 本地 Sidecar 插件注入面
    和 scripts/deploy-to-pod.sh 的归属边界。

新增

  • 管理台新增 orphaned 主机安全清理:仅删除当前 SSH 配置已消失的配置与运行记录,
    并在清理前后保留远端进程不误杀;orphaned 主机的远程动作、配置同步与 dsh
    配置/Workspace 操作会被 manager 拒绝,同时页面明确提示 SSH 配置已消失;
    清理接口为 POST /api/hosts/clear-orphaned。

  • POST /api/reload 现在会重新读取 SSH 配置并刷新 orphaned 状态;Center toast
    在抽屉或对话框打开时仍可关闭和复制,并继续保留 aria-live 播报。

  • 新增 acceptance:matrix 五 agent 操作员验收入口,默认覆盖
    claude、codex、copilot、kimi 和 dsh,提供有界并行/超时、fresh SSH
    scan、两阶段插件注入回执和脱敏 JSON/Markdown 证据;fixture/dry-run 不计入真实通过。

  • 矩阵会在缺少 DSH 会话时通过官方 session.create / session.prompt 创建测试
    会话,并将 persisted preset 导致的 dsh_preset_unsupported / HTTP 409 作为
    fail-closed 合同结果保留,不自动清除 preset 或重试。

  • 新增已有 dsh web 的只读领养流程,支持 CLI/UI 确认、实际端口发现、持久化
    startedByUs: false 状态和实例死亡自动解除,避免重复拉起或未授权关停。

  • 新增按需舰队聚类分析、Sidecar 最低版本握手、本机 DSH headless 摘要及
    fail-closed 的确定性降级;新增有界的 owned-web/test-workdir 清理预览与显式应用。

v0.7.1

Choose a tag to compare

@github-actions github-actions released this 29 Aug 09:42
71b211f

修复

  • 优化 npm 发布后的 registry 验证:先轮询精确版本元数据,再按有界退避安装并验证,
    减少 npm 最终一致性传播造成的误报失败。

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 27 Aug 20:01
0f4f555

新增

  • 新增两级真机验收入口:acceptance:smoke 用于快速闭环,acceptance:real 用于
    发版前完整验收;每轮强制重扫 SSH 配置、互斥运行,并输出脱敏 JSON/Markdown 证据及
    跨轮回归比较。
  • 新增可执行用户旅程规格与生成清单,行为 ID 对账新增 CLI 退出码面
    CLI_EXIT:{0,1,2,3,130};新增行为覆盖层级标记与 §§1–8 的旅程锚点,防止功能矩阵只靠人工维护。
  • 新增明确标注为操作员脚本的 scripts/bootstrap-remote.sh,保留 Center 远端零安装、
    零常驻边界。

修复

  • 真机验收收尾不再使用宽匹配 pkill -f "dsh web",改为按本轮 PID 与完整命令行指纹
    逐字核对后停止,指纹不符时拒杀并记证。
  • 修复真机验收在共享节点端口占用、已有 launchd plist 或 patch 残留时无法安全重跑的路径。

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 27 Aug 10:23
ff32cb4

新增

  • 主机探测新增非交互 PATH、常见用户态目录与受限 login shell 的 dsh 嗅探信息;
    dshc probe <host> 和管理台 no_dsh 详情会给出场景化安装/配置指南。嗅探只用于诊断展示,
    Center 仍不代装 dsh、web profile 或插件。

文档

  • 使用手册新增 Agent Sidecar v0.7.0 下游集成契约:明确 C1–C5 清单、版本与远端
    Python 兼容边界、no_dsh 与远端零安装/零常驻行为,并声明该集成不提供远端注入;
    同时新增跨仓库 integration issue form,要求关联 Sidecar issue、双方版本、复现与期望行为。