memory-eternal 0.26.0 → 0.27.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.
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/.cursor-plugin/plugin.json +1 -1
- package/README.md +1 -1
- package/README.zh-CN.md +1 -1
- package/cursor-extension/package.json +1 -1
- package/dsh-tui-plugin/dsh-plugin.json +1 -1
- package/dsh-tui-plugin/package.json +1 -1
- package/index.js +14 -1
- package/lib/client.js +20 -20
- package/lib/working-memory.js +17 -0
- package/orca-plugin/orca-plugin.json +1 -1
- package/package.json +1 -1
- package/web/app.js +23 -23
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://anthropic.com/claude-code/plugin.schema.json",
|
|
3
3
|
"name": "memory-eternal",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.27.0",
|
|
5
5
|
"description": "记忆核心(Memory Eternal):对话结束后自动沉淀知识卡到本地记忆库(~/.dsh/memory-vault),支持检索 / 召回 / 审核中心。",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "EternalNight996",
|
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
[](https://github.com/EternalNight996/memory-eternal/stargazers)
|
|
17
17
|
[](https://www.npmjs.com/package/memory-eternal)
|
|
18
|
-
[](https://github.com/EternalNight996/memory-eternal/releases)
|
|
19
19
|
[](LICENSE)
|
|
20
20
|
|
|
21
21
|
**English (default)** · [简体中文](README.zh-CN.md)
|
package/README.zh-CN.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
[](https://github.com/EternalNight996/memory-eternal/stargazers)
|
|
17
17
|
[](https://www.npmjs.com/package/memory-eternal)
|
|
18
|
-
[](https://github.com/EternalNight996/memory-eternal/releases)
|
|
19
19
|
[](LICENSE)
|
|
20
20
|
|
|
21
21
|
[English (default)](README.md) · **简体中文(镜像)**
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "memory-eternal",
|
|
3
3
|
"displayName": "Memory Atlas",
|
|
4
4
|
"description": "Memory-eternal: open the local Memory Atlas library, review queue and knowledge graph in a Cursor/VS Code webview.",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.27.0",
|
|
6
6
|
"publisher": "EternalNight996",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"repository": {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "urn:dsh-std:community-draft:dsh-plugin:0.15",
|
|
3
3
|
"id": "memory-eternal-tui",
|
|
4
4
|
"name": "memory-eternal-tui",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.27.0",
|
|
6
6
|
"manifestVersion": "0.15",
|
|
7
7
|
"description": "Open Memory Atlas from dsh-TUI: native /audit scene plus browser launcher.",
|
|
8
8
|
"facets": {
|
package/index.js
CHANGED
|
@@ -26,7 +26,7 @@ const PACKAGE_ROOT = path.resolve(path.dirname(__filename))
|
|
|
26
26
|
const versionRef = (() => { try { const p = JSON.parse(readFileSync(path.join(PACKAGE_ROOT, 'package.json'), 'utf8')); return p.version } catch { return '' } })()
|
|
27
27
|
import z from '@deepseek-ai/schemastery'
|
|
28
28
|
import { defineTool } from '@deepseek-ai/dsh-tools'
|
|
29
|
-
import { workingPrompt, readWorking, writeWorking, clearWorking } from './lib/working-memory.js'
|
|
29
|
+
import { workingPrompt, readWorking, writeWorking, clearWorking, archiveStaleWorking } from './lib/working-memory.js'
|
|
30
30
|
import { ensureVault, search } from './lib/vault.js'
|
|
31
31
|
import { migrateFromMarkdown, setAuditConfig, backupDb } from './lib/db.js'
|
|
32
32
|
import { evaluateStall, MAX_STAMPS } from './lib/stall.js'
|
|
@@ -1341,6 +1341,19 @@ export function apply(ctx, config) {
|
|
|
1341
1341
|
}, 30 * 60 * 1000)
|
|
1342
1342
|
ctx.effect(() => () => clearInterval(purgeTimer), 'memory-eternal: recycle purge timer')
|
|
1343
1343
|
|
|
1344
|
+
// 会话工作区闲置归档:DSH 没有必到的「会话结束」事件,按时间兜底(24h 没动 = 当它结束)。
|
|
1345
|
+
// 先跑一次(启动时清掉上次残留),之后每 30 分钟一次;关闭工作区时整体跳过。
|
|
1346
|
+
const archiveWorkingNow = () => {
|
|
1347
|
+
try {
|
|
1348
|
+
const cfg = settings.get() ?? {}
|
|
1349
|
+
if (cfg.enabled === false || cfg.workingMemoryEnabled === false) return
|
|
1350
|
+
archiveStaleWorking(process.env)
|
|
1351
|
+
} catch { /* 归档失败不影响任何主流程 */ }
|
|
1352
|
+
}
|
|
1353
|
+
const workingKick = setTimeout(archiveWorkingNow, 60 * 1000)
|
|
1354
|
+
const workingTimer = setInterval(archiveWorkingNow, 30 * 60 * 1000)
|
|
1355
|
+
ctx.effect(() => () => { clearTimeout(workingKick); clearInterval(workingTimer) }, 'memory-eternal: working archive timer')
|
|
1356
|
+
|
|
1344
1357
|
// SQLite 定时备份:每天凌晨 3 点自动备份,保留最近 7 天。
|
|
1345
1358
|
let lastBackupDate = ''
|
|
1346
1359
|
const backupTimer = setInterval(async () => {
|