sessionmem 1.2.0 → 1.4.0

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.
Files changed (41) hide show
  1. package/.github/sessionmem-logo.svg +57 -0
  2. package/CHANGELOG.md +84 -0
  3. package/CONTRIBUTING.md +130 -0
  4. package/README.md +153 -82
  5. package/SECURITY.md +33 -0
  6. package/dist/cli/commands/dedupe.js +89 -22
  7. package/dist/cli/commands/import.js +15 -44
  8. package/dist/cli/commands/ingestHook.js +107 -18
  9. package/dist/cli/commands/install.js +3 -3
  10. package/dist/cli/commands/list.js +3 -0
  11. package/dist/cli/commands/run.js +10 -12
  12. package/dist/cli/commands/savings.js +3 -1
  13. package/dist/cli/commands/search.js +8 -4
  14. package/dist/cli/commands/stats.js +7 -0
  15. package/dist/cli/commands/uninstall.js +2 -1
  16. package/dist/cli/context.js +8 -6
  17. package/dist/cli/index.js +8 -17
  18. package/dist/cli/projectId.js +48 -2
  19. package/dist/core/api/contracts.js +6 -1
  20. package/dist/core/api/memoryCoreService.js +17 -3
  21. package/dist/core/config/policyConfig.js +5 -1
  22. package/dist/core/injection/tokenBudget.js +10 -2
  23. package/dist/core/retrieve/retrieveMemories.js +1 -1
  24. package/dist/core/schema/runMigrations.js +9 -5
  25. package/dist/core/storage/db.js +31 -9
  26. package/dist/core/storage/memoryRepo.js +1 -1
  27. package/dist/core/storage/memorySearchRepo.js +36 -14
  28. package/dist/core/storage/sessionEventsRepo.js +21 -0
  29. package/dist/core/summarize/cloudSummarizer.js +3 -8
  30. package/dist/core/summarize/redaction.js +70 -10
  31. package/dist/core/summarize/summaryShape.js +50 -20
  32. package/docs/architecture.md +53 -0
  33. package/docs/benchmark.md +50 -0
  34. package/docs/cloud-summarization.md +57 -0
  35. package/docs/migration.md +42 -0
  36. package/docs/privacy-and-retention.md +139 -0
  37. package/docs/team-mode.md +117 -0
  38. package/docs/troubleshooting.md +78 -0
  39. package/docs/typescript-upgrade.md +48 -0
  40. package/package.json +26 -13
  41. package/dist/core/session.js +0 -4
@@ -0,0 +1,48 @@
1
+ # TypeScript 7 upgrade status
2
+
3
+ The supported development toolchain currently uses TypeScript 6.0.3. Do not
4
+ force TypeScript 7 into the dependency tree or disable peer dependency checks.
5
+ This is a tooling compatibility issue, not an application type error.
6
+
7
+ ## Why Dependabot PR #21 fails
8
+
9
+ PR #21 upgrades `typescript` from 6.0.3 to 7.0.2. On every CI platform, `npm ci`
10
+ fails with `ERESOLVE` before lint, typecheck, build, or tests run:
11
+
12
+ - The PR's typescript-eslint 8.62.1 requires `typescript >=4.8.4 <6.1.0`.
13
+ - The latest published typescript-eslint checked for this review, 8.71.2,
14
+ still has that peer requirement. Updating the linter alone does not fix it.
15
+ - A separate scratch installation forced to TypeScript 7.0.2 plus
16
+ typescript-eslint 8.71.2 fails on import with
17
+ `Error: typescript-eslint does not support TS 7.0.`
18
+ - TypeScript 7's root export provides version information, not the previous
19
+ compiler API: `createSourceFile` and `SyntaxKind` are both undefined.
20
+ The new `typescript/unstable/*` APIs are not drop-in replacements for tools
21
+ that consume TypeScript 6's API.
22
+
23
+ The standalone TypeScript 7.0.2 compiler successfully typechecks this repository
24
+ with `tsc --noEmit -p tsconfig.json`. That does not make the whole toolchain
25
+ compatible: ESLint imports typescript-eslint from `eslint.config.mjs`, so bypassing
26
+ npm's peer checks still leaves lint broken. No application or tsconfig change
27
+ can supply the missing upstream API.
28
+
29
+ ## Upgrade criteria
30
+
31
+ Keep TypeScript 6 until typescript-eslint explicitly supports the selected
32
+ TypeScript 7 release and its import/parser work with that compiler. Dependabot
33
+ continues TypeScript 6 updates; TypeScript 7+ version updates are temporarily
34
+ ignored to avoid recreating a known failing PR. Remove that ignore when support
35
+ lands, update TypeScript and typescript-eslint together, regenerate the lockfile
36
+ with normal peer resolution, and run:
37
+
38
+ ```bash
39
+ npm ci
40
+ npm run build
41
+ npm run typecheck
42
+ npm run lint
43
+ npm test
44
+ ```
45
+
46
+ All CI operating systems and Node versions, including packaged-install smoke
47
+ tests and the security job, must pass before accepting the upgrade. Revisit
48
+ [PR #21](https://github.com/catfish-1234/sessionmem/pull/21) at that point.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sessionmem",
3
- "version": "1.2.0",
3
+ "version": "1.4.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Local-first MCP memory layer for coding agents across Claude Code, Codex, Cursor, Cline, Windsurf, and other MCP-compatible hosts.",
@@ -12,7 +12,12 @@
12
12
  },
