@lovenndme/dsh-workspace-memory 0.8.2 → 0.8.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 CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.8.3 — 2026-11-15
4
+
5
+ - ci: note why windows+node 18 is intentionally not in the matrix
6
+ - fix: use fileURLToPath instead of import.meta.dirname so tests run on node 18
7
+ - ci: add scheduled multi-platform test workflow (ubuntu 18/20, windows 20)
8
+ - fix: ship scripts/install-deps.mjs so the README step works after npm install
9
+ - docs: record the npm publish and the Linux-only CI failures
10
+
11
+
3
12
  ## 0.8.2 — 2026-11-15
4
13
 
5
14
  - release: v0.8.1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lovenndme/dsh-workspace-memory",
3
- "version": "0.8.2",
3
+ "version": "0.8.3",
4
4
  "description": "Workspace-scoped persistent memory for DeepSeek Harness, laid out like Claude Code's memory: English-slug memory files flat beside a MEMORY.md index under ~/.dsh/projects/<encoded-workspace>/memory/, with hybrid vector + keyword recall (vectors stay in process memory, nothing derived is written to disk).",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -22,7 +22,8 @@
22
22
  "icon.svg",
23
23
  "README.md",
24
24
  "CHANGELOG.md",
25
- "LICENSE"
25
+ "LICENSE",
26
+ "scripts/install-deps.mjs"
26
27
  ],
27
28
  "keywords": [
28
29
  "dsh",
@@ -0,0 +1,64 @@
1
+ /**
2
+ * 把 leanvec 装进**插件自有的依赖目录**。
3
+ *
4
+ * 为什么不用 profile 的 node_modules:本插件是以 link(junction)方式装进 profile 的,
5
+ * pnpm **不保证为 link 目标安装依赖**。leanvec 因此曾在一次 `pnpm install` 后被静默剪掉,
6
+ * 向量检索退化成纯关键词。
7
+ *
8
+ * 所以用一个不受 profile 依赖图影响的位置,用 npm 装:
9
+ * ~/.dsh/dsh-workspace-memory-deps/node_modules/leanvec
10
+ * 插件解析 leanvec 时会在「常规模块解析」之后优先查这里。
11
+ *
12
+ * 用法:node scripts/install-deps.mjs
13
+ * 体积提示:leanvec 的向量表约 85 MB,首次安装会下载较久。
14
+ */
15
+ import { execFileSync } from 'node:child_process'
16
+ import { existsSync, mkdirSync, readFileSync } from 'node:fs'
17
+ import os from 'node:os'
18
+ import path from 'node:path'
19
+
20
+ const target = path.join(os.homedir(), '.dsh', 'dsh-workspace-memory-deps')
21
+ const moduleDir = path.join(target, 'node_modules', 'leanvec')
22
+ const entry = path.join(moduleDir, 'src', 'embed.mjs')
23
+ const table = path.join(moduleDir, 'dist', 'leanvec.f32')
24
+
25
+ function report() {
26
+ if (!existsSync(entry)) return false
27
+ const ok = existsSync(table)
28
+ let version = '?'
29
+ try {
30
+ version = JSON.parse(readFileSync(path.join(moduleDir, 'package.json'), 'utf8')).version
31
+ } catch {
32
+ // 版本读不到不影响可用性
33
+ }
34
+ console.log(` leanvec ${version} 已就位:${moduleDir}`)
35
+ console.log(` 向量表: ${ok ? '存在' : '缺失(会退化为纯关键词)'}`)
36
+ return ok
37
+ }
38
+
39
+ console.log(`目标目录: ${target}`)
40
+
41
+ if (report()) {
42
+ console.log('\n已安装,无需重复安装。')
43
+ process.exit(0)
44
+ }
45
+
46
+ mkdirSync(target, { recursive: true })
47
+ console.log('\n正在用 npm 安装 leanvec(约 85 MB,首次较慢)…')
48
+
49
+ try {
50
+ // 用整条命令串 + shell,避免「shell:true 与参数数组并用」的注入告警
51
+ const command = `npm install --prefix "${target}" --no-save --no-package-lock leanvec@^0.2.0`
52
+ execFileSync(command, { stdio: 'inherit', shell: true, timeout: 600000 })
53
+ } catch (error) {
54
+ console.error(`\n安装失败:${error?.message ?? error}`)
55
+ console.error('插件仍可用,但向量检索会退化为纯关键词模式。')
56
+ process.exit(1)
57
+ }
58
+
59
+ console.log('')
60
+ if (!report()) {
61
+ console.error('安装命令成功,但目录结构不符合预期(缺 src/embed.mjs 或 dist 资源)。')
62
+ process.exit(1)
63
+ }
64
+ console.log('\n完成。若插件已在运行,需要重载一次插件才会切换到向量模式。')