Skip to content

Releases: KannaKuron/dsh-agent-lang

v0.12.1

Choose a tag to compare

@KannaKuron KannaKuron released this 04 Nov 13:49

类型:chore(复核并声明 dsh 0.2.2-rc.1 兼容;零代码改动)

  • 复核:0.2.1-alpha.5 → 0.2.2-rc.1 的 system-prompt 只在工具区段新增 TOOL_APPLY_PATCH: 1350 与 TOOL_SCHEDULE: 2500;现有 CONTEXT_ORDERS(WORKING_DIRECTORY 100 … TEAM_IDENTITY 125、HARNESS_SOURCE 200、WEB_SURFACE 210)零变化,本插件的 context order 130 仍落在空闲区,不撞号。
  • systemPrompt.context() 签名、PromptContext.interpolate、plugins.bundle.config / configForms 设置座位均无契约变化;21 门词典与客户端卡片照常加载。
  • 真机:dsh 0.2.2-rc.1 隔离实例里插件正常加载,插件页显示「语言控制」,设置卡可打开;无控制台错误。
  • 测试:47 项全绿。peer 下限保持 >=0.1.6-alpha.2,不设上界。

v0.12.0

Choose a tag to compare

@KannaKuron KannaKuron released this 17 Oct 06:18

v0.12.0 — 2026-10-17

类型:feat(跟进 dsh 0.2.1-alpha.3..5:CONTEXT_ORDER 125 → 130 迁移;附带 docs 更正)。

dsh 0.2.1-rc.1 与 alpha.5 同码(全仓 diff 仅 355 处 package.json 版本 bump,非 package.json 变化为零;CONTEXT_ORDERS 实测零 diff),本条目即 rc.1 的适配依据。

  • CONTEXT_ORDER 125 → 130(全局注册与子代理影子共用同一常量,src/index.js 单点迁移):dsh 0.2.1-alpha.3 给官方 CONTEXT_ORDERS 新增 TEAM_IDENTITY: 125(agent teams 身份行,packages/core/system-prompt/src/index.ts:175),与本插件的自由槽位撞号——重名才 throw、撞号不崩,但本插件的「语言策略」指示会与「队员身份」行按 order 交错。迁到 130,继续紧贴官方策略邻区(SANDBOX_POLICY 110 / APPROVAL_POLICY 115 / SUBAGENT_DELEGATION 120 / TEAM_IDENTITY 125 之后、HARNESS_SOURCE 200 之前);JSDoc 同步。不变量 9 的「官方表越过就换空闲数」触发条件首次命中,AGENTS 不变量与验证清单同步改写。
  • 复核(对 dsh 0.2.1-alpha.5;0.2.1-rc.1 同码,复核结论对 rc.1 同样成立):systemPrompt.context 注册签名零变化;PromptContext.interpolate(v0.10.0 接入)零变化;plugins.bundle.config 座位契约零 diff;minimal 封闭边界不变;alpha.4 起 engines.dsh 门禁对本插件开放式下界 >=0.1.6-alpha.2 无阻断(engines / peer range 不动)。
  • docs 更正:v0.9.1 记录的「官方把 description 排到参数说明最前」在 alpha.5 只剩一半——bash/pwsh 保留「Provide description before command」(tool-bash/src/index.ts:95、tool-pwsh/src/index.ts:130),run_code 反转回 code 在前并删去指引句(ptc.spec.ts:473 断言不含);README(中英)对应小节改写,v0.9.1 条目追加更正注。本插件是纯翻译通道,不受参数顺序影响。
  • 测试:smoke 槽位断言 125 → 130,47 项全绿。

v0.11.0 — 设置卡可折叠分区

Choose a tag to compare

@KannaKuron KannaKuron released this 12 Oct 17:27

类型:feat(设置卡分组;家族跟进 dsh-gitbash-shell v0.38.4)。

设置卡改为两个可折叠卡片(默认全收起):「语言通道」(快捷键、检测状态、三个通道块)与「队员与子代理」。自绘实现;21 语言新增分区标题;功能零变化。

Full Changelog: v0.10.0...v0.11.0

v0.10.0

Choose a tag to compare

@KannaKuron KannaKuron released this 10 Oct 16:52

Full Changelog: v0.9.2...v0.10.0

v0.9.2

Choose a tag to compare

@KannaKuron KannaKuron released this 05 Oct 11:37

Full Changelog: v0.9.1...v0.9.2

v0.9.1

Choose a tag to compare

@KannaKuron KannaKuron released this 04 Oct 07:16

Full Changelog: v0.9.0...v0.9.1

v0.9.0 — 清理 0.1.6 以前兼容,宿主下限 ≥ 0.1.6-alpha.2

Choose a tag to compare

