dsh-session-superagent 0.8.12 → 0.8.13
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 +30 -1
- package/README.md +1 -1
- package/client.js +1 -1
- package/lib/index.js +5 -1
- package/lib/watch.js +2 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
格式参照 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
|
|
4
4
|
|
|
5
|
+
## [0.8.13] - 2026-11-02 —— 真机跑「只观察」闭环,抓出两个真 bug
|
|
6
|
+
|
|
7
|
+
拿真仓库(MYCF711/dsh-GOkifu-compact,3 个真 issue)跑 observe 模式验证,抓到:
|
|
8
|
+
|
|
9
|
+
### 修复
|
|
10
|
+
- **`filteredLog` 从没落过盘**:`filteredLog` 不在 `POLL_RESULT_FIELDS` 白名单里,
|
|
11
|
+
内存里写得好好的,`persistEntry` 一过滤就没了 → 面板「最近被过滤」永远是空的。
|
|
12
|
+
现在进白名单,并补了守门用例。
|
|
13
|
+
- **空轮询不清理 `lastDeferred`**:把过滤器改严之后一条都不该唤醒,但面板仍显示上一轮的
|
|
14
|
+
「仅观察:本轮本会唤醒 4 条(#4 #2 #3 #1)」——那是过期信息。现在 `fresh.length === 0` 时清空。
|
|
15
|
+
|
|
16
|
+
### 真机证据(修复前)
|
|
17
|
+
```
|
|
18
|
+
observe: true
|
|
19
|
+
lastDeferred: 仅观察:本轮本会唤醒 4 条(#4 #2 #3 #1)
|
|
20
|
+
history: [{"numbers":[4,2,3,1],"ok":false,"reason":"observe"}]
|
|
21
|
+
filteredLog: [] ← 改成 labels:["ai-fix"] 后仍为空(3 个 issue 都没这个标签)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### 测试
|
|
25
|
+
- 合计 **79 例**。
|
|
26
|
+
|
|
5
27
|
## [0.8.12] - 2026-11-02 —— 体验打磨四条
|
|
6
28
|
|
|
7
29
|
### 改了什么
|
|
@@ -13,8 +35,15 @@
|
|
|
13
35
|
- **删掉 `/session-superagent/config`**:它和 `/state` 重复,是未鉴权的 GET,而且上一轮
|
|
14
36
|
`ReferenceError: gh is not defined` 就出在它身上。现在路由从 8 条减到 7 条,测试改为断言它已下线。
|
|
15
37
|
|
|
38
|
+
### 发布与验证
|
|
39
|
+
- 已发 `dsh-session-superagent@0.8.12`(registry 确认 `latest=0.8.12`)。
|
|
40
|
+
- **从 registry 真装一遍验证**(不是只看 `npm pack`):
|
|
41
|
+
`npm i dsh-session-superagent@0.8.12` → `import(...)/lib/index.js` → `apply()` 成功、
|
|
42
|
+
路由 **7** 条(`/config` 确实没了)、`node --check client.js` 通过。
|
|
43
|
+
- 新增守门:`lib/` 里每个相对 import 必须能解析到真实文件(发布前挡住 `body.js` 那类事故)。
|
|
44
|
+
|
|
16
45
|
### 测试
|
|
17
|
-
- 合计 **
|
|
46
|
+
- 合计 **78 例**(`/config` 用例改为「路由表里不应再有它」+ 相对 import 守门)。
|
|
18
47
|
|
|
19
48
|
## [0.8.11] - 2026-11-02 —— 真机验证隔离执行 + watch_doctor
|
|
20
49
|
|
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# dsh-session-superagent
|
|
2
2
|
|
|
3
3
|
[](LICENSE)
|
|
4
|
-
[](https://github.com/MYCF711/dsh-session-superagent/releases)
|
|
5
5
|
[](https://www.npmjs.com/package/dsh-session-superagent)
|
|
6
6
|
[](https://github.com/topics/dsh-plugin)
|
|
7
7
|
|
package/client.js
CHANGED
|
@@ -14,7 +14,7 @@ window.__ModuleLoader__.load({
|
|
|
14
14
|
const { useCallback, useEffect, useRef, useState } = React
|
|
15
15
|
|
|
16
16
|
// 客户端版本探针:每次模块加载写一次,用来确认浏览器里跑的是哪一版
|
|
17
|
-
const CLIENT_VERSION = '0.8.
|
|
17
|
+
const CLIENT_VERSION = '0.8.13'
|
|
18
18
|
const BASE = '/session-superagent'
|
|
19
19
|
const ENDPOINT = BASE + '/state'
|
|
20
20
|
const POLL_MS = 5000
|
package/lib/index.js
CHANGED
|
@@ -422,7 +422,11 @@ async function pollOnce(ctx, entry, baseMs) {
|
|
|
422
422
|
const newestAbsorbed = newestUpdatedAt(absorbed)
|
|
423
423
|
if (!entry.cursor || Date.parse(newestAbsorbed) > Date.parse(entry.cursor)) entry.cursor = newestAbsorbed
|
|
424
424
|
}
|
|
425
|
-
if (fresh.length === 0)
|
|
425
|
+
if (fresh.length === 0) {
|
|
426
|
+
// 这一轮没有新增:上一轮的说法(比如「仅观察:本会唤醒 4 条」)已经过期了
|
|
427
|
+
entry.lastDeferred = null
|
|
428
|
+
return
|
|
429
|
+
}
|
|
426
430
|
|
|
427
431
|
// 仅观察模式(对标官方 observe):照常判定,但只记录「本会唤醒哪几条」,不真唤醒
|
|
428
432
|
if (entry.observe === true) {
|
package/lib/watch.js
CHANGED
|
@@ -350,6 +350,8 @@ export const POLL_RESULT_FIELDS = [
|
|
|
350
350
|
'lastPoll', 'lastError', 'nextAt', 'consecutiveFailures', 'seen', 'cursor', 'lastReported',
|
|
351
351
|
'lastWake', 'lastWakeCount', 'lastBatch', 'lastAbsorbed', 'wakeTimes', 'lastDeferred',
|
|
352
352
|
'history', 'lastWorktree', 'lastAcked', 'lastTrigger',
|
|
353
|
+
// 过滤记录也是轮询结果:漏了它面板上的「最近被过滤」永远是空的
|
|
354
|
+
'filteredLog',
|
|
353
355
|
]
|
|
354
356
|
|
|
355
357
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-session-superagent",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.13",
|
|
4
4
|
"description": "Session-level superagent for DeepSeek Harness: watch a GitHub repository and wake a session when something needs doing. Credentials never reach the model.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|