dsh-archived-chats 1.0.0 → 1.0.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.en.md CHANGED
@@ -1,11 +1,26 @@
1
- # dsh-archived-chats
1
+ <div align="center">
2
2
 
3
- [![npm version](https://img.shields.io/npm/v/dsh-archived-chats)](https://www.npmjs.com/package/dsh-archived-chats)
4
- [![npm downloads](https://img.shields.io/npm/dm/dsh-archived-chats)](https://www.npmjs.com/package/dsh-archived-chats)
5
- [![CI](https://github.com/Ultronen/dsh-archived-chats/actions/workflows/ci.yml/badge.svg)](https://github.com/Ultronen/dsh-archived-chats/actions/workflows/ci.yml)
6
- [![Awesome DSH Plugin](https://awesome-dsh-plugin.com/badge.svg)](https://awesome-dsh-plugin.com/p/Ultronen/dsh-archived-chats/)
3
+ <h1>Session Archive</h1>
7
4
 
8
- [English](README.en.md) | [中文](README.md)
5
+ <p><strong>A local archived-chat center for DeepSeek Harness</strong></p>
6
+ <p><code>dsh-archived-chats</code></p>
7
+
8
+ <p>
9
+ <a href="https://www.npmjs.com/package/dsh-archived-chats"><img alt="npm version" src="https://img.shields.io/npm/v/dsh-archived-chats?style=flat-square"></a>
10
+ <a href="https://www.npmjs.com/package/dsh-archived-chats"><img alt="npm downloads" src="https://img.shields.io/npm/dm/dsh-archived-chats?style=flat-square"></a>
11
+ <a href="https://github.com/Ultronen/dsh-archived-chats/actions/workflows/ci.yml"><img alt="CI" src="https://img.shields.io/github/actions/workflow/status/Ultronen/dsh-archived-chats/ci.yml?branch=main&amp;style=flat-square&amp;label=CI"></a>
12
+ <a href="https://github.com/Ultronen/dsh-archived-chats/actions/workflows/ci.yml"><img alt="Node.js 18 and 24" src="https://img.shields.io/badge/Node.js-18%20%7C%2024-339933?style=flat-square&amp;logo=nodedotjs&amp;logoColor=white"></a>
13
+ </p>
14
+ <p>
15
+ <a href="https://github.com/Ultronen/dsh-archived-chats/blob/main/LICENSE"><img alt="MIT License" src="https://img.shields.io/badge/License-MIT-2ea44f?style=flat-square"></a>
16
+ <a href="https://github.com/deepseek-ai/deepseek-harness"><img alt="DeepSeek Harness Web plugin" src="https://img.shields.io/badge/DeepSeek_Harness-Web_Plugin-0b7285?style=flat-square"></a>
17
+ <a href="https://awesome-dsh-plugin.com/p/Ultronen/dsh-archived-chats/"><img alt="Awesome DSH Plugin" src="https://awesome-dsh-plugin.com/badge.svg"></a>
18
+ <a href="https://github.com/Ultronen/dsh-archived-chats/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/Ultronen/dsh-archived-chats?style=flat-square"></a>
19
+ </p>
20
+
21
+ <p>English · <a href="README.md">中文</a></p>
22
+
23
+ </div>
9
24
 
10
25
  > 🔎 **Archived no longer means lost.** Search and read complete conversations, inspect local history versions, then back up, restore as a copy, or delete safely.
11
26
 
@@ -15,11 +30,13 @@ A local archived-chat manager for [DeepSeek Harness](https://github.com/deepseek
15
30
 
16
31
  Once a conversation is archived in DeepSeek Harness it disappears from the sidebar, and there is no built-in way to browse it again — only the workspace store (`~/.dsh/storages/workspace.json`) still remembers it. This plugin adds a **Session Archive** page under Settings where every archived session is visible, searchable, and manageable.
17
32
 
18
- [Plugin market](https://awesome-dsh-plugin.com/p/Ultronen/dsh-archived-chats/) · [npm](https://www.npmjs.com/package/dsh-archived-chats) · [Releases](https://github.com/Ultronen/dsh-archived-chats/releases) · [Questions and feedback](https://github.com/Ultronen/dsh-archived-chats/discussions) · [Private vulnerability reporting](https://github.com/Ultronen/dsh-archived-chats/security/advisories/new)
33
+ > ℹ️ **The entry has been formally renamed.** The former **Archived Chats** entry is now **Session Archive** (中文:**会话档案**). The npm package `dsh-archived-chats`, GitHub repository, install command, and local data location are unchanged. Existing users do not need a data migration; after updating, open **Settings → Session Archive**.
34
+
35
+ <p align="center"><a href="https://awesome-dsh-plugin.com/p/Ultronen/dsh-archived-chats/">Plugin market</a> · <a href="https://www.npmjs.com/package/dsh-archived-chats">npm</a> · <a href="https://github.com/Ultronen/dsh-archived-chats/releases">Releases</a> · <a href="https://github.com/Ultronen/dsh-archived-chats/discussions">Questions and feedback</a> · <a href="https://github.com/Ultronen/dsh-archived-chats/security/advisories/new">Private vulnerability reporting</a></p>
19
36
 
20
37
  <p align="center">
21
- <a href="assets/screenshots/04-conversation-preview.png"><img src="assets/screenshots/04-conversation-preview.png" width="49%" alt="Full-text search and read-only preview for archived chats"></a>
22
- <a href="assets/screenshots/11-storage-retention.png"><img src="assets/screenshots/11-storage-retention.png" width="49%" alt="Storage and Retention with session directories, recovery snapshots, and policy controls"></a>
38
+ <a href="assets/screenshots/preview-03.png"><img src="assets/screenshots/preview-03.png" width="49%" alt="Native read-only History preview with snapshot time and a synthetic stored image"></a>
39
+ <a href="assets/screenshots/preview-07.png"><img src="assets/screenshots/preview-07.png" width="49%" alt="Storage and Retention with session directories, protection snapshots, and policy controls"></a>
23
40
  </p>
24
41
 
25
42
  <p align="center"><sub>Search and read without unarchiving first; removing an archived chat here moves it through a recovery-snapshot Recycle Bin.</sub></p>
@@ -42,36 +59,30 @@ dsh plugin --profile web update dsh-archived-chats
42
59
 
43
60
  ## Compatibility
44
61
 
45
- Version 1.0.0 has been verified to load in a DeepSeek Harness `0.1.1-rc.2` Web profile, register all 30 routes, and expose the archive/history read boundaries. That rc.2 Web Host does not publish the persistence writer required by ZIP import or **Restore as copy**, so preparation returns `501 restore-unsupported` without writing data; full restore requires a Host that explicitly exposes that public capability. Before downgrading from 1.0, back up `$DSH_HOME/plugin-data/archived-chats/`; 0.12 can still validate, retain, and purge version-one snapshots, but it does not show the History tab.
62
+ The plugin enables features from the public capabilities exposed by the DeepSeek Harness Host instead of binding to one Host version. Archived browsing, full-text search, native read-only preview, History, Recycle Bin, storage policies, and session lineage work when their corresponding services are available. ZIP import, History **Restore as copy**, and snapshot fallback when an original is missing require a public persistence writer. Without it, the operation returns `restore-unsupported` without writing or overwriting data. If the attachment service is unavailable, only image reads degrade; the rest of the conversation remains readable. Back up `$DSH_HOME/plugin-data/archived-chats/` before downgrading to an older release that does not display History or understand recycle snapshots.
46
63
 
47
- ## Preview
64
+ ## Demo Preview
48
65
 
49
- These screenshots are the `0.12.0` UI baseline, captured in an isolated real DeepSeek Harness `0.1.1-rc.2` Chinese light-theme web profile with synthetic demo conversations and no real user data. The 1.0 History UI has not yet replaced this release screenshot set, so the established paths and headings remain unchanged below.
66
+ These images use an isolated Chinese light-theme Web demo environment with synthetic conversations to show the real current release UI. They contain no real user data, paths, notes, or credentials. The README and plugin market use the same fixed demo image set.
50
67
 
51
- ![Archive a conversation from its session menu](assets/screenshots/01-archive-entry.png)
52
- ![Three-second archive success notice](assets/screenshots/01b-archive-success.png)
53
- ![Session Archive overview](assets/screenshots/02-archived-overview.png)
54
- ![Full-text conversation and tool-result search](assets/screenshots/03-full-text-search.png)
55
- ![Read-only archived conversation preview](assets/screenshots/04-conversation-preview.png)
56
- ![Tags and notes editor](assets/screenshots/05-metadata-editor.png)
57
- ![On-demand bulk selection](assets/screenshots/06-bulk-selection.png)
58
- ![Import backup preview](assets/screenshots/07-import-preview.png)
59
- ![Undo notice after moving a chat to Recycle Bin](assets/screenshots/08-move-undo.png)
60
- ![Recycle Bin with recovery snapshots and restore actions](assets/screenshots/09-recycle-restore.png)
61
- ![Permanent deletion confirmation for the chat and protection snapshot](assets/screenshots/10-permanent-delete.png)
62
- ![Storage and Retention overview](assets/screenshots/11-storage-retention.png)
63
- ![Protection snapshot details](assets/screenshots/12-storage-details.png)
64
- ![Retention cleanup preview](assets/screenshots/13-retention-preview.png)
65
- ![Origins & Branches relationship view](assets/screenshots/14-origins-branches.png)
68
+ ![Session Archive overview with the new title and five management views](assets/screenshots/preview-01.png)
69
+ ![Full-text search, filters, tags, and readable hit excerpts](assets/screenshots/preview-02.png)
70
+ ![Native read-only History preview with snapshot time and a synthetic stored image](assets/screenshots/preview-03.png)
71
+ ![History timeline with restore-as-copy and deletion actions](assets/screenshots/preview-04.png)
72
+ ![Irreversible confirmation before clearing ordinary History](assets/screenshots/preview-05.png)
73
+ ![Recycle Bin protection snapshot, restore, and permanent deletion](assets/screenshots/preview-06.png)
74
+ ![Storage accounting, retention policy, and cleanup preview entry](assets/screenshots/preview-07.png)
75
+ ![Origins & Branches with forks, subagents, and recycled state](assets/screenshots/preview-08.png)
66
76
 
67
77
  ## Usage
68
78
 
69
79
  1. Archive a conversation from the normal DSH session menu. After Host success, the notice first reports **saving history version** and starts its three-second dismissal only after save. Snapshot failure never rolls back archive success; the notice retains **Retry save**, **View**, **Undo**, and close actions.
70
80
  2. Open **Settings → Session Archive → History**. Groups can be searched by safe title/workspace and expanded to preview any healthy version read-only or choose **Restore as copy**. The Host generates a new session ID and registers the result as archived; it never overwrites, unarchives, or deletes the source.
71
- 3. Use **Archived** to manage chats by workspace and search titles, tags, notes, message text, or tool output. Row preview does not require unarchive.
72
- 4. Use **Import backup / Export backup** for ZIP backups. ZIP import and history restore are separate flows.
73
- 5. **Move to Recycle Bin** reuses a healthy snapshot for the same revision when possible and otherwise publishes a new protection snapshot. Only **Delete permanently / Empty Recycle Bin** irreversibly removes the original and every validated snapshot for that source.
74
- 6. Use **Storage & Retention** to preview and explicitly apply history-count, age, quota, and recycle-age policy. **Origins & Branches** remains a read-only tree of necessary relationship context.
81
+ 3. Delete one ordinary History version after confirmation, or use **Clear history versions** to remove all ordinary history at once. The source chat remains unchanged, while Recycle Bin protection and unreadable degraded versions are skipped.
82
+ 4. Use **Archived** to manage chats by workspace and search titles, tags, notes, message text, or tool output. Row preview does not require unarchive.
83
+ 5. Use **Import backup / Export backup** for ZIP backups. ZIP import and history restore are separate flows.
84
+ 6. **Move to Recycle Bin** reuses a healthy snapshot for the same revision when possible and otherwise publishes a new protection snapshot. Only **Delete permanently / Empty Recycle Bin** irreversibly removes the original and every validated snapshot for that source.
85
+ 7. Use **Storage & Retention** to preview and explicitly apply history-count, age, quota, and recycle-age policy. **Origins & Branches** remains a read-only tree of necessary relationship context.
75
86
 
76
87
  ## Features
77
88
 
@@ -188,6 +199,13 @@ The suite (`test/*.test.mjs`) covers export/import, history capture/inventory/pr
188
199
 
189
200
  ## Version history
190
201
 
202
+ ### 1.0.1
203
+
204
+ - Formally document the settings-entry rename from **Archived Chats** to **Session Archive**; package name, repository, install command, and local data location remain unchanged.
205
+ - Recapture eight fixed demo images from the current release UI and make the README and plugin market reference the same set.
206
+ - Describe compatibility through public Host capabilities rather than repeated RC versions and internal route counts.
207
+ - Add the missing user flow for deleting one History version or clearing ordinary History; remove internal plans, QA evidence, and machine paths from the public tree, with an automated hygiene gate preventing recurrence.
208
+
191
209
  ### 1.0.0
192
210
 
193
211
  - Added the fifth **History** tab for validated local versions, recycle-protection state, safe search, and opaque degraded entries grouped by source chat.
@@ -195,7 +213,7 @@ The suite (`test/*.test.mjs`) covers export/import, history capture/inventory/pr
195
213
  - Reused the conversation preview for snapshot timestamps and verified images. Restore always creates a new archived ID and never overwrites the source.
196
214
  - Added confirmed single-version deletion and global History clearing without selection checkboxes; recycle-protection and degraded snapshots are not removed by these actions.
197
215
  - Recycle moves may reuse the same healthy non-null revision. Retention continues to govern history, and permanent purge removes every validated snapshot for the source.
198
- - A real `0.1.1-rc.2` Web Host verified plugin loading, safe inventory, and capability degradation; without a writer, restore fails without mutation as `restore-unsupported`.
216
+ - A real Web Host verified plugin loading, safe inventory, and capability degradation; without a writer, restore fails without mutation as `restore-unsupported`.
199
217
  - **Downgrade reminder:** 0.12 does not show History, but it can validate, retain, and purge version-one snapshots. Back up `$DSH_HOME/plugin-data/archived-chats/` before downgrading.
200
218
 
201
219
  ### 0.12.0
@@ -227,7 +245,7 @@ The suite (`test/*.test.mjs`) covers export/import, history capture/inventory/pr
227
245
  - Added an on-demand multi-select mode: list checkboxes stay hidden until requested, then disappear automatically after a completed bulk action.
228
246
  - Made common ZIP backup actions direct **Import backup / Export backup** controls and moved the destructive action under **More** for a cleaner header.
229
247
  - Removed the cross-tool JSONL migration surface that could not provide native resume, keeping the plugin focused on DSH archived-chat management.
230
- - Verified the new controls, backup preview, and single-line page title in a real DeepSeek Harness `0.1.0-rc.8` host.
248
+ - Verified the new controls, backup preview, and single-line page title in a real Host.
231
249
 
232
250
  ### 0.8.1
233
251
 
@@ -253,8 +271,8 @@ The suite (`test/*.test.mjs`) covers export/import, history capture/inventory/pr
253
271
 
254
272
  ### 0.5.1
255
273
 
256
- - Published a compatibility-focused patch release for DeepSeek Harness `0.1.0-rc.7`.
257
- - Updated the browser settings section to use the rc.7 overlay and state design tokens.
274
+ - Published a compatibility-focused patch release.
275
+ - Updated the browser settings section to use the overlay and state design tokens exposed by the Host.
258
276
 
259
277
  ### 0.5.0
260
278
 
package/README.md CHANGED
@@ -1,11 +1,26 @@
1
- # dsh-archived-chats
1
+ <div align="center">
2
2
 
3
- [![npm version](https://img.shields.io/npm/v/dsh-archived-chats)](https://www.npmjs.com/package/dsh-archived-chats)
4
- [![npm downloads](https://img.shields.io/npm/dm/dsh-archived-chats)](https://www.npmjs.com/package/dsh-archived-chats)
5
- [![CI](https://github.com/Ultronen/dsh-archived-chats/actions/workflows/ci.yml/badge.svg)](https://github.com/Ultronen/dsh-archived-chats/actions/workflows/ci.yml)
6
- [![Awesome DSH Plugin](https://awesome-dsh-plugin.com/badge.svg)](https://awesome-dsh-plugin.com/p/Ultronen/dsh-archived-chats/)
3
+ <h1>会话档案</h1>
7
4
 
8
- [English](README.en.md) | 中文
5
+ <p><strong>面向 DeepSeek Harness 的本地归档聊天中心</strong></p>
6
+ <p><code>dsh-archived-chats</code></p>
7
+
8
+ <p>
9
+ <a href="https://www.npmjs.com/package/dsh-archived-chats"><img alt="npm version" src="https://img.shields.io/npm/v/dsh-archived-chats?style=flat-square"></a>
10
+ <a href="https://www.npmjs.com/package/dsh-archived-chats"><img alt="npm downloads" src="https://img.shields.io/npm/dm/dsh-archived-chats?style=flat-square"></a>
11
+ <a href="https://github.com/Ultronen/dsh-archived-chats/actions/workflows/ci.yml"><img alt="CI" src="https://img.shields.io/github/actions/workflow/status/Ultronen/dsh-archived-chats/ci.yml?branch=main&amp;style=flat-square&amp;label=CI"></a>
12
+ <a href="https://github.com/Ultronen/dsh-archived-chats/actions/workflows/ci.yml"><img alt="Node.js 18 and 24" src="https://img.shields.io/badge/Node.js-18%20%7C%2024-339933?style=flat-square&amp;logo=nodedotjs&amp;logoColor=white"></a>
13
+ </p>
14
+ <p>
15
+ <a href="https://github.com/Ultronen/dsh-archived-chats/blob/main/LICENSE"><img alt="MIT License" src="https://img.shields.io/badge/License-MIT-2ea44f?style=flat-square"></a>
16
+ <a href="https://github.com/deepseek-ai/deepseek-harness"><img alt="DeepSeek Harness Web plugin" src="https://img.shields.io/badge/DeepSeek_Harness-Web_Plugin-0b7285?style=flat-square"></a>
17
+ <a href="https://awesome-dsh-plugin.com/p/Ultronen/dsh-archived-chats/"><img alt="Awesome DSH Plugin" src="https://awesome-dsh-plugin.com/badge.svg"></a>
18
+ <a href="https://github.com/Ultronen/dsh-archived-chats/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/Ultronen/dsh-archived-chats?style=flat-square"></a>
19
+ </p>
20
+
21
+ <p>中文 · <a href="README.en.md">English</a></p>
22
+
23
+ </div>
9
24
 
10
25
  > 🔎 **归档不再等于消失。** 直接搜索和阅读完整对话,查看本地历史版本,再安全备份、恢复为副本或删除。
11
26
 
@@ -15,11 +30,13 @@
15
30
 
16
31
  在 DeepSeek Harness 里,聊天一旦归档就会从侧边栏消失,界面中没有任何入口可以再看到它,只有工作区存档(`~/.dsh/storages/workspace.json`)还记得它。这个插件在「设置」中补上一个「会话档案」页面,让所有归档会话都可见、可搜索、可管理。
17
32
 
18
- [插件市场](https://awesome-dsh-plugin.com/p/Ultronen/dsh-archived-chats/) · [npm](https://www.npmjs.com/package/dsh-archived-chats) · [版本发布](https://github.com/Ultronen/dsh-archived-chats/releases) · [问题交流](https://github.com/Ultronen/dsh-archived-chats/discussions) · [私密报告漏洞](https://github.com/Ultronen/dsh-archived-chats/security/advisories/new)
33
+ > ℹ️ **入口已正式更名。** 原「已归档的聊天」现为「会话档案」(English: **Session Archive**)。npm 包名 `dsh-archived-chats`、GitHub 仓库名、安装方式和本地数据位置均未改变;现有用户无需迁移数据,更新后从 **设置 → 会话档案** 进入。
34
+
35
+ <p align="center"><a href="https://awesome-dsh-plugin.com/p/Ultronen/dsh-archived-chats/">插件市场</a> · <a href="https://www.npmjs.com/package/dsh-archived-chats">npm</a> · <a href="https://github.com/Ultronen/dsh-archived-chats/releases">版本发布</a> · <a href="https://github.com/Ultronen/dsh-archived-chats/discussions">问题交流</a> · <a href="https://github.com/Ultronen/dsh-archived-chats/security/advisories/new">私密报告漏洞</a></p>
19
36
 
20
37
  <p align="center">
21
- <a href="assets/screenshots/04-conversation-preview.png"><img src="assets/screenshots/04-conversation-preview.png" width="49%" alt="归档聊天正文搜索与只读对话预览"></a>
22
- <a href="assets/screenshots/11-storage-retention.png"><img src="assets/screenshots/11-storage-retention.png" width="49%" alt="空间与策略中的会话目录、恢复快照和保留策略"></a>
38
+ <a href="assets/screenshots/preview-03.png"><img src="assets/screenshots/preview-03.png" width="49%" alt="带历史快照时间和合成图片的原生只读预览"></a>
39
+ <a href="assets/screenshots/preview-07.png"><img src="assets/screenshots/preview-07.png" width="49%" alt="空间与策略中的会话目录、保护快照和保留策略"></a>
23
40
  </p>
24
41
 
25
42
  <p align="center"><sub>无需先取消归档即可搜索和阅读;从本插件移除归档聊天时会先进入带恢复快照的回收站。</sub></p>
@@ -42,36 +59,30 @@ dsh plugin --profile web update dsh-archived-chats
42
59
 
43
60
  ## 兼容性
44
61
 
45
- 1.0.0 已在 DeepSeek Harness `0.1.1-rc.2` Web profile 中验证能正常加载、注册 30 条路由并提供归档/历史读取边界。该 rc.2 Web Host 未公开导入与「恢复为副本」所需的持久层 writer,因此确认准备会返回 `501 restore-unsupported`且不写入数据;完整恢复需要宿主明确提供该公开能力。从 1.0 降级前请先备份 `$DSH_HOME/plugin-data/archived-chats/`;0.12 可继续校验、保留和清理 version 1 快照,但不会显示「历史版本」页签。
62
+ 插件按 DeepSeek Harness 公开能力逐项启用功能,不绑定某个具体 Host 版本。归档浏览、全文搜索、原生只读预览、历史版本、回收站、空间策略和会话血缘在相应服务可用时正常工作。ZIP 导入、历史版本的 **恢复为副本**,以及原件丢失时的快照回退恢复,需要 Host 提供持久层 writer;缺少该能力时会明确返回 `restore-unsupported`,且不会写入或覆盖数据。附件服务不可用时只影响图片读取,其余对话内容仍可预览。降级到不显示历史版本或不识别回收快照的旧版前,请先备份 `$DSH_HOME/plugin-data/archived-chats/`。
46
63
 
47
- ## 预览
64
+ ## 演示预览
48
65
 
49
- 以下截图是 `0.12.0` 界面基线,在隔离的真实 DeepSeek Harness `0.1.1-rc.2` 中文浅色 Web profile 中捕获,只使用合成演示会话,不包含真实用户数据。1.0 的「历史版本」界面尚未替换这组发布截图,因此下方仍保留原有路径和标题。
66
+ 以下图片使用隔离的中文浅色 Web 演示环境和合成会话,展示当前正式版本的真实界面,不包含真实用户数据、路径、备注或凭据。README 与插件市场使用同一套固定演示图片。
50
67
 
51
- ![从会话菜单点击归档](assets/screenshots/01-archive-entry.png)
52
- ![归档成功后的三秒提示](assets/screenshots/01b-archive-success.png)
53
- ![会话档案总览](assets/screenshots/02-archived-overview.png)
54
- ![聊天正文与工具结果全文搜索](assets/screenshots/03-full-text-search.png)
55
- ![归档对话只读预览](assets/screenshots/04-conversation-preview.png)
56
- ![标签与备注编辑](assets/screenshots/05-metadata-editor.png)
57
- ![按需批量选择](assets/screenshots/06-bulk-selection.png)
58
- ![导入归档备份预览](assets/screenshots/07-import-preview.png)
59
- ![移至回收站后的撤销提示](assets/screenshots/08-move-undo.png)
60
- ![回收站中的恢复快照与恢复操作](assets/screenshots/09-recycle-restore.png)
61
- ![永久删除会话与保护快照确认](assets/screenshots/10-permanent-delete.png)
62
- ![空间与策略概览](assets/screenshots/11-storage-retention.png)
63
- ![保护快照明细](assets/screenshots/12-storage-details.png)
64
- ![保留策略清理预览](assets/screenshots/13-retention-preview.png)
65
- ![来源与分支关系视图](assets/screenshots/14-origins-branches.png)
68
+ ![会话档案总览、新标题与五个管理视图](assets/screenshots/preview-01.png)
69
+ ![全文搜索、筛选、标签与命中摘要](assets/screenshots/preview-02.png)
70
+ ![带历史快照时间和合成图片的原生只读预览](assets/screenshots/preview-03.png)
71
+ ![历史版本时间线、恢复为副本与删除操作](assets/screenshots/preview-04.png)
72
+ ![清空普通历史版本的不可恢复确认](assets/screenshots/preview-05.png)
73
+ ![回收站中的保护快照、恢复与永久删除](assets/screenshots/preview-06.png)
74
+ ![空间分账、保留策略与清理预览入口](assets/screenshots/preview-07.png)
75
+ ![来源与分支中的分叉、子代理和回收状态](assets/screenshots/preview-08.png)
66
76
 
67
77
  ## 使用流程
68
78
 
69
79
  1. 在 DSH 正常聊天的会话菜单中点击归档。宿主确认成功后,顶部提示会先显示「正在保存历史版本」,保存完成后才开始 3 秒关闭计时。快照失败不会回滚已成功的归档,提示会保留「重试保存」、**查看**、**撤销** 和关闭操作。
70
80
  2. 打开 **设置 → 会话档案 → 历史版本**。这里按原会话分组,可搜索安全标题/项目,展开后可只读预览任意健康版本,或选择 **恢复为副本**。恢复由 Host 生成新会话 ID,始终作为已归档副本,不覆盖、取消归档或删除来源。
71
- 3. 在 **归档** 页签按工作区管理会话,搜索标题、标签、备注、聊天正文或工具结果;行内预览无需先取消归档。
72
- 4. 使用顶部 **导入备份 / 导出备份** 管理 ZIP 备份;ZIP 导入与历史恢复是两条独立流程。
73
- 5. 点击 **取消归档** 将会话放回侧边栏;点击 **移至回收站** 会在同一修订已有健康快照时复用它,否则创建新的保护快照。只有回收站中的 **永久删除 / 清空回收站** 会不可撤销地移除原会话与该来源的全部已验证历史快照。
74
- 6. 打开 **空间与策略** 预览并明确应用历史数量、年龄、容量和回收站年龄策略。**来源与分支** 仍以只读分支树展示必要关系上下文。
81
+ 3. 普通历史版本可经确认后单条删除,也可使用 **清空历史版本** 一次删除全部普通历史;原聊天不会被删除,回收站正在使用的保护版本和无法读取的降级版本会自动跳过。
82
+ 4. 在 **归档** 页签按工作区管理会话,搜索标题、标签、备注、聊天正文或工具结果;行内预览无需先取消归档。
83
+ 5. 使用顶部 **导入备份 / 导出备份** 管理 ZIP 备份;ZIP 导入与历史恢复是两条独立流程。
84
+ 6. 点击 **取消归档** 将会话放回侧边栏;点击 **移至回收站** 会在同一修订已有健康快照时复用它,否则创建新的保护快照。只有回收站中的 **永久删除 / 清空回收站** 会不可撤销地移除原会话与该来源的全部已验证历史快照。
85
+ 7. 打开 **空间与策略** 预览并明确应用历史数量、年龄、容量和回收站年龄策略。**来源与分支** 仍以只读分支树展示必要关系上下文。
75
86
 
76
87
  ## 功能
77
88
 
@@ -188,6 +199,13 @@ npm test
188
199
 
189
200
  ## 版本更新记录
190
201
 
202
+ ### 1.0.1
203
+
204
+ - 正式说明设置入口由「已归档的聊天」更名为「会话档案」;包名、仓库名、安装方式和本地数据位置保持不变。
205
+ - 用当前版本真实界面重新拍摄固定的 8 张演示图,并让 README 与插件市场引用同一套图片。
206
+ - 兼容性改为按 Host 公开能力说明,移除重复的具体 RC 版本和内部路由数量描述。
207
+ - 补齐历史版本单条删除与清空历史的用户流程说明;清理公共仓库中的内部计划、QA 和机器临时路径,并增加自动卫生门禁。
208
+
191
209
  ### 1.0.0
192
210
 
193
211
  - 新增第五个 **历史版本** 页签:按原会话查看本地已验证版本、回收保护状态和不透明降级项。
@@ -195,7 +213,7 @@ npm test
195
213
  - 复用原有对话预览显示快照时间与已验证图片;恢复始终生成新的已归档 ID,不覆盖来源。
196
214
  - 新增经过危险确认的单条历史删除和全局清空;不使用复选框,回收站保护/降级快照不会被该操作删除。
197
215
  - 回收移动可复用相同非空修订快照;保留策略继续治理历史,永久删除会清掉该来源的全部已验证快照。
198
- - 真实 `0.1.1-rc.2` Web Host 验证了插件加载、安全清单与能力降级;宿主缺少 writer 时恢复以 `restore-unsupported` 无写入失败。
216
+ - 在真实 Web Host 中验证了插件加载、安全清单与能力降级;Host 缺少 writer 时恢复以 `restore-unsupported` 无写入失败。
199
217
  - **降级提醒:** 0.12 不显示「历史版本」页签,但仍能校验、保留和清理 version 1 快照。降级前仍应备份 `$DSH_HOME/plugin-data/archived-chats/`。
200
218
 
201
219
  ### 0.12.0
@@ -227,7 +245,7 @@ npm test
227
245
  - 新增按需显示的批量选择模式:列表默认不展示复选框,点击入口后才显示,完成批量操作后自动退出。
228
246
  - 将常用 ZIP 备份操作改为直接的 **导入备份 / 导出备份**,危险操作收纳到 **更多**,精简页头布局。
229
247
  - 移除未提供原生继续能力的跨工具 JSONL 迁移入口,让插件专注于 DSH 已归档聊天管理。
230
- - 在 DeepSeek Harness `0.1.0-rc.8` 真实宿主中复核新控件、备份预览和标题单行布局。
248
+ - 在真实宿主中复核新控件、备份预览和标题单行布局。
231
249
 
232
250
  ### 0.8.1
233
251
 
@@ -253,8 +271,8 @@ npm test
253
271
 
254
272
  ### 0.5.1
255
273
 
256
- - 发布面向 DeepSeek Harness `0.1.0-rc.7` 的兼容性修订版本。
257
- - 更新浏览器设置区块,使用 rc.7 的浮层和状态设计令牌。
274
+ - 发布兼容性修订版本。
275
+ - 更新浏览器设置区块,使用宿主提供的浮层和状态设计令牌。
258
276
 
259
277
  ### 0.5.0
260
278
 
@@ -129,7 +129,7 @@ Permanent purge persists `purge-pending` before physical writes, then removes th
129
129
 
130
130
  ## Browser client
131
131
 
132
- client.js registers an order-30 settings.section and uses the DSH rc.7 overlay, state, and design tokens. The page state includes:
132
+ client.js registers an order-30 settings.section and uses the public Harness overlay, state, and design tokens. The page state includes:
133
133
 
134
134
  - A frame-wide archive success notice in `shell.overlay`: during its effect lifetime the plugin wraps public `workspaces.archiveSession` and starts history capture only after the original succeeds. Capture pauses the three-second dismissal; success resumes it, while failure retains retry-save without rolling back archive. View and Undo remain available.
135
135
  - Archived sessions and workspace groups.
@@ -158,7 +158,7 @@ The browser never mutates files directly. After an operation, the Host response
158
158
 
159
159
  ## Compatibility and testing
160
160
 
161
- Version 1.0.0 has been verified in a DeepSeek Harness 0.1.1-rc.2 Web profile for loading, 30-route registration, safe empty history inventory, and capability degradation. That Host does not expose the writer required by import/history restore, which therefore returns `501 restore-unsupported` without mutation. Version 0.12 uses the same version-one manifest and can validate, retain, and purge 1.0 snapshots, but it does not expose History or restore-as-copy. Back up the complete plugin-data directory before downgrading.
161
+ The plugin adapts through Host capability detection: archive reads, attachment reads, persistence writes, and live-session lifecycle support are evaluated independently, and missing capabilities must degrade safely or return explicit errors. Import, History restore-as-copy, and snapshot fallback when the original is missing require a public writer; without it they return `restore-unsupported` without mutation. Back up the complete plugin-data directory before downgrading to a release that does not display History or understand recycle snapshots.
162
162
 
163
163
  Coverage includes:
164
164
 
@@ -129,7 +129,7 @@ import/inspect 只接受本插件版本一导出的 ZIP。Host 会有界读取
129
129
 
130
130
  ## 浏览器客户端
131
131
 
132
- client.js 注册 order 30 的 settings.section,并使用 DSH rc.7 的浮层、状态和设计令牌。页面状态包括:
132
+ client.js 注册 order 30 的 settings.section,并使用 Harness 公开的浮层、状态和设计令牌。页面状态包括:
133
133
 
134
134
  - `shell.overlay` 中的归档成功提示:插件在 effect 生命周期内包装公开的 `workspaces.archiveSession`,只在原调用成功后发起历史抓取。抓取进行时暂停 3 秒关闭计时,成功后恢复,失败时显示不回滚归档的重试保存;查看与撤销继续可用。
135
135
  - 归档列表和工作区分组。
@@ -158,7 +158,7 @@ client.js 注册 order 30 的 settings.section,并使用 DSH rc.7 的浮层、
158
158
 
159
159
  ## 兼容性和测试
160
160
 
161
- 1.0.0 已在 DeepSeek Harness 0.1.1-rc.2 Web profile 中验证加载、30 路由注册、安全空历史清单和能力降级。该 Host 未公开导入/历史恢复所需 writer,因此以 `501 restore-unsupported` 无写入失败。0.12 使用相同 version 1 manifest,能校验、保留和清理 1.0 快照,但不显示历史页或恢复为副本;降级前应备份整个插件数据目录。
161
+ 插件通过能力检测适配 Host:归档读取、附件读取、持久层写入和运行中会话生命周期能力分别判断,缺失能力必须安全降级或返回明确错误。导入、历史版本恢复为副本和原件丢失时的快照回退需要公开 writer;缺少时返回 `restore-unsupported` 且不写入数据。旧版若不显示历史页或不识别回收快照,降级前应备份整个插件数据目录。
162
162
 
163
163
  测试覆盖:
164
164
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dsh-archived-chats",
3
- "version": "1.0.0",
4
- "description": "DeepSeek Harness 本地归档聊天中心:搜索和预览完整对话,保留历史版本并恢复为安全副本,备份与恢复会话,并通过可撤销回收站、保留策略及来源与分支管理历史聊天。 Local archived-chat manager for DeepSeek Harness with local history versions, restore-as-copy, full-text preview, backups, an undoable Recycle Bin, retention policies, and Origins & Branches.",
3
+ "version": "1.0.1",
4
+ "description": "DeepSeek Harness 会话档案:按工作区浏览和全文搜索归档聊天,原生只读预览对话、工具活动和已存储图片,管理标签备注与 ZIP 备份恢复;保留历史版本并恢复为副本,提供可撤销回收站、空间分账、保留策略和来源与分支。所有数据留在本机。 Session Archive for DeepSeek Harness: browse and full-text search archived chats; natively preview conversations, tool activity, and stored images read-only; manage tags, notes, and ZIP backup restore; retain local History with restore-as-copy, an undoable Recycle Bin, storage accounting, retention policies, and Origins & Branches. All data stays local.",
5
5
  "license": "MIT",
6
6
  "author": "Ultronen",
7
7
  "repository": {
@@ -50,6 +50,7 @@
50
50
  "./package.json": "./package.json"
51
51
  },
52
52
  "files": [
53
+ "screenshots.json",
53
54
  "lib/index.js",
54
55
  "lib/client.js",
55
56
  "lib/trash.js",
@@ -0,0 +1,10 @@
1
+ [
2
+ "assets/screenshots/preview-01.png",
3
+ "assets/screenshots/preview-02.png",
4
+ "assets/screenshots/preview-03.png",
5
+ "assets/screenshots/preview-04.png",
6
+ "assets/screenshots/preview-05.png",
7
+ "assets/screenshots/preview-06.png",
8
+ "assets/screenshots/preview-07.png",
9
+ "assets/screenshots/preview-08.png"
10
+ ]
Binary file