@KannaKuron KannaKuron released this 28 Sep 07:53

类型:chore(清理 0.1.6 以前的兼容代码,宿主下限提高到 0.1.6-alpha.2)

  • 删旧设置座位:client 半不再注册 settings.plugin.item(0.1.6-alpha.1 及更早的
    「设置 → 插件」列表座位);设置卡只挂 plugins.bundle.config(0.1.6-alpha.2 起的
    「插件」面板 bundle 详情页,即所有在维护宿主上的唯一设置面)。
  • 删 settingsNamespace() era 探测:该 helper 在 dsh 0.1.2-alpha.2 就已移除,远低
    于新下限;host 半旧时代注册改直接传普通字符串命名空间,并随之去掉
    @deepseek-ai/dsh-settings 的动态 import(它唯一的用途就是取那个 helper)。
    0.1.7 分界的 typeof settings.register === 'function' 双时代探测保留
    (0.1.6-alpha.2 宿主走命名空间注册,0.1.7+ 走行 Config)。
  • 宿主下限:engines.dsh 与 peer @deepseek-ai/dsh 从 >=0.1.0 提到
    >=0.1.6-alpha.2(0.1.6 从未出过正式版,alpha.2 是首个带插件面板配置座位的版本;
    门禁 semver.satisfies(..., { includePrerelease: true }) 对该写法放行 0.1.7-rc.2)。
    冒烟测试的字面量断言与守卫同步更新。
  • AGENTS.md 同步:不变量 4(旧时代注册形态)/ 5(单座位)/ 6(slot 契约)/ 13(peer
    下限)与验证清单。

v0.8.0 — 智能体团队队员/子代理适配 + 「队员与子代理」开关(默认生效)

Choose a tag to compare

@KannaKuron KannaKuron released this 25 Sep 10:42

智能体团队队员 / 子代理适配 + 「队员与子代理」开关(默认生效)

结论

队员本来就生效:语言指示注册在 global 层,SystemPrompt 组装走 ScopedLayers.merge(scope, …)(先铺 global、再按作用域链覆盖),所以任何未封闭 prompt 的 agent(主代理、spawn_teammate 队员、subagent 子代理、任意嵌套深度)都会合并到它。本轮补上用户可控的开关,并让「仅主代理」真正只对主代理注入。

新设置:subagents(boolean,默认 true)

  • 开(默认):队员与子代理和主代理同语言。
  • 关:只对主代理注入。
  • 两个设置时代都声明(新:行 Config;旧:注册命名空间),卡片两代都可写。

实现要点

  • 文本提供者拿不到 agent 身份(AssembleContext 只有 {scope, signal}),所以 global entry 原样保留作兜底(主代理、任何 preset、任何识别不了的路径),每个被识别为子代理的 agent 在自己的作用域注册同名同序影子;merge() 按名覆盖 ⇒ 影子是该 child 的唯一来源(开启态实测全文恰好 1 次,是替换不是叠加)。
  • 识别子代理:session.header 的 parentSession / origin === 'subagent' / delegationDepth > 0 三者取或。
  • 安装/回收走官方 per-agent 范式(agent.ctx.inject(['systemPrompt'], …) + agent/created / agent/disposed / apply 时 ctx.agents.list())。

两条边界(卡片文案 21 门语言都写明)

  1. fork 出的队员继承主代理已完成回合的历史快照(其中含主代理已提交的指示)——开关不重写历史:关掉后该队员自有提交没有指示,但继承段仍在。
  2. 自带提示词的外部子代理(codex / claude-code / acp / sdk)与 minimal 的封闭提示本就不经宿主 systemPrompt,开关对它们无影响。

验证

  • 请求级(隔离实例 + 本地 Anthropic-Messages stub,stub 主动发 spawn_teammate,真实工具链跑出真实队员):默认态 lead 与 teammate 都有指示;subagents: false 时 lead 有、fresh teammate 0 条;fork 队员自有快照无、继承段有(即边界 1)。
  • GUI(隔离 web 实例 + 无头 Chrome):卡片渲染「队员与子代理: 同样生效」,点击写入 subagents: false/true 并回读,默认选中「同样生效」,说明行显示两条边界。
  • 冒烟测试 46/46 全绿(含 3 条 audience 语义、影子注册形态、两代设置面、卡片渲染、21 门词典两条边界关键词)。

完整变更记录与逐环源码依据见 CHANGELOG。

v0.7.1

Choose a tag to compare

@KannaKuron KannaKuron released this 25 Sep 10:07

Full Changelog: v0.7.0...v0.7.1

v0.7.0

Choose a tag to compare

@KannaKuron KannaKuron released this 23 Sep 16:15

Full Changelog: v0.6.0...v0.7.0