@eddyskywalker/dsh-chatgpt-subscription 0.48.1 → 0.48.3
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 +16 -0
- package/lib/client.js +7 -4
- package/lib/client.js.map +1 -1
- package/lib/index.js +74 -14
- package/lib/types/client/workbuddy/WorkBuddySection.d.ts.map +1 -1
- package/lib/types/compat.d.ts +1 -1
- package/lib/types/host/compaction-policy-guard.d.ts.map +1 -1
- package/lib/types/host/tool-result-pruner-guard.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.48.3 - 2026-10-30
|
|
6
|
+
|
|
7
|
+
- **[WorkBuddy] 修复调整本地额度护栏时设置页白屏**
|
|
8
|
+
- 护栏输入框此前在延迟执行的状态更新中读取已被 React 清空的 `event.currentTarget`,连续输入会触发空引用并卸载整个设置组件;现改为在事件回调中同步捕获草稿值,保留积分、账号日 token 与模型日 token 均可安全连续输入。
|
|
9
|
+
- 新增“保留积分”连续输入回归测试,已验证旧代码会复现白屏,修复后输入值与设置页均保持正常。
|
|
10
|
+
|
|
11
|
+
## 0.48.2 - 2026-10-30
|
|
12
|
+
|
|
13
|
+
- **[fix / guards] 修复两个宿主级缓存守卫吞掉 Cordis 瀑布的 `next()`:每一轮都崩成 `Cannot read properties of undefined (reading 'kind')`**
|
|
14
|
+
- 根因:DSH 的 `agent/pre-step` / `agent/request` / `agent/request-error` 是 Cordis **瀑布**事件(`ctx.waterfall`),监听器签名是 `(payload, next)`,而瀑布的返回值是**最外层监听器的返回值**。`src/host/tool-result-pruner-guard.ts` 与 `src/host/compaction-policy-guard.ts` 的 `handleAgentEvent` 只做副作用扫描(包装修剪器实例 / 观测 provider-model),从不调用也不返回尾部的 `next`——于是瀑布在第一步就被短路:后续监听器(含 `compaction-basic` 在 `agent/request-error` 上的溢出重试)一个都不跑,瀑布返回 `undefined`,`agent-loop`(`packages/core/agent-loop/src/agent.ts:290`)读 `decision.kind` 时抛 `TypeError: Cannot read properties of undefined (reading 'kind')`,**每一轮都崩**。
|
|
15
|
+
- 修复:两个守卫的 `handleAgentEvent` 改成「扫描照旧(失败只吞扫描本身)→ 无条件调用尾部 `next()` → 原样交回它的结果」。`next` 按结构取(最后一个参数且 `typeof === 'function'`);没有 `next` 的老代 / 替身场景返回 `undefined` 而不抛错。结构探测(`isRecord` / `readContext` / `observeFrom`)本来就以 `typeof value === 'object'` 判定,函数天然被跳过,不会被误当成载荷。
|
|
16
|
+
- 事件面对齐:修剪器守卫此前只订阅 `agent/pre-step` 与 `agent/request-error`,现在与压缩策略守卫一致地订阅 `agent/pre-step` / `agent/request` / `agent/request-error` 三个瀑布事件。
|
|
17
|
+
- 回归:`test/tool-result-pruner.test.ts`(29 例)与 `test/kimi-cache-guards.test.ts`(34 例)新增「瀑布事件的 next() 转交」用例——用 `(payload, next)` 派发,断言监听器调用了 `next()` 并**原样**返回 `{ kind: 'enter', messages: [] }`;覆盖「`agent.ctx` 在场」「`agent.ctx` 缺席」「扫描抛错」三条分支,外加「没有 `next` 参数时返回 `undefined`」。把修复回退后这批用例立刻变红(10 例失败)。
|
|
18
|
+
- 文档:`.dsh/skills/dsh-harness-upgrade/SKILL.md` §3a 新增「Cordis waterfall events: every listener must call and return `next()`」小节,写明这条不变量、四条推导规则与本插件全部瀑布监听器的对照表。
|
|
19
|
+
- 影响面:自 0.48.0 引入宿主级守卫以来,所有装了这四个守卫的会话**每一轮**都受影响。
|
|
20
|
+
|
|
5
21
|
## 0.48.1 - 2026-10-30
|
|
6
22
|
|
|
7
23
|
- **[fix / guards] 修复四个宿主级缓存守卫丢失调用方作用域的缺陷:`tools.register` 等方法不再被钉到根上下文**
|
package/lib/client.js
CHANGED
|
@@ -19863,10 +19863,13 @@ window.__ModuleLoader__.load({
|
|
|
19863
19863
|
step: 1,
|
|
19864
19864
|
disabled: busy !== null,
|
|
19865
19865
|
value: guardrailDrafts[field] ?? String(status?.guardrails?.[field] ?? 0),
|
|
19866
|
-
onChange: (event) =>
|
|
19867
|
-
|
|
19868
|
-
|
|
19869
|
-
|
|
19866
|
+
onChange: (event) => {
|
|
19867
|
+
const draft = event.currentTarget.value;
|
|
19868
|
+
setGuardrailDrafts((prev) => ({
|
|
19869
|
+
...prev,
|
|
19870
|
+
[field]: draft
|
|
19871
|
+
}));
|
|
19872
|
+
},
|
|
19870
19873
|
onBlur: () => {
|
|
19871
19874
|
const draft = guardrailDrafts[field];
|
|
19872
19875
|
if (draft === void 0) return;
|