13
13
  "mcpName": "io.github.catfish-1234/sessionmem",
14
14
  "files": [
15
- "dist"
15
+ "dist",
16
+ "docs",
17
+ "CHANGELOG.md",
18
+ "SECURITY.md",
19
+ "CONTRIBUTING.md",
20
+ ".github/sessionmem-logo.svg"
16
21
  ],
17
22
  "publishConfig": {
18
23
  "access": "public"
@@ -28,23 +33,31 @@
28
33
  "lint": "eslint .",
29
34
  "typecheck": "tsc --noEmit",
30
35
  "benchmark": "node scripts/benchmark.mjs",
31
- "postversion": "node -e \"const v=require('./package.json').version; ['package/package.json','.claude-plugin/plugin.json','server.json'].forEach(f=>{const o=require('./'+f);o.version=v;if(o.packages&&o.packages[0])o.packages[0].version=v;require('fs').writeFileSync('./'+f,JSON.stringify(o,null,2)+'\\n')})\" && npm run build"
36
+ "version": "node scripts/sync-version.mjs && git add package/package.json .claude-plugin/plugin.json server.json Dockerfile",
37
+ "postversion": "npm run build"
32
38
  },
33
39
  "dependencies": {
34
- "@anthropic-ai/sdk": "^0.105.0",
35
- "@modelcontextprotocol/sdk": "^1.29.0",
36
- "better-sqlite3": "^12.4.1",
37
- "commander": "^15.0.0",
40
+ "@anthropic-ai/sdk": "^0.135.0",
41
+ "@modelcontextprotocol/sdk": "^1.32.1",
42
+ "better-sqlite3": "^12.11.1",
43
+ "commander": "^14.0.3",
38
44
  "js-tiktoken": "^1.0.21",
39
- "zod": "^4.4.3"
45
+ "zod": "^4.6.7"
40
46
  },
41
47
  "devDependencies": {
42
48
  "@eslint/js": "^10.0.1",
43
- "@types/better-sqlite3": "^7.6.13",
44
- "eslint": "^10.4.1",
45
- "globals": "^17.6.0",
49
+ "@types/better-sqlite3": "^9.6.0",
50
+ "eslint": "^10.12.0",
51
+ "globals": "^17.13.0",
46
52
  "typescript": "^6.0.3",
47
- "typescript-eslint": "^8.61.0",
53
+ "typescript-eslint": "^8.71.2",
48
54
  "vitest": "^4.1.8"
49
- }
55
+ },
56
+ "engines": {
57
+ "node": "^20.19.0 || >=22.13.0"
58
+ },
59
+ "bugs": {
60
+ "url": "https://github.com/catfish-1234/sessionmem/issues"
61
+ },
62
+ "homepage": "https://github.com/catfish-1234/sessionmem#readme"
50
63
  }
@@ -1,4 +0,0 @@
1
- export function onSessionDisconnect(adapterName, error) {
2
- const reason = error ? error.message : "unknown cause";
3
- console.warn(`[sessionmem] ${adapterName} disconnected mid-session (${reason}). Continuing.`);
4
- }