@eddyskywalker/dsh-chatgpt-subscription 0.47.0 → 0.48.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/lib/client.js.map +1 -1
- package/lib/index.js +2231 -558
- package/lib/plan-mode.js +783 -0
- package/lib/tool-result-pruner.js +400 -0
- package/lib/types/compat.d.ts +1 -1
- package/lib/types/entry-plan-mode-pipeline.d.ts +18 -3
- package/lib/types/entry-plan-mode-pipeline.d.ts.map +1 -1
- package/lib/types/entry-plan-mode.d.ts +353 -0
- package/lib/types/entry-plan-mode.d.ts.map +1 -0
- package/lib/types/entry-tool-result-pruner.d.ts +255 -0
- package/lib/types/entry-tool-result-pruner.d.ts.map +1 -0
- package/lib/types/host/agent-preset.d.ts.map +1 -1
- package/lib/types/host/compaction-policy-guard.d.ts +58 -0
- package/lib/types/host/compaction-policy-guard.d.ts.map +1 -0
- package/lib/types/host/plan-mode-cache-guard.d.ts +16 -0
- package/lib/types/host/plan-mode-cache-guard.d.ts.map +1 -0
- package/lib/types/host/preset-sync.d.ts.map +1 -1
- package/lib/types/host/ptc-sdk-cache-guard.d.ts +80 -0
- package/lib/types/host/ptc-sdk-cache-guard.d.ts.map +1 -0
- package/lib/types/host/tool-result-pruner-guard.d.ts +34 -0
- package/lib/types/host/tool-result-pruner-guard.d.ts.map +1 -0
- package/lib/types/index.d.ts.map +1 -1
- package/package.json +9 -1
- package/presets/dispatch/agent.cordis.yml +53 -22
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,32 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.48.1 - 2026-10-30
|
|
6
|
+
|
|
7
|
+
- **[fix / guards] 修复四个宿主级缓存守卫丢失调用方作用域的缺陷:`tools.register` 等方法不再被钉到根上下文**
|
|
8
|
+
- 根因:Cordis 的 `Service` 代理在读属性时会把方法**绑定到读取它的那一层作用域**。守卫此前用 `const original = tools.register` 取到的是一份**已经绑到根作用域**的函数,再 `original.call(tools, …)` 把根作用域硬塞回每一次注册;`ToolsService.register` 于是按 `scopeOf(this.ctx) === undefined` 落进**全局**工具层,于是第二个 preset 注册同名工具时抛 `tool "list_subagent_models" is already registered (for a per-agent variant, register through that agent's agent.ctx instead)`。
|
|
9
|
+
- 修复:四个守卫统一用 `resolveMethodTarget()` 定位方法——方法在**原型**上时取**原型那份未绑定实现**、并把包装写到原型;包装器一律 `original.call(this, …)`,把**调用方自己的 receiver** 传下去,`this.ctx` 因此留在调用方的 child scope。只有单测里的普通假对象(方法是自有属性)才退回实例。涉及 `src/host/plan-mode-cache-guard.ts`(`tools.register`)、`src/host/ptc-sdk-cache-guard.ts`(`tools.definitions`)、`src/host/tool-result-pruner-guard.ts`(`pruneSession`)、`src/host/compaction-policy-guard.ts`(`compactIfNeeded` / `compactPressure` / `compact` / `summarize`)。
|
|
10
|
+
- 去重:原型由同类的所有实例共享,而修剪器与压缩引擎又是**每个 preset realm 一份**,因此「已包装」按(宿主原型 + 方法名)记账,避免第二个实例叠第二层包装;`dispose()` 还原首次包装时捕获的原型描述符。
|
|
11
|
+
- 回归:新增**真实 Cordis** 多作用域用例——用 `@deepseek-ai/cordis` 的 `Context` / `Service` 造一个按作用域分桶的假工具层,把守卫装在根上下文上,再经 `childA.get('tools').register(…)` 与 `childB.get('tools').register(…)` 注册同名工具,断言 `register` 里的 `this.ctx` 是**调用方**那一层作用域(其原型就是那个子上下文)、两次注册互不撞车(`test/plan-mode-fork.test.ts` 新增 3 例、`test/kimi-cache-guards.test.ts` 新增 2 例)。把 receiver 退回旧的 `original.call(tools, …)` 后这些用例立刻复现现场报错。
|
|
12
|
+
- 文档:`.dsh/skills/dsh-harness-upgrade/SKILL.md` §3a 新增「原型 vs. 代理 receiver」小节,写明这条规则与它的两个衍生陷阱(原型跨实例共享、不得写 `Object.prototype`)。
|
|
13
|
+
|
|
14
|
+
## 0.48.0 - 2026-10-30
|
|
15
|
+
|
|
16
|
+
- **[dispatch / plan-mode] Fork 计划模式服务(`./plan-mode`)并新增宿主跨预设缓存守卫,进出计划模式零前缀重建,恢复完整四段式规划指引**
|
|
17
|
+
- 新增 `src/entry-plan-mode.ts`(导出 `@eddyskywalker/dsh-chatgpt-subscription/plan-mode`)替代 `dispatch` 预设中的 `@deepseek-ai/dsh-plan-mode`:不注册随状态翻转的动态 `plan:policy` 系统提示词分节;`exit_plan_mode` 无条件常驻注册(不挂 `{ when }`),使 native `tools` 与 PTC `tools:sdk` 在进出计划模式时保持逐字节恒定;部署配置的 `section` 改由 `agent/pre-step` 尾部通知消息(`plan-mode-notice`)单次追加,因此恢复 `0.47.0` 之前完整的 2627 字符四段式指引而不再产生每步重发开销;自动协商 `plan` 投影的 `stateVersion`(兼容 ≤0.2.1-rc.5 的 v3 与 ≥0.2.2-alpha 的 v4)。
|
|
18
|
+
- 新增 `src/host/plan-mode-cache-guard.ts`,在宿主层通过 `system-prompt/assemble`、`agent/pre-step` 与 `tools.register` 将内置 `standard` / `ptc` / `cordis` 预设的计划模式同步压平为零前缀重建。
|
|
19
|
+
|
|
20
|
+
- **[dispatch / compaction] Fork 工具结果修剪器(`./tool-result-pruner`)并新增宿主跨预设守卫,恢复非 Kimi 线路修剪、整场跳过 `kimi-code`**
|
|
21
|
+
- 新增 `src/entry-tool-result-pruner.ts`(导出 `@eddyskywalker/dsh-chatgpt-subscription/tool-result-pruner`)重新挂载回 `dispatch` 预设的 `compaction` 隔离组(恢复 `isolate.toolResultPruner`):对 `kimi-code` 会话整场跳过修剪(返回空结果、不触发 `surfaceOp: replace` 历史改写),对 Codex / Claude / OpenDesign 等其他线路照常执行 `8192 / 4096 / 1024` 码点修剪与 `compaction/prune` 影子计价。
|
|
22
|
+
- 新增 `src/host/tool-result-pruner-guard.ts`,在宿主 reflect store 与 `agent.ctx.get('toolResultPruner')` 两处自动包装内置预设的修剪器实例。
|
|
23
|
+
|
|
24
|
+
- **[kimi-code] 新增 PTC `tools:sdk` 冻结守卫与 `compaction-basic` 专属压缩策略守卫**
|
|
25
|
+
- 新增 `src/host/ptc-sdk-cache-guard.ts`:对 `kimi-code` 会话忽略 `tools.definitions(scope, toolSet)` 的步骤级 `toolSet` 过滤并按未过滤工具集指纹缓存 `tools:sdk` 系统段,消除条件工具显隐导致的 `systemPrompt` 重建,同时保留 `tools.executable` 的步骤准入拦截。
|
|
26
|
+
- 新增 `src/host/compaction-policy-guard.ts`:跨预设改写 `compaction-basic` 引擎配置,为 `kimi-code` 注入专属压缩预算(`retainTokens: 8192`、`thresholdRatio: 0.85`、`headroomTokens: 32768`、`maxTokens: 32768`),将压缩后保留尾巴的重算开销从 ~41k tokens 压至 ~8k tokens,并在引擎 `summarize` 接缝原生替换交接式压缩提示词。
|
|
27
|
+
|
|
28
|
+
- **[docs / test] 同步更新 `dsh-harness-upgrade` 维护技能并补齐 85 条专属单测**
|
|
29
|
+
- `.dsh/skills/dsh-harness-upgrade/SKILL.md` 新增 §2 seam 行与 §3a 跨代升级核查清单;`preset-sync.ts` 将两个新子路径加入 `OPTIONALLY_ABSENT_PACKAGES`;新增 `test/plan-mode-fork.test.ts`(36 例)、`test/tool-result-pruner.test.ts`(23 例)、`test/kimi-cache-guards.test.ts`(26 例)。
|
|
30
|
+
|
|
5
31
|
## 0.47.0 - 2026-10-30
|
|
6
32
|
|
|
7
33
|
- **[agent-preset] dispatch 预设新增计划模式管线:访谈收敛后 `enter_plan_mode`,计划在计划模式内写、经 `exit_plan_mode` 审批**
|