dsh-prime-memory 0.20.0-beta.22 → 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 CHANGED
@@ -17,6 +17,14 @@
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 已含)。
20
28
  ## [0.20.0-beta.22] — 2026-10-02
21
29
 
22
30
  > 退场效果可见性 + 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 } }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-prime-memory",
3
- "version": "0.20.0-beta.22",
3
+ "version": "0.20.0-beta.23",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org",
6
6
  "access": "public",