@lemoncat7/dsh-knowledge 2.5.0 → 2.5.1

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
@@ -8,7 +8,9 @@
8
8
 
9
9
  ## 兼容性
10
10
 
11
- 正式版 `2.5.0` 针对 DeepSeek Harness `0.1.2-rc.1` 构建并完成部署验证,需要 Node.js `22.19+` 或 `24+`。浏览器端使用该版本的 Session Controller、Renderer、Chat、Settings 与 Theme 插槽接口。
11
+ 正式版 `2.5.1` 针对 DeepSeek Harness `0.1.2-rc.1` 构建并完成部署验证,需要 Node.js `22.19+` 或 `24+`。浏览器端使用该版本的 Session Controller、Renderer、Chat、Settings 与 Theme 插槽接口。
12
+
13
+ `2.5.1` 修复知识目录的长文件名撑宽列表、遮挡结束状态的问题:名称按剩余空间省略,悬停可查看完整名称和路径,“已解决/已收集完成”标签完整保留。不改变文档内容、权限、配色或动画。
12
14
 
13
15
  `2.5.0` 支持在用户明确确认问题解决或收集结束后,由 Agent 或轮后提取更新知识文档状态。整篇结束保留正文与历史并封存,局部问题仅修订对应段落;继续遵循挂载权限、审核模式、敏感内容审查及版本冲突保护。远程客户端与中央服务应同时升级。
14
16
 
@@ -65,7 +67,7 @@ dsh plugin --profile web add @lemoncat7/dsh-knowledge
65
67
  需要固定本次正式版本时:
66
68
 
67
69
  ```bash
68
- dsh plugin --profile web add @lemoncat7/dsh-knowledge@2.5.0
70
+ dsh plugin --profile web add @lemoncat7/dsh-knowledge@2.5.1
69
71
  ```
70
72
 
71
73
  也可以从 [GitHub Releases](https://github.com/lemoncat7/dsh-knowledge/releases) 下载对应版本的完整预构建包后安装:
@@ -0,0 +1,10 @@
1
+ # 2.5.1
2
+
3
+ 正式版,适配 **DeepSeek Harness 0.1.2-rc.1**;需要 Node.js `^22.19.0 || >=24.0.0`。
4
+
5
+ - 修复知识目录的长文件名撑宽 Grid 列,导致“已解决/已收集完成”被裁切的问题。
6
+ - 名称和路径按可用宽度省略,悬停查看完整文字;状态标签不参与收缩。
7
+ - 保持原有配色、材质、动画、拖拽和文档数据不变,无数据库迁移与新增依赖。
8
+ - 121 项自动化测试通过;浏览器回归覆盖 6 种视口、深浅色、长名称和完整状态标签。
9
+
10
+ 本机使用本地构建包部署,GitHub Release 和 npm `latest` 发布同一份包。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lemoncat7/dsh-knowledge",
3
- "version": "2.5.0",
3
+ "version": "2.5.1",
4
4
  "description": "Local and remote knowledge bases for DeepSeek Harness, with scoped recall, controlled write-back, and a Web management console",
5
5
  "keywords": [
6
6
  "deepseek-harness",
package/web/app.js CHANGED
@@ -1676,7 +1676,7 @@ function renderDocumentWorkspace(workspace, options = {}) {
1676
1676
  onDragEnd: clearKnowledgeDocumentDragState,
1677
1677
  onClick: () => { view.knowledgeBaseId = base.id; void selectDocument(workspace, document.id) },
1678
1678
  }, element('span', { class: 'tree-document-icon', 'aria-hidden': 'true' }), element('span', { class: 'tree-document-copy' },
1679
- element('strong', {}, document.title), element('small', {}, document.relPath)),
1679
+ element('strong', { title: document.title }, document.title), element('small', { title: document.relPath }, document.relPath)),
1680
1680
  document.documentState !== 'open' ? badge(DOCUMENT_STATE_LABELS[document.documentState] || '已结束', 'success') : null)),
1681
1681
  !query && page.nextCursor ? element('button', {
1682
1682
  type: 'button', class: 'note-tree-more', disabled: page.loading,
package/web/styles.css CHANGED
@@ -853,8 +853,8 @@ html,
853
853
  .note-tree-group[data-expanded="true"] .tree-folder-icon { color: var(--text-secondary); opacity: .8; }
854
854
  .tree-base-name { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
855
855
  .tree-count { min-width: 20px; color: var(--text-tertiary); font-size: 10px; font-variant-numeric: tabular-nums; text-align: right; }
856
- .note-tree-documents { display: grid; gap: 1px; margin: 1px 0 5px 18px; padding-left: 10px; border-left: 1px solid color-mix(in srgb, var(--border-strong) 55%, transparent); }
857
- .note-tree-document { position: relative; min-height: 40px; gap: 8px; border-radius: 9px; padding: 5px 8px; transition: background var(--motion-fast) ease, color var(--motion-fast) ease; }
856
+ .note-tree-documents { display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; gap: 1px; margin: 1px 0 5px 18px; padding-left: 10px; border-left: 1px solid color-mix(in srgb, var(--border-strong) 55%, transparent); }
857
+ .note-tree-document { position: relative; min-width: 0; min-height: 40px; gap: 8px; border-radius: 9px; padding: 5px 8px; transition: background var(--motion-fast) ease, color var(--motion-fast) ease; }
858
858
  .note-tree-document[aria-busy="true"] { opacity: .58; pointer-events: none; }
859
859
  .note-tree-document[aria-current="page"] { background: var(--material-control); color: var(--text); box-shadow: inset 2px 0 0 color-mix(in srgb, var(--text-secondary) 74%, transparent), var(--shadow-control); }
860
860
  .tree-document-icon {
@@ -870,7 +870,7 @@ html,
870
870
  .note-tree-document:hover .tree-document-icon { opacity: .72; }
871
871
  .note-tree-document[aria-current="page"] .tree-document-icon { color: var(--text); opacity: .88; }
872
872
  .tree-document-copy { min-width: 0; flex: 1; }
873
- .note-tree-document > .badge { min-height: 17px; padding: 1px 5px; font-size: 8px; }
873
+ .note-tree-document > .badge { flex: none; min-height: 17px; padding: 1px 5px; font-size: 8px; }
874
874
  .tree-document-copy strong, .tree-document-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
875
875
  .tree-document-copy strong { font-size: 12px; font-weight: 540; }
876
876
  .tree-document-copy small { margin-top: 1px; color: var(--text-tertiary); font-size: 10px; }