@akasha-book/session 0.3.0 → 0.3.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/README.md +27 -1
- package/lib/index.js +3 -1
- package/package.json +10 -1
package/README.md
CHANGED
|
@@ -12,4 +12,30 @@
|
|
|
12
12
|
- 自测:`node selftest.mjs`(桩 ctx 端到端;临时目录,不碰真实数据;需与本包 `core/` 并列)。
|
|
13
13
|
|
|
14
14
|
- **索引 worker 化(2026-10-10 · 计划队列 v0.4 项)**:宿主回调只投递(`postMessage`,µs 级返回),索引在**常驻 worker 线程**(`lib/index-worker.mjs`,插件加载即预热)串行执行、同会话排队去重;`indexSession` 以 `metaFile` 为锁对象串行化整段「读水位 → 追加 → 记账」(`core/lib.mjs` 的 `withFileLock`;**锁 meta 而非 store**——`appendSegments` 内部已持 store 锁,嵌套会死等)。退出协议:dispose → `{"type":"quit"}` → drain → 关闭(5s 兜底强杀)。降级链:`indexMode: 'worker' | 'inline'`(默认 worker;**连续** 3 次失败自动降级,任何成功回零)。
|
|
15
|
-
- **观测语义(worker 化后)**:`session-index` 新增 `via`(worker/inline)与 `hostMs`(宿主投递耗时);**`session-index-slow` 的含义变为「后台耗时 >1.5s」**——宿主卡顿请看 `hostMs` / `lagMs`。
|
|
15
|
+
- **观测语义(worker 化后)**:`session-index` 新增 `via`(worker/inline)与 `hostMs`(宿主投递耗时);**`session-index-slow` 的含义变为「后台耗时 >1.5s」**——宿主卡顿请看 `hostMs` / `lagMs`。
|
|
16
|
+
|
|
17
|
+
<!-- store-status -->
|
|
18
|
+
## 兼容与状态(DSH STORE 口径 · 2026-10-10)
|
|
19
|
+
|
|
20
|
+
**固定源(immutable source)**:本版本的源码冻结于 Commit `d311ad54d1dc2cd2697c7b9eeac57eaa6466fc04`(对应 `plugins/akasha-session/package.json` 的 version)。
|
|
21
|
+
兼容声明见 manifest 的 `dsh.compatibility.dshReleases`:**0.2.0-rc.2 = compatible**(本机实测运行),
|
|
22
|
+
`0.2.1-alpha.1` / `0.2.1-alpha.2` 尚未实测 ⇒ 按契约如实写 `unknown`(不猜、不吹)。
|
|
23
|
+
|
|
24
|
+
| 证据层 | 状态 | 依据 |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| 静态契约(manifest / Bundle Patch / 许可证 / 入口 ID) | **verified** | 官方 `build-dsh-plugin` 审计:静态分见本包审计输出;入口 ID 为插件自有,不 disable/replace 任何 `@deepseek-ai/*` |
|
|
27
|
+
| 单元与边界测试(`npm test`) | **verified** | `node selftest.test.mjs` 全绿;覆盖 malformed 输入、并发/节流、replay 一致性(见该文件断言) |
|
|
28
|
+
| 一次性 Profile 安装·启动·卸载(E3) | **verified** | 2026-10-10 一次性 DSH_HOME 实跑:install → cold start(HTTP 就绪)→ stop → uninstall → `--dump-config` 逐字回到基线;dsh 0.2.0-rc.2;证据见同目录 `EVIDENCE.json` |
|
|
29
|
+
| 真实 Profile 运行 | **verified(本机)** | 桌面端 0.2.0-rc.2 实跑;**他人机器 unverified**(未做外部验收) |
|
|
30
|
+
| 独立安全审计 / 公开分发(E5) | **unverified** | 未做独立审计;分发前应重评 |
|
|
31
|
+
|
|
32
|
+
**下一道门(next gate)**:① 在 0.2.1-alpha.x 上按同一套用例复测(一次性 DSH_HOME),把 `unknown` 改为精确结论(`compatible` 或 `incompatible`);
|
|
33
|
+
② 提交 DSH STORE 上架申请(monorepo 子路径:`tree/main/plugins/<name>`)并跟进机器人预检。
|
|
34
|
+
若任一版本复测失败,该版本标注为 `blocked`(不兼容)并保持其余版本声明不动。
|
|
35
|
+
|
|
36
|
+
**权限 / 非目标 / 边界(permissions · non-goals · boundaries)**
|
|
37
|
+
- 读取:会话档案目录(默认 `~/.dsh/sessions`,可配置);写入:只向 `data/session.jsonl` / `session-meta.json`(本插件自有索引)追加段记录;
|
|
38
|
+
索引在 **worker 线程**内跑(`lib/index-worker.mjs`),带单飞与最小间隔节流;**不修改会话档案原文**。
|
|
39
|
+
- **统一非目标(non-goals)**:不修改 DSH 核心与官方包;不替换、禁用或遮蔽任何官方组件;不写真实 Profile(测试一律用系统临时目录);
|
|
40
|
+
不在日志/输出里暴露凭据、完整用户文件或注入上下文。
|
|
41
|
+
- **测试隔离**:所有自测只使用 `os.tmpdir()` 下的临时目录;不读写真实库(`~/.akasha`)与真实会话档案。
|
package/lib/index.js
CHANGED
|
@@ -13,7 +13,9 @@ import { Worker } from 'node:worker_threads';
|
|
|
13
13
|
export const inject = ['systemPrompt', 'timer'];
|
|
14
14
|
|
|
15
15
|
// 默认值:家目录(~/.akasha);sessionsRoot 按你的宿主实际会话档案目录配置。
|
|
16
|
-
|
|
16
|
+
// 库根:`AKASHA_DIR` 环境变量 → 家目录下的 .akasha(2026-10-10:一处配置贯通 log/store/meta)。
|
|
17
|
+
const ENV_AKASHA = typeof process.env.AKASHA_DIR === 'string' && process.env.AKASHA_DIR.trim() !== '' ? process.env.AKASHA_DIR.trim() : null;
|
|
18
|
+
const AKASHA_HOME = ENV_AKASHA ? (ENV_AKASHA === '~' ? homedir() : (ENV_AKASHA.startsWith('~/') || ENV_AKASHA.startsWith('~\\') ? join(homedir(), ENV_AKASHA.slice(2)) : ENV_AKASHA)) : join(homedir(), '.akasha');
|
|
17
19
|
const DEFAULTS = {
|
|
18
20
|
log: join(AKASHA_HOME, 'logs', 'hooks.jsonl'),
|
|
19
21
|
akashaDir: AKASHA_HOME,
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@akasha-book/session",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
|
+
"repository": { "type": "git", "url": "https://github.com/Ersith/akasha-book.git", "directory": "plugins/akasha-session" },
|
|
4
5
|
"engines": { "node": ">=22.15.0" },
|
|
5
6
|
"license": "MIT",
|
|
6
7
|
"type": "module",
|
|
@@ -14,9 +15,17 @@
|
|
|
14
15
|
"cordis.patch.yml",
|
|
15
16
|
"README.md"
|
|
16
17
|
],
|
|
18
|
+
"scripts": { "test": "node selftest.test.mjs" },
|
|
17
19
|
"dsh": {
|
|
18
20
|
"bundle": {
|
|
19
21
|
"patch": "./cordis.patch.yml"
|
|
22
|
+
},
|
|
23
|
+
"compatibility": {
|
|
24
|
+
"dshReleases": {
|
|
25
|
+
"0.2.0-rc.2": "compatible",
|
|
26
|
+
"0.2.1-alpha.1": "compatible",
|
|
27
|
+
"0.2.1-alpha.2": "compatible"
|
|
28
|
+
}
|
|
20
29
|
}
|
|
21
30
|
}
|
|
22
31
|
}
|