dsh-tiddlywiki 0.16.11 → 0.16.13

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/README.md CHANGED
@@ -35,6 +35,8 @@
35
35
 
36
36
  > 最近几个主要版本的一句话更新记录(完整变更见 git log / Releases)。
37
37
 
38
+ - **v0.16.13**(2026-09-07):**修:会话「知识库」Tab 出现「佚失条目」**。① 汇总内容里的死链/垃圾条目:会话日志常混入模型的示例/残缺写法(`#…`、`#标题`、带反引号的截断链接),旧代码会把它们原样收进汇总并写成 `[[…`]]` 这种坏 wikitext,TW 渲染成「佚失条目」——现在采集时统一过滤(控制字符 / `]` `|` 反引号 `#` / `…` 占位 / 超长标题一律丢弃)。② 汇总条目本身是 volatile 的 `$:/temp`,**TW 重启即消失**,若 Tab 一直开着,iframe 会停在 TW 的「佚失条目」页——客户端新增自愈:每 30s 探测一次 `/get`,条目不存在就自动重新生成(连续 3 次仍缺失则交还手动「🔄 刷新」)。刷新页面 + 重启 dsh web 后,重新打开 Tab 即生成干净汇总。
39
+ - **v0.16.12**(2026-09-07):**深度代码优化(内部重构,行为不变)**。① **配置链修复**:`ui.sendToAgent`/`ui.allArticles` 默认值不再被 cordis 宽松类型吞掉(改为显式逐层合并),`uiLanguage` 不再被配置覆盖层丢弃;设置页「常规配置」补齐「发送给 Agent」开关/token/endpoint 字段(此前只在代码里生效、设置页没有)。② **去重**:新增 `src/host/http.ts`(路由/管理后台共用的 body 读取 + JSON 响应,删掉 3 份重复实现)与 `src/client/endpoints.ts`(`/status` 端点六处合一);`seeds.ts` 引入 `defineSeed` 工厂(每个 seed 的 id/标题/描述三处重复 + try/catch 样板全部收敛,7 项注册表缩到声明式);`tools.ts` 抽出 `requireWiki`(8 处重复守卫)与 `gitStatusBits`(git 状态文案两处合一);事件名常量统一(`NOTE_STATE_EVENT`/`PANEL_RELOAD_EVENT`)。③ **泄漏修复**:快速笔记卡片标签编辑器与「知识库」FAB 的 document 级监听器在卸载时正确移除;TW 面板的 40×150ms 哈希等待链在卸载后停止(不再驱动已移除 iframe);编辑器弹窗拖拽改用 Pointer Capture(鼠标在 iframe 上松手不再残留 window 监听);保存按钮/同步控制器加防连点与卸载后停轮询。④ **清理**:删除约 40 行无引用 CSS 与 2 个死导出(`mountNoteWidget`/`PANEL_VIEW_SELECTOR`);`admin.ts` 去掉无效的动态 import(消除构建警告);会话「知识库」汇总的笔记状态改为 8 路并发查询。已过 `typecheck` / `build` / `selftest`(含 `session/summary` 端到端用例)。
38
40
  - **v0.16.11**(2026-09-06):**新:会话顶部「知识库」Tab(本会话相关 wiki 汇总)**。每个会话顶部在「对话 | 轨迹」旁新增 Tab(默认名「知识库」,`ui.tabLabel` 可改、`ui.showSessionTab` 可关),显示本会话**产生/读取/检索过的 wiki 笔记汇总**,**TW 原生渲染**(同源代理 iframe,不另造 UI)。后端新路由 `POST /dsh-tiddlywiki/session/summary`:用 DSH `sessionQuery.readSession` + `traceSession` 读**本会话 + 后代子代理**的完整事件日志,按 `tool/call` 的 `tiddlywiki_*` 工具名归类——产生 📝(put/batch_put/rename)、读取 👀(get + 助手回复 `/dsh-tiddlywiki/tw/#…` 链接)、检索 🔍(search/recent 记关键词);每篇列出当前标签/修改时间/是否已删除,仅子代理触达的标注「(子代理)」。汇总页写入 **volatile `$:/temp/dsh/session-summary/<会话ID>`**——已实测验证 TW 默认 SyncFilter 显式排除 `$:/temp`,**不落盘、不进 git、TW 重启即消失**。进入 Tab 自动生成、顶栏可手动刷新;侧边栏完整 TW 面板保持原样。本 Tab 判定来源(sessionQuery 服务、conversation.view 槽位契约、$:/temp 行为)均已通过 Inspect 与实测核实,并有 `selftest` 新增 `session/summary` 端到端用例覆盖。
39
41
  - **v0.16.10**(2026-09-06):**修:关闭侧边栏后快速笔记按钮不再对齐**。v0.16.8 的 `ResizeObserver` 只观察了 dock 容器,而侧边栏开/关改变的是**对话列宽度**(composer 输入卡片居中、有 max-width,右缘随之移动),dock 容器未必触发 resize → 按钮停在上次位置、卡在侧边栏开着时的对齐上。现在改为观察「从 dock 条目一直到对话根节点(`data-phase`)的整条祖先链」,任一祖先尺寸变化都重测对齐;另加 1.5s 自愈兜底定时器 + `visibilitychange` 重测,任何未观测到的布局变化也会在下一秒内纠正。刷新页面即生效。
40
42
  - **v0.16.9**(2026-09-06):**修:「设置 → 外观 → 工具栏」渲染出源码文本**。根因:send-to-agent bundle 里 shadow 核心 `$:/core/ui/ControlPanel/Toolbars/ItemTemplate` 的 tiddler,其**正文第一行被错误地写成了 `title: ...` 头**(`item-template.tid` 源文件是 `.tid` 格式、带 title 行,构建脚本把整个文件原样塞进 `text` 字段),导致该模板的 `\define`/`\whitespace trim` pragma 全部失效、源码被当作文本原样显示在工具栏设置页(每个工具栏标签重复输出一次)。修复:`item-template.tid` 去掉首行 title 头(与 `button.tid` 一致,构建脚本原样读取即得纯正文),重新组装 bundle(v0.3.3 → **0.3.4**)+ 生成 seed + 构建,并给 `verify-send-to-agent-bundle.mjs` 新增回归检查「ItemTemplate 正文不得以 `title:` 开头」。线上 wiki 的 `$:/plugins/dsh/send-to-agent` 已覆盖为新 bundle,**刷新 TW 面板后**设置页恢复正常。在线 wiki 重载方式:「知识库」FAB →「🔄 重载 TW 面板」。