memory-eternal 0.10.45 → 0.10.47
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.en.md +5 -3
- package/README.md +5 -3
- package/lib/client.js +16 -16
- package/package.json +1 -1
- package/web/app.js +10 -10
|
@@ -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.10.
|
|
4
|
+
"version": "0.10.47",
|
|
5
5
|
"description": "记忆核心(Memory Eternal):对话结束后自动沉淀知识卡到本地记忆库(~/.dsh/memory-vault),支持检索 / 召回 / 审核中心。",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "EternalNight996",
|
package/README.en.md
CHANGED
|
@@ -361,14 +361,16 @@ curl http://127.0.0.1:7999/memory-eternal/api/web-info # is the standalone we
|
|
|
361
361
|
|
|
362
362
|
| Version | Date | Highlights |
|
|
363
363
|
|---|---|---|
|
|
364
|
-
| **v0.10.
|
|
365
|
-
| **v0.10.
|
|
364
|
+
| **v0.10.47** | 2026-10-19 | **The panel version probe now refreshes itself, and the "resident not running" wording is fixed (user report: the panel kept saying "resident instance: not running" after a restart)**. ① The instance was in fact alive (status showed 7999 listening and serving v0.10.46), but the probe ran only once when the panel mounted, so a run that happened to land inside the restart window was cached as "not running" and stuck. It now **re-checks silently every 60 seconds** (without lighting up the Check-for-updates button) and **immediately when the tab becomes visible** (visibilitychange); a restart already triggers a re-check six seconds later. ② When the resident really is down, the hint used to interpolate an empty "currently v"; it now uses vcRestartStart: "Starts the resident instance on the current disk version v{disk} (no DSH restart needed)". npm test now runs **408 checks** |
|
|
365
|
+
| **v0.10.46** | 2026-10-19 | **The "restart resident instance" button is now always shown, and the "which one is stale" wording is fixed (second user report of the button disappearing)**. The previous build put the button inside the "resident needs restart" branch, while the real state was "the resident is already current, but the process serving this page (the DSH host) is stale", so it fell into the host-hint branch and the button vanished again; worse, the warning claimed clicking restart-resident would fix it even though restarting the resident never changes the host-served page. Now: ① the button depends only on vc existing; ② each of the three states gets an accurate explanation — resident stale (click and it upgrades without restarting DSH) / host stale (restarting the resident does not affect this page, restart DSH) / everything current (force restart if it looks stuck); ③ the warning text is split into vcHostProcessStale, making clear that the page is served by the host process. npm test now runs **406 checks** |
|
|
366
366
|
|
|
367
367
|
<details>
|
|
368
|
-
<summary>Older release notes (v0.10.
|
|
368
|
+
<summary>Older release notes (v0.10.45 and earlier · 72 releases, click to expand)</summary>
|
|
369
369
|
|
|
370
370
|
| Version | Date | Highlights |
|
|
371
371
|
|---|---|---|
|
|
372
|
+
| **v0.10.45** | 2026-10-19 | **Fixes the disappearing "restart resident instance" button and the dialog layout / scrollbar anomalies (from user screenshots)**. ① **The button is persistent**: it used to live inside the warning block that only renders when something is wrong, so once versions matched the whole block vanished and the button could not be found (issue #28 complained about the same). The action row now renders independently: it is the repair entry point when something is off, and stays available when everything is fine, with a note that a restart is usually unnecessary but can be forced if the instance looks stuck. ② **Scrollbar anomalies**: the reader can have up to eight header buttons while 0.10.42 made the action group nowrap, so it overflowed horizontally inside a max-width:760px dialog; each button still never shrinks or wraps, but the **group itself may wrap** onto a second row without deforming. ③ **Layout**: .me-dialog and .me-dialog-body use border-box and hide horizontal scrolling in the body (the reader width:100% plus padding no longer breaks out of the container), diagnostic/feedback pre blocks use word-break for long paths, and large-title modals ellipsize their h2. Adds tests/ui-overflow.test.mjs (4 guards). npm test now runs **406 checks** |
|
|
373
|
+
| **v0.10.44** | 2026-10-19 | **UI experience, batch two: click a tag to filter, plus search hit snippets**. ① **Tag filtering**: tag chips in the list and the reader are now clickable and filter immediately (combining with search, kind and status); the toolbar shows a removable "tag x" chip. The server-side /cards?tag= uses an exact SQL match on the quoted complete tag inside the JSON array (instr), so **ab is never matched by a**, and both the countCards and sort=title branches apply it. ② **Search hit snippets**: when the match is in the body, the list shows a short excerpt around the keyword with highlighting (whitespace collapsed, ellipses at both ends), so it is obvious why a card matched. ③ Adds src/client/snippet.js (pure, unit-testable in Node) and tests/tag-filter.test.mjs (3 checks). npm test now runs **402 checks** |
|
|
372
374
|
| **v0.10.43** | 2026-10-19 | **UI experience, batch one: reading a card**. ① **Copy**: the reader gains "copy body" and "copy path", reusing the clipboard helper that has a manual fallback, with a "copied" confirmation for 1.5s (no more silent clicks); ② **Reading progress**: a 2px bar under the header advances as the body scrolls, and short cards read 100% immediately; ③ **j/k paging**: j goes to the next card and k to the previous one (following the current sorted list), while the arrow keys still scroll the body and typing in an input never triggers paging; ④ **Reading width**: narrow/medium/wide (720/900/1180px) cycling with the preference remembered; ⑤ keeps the 0.10.42 header fix. Adds tests/card-reader-ux.test.mjs (4 guards). npm test now runs **399 checks** |
|
|
373
375
|
| **v0.10.42** | 2026-10-19 | **Card headers no longer get squeezed by long titles (from user screenshots)**. The old layout used space-between while h3 had no min-width:0 (so a long title could not shrink) and the action group had no flex:0 0 auto / nowrap, so the buttons were squashed into vertical stacks ("collapse", "close"). Now h3 shrinks and **ellipsizes on one line** (hover shows the full title), the action group is flex:0 0 auto + nowrap (never squashed), and the header may wrap (on very narrow widths the whole group drops to a second row and stays clickable); both multi-button headers (reader and export graph) share the .me-head-actions class. Adds tests/card-head-actions.test.mjs (3 guards). npm test now runs **395 checks** |
|
|
374
376
|
| **v0.10.41** | 2026-10-19 | **The knowledge graph initial view is zoomed out two steps**. The graph is canvas + sim.zoom with one wheel notch = x1.1, so "two steps" means x(1/1.1)^2 ≈ **0.826**: the initial fit() (first paint, after layout settles, and the Reset view button) now starts from the exact-fit scale and backs off those two notches, leaving room to drag and marquee-select around the edges; the wheel and the initial view **share the same ZOOM_STEP constant** so future step changes cannot drift apart; the existing clamps (0.35-1.8) stay, so a tiny graph is never shrunk out of sight. Adds tests/graph-initial-zoom.test.mjs (3 source guards, including the numeric factor). npm test now runs **392 checks** |
|
package/README.md
CHANGED
|
@@ -393,14 +393,16 @@ curl http://127.0.0.1:7999/memory-eternal/api/web-info # 独立 web 是否活
|
|
|
393
393
|
|
|
394
394
|
| 版本 | 日期 | 关键改动 |
|
|
395
395
|
|---|---|---|
|
|
396
|
-
| **v0.10.
|
|
397
|
-
| **v0.10.
|
|
396
|
+
| **v0.10.47** | 2026-10-19 | **面板版本探针自动复查 + 「常驻未运行」文案修正(用户反馈:重启后面板一直显示「常驻实例 未运行」)**。① 现场其实**是活的**(status 显示 7999 在听、服务 v0.10.46),但版本探针只在面板挂载时跑一次 —— 恰好撞上重启窗口就会被缓存成「未运行」并一直显示。现在**每 60 秒静默复查**(不点亮「检查更新」按钮)+ **切回页面立刻复查**(visibilitychange),重启后 6 秒本来就会复查一次。② 文案:常驻实例真没跑时,原来那句会拼出「当前 v」(空值);现在改走 vcRestartStart:**「点击会用当前磁盘版本 v{disk} 把常驻实例拉起来(不用重启 DSH)」**。npm test 共 **408 项** |
|
|
397
|
+
| **v0.10.46** | 2026-10-19 | **「重启常驻实例」按钮改为**永远显示** + 修正「谁旧」的文案(用户第二次反馈按钮消失)**。上一版把按钮放进「常驻实例需要重启」的分支,而实际状态是**常驻实例已是新版、服务本页的进程(DSH 宿主)还是旧版** → 落进宿主提示分支、按钮又没了;更糟的是警告文案写着「点重启常驻实例即可」,而重启常驻根本不会改变宿主提供给你的本页版本。现在:① 按钮**只依赖 vc 存在**,任何状态都在;② 三种状态各给准确说明 —— 常驻旧(点了就换新版,不用重启 DSH)/ 宿主旧(重启常驻**不影响本页**,请重启 DSH)/ 全部对齐(卡住时可强制重启);③ 警告文案拆出 vcHostProcessStale,明确「服务本页的是宿主进程」。npm test 共 **406 项** |
|
|
398
398
|
|
|
399
399
|
<details>
|
|
400
|
-
<summary>更早的更新日志(v0.10.
|
|
400
|
+
<summary>更早的更新日志(v0.10.45 及以前 · 共 72 版,点开查看)</summary>
|
|
401
401
|
|
|
402
402
|
| 版本 | 日期 | 关键改动 |
|
|
403
403
|
|---|---|---|
|
|
404
|
+
| **v0.10.45** | 2026-10-19 | **修复「重启常驻实例」按钮消失 + 对话框排版/滚动条异常(用户截图反馈)**。① **按钮常驻**:它原来被包在「有异常才渲染」的警告块里 —— 版本一对齐整块消失,用户再也找不到(#28 也抱怨过)。现在操作行**独立渲染**:异常时是修复入口,一切正常时也保留按钮并说明「通常无需重启,卡住时可强制重启」。② **滚动条异常**:阅读器最多 8 个头部按钮,而 0.10.42 给按钮组设的是 nowrap → 在 max-width:760px 的对话框里**横向溢出**;现在按钮自身仍不缩不换行、但**按钮组整体允许换行**(掉到第二行也不变形)。③ **排版**:.me-dialog / .me-dialog-body 改 border-box 并隐藏正文横向滚动(阅读器的 width:100% + padding 不再撑破容器);诊断/反馈的 <pre> 长路径加 word-break(远程 agent 的路径没有断点,以前必横向滚);大标题 modal 的 h2 加省略号。新增 tests/ui-overflow.test.mjs(4 项守卫)。npm test 共 **406 项** |
|
|
405
|
+
| **v0.10.44** | 2026-10-19 | **界面体验(第二批):标签点击即筛选 + 搜索命中片段**。① **标签筛选**:列表/阅读器里的标签芯片现在可点,点了立即按该标签筛(与搜索 / 类型 / 状态**可叠加**);工具栏出现可清除的「🏷 标签 ✕」。服务端 /cards?tag= 走 SQL 精确匹配 —— 按「JSON 数组里带引号的完整标签」用 instr 匹配,**不会把 ab 命中成 a**;countCards 与 sort=title 两条分支同步生效。② **搜索命中片段**:命中正文时,列表多显示一段**关键词附近的片段并高亮**(折叠空白、两端省略),一眼看出「为什么命中」。③ 新增 src/client/snippet.js(纯函数,Node 可单测)+ tests/tag-filter.test.mjs(3 项)。npm test 共 **402 项** |
|
|
404
406
|
| **v0.10.43** | 2026-10-19 | **界面体验(第一批 · 读卡)**。① **复制**:阅读器新增「📋 复制正文」「🔗 复制路径」,复用带兜底的剪贴板工具,1.5s 内显示「已复制」(不再点了没反应);② **阅读进度**:头部下沿 2px 细条随正文滚动推进,短卡直接 100%;③ **j/k 翻页**:阅读器内 j 下一张、k 上一张(基于当前排序后的列表),**方向键仍留给正文滚动**,输入框内不触发;④ **阅读宽度**:窄/中/宽三档(720/900/1180px)一键切换并记住偏好;⑤ 延续 0.10.42 的头部不挤压修复。新增 tests/card-reader-ux.test.mjs(4 项守卫)。npm test 共 **399 项** |
|
|
405
407
|
| **v0.10.42** | 2026-10-19 | **卡片头部不再被长标题挤压(用户截图反馈)**。旧布局是 space-between,而 h3 没有 min-width:0(长标题压不动),按钮组也没有 flex:0 0 auto / nowrap → 按钮被挤成竖排(「收/起」「关/闭」)。现在:h3 可收缩并**单行省略**(悬停显示完整标题)、按钮组 flex:0 0 auto + nowrap(永不被压扁)、头部允许换行(极窄时整组按钮掉到第二行,仍逐个可点);阅读器与导出图谱两个头部统一走 .me-head-actions。新增 tests/card-head-actions.test.mjs(3 项守卫)。npm test 共 **395 项** |
|
|
406
408
|
| **v0.10.41** | 2026-10-19 | **知识图谱初始视图缩小两个度**。图谱是 canvas + sim.zoom,滚轮每格 ×1.1;按「两个度」= ×(1/1.1)² ≈ **0.826** 处理 —— 初始 fit()(首屏、布局稳定后、以及「重置视图」)现在都在「刚好铺满」的基础上再外扩两格,四周留出拖拽/框选余量;滚轮与初始视图**共用同一个 ZOOM_STEP 常量**,以后调步长不会两边漂;原有限幅(0.35–1.8)保留,小图不会被缩到看不见。新增 tests/graph-initial-zoom.test.mjs(3 项源码守卫,含系数数值)。npm test 共 **392 项** |
|