dsh-prime-memory 0.20.0-beta.21 → 0.20.0-beta.23
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 +16 -0
- package/dist/client.js +39 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -17,6 +17,22 @@
|
|
|
17
17
|
- **建议状态(`longtask-hint-get`)以纯端点提供**:判定 = 上下文占用达 `contextThresholdPct` 或 todo 漂移达 `driftThreshold`(部署配置可调);配合 `longtask-compress-tail` 作手动压缩入口。
|
|
18
18
|
- **撤下浮动球 UI(`client/src/longtask-fab.ts`;beta.1 起曾随包发布)**:悬浮建议面板的归属本在 context-compression 侧(「建议启动压缩」是其领域),pm 属误载——2026-10-02 用户裁定撤下。撤下不违座位契约(settings.section 恰一个 + 输入栏 pill,body 单例不占座位),但全应用级 overlay 会与其他插件的悬浮 UI 抢占屏幕角落;长任务开关与手动压缩入口待长任务定版时落记忆设置分节。
|
|
19
19
|
- **`session-mode-set` 的 `mode` 转为可选**:与 `longTask` 二选一必传——纯切长任务开关不再被迫发送档位(旧客户端恒传 mode,行为不变)。响应 `mode` 改回当前生效值。
|
|
20
|
+
## [0.20.0-beta.23] — 2026-10-02
|
|
21
|
+
|
|
22
|
+
> **Room 页退场筛选补齐**(beta.22 的筛选 chips 因补丁脚本中途失败未落盘,仅徽标进了包——本次逐项 Edit 落盘并全绿验证)。
|
|
23
|
+
|
|
24
|
+
### 修复/新增
|
|
25
|
+
|
|
26
|
+
- **退场筛选 chips**(Room 页,注册表单上方):全部 / 活跃(词表未退役)/ 已退役。
|
|
27
|
+
- **退场效果立现**:展开条目只拉**活跃**记录(`retired:false`)——退场后展开区即「暂无记忆条目」;退场确认后若该 room 展开中**自动刷新**;[已退场] 徽标 + 置灰兜底(beta.22 已含)。
|
|
28
|
+
## [0.20.0-beta.22] — 2026-10-02
|
|
29
|
+
|
|
30
|
+
> 退场效果可见性 + Room 页退场筛选(实测反馈:退场确认后界面无变化、无从筛选)。
|
|
31
|
+
|
|
32
|
+
### 修复/新增
|
|
33
|
+
|
|
34
|
+
- **退场效果立现**:Room 页展开条目只拉**活跃**记录(`retired:false`)——退场后展开区即显示「该 Room 暂无记忆条目」;退场确认后若该 room 正展开则**自动刷新**其条目;混排兜底:已退场条目显示 [已退场] 徽标并置灰。
|
|
35
|
+
- **退场筛选**:Room 页新增「全部 / 活跃 / 已退役」chips(词表退役态过滤)。
|
|
20
36
|
## [0.20.0-beta.21] — 2026-10-02
|
|
21
37
|
|
|
22
38
|
> **退役带记录**:room 退役时可选**连同其下全部活跃记忆一并退场**(此前只有动词表,自生长 room 尤其没有处理手段)。
|
package/dist/client.js
CHANGED
|
@@ -4493,6 +4493,7 @@ var __defProp = Object.defineProperty;
|
|
|
4493
4493
|
const [editing, setEditing] = (0, import_react17.useState)(null);
|
|
4494
4494
|
const [renaming, setRenaming] = (0, import_react17.useState)(null);
|
|
4495
4495
|
const [expanded, setExpanded] = (0, import_react17.useState)(/* @__PURE__ */ new Set());
|
|
4496
|
+
const [retiredFilter, setRetiredFilter] = (0, import_react17.useState)("");
|
|
4496
4497
|
const [records, setRecords] = (0, import_react17.useState)({});
|
|
4497
4498
|
const loadAll = (0, import_react17.useCallback)(() => {
|
|
4498
4499
|
rpc("dsh-memory/rooms-get", {}).then((r) => {
|
|
@@ -4597,6 +4598,10 @@ var __defProp = Object.defineProperty;
|
|
|
4597
4598
|
if (r && r.ok) {
|
|
4598
4599
|
setMsg(String(r.value?.notice ?? "完成"));
|
|
4599
4600
|
loadAll();
|
|
4601
|
+
if (expanded.has(slug)) {
|
|
4602
|
+
const rr = await rpc("dsh-memory/list-records", { tag: slug, limit: 10, retired: false });
|
|
4603
|
+
if (rr && rr.ok) setRecords((m) => ({ ...m, [slug]: { items: rr.value.items, total: rr.value.total ?? null } }));
|
|
4604
|
+
}
|
|
4600
4605
|
} else setError(r && r.error ? r.error.message : "操作失败");
|
|
4601
4606
|
});
|
|
4602
4607
|
const exportRecords = (slug) => run(async () => {
|
|
@@ -4622,7 +4627,7 @@ var __defProp = Object.defineProperty;
|
|
|
4622
4627
|
setExpanded(next);
|
|
4623
4628
|
return;
|
|
4624
4629
|
}
|
|
4625
|
-
const r = await rpc("dsh-memory/list-records", { tag: slug, limit: 10 });
|
|
4630
|
+
const r = await rpc("dsh-memory/list-records", { tag: slug, limit: 10, retired: false });
|
|
4626
4631
|
if (r && r.ok) {
|
|
4627
4632
|
const next = new Set(expanded);
|
|
4628
4633
|
next.add(slug);
|
|
@@ -4634,7 +4639,11 @@ var __defProp = Object.defineProperty;
|
|
|
4634
4639
|
const rows = [
|
|
4635
4640
|
...registry.map((e) => ({ slug: e.slug, count: countOf(e.slug), entry: e })),
|
|
4636
4641
|
...counts.filter((c) => !registry.some((e) => e.slug === c.room)).map((c) => ({ slug: c.room, count: c.count }))
|
|
4637
|
-
]
|
|
4642
|
+
].filter((row2) => {
|
|
4643
|
+
if (retiredFilter === "active") return row2.entry?.status !== "retired";
|
|
4644
|
+
if (retiredFilter === "retired") return row2.entry?.status === "retired";
|
|
4645
|
+
return true;
|
|
4646
|
+
});
|
|
4638
4647
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { children: [
|
|
4639
4648
|
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: { ...S.flexRow, marginBottom: 8, flexWrap: "wrap" }, children: [
|
|
4640
4649
|
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { style: S.muted, children: "Room 级管理:存在(注册/收编/退役)· 名称(显示名/说明/改名)· 条目(展开浏览) · 归类到 hall 请到「Hall」页" }),
|
|
@@ -4685,6 +4694,31 @@ var __defProp = Object.defineProperty;
|
|
|
4685
4694
|
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("button", { type: "button", disabled: busy, onClick: () => setRenaming(null), style: btn2, children: "取消" }),
|
|
4686
4695
|
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { style: S.muted, children: "记录随迁;与反刍并发会互相覆盖,请在反刍空闲时执行。" })
|
|
4687
4696
|
] }) : null,
|
|
4697
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 8, marginBottom: 8 }, children: [
|
|
4698
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { style: S.muted, children: "退场筛选" }),
|
|
4699
|
+
[["", "全部"], ["active", "活跃"], ["retired", "已退役"]].map(([val, label]) => {
|
|
4700
|
+
const on = retiredFilter === val;
|
|
4701
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
4702
|
+
"button",
|
|
4703
|
+
{
|
|
4704
|
+
type: "button",
|
|
4705
|
+
title: val === "" ? "全部 room" : val === "active" ? "只看词表未退役的 room" : "只看已退役的 room",
|
|
4706
|
+
onClick: () => setRetiredFilter(val),
|
|
4707
|
+
style: {
|
|
4708
|
+
cursor: "pointer",
|
|
4709
|
+
fontSize: 12,
|
|
4710
|
+
padding: "2px 10px",
|
|
4711
|
+
borderRadius: 999,
|
|
4712
|
+
border: on ? "1px solid var(--dsh-mem-accent)" : "1px solid var(--dsh-mem-border)",
|
|
4713
|
+
background: on ? "var(--dsh-mem-bg-inset)" : "transparent",
|
|
4714
|
+
color: on ? "var(--dsh-mem-accent)" : "var(--dsh-mem-text-2)"
|
|
4715
|
+
},
|
|
4716
|
+
children: label
|
|
4717
|
+
},
|
|
4718
|
+
val
|
|
4719
|
+
);
|
|
4720
|
+
})
|
|
4721
|
+
] }),
|
|
4688
4722
|
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: 6, alignItems: "center", marginBottom: 10 }, children: [
|
|
4689
4723
|
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("input", { value: reg.slug, onChange: (e) => setReg({ ...reg, slug: e.target.value }), placeholder: "slug(如 dsh-plugin 或 dsh-plugin/merge)", disabled: !hiPriv || busy, style: { ...S.input, width: 210, fontSize: 12 } }),
|
|
4690
4724
|
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("input", { value: reg.label, onChange: (e) => setReg({ ...reg, label: e.target.value }), placeholder: "名称(可中文)", disabled: !hiPriv || busy, style: { ...S.input, width: 110, fontSize: 12 } }),
|
|
@@ -4758,8 +4792,10 @@ var __defProp = Object.defineProperty;
|
|
|
4758
4792
|
(records[row2.slug]?.items ?? []).map((it) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { style: { fontSize: 11, padding: "3px 0", borderBottom: "1px solid var(--dsh-mem-border)" }, children: [
|
|
4759
4793
|
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "dsh-mem-tag dsh-mem-tag-" + it.type, children: TYPE_LABELS[it.type] || it.type }),
|
|
4760
4794
|
" ",
|
|
4795
|
+
it.retired ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { style: { ...S.muted, color: "var(--dsh-mem-danger)" }, children: "[已退场]" }) : null,
|
|
4796
|
+
" ",
|
|
4761
4797
|
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { style: S.muted, children: it.updatedAt ? fmtTime(it.updatedAt) : "" }),
|
|
4762
|
-
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { marginTop: 2, wordBreak: "break-all", color: "var(--dsh-mem-text-2)" }, children: it.content.length > 140 ? it.content.slice(0, 140) + "…" : it.content })
|
|
4798
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { marginTop: 2, wordBreak: "break-all", color: "var(--dsh-mem-text-2)", opacity: it.retired ? 0.55 : 1 }, children: it.content.length > 140 ? it.content.slice(0, 140) + "…" : it.content })
|
|
4763
4799
|
] }, it.id)),
|
|
4764
4800
|
(records[row2.slug]?.items.length ?? 0) === 0 ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: S.muted, children: "该 Room 暂无记忆条目。" }) : null,
|
|
4765
4801
|
(records[row2.slug]?.total ?? 0) > (records[row2.slug]?.items.length ?? 0) ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { style: { ...S.muted, fontSize: 11 }, children: "共 " + records[row2.slug].total + " 条,仅显示前 " + records[row2.slug].items.length + " 条" }) : null
|