@michengai/dsh-archive-manager 1.2.7 → 1.3.0
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 +21 -0
- package/CHANGELOG.zh-CN.md +21 -0
- package/README.de.md +233 -0
- package/README.en.md +278 -0
- package/README.es.md +233 -0
- package/README.fr.md +233 -0
- package/README.ja.md +239 -0
- package/README.md +171 -170
- package/README.pt.md +233 -0
- package/README.ru.md +27 -9
- package/README.zh-CN.md +12 -15
- package/lib/client.js +5 -9
- package/lib/sidebar-entry.js +1 -91
- package/locale/de.json +7 -0
- package/locale/en.json +2 -1
- package/locale/es.json +7 -0
- package/locale/fr.json +7 -0
- package/locale/ja.json +7 -0
- package/locale/pt.json +7 -0
- package/locale/ru.json +2 -1
- package/locale/zh.json +2 -1
- package/package.json +13 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,25 @@
|
|
|
1
1
|
# Changelog
|
|
2
|
+
## [1.3.0] - 2026-11-09
|
|
3
|
+
|
|
4
|
+
### New Features & Localization
|
|
5
|
+
|
|
6
|
+
- **Full support for all 8 official DeepSeek Harness languages**: Seamlessly localized into Chinese, English, Japanese, Spanish, French, German, Russian, and Portuguese (`zh`, `en`, `ja`, `es`, `fr`, `de`, `ru`, `pt`). All archive management workspaces, search and preview tools, cleanup panels, sidebar context menus, and date pickers adapt natively to the selected host language.
|
|
7
|
+
- **Full multilingual support for sidebar "Favorites only" toggle**: The "Favorites only" filter option in the sidebar view menu now accurately displays across all 8 official languages, allowing quick filtering of starred sessions regardless of locale.
|
|
8
|
+
- **Localized DateRange picker**: Calendar month headers and weekday labels now fully adapt to all 8 supported languages.
|
|
9
|
+
- **Dedicated documentation in all 8 official languages**: Shipped comprehensive README documentation for all 8 official languages (`README.zh-CN.md`, `README.en.md`, `README.ja.md`, `README.es.md`, `README.fr.md`, `README.de.md`, `README.ru.md`, `README.pt.md`) featuring a unified top navigation switcher; plugin management detail views now automatically display the localized guide matching the user's active locale.
|
|
10
|
+
|
|
11
|
+
### Enhancements & Simplification
|
|
12
|
+
|
|
13
|
+
- **Simplified settings interface**: Removed the in-app update trigger and bundle card toggle for a cleaner and more streamlined settings workspace.
|
|
14
|
+
- **Enriched plugin metadata**: Added comprehensive multilingual package manifests, icons, and documentation links.
|
|
15
|
+
|
|
16
|
+
## [1.2.8] - 2026-11-05
|
|
17
|
+
|
|
18
|
+
### Fixes & Enhancements
|
|
19
|
+
|
|
20
|
+
- Fix an issue where "Delete session" and "Favorite" could be missing from the session context menu in some desktop environments, ensuring all session actions remain consistently available across hosts.
|
|
21
|
+
- Improve session context menu layout by grouping "Delete session" together with "Archive session" in the same section, removing the extra separator.
|
|
22
|
+
|
|
2
23
|
## [1.2.7] - 2026-11-04
|
|
3
24
|
|
|
4
25
|
### Compatibility & Dependencies
|
package/CHANGELOG.zh-CN.md
CHANGED
|
@@ -1,4 +1,25 @@
|
|
|
1
1
|
# 更新日志
|
|
2
|
+
## [1.3.0] - 2026-11-09
|
|
3
|
+
|
|
4
|
+
### 新特性与本土化支持
|
|
5
|
+
|
|
6
|
+
- **全量支持 DeepSeek Harness 官方 8 门内置语言**:深度适配官方多语言体系,完整支持中文、英语、日语、西班牙语、法语、德语、俄语与葡萄牙语(`zh`, `en`, `ja`, `es`, `fr`, `de`, `ru`, `pt`)。无论宿主环境切换至哪种语言,归档管理面板、检索与快速预览、清理卡片、侧栏操作菜单与日历日期选择器均以对应语言原生呈现。
|
|
7
|
+
- **视图选项「只看收藏」全面打通 8 门语言**:主界面侧栏会话视图选项中的「只看收藏」过滤开关在全部 8 门语言环境下均能精确就位展示,快速筛选重要会话不再受界面语言限制。
|
|
8
|
+
- **轻量日历组件多语言本土化**:自定义日期范围选择器全面支持 8 门语言的月份与星期名称,提供契合当地阅读习惯的排版与格式。
|
|
9
|
+
- **官方 8 门内置语言独立说明文档**:提供完整对齐的 8 门语言独立 README 说明文档(`README.zh-CN.md`、`README.en.md`、`README.ja.md`、`README.es.md`、`README.fr.md`、`README.de.md`、`README.ru.md`、`README.pt.md`),并在文档顶部提供 8 语无缝切换导航条;插件市场与管理面板详情页自动按当前语言展示对应本地化文档。
|
|
10
|
+
|
|
11
|
+
### 体验精简与优化
|
|
12
|
+
|
|
13
|
+
- **精简设置面板**:移除设置页中的在线更新配置项与管理面板标题旁的检查更新入口,界面更清爽纯净。
|
|
14
|
+
- **完善插件清单元信息**:补齐官方插件管理器所需的多语言标题、描述与文档指引。
|
|
15
|
+
|
|
16
|
+
## [1.2.8] - 2026-11-05
|
|
17
|
+
|
|
18
|
+
### 修复与体验优化
|
|
19
|
+
|
|
20
|
+
- 修复会话右键菜单在部分桌面端环境下可能不显示「删除会话」与「收藏会话」的问题,确保在各类宿主端操作菜单中选项始终完整可用。
|
|
21
|
+
- 优化会话右键菜单排版布局,「删除会话」与「归档会话」合并在同一操作栏内,消除多余的组分割线。
|
|
22
|
+
|
|
2
23
|
## [1.2.7] - 2026-11-04
|
|
3
24
|
|
|
4
25
|
### 兼容性与依赖升级
|
package/README.de.md
ADDED
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/branding/dsh-banner-en.webp" alt="DSH Archive Manager" width="100%">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<div align="center">
|
|
6
|
+
|
|
7
|
+
# DSH Archive Manager
|
|
8
|
+
|
|
9
|
+
**Sichere Verwaltung archivierter Sitzungen in DeepSeek Harness**
|
|
10
|
+
|
|
11
|
+
[简体中文](README.zh-CN.md) · [English](README.en.md) · [日本語](README.ja.md) · [Español](README.es.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [Русский](README.ru.md) · [Português](README.pt.md)
|
|
12
|
+
|
|
13
|
+
[Änderungsprotokoll](CHANGELOG.md) · [Apache-2.0](LICENSE)
|
|
14
|
+
|
|
15
|
+
[](LICENSE)
|
|
16
|
+
[](https://www.npmjs.com/package/@michengai/dsh-archive-manager)
|
|
17
|
+
[](https://www.npmjs.com/package/@michengai/dsh-archive-manager)
|
|
18
|
+
[](https://github.com/MichengAI/dsh-archive-manager)
|
|
19
|
+
[](#voraussetzungen)
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
> DSH Archive Manager ist ein von der Community gepflegtes Plugin für DeepSeek Harness (DSH) und kein offizielles Produkt von DeepSeek AI.
|
|
23
|
+
|
|
24
|
+
Dieses Dokument beschreibt Version **1.3.0**. Frühere Änderungen finden Sie im [Changelog](CHANGELOG.md).
|
|
25
|
+
|
|
26
|
+
## Funktionsübersicht
|
|
27
|
+
|
|
28
|
+
Legen Sie inaktive Unterhaltungen ab und holen Sie sie bei Bedarf zurück, um die tägliche Aufgabenliste übersichtlich zu halten.
|
|
29
|
+
|
|
30
|
+
- **Doppelansicht und primärer Seitenleisteneintrag**: Ein dauerhaftes Symbol in der Hauptseitenleiste öffnet eine großzügige, **960 px zentrierte Arbeitsbereichsansicht** für archivierte und nicht archivierte Sitzungen ohne beengte Dialog-Scrollbereiche.
|
|
31
|
+
- **Vollständiges Lebenszyklusmanagement**: Einzelne Chats, ganze Arbeitsbereiche mit einem Klick oder projektübergreifende Batches archivieren sowie Sitzungen direkt wiederherstellen oder fortsetzen.
|
|
32
|
+
- **Rechtsklick auf die gesamte Zeile in der Seitenleiste**: Klicken Sie mit der rechten Maustaste auf eine beliebige Stelle einer Arbeitsbereichs- oder Sitzungszeile, um das Aktionsmenü zu öffnen. Auf nicht gruppierten oder leeren Zeilen wird das native Systemmenü sicher durchgereicht.
|
|
33
|
+
- **Ruckelfreie Favoritensterne und Koexistenz mit Statuspunkten (#90, #92)**: Standardisierte Sternengröße von 16×16 px mit absoluter Positionierung über dem führenden Slot verhindert jedes Springen des Titels. Bei laufenden Aufgaben oder Genehmigungen bleibt der Statuspunkt des Hosts zu 100 % sichtbar, während der Stern als kompaktes 10 px Badge unten rechts erhalten bleibt.
|
|
34
|
+
- **Arbeitsbereich-Schnellaktionsmenü**: Ordnerpfad kopieren, Ordner direkt im Windows-Explorer oder macOS Finder öffnen und Sitzungen mit einem Klick archivieren.
|
|
35
|
+
- **Sitzungen zwischen Arbeitsbereichen verschieben**: Verschieben Sie Sitzungen über ein kaskadierendes Untermenü in andere Arbeitsbereiche, mit Prozessberuhigung, atomarer Umschreibung und NTFS-Doppelpunktschutz für IM-Sitzungen.
|
|
36
|
+
- **Einheitliche Akkordeonkarten und 40 px ultrakompakte Zeilen**: Projektgruppen im Stil des Skills Managers mit integrierten Einschubkarten (38 px Kopfzeile) und auf 40 px komprimierten Zeilen für verdoppelte Informationsdichte.
|
|
37
|
+
- **Native Kontrollkästchen im Dunkelmodus**: Komponenten nach offiziellen Host-Spezifikationen mit nativem `accent-color` fügen sich nahtlos in dunkle Designs ein.
|
|
38
|
+
- **Lichtundurchlässige Modaldialoge und barrierefreie Lokalisierung**: Breiter Vorschaudialog direkt am `body` gemountet (`portalToBody`) mit festem Hintergrund und Unschärfe, um Textdurchscheinen zu verhindern. Vollständige ARIA-Labels für den Schließen-Button (`common.close`).
|
|
39
|
+
- **Standardisierte Sektions-ID und Koexistenz (#91)**: Sektions-ID auf `archive-manager` mit Ausfallschutz (`try/catch`) umgestellt, um die problemlose Koexistenz mit Drittanbieter-Plugins zu gewährleisten.
|
|
40
|
+
- **Aufgeräumte einzeilige Werkzeugleiste**: Verwendet das native `Input`-Element mit offiziellem Suchsymbol und grünem Fokusrahmen. Vereint Suche, Anzeige- und Sortiermenü, Projektfilter und Datumsbereich in einer einzigen Zeile.
|
|
41
|
+
- **Volltextsuche und kombiniertes Menü im Codex-Stil**: Automatische Suche in Titeln und Nachrichtenverläufen (Benutzer und Assistent). Menü mit zwei Abschnitten zur Filterung (alle / nur Favoriten) und Sortierung.
|
|
42
|
+
- **Leichter DateRange-Selektor mit Kalender-Popover**: Ersetzt das native Datumselement zur Vermeidung von Farbinversionen und Fokusverlust im Dunkelmodus (#74). Einzeilige Kapsel mit Löschtaste, Schnellvoreinstellungen, 8 Sprachen für Wochentage und Monate sowie vollständiger Tastaturnavigation nach WAI-ARIA.
|
|
43
|
+
- **Automatische Bereinigung inaktiver Sitzungen**: Schwellenwert in Tagen festlegen, um inaktive Chats zu finden. Laufende Aufgaben, interaktive Prompts und Favoriten werden automatisch geschützt, mit sofortiger Rückgängig-Funktion (Undo).
|
|
44
|
+
- **Dauerhafte physische Löschung**: Vollständige physische Entfernung von Protokollen, Cache-Zeilen und Indizes mit detaillierter Fehler- und Wiederholungsfunktion.
|
|
45
|
+
- **Erkennung und Bereinigung verwaister Subagents**: Verwaiste Subagents, deren Hauptsitzung extern gelöscht wurde, erkennen, Speicherplatz berechnen und mit einem Klick physisch freigeben.
|
|
46
|
+
- **Unternehmensweite Sperre via Cordis-Konfiguration & Reverse-Proxy-Unterstützung**: Vollständiges Deaktivieren der Aktualisierungskomponente in der Cordis-Konfiguration (`updater: false` oder `onlineUpdate: false`) und dynamische Pfadauflösung über `document.baseURI`.
|
|
47
|
+
|
|
48
|
+
## Manuelle Rekonstruktion des Listen-Caches (#88)
|
|
49
|
+
|
|
50
|
+
Beim Öffnen des Archive Managers werden lediglich Header und zwischengespeicherte Projektionen normaler Sitzungen in registrierten Arbeitsbereichen, ungruppierten Listen und Archiven geprüft (Sitzungen von IM-Kanälen `im:` sind ausgeschlossen). Eine Reparaturkarte erscheint nur bei fehlenden oder inkompatiblen Caches, um Protokolle einzeln schreibgeschützt zu lesen und offizielle Projektionen mit `coldSnapshot` in `session_projcache` wiederherzustellen.
|
|
51
|
+
|
|
52
|
+
## Bereinigung verwaister Subagents
|
|
53
|
+
|
|
54
|
+
Wird eine Hauptsitzung außerhalb gelöscht, können Subagents auf der Festplatte verbleiben. Der Archive Manager erkennt diese im Aufräum-Panel und ermöglicht deren sichere physische Löschung.
|
|
55
|
+
|
|
56
|
+
## Suche und Vorschau
|
|
57
|
+
|
|
58
|
+
- Die Reiter „Archiviert“ und „Nicht archiviert“ teilen sich die Suche in Titeln und Inhalten, Projektfilter, Favoriten, Datumsfilter und Sortierung nach Erstellungsdatum.
|
|
59
|
+
- Die Vorschau rendert Markdown-Tabellen, Zitate und Codeblöcke mit Rollenbezeichnungen oder wechselt zum Originaltext mit Hervorhebung.
|
|
60
|
+
- Die Suche verarbeitet Batches von bis zu 20 Sitzungen nacheinander bei maximal 200 Abfragezeichen, ausgenommen Werkzeuge, Anhänge, Reasoning und Systemnachrichten.
|
|
61
|
+
|
|
62
|
+
## Screenshots
|
|
63
|
+
|
|
64
|
+
### 1. Archiv-Verwaltung (Akkordeonkarten und nativer Dunkelmodus)
|
|
65
|
+
Suchen, favorisieren, voranzeigen, wiederherstellen und bereinigen unter **Einstellungen → Archivierte Sitzungen → Archiviert**:
|
|
66
|
+
|
|
67
|
+

|
|
68
|
+
|
|
69
|
+
Zu **Nicht archiviert** wechseln für intelligente Bereinigungsvorschläge und projektweites Archivieren:
|
|
70
|
+
|
|
71
|
+

|
|
72
|
+
|
|
73
|
+
### 2. Zentriertes 960 px Panel im Hauptarbeitsbereich
|
|
74
|
+
Öffnen Sie ein vollwertiges 960 px Panel direkt über das dauerhafte Symbol in der Hauptseitenleiste:
|
|
75
|
+
|
|
76
|
+

|
|
77
|
+
|
|
78
|
+
### 3. Nativer Rechtsklick in der Seitenleiste & Kaskadierende Untermenüs
|
|
79
|
+
Rechtsklick auf eine beliebige Stelle einer Zeile in der primären Seitenleiste für Kontextmenüs und Projektübertragungen:
|
|
80
|
+
|
|
81
|
+
| Arbeitsbereichs-Aktionen | Sitzung zwischen Projekten verschieben |
|
|
82
|
+
| :---: | :---: |
|
|
83
|
+
| <img src="assets/screenshots/workspace-context-menu.webp" alt="Workspace Actions Menu" width="100%"> | <img src="assets/screenshots/session-move-menu.webp" alt="Move Session Menu" width="100%"> |
|
|
84
|
+
|
|
85
|
+
## Installation
|
|
86
|
+
|
|
87
|
+
Ein funktionierendes DeepSeek Harness-Setup ist erforderlich (Beispiel mit dem Profil `web`):
|
|
88
|
+
|
|
89
|
+
### Installation durch einen Agenten
|
|
90
|
+
Senden Sie diese Anweisung an einen Agenten mit Terminal-Zugriff:
|
|
91
|
+
|
|
92
|
+
```text
|
|
93
|
+
Installiere die neueste Version von @michengai/dsh-archive-manager aus der offiziellen npm-Registry in mein DSH-Web-Profil, überprüfe die Aktivierung und erkläre das Neuladen.
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Manuelle Installation
|
|
97
|
+
|
|
98
|
+
```powershell
|
|
99
|
+
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
|
|
100
|
+
$OutputEncoding = [System.Text.Encoding]::UTF8
|
|
101
|
+
dsh plugin --profile web add @michengai/dsh-archive-manager@latest --registry=https://registry.npmjs.org/
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Starten Sie DSH Web neu und aktualisieren Sie die Seite (`Ctrl+Shift+R`). Öffnen Sie **Einstellungen → Archivierte Sitzungen** zur Verwendung.
|
|
105
|
+
|
|
106
|
+
- **Host-Kompatibilität**: Vollständige DeepSeek Harness `0.2.x`-Reihe (`>=0.2.0-rc.1 <0.3.0-0`), verifiziert auf allen Release Candidates (`0.2.0-rc.1` bis `0.2.2-rc.1`).
|
|
107
|
+
- Versionen vor `0.2.0-rc.1` werden nicht mehr unterstützt. Nutzer von `0.1.x` installieren bitte `1.0.20`.
|
|
108
|
+
|
|
109
|
+
## Plugin-Konfiguration
|
|
110
|
+
|
|
111
|
+
Verfügbar unter:
|
|
112
|
+
> **Seitenleiste → Plugins → Klick auf `Archive Manager`**
|
|
113
|
+
|
|
114
|
+
### 1. Position des Eintrags (`entryLocation`)
|
|
115
|
+
- **Beide Positionen (`both`)**: Zeigt das Symbol in der linken Seitenleiste an und behält den Menüeintrag unter **Einstellungen → Archivierte Sitzungen**.
|
|
116
|
+
- **Nur Seitenleiste (`sidebar`)**: Zeigt das Symbol in der Seitenleiste an und entfernt den Eintrag aus den Einstellungen für eine schlankere Oberfläche.
|
|
117
|
+
- **Nur Einstellungen (`settings`)** (Standard): Hält die Seitenleiste minimalistisch und bietet Zugriff unter **Einstellungen → Archivierte Sitzungen**.
|
|
118
|
+
|
|
119
|
+
### 2. Richtlinie für Online-Aktualisierungen (`onlineUpdate` / `updater`)
|
|
120
|
+
- In Firmenumgebungen können Updates direkt in der Cordis-Konfiguration deaktiviert werden:
|
|
121
|
+
```yaml
|
|
122
|
+
updater: false # oder onlineUpdate: false
|
|
123
|
+
```
|
|
124
|
+
Dadurch wird die Aktualisierungskomponente beim Serverstart vollständig deaktiviert.
|
|
125
|
+
|
|
126
|
+
## Bedienungsanleitung
|
|
127
|
+
|
|
128
|
+
| Aktion | Anleitung |
|
|
129
|
+
| --- | --- |
|
|
130
|
+
| **Einzelnen Chat archivieren** | Kontextmenü der Sitzung in der Seitenleiste öffnen und **Sitzung archivieren** wählen |
|
|
131
|
+
| **Arbeitsbereich archivieren** | Menü des Arbeitsbereichs öffnen und **Sitzung archivieren** wählen |
|
|
132
|
+
| **Suchen und filtern** | **Einstellungen → Archivierte Sitzungen** öffnen oder in der Seitenleiste auf **Archiv** klicken |
|
|
133
|
+
| **Interaktiver Kalender** | Auf die Datumskapsel klicken, um das Popover mit vollständiger Tastatursteuerung zu öffnen |
|
|
134
|
+
| **Schnellvorschau** | Auf einen Treffer oder **Mehr → Schnellvorschau** klicken, um den Kontext ohne Wiederherstellung zu prüfen |
|
|
135
|
+
| **Sortierung anpassen** | Nach zuletzt archiviert, Aktualisierungszeit, Erstellungszeit oder Titel sortieren |
|
|
136
|
+
| **Chat wiederherstellen** | Auf das Wiederherstellungssymbol der Zeile oder **Mehr → Wiederherstellen und öffnen** klicken |
|
|
137
|
+
| **Ganze Gruppe archivieren** | Unter **Nicht archiviert** im Menü **…** der Gruppe alle Sitzungen archivieren |
|
|
138
|
+
| **Zu Favoriten hinzufügen** | Auf das Sternsymbol der Zeile klicken, um sie als Favorit zu markieren |
|
|
139
|
+
| **Inaktive Chats bereinigen** | Unter **Nicht archiviert** Inaktivitätstage angeben, Vorschau prüfen und archivieren |
|
|
140
|
+
| **Sitzungs-ID kopieren** | Im Menü **Mehr** die Option **Sitzungs-ID kopieren** wählen |
|
|
141
|
+
| **Verwaiste Subagents bereinigen** | Im Bereinigungsbereich verwaiste Subagents erkennen und physisch löschen |
|
|
142
|
+
| **Archivierung rückgängig machen** | Stellen Sie die im aktuellen Batch archivierten Sitzungen über die Benachrichtigung wieder her |
|
|
143
|
+
| **Endgültig löschen** | Sitzungen auswählen, Löschen wählen und die physische Entfernung von Protokollen und Indizes bestätigen |
|
|
144
|
+
|
|
145
|
+
### Favoriten und Bereinigung inaktiver Sitzungen
|
|
146
|
+
|
|
147
|
+
Kompakte Projektgruppen können eingeklappt werden. Sterne und Wiederherstellungs-/Archivierungssymbole befinden sich rechts; Menüs archivierter Sitzungen enthalten «Wiederherstellen und öffnen» sowie «Löschen».
|
|
148
|
+
|
|
149
|
+
- Verwenden Sie den Stern auf beiden Registern und das Menü «Nur Favoriten», um wichtige Unterhaltungen zu filtern. Favoriten bleiben auf dem Host über Archivierung, Wiederherstellung und Browserwechsel hinweg erhalten.
|
|
150
|
+
- Unter «Nicht archiviert» können Sie einen Inaktivitätsschwellenwert von 1 bis 36.500 Tagen festlegen, um Kandidaten unter den aktuellen Filtern zu prüfen. Einzelne Treffer können vor der Bestätigung abgewählt werden. Favoriten, der aktuelle Chat, laufende Sitzungen (einschließlich Subagents) und ausstehende Aktionen sind automatisch geschützt.
|
|
151
|
+
- Batch-Vorgänge melden den Fortschritt sowie erfolgreiche, übersprungene und fehlgeschlagene Elemente. Ein Fehler stoppt den restlichen Ablauf nicht; nur fehlgeschlagene Einträge werden wiederholt.
|
|
152
|
+
- **Archivierung rückgängig machen** stellt die im aktuellen Batch archivierten Sitzungen wieder her. Diese Option steht nur zur Verfügung, solange die aktuelle Verwaltungsseite geöffnet bleibt. Endgültiges Löschen kann nicht rückgängig gemacht werden.
|
|
153
|
+
|
|
154
|
+
### Archivierte Unterhaltungen ansehen und fortsetzen
|
|
155
|
+
|
|
156
|
+
Die native Navigation ermöglicht die Einsichtnahme und Fortführung archivierter Sitzungen:
|
|
157
|
+
|
|
158
|
+
- **Auf den Sitzungstitel klicken**: Öffnet die native DSH-Unterhaltung, um Nachrichten, Anhänge und Werkzeugaufrufe einzusehen. Das Chatten kann fortgesetzt werden, während die Sitzung archiviert bleibt.
|
|
159
|
+
- **Mehr → Wiederherstellen und öffnen**: Hebt die Archivierung auf und öffnet die Sitzung sofort zur Weiterarbeit.
|
|
160
|
+
|
|
161
|
+
## API-Kompatibilität für die Suche (für Integratoren)
|
|
162
|
+
|
|
163
|
+
Die kanonische API lautet `workspaceRegistry.searchSessionContent({ sessionIds, query })` und umfasst archivierte sowie nicht archivierte Sitzungen. Erfordert 1–20 Sitzungs-IDs und einen nicht-leeren Suchbegriff mit 1–200 Zeichen. Das Ergebnis hat die Form `{ items: [{ sessionId, seq, snippet }], failures: [{ sessionId, message }] }`.
|
|
164
|
+
|
|
165
|
+
`searchArchivedContent` bleibt als Legacy-Endpunkt ausschließlich für archivierte Sitzungen erhalten. Beide nutzen die bestehende Typert-Verbindung des Hosts.
|
|
166
|
+
|
|
167
|
+
## Aktualisierungen
|
|
168
|
+
|
|
169
|
+
Führen Sie den Installationsbefehl oben in Ihrem aktiven DSH-Profil erneut aus, um das Plugin zu aktualisieren. In kontrollierten Unternehmensumgebungen können Updates über die Cordis-Konfiguration gesperrt werden.
|
|
170
|
+
|
|
171
|
+
## Häufig gestellte Fragen (FAQ)
|
|
172
|
+
|
|
173
|
+
### Was geschieht nach dem Upgrade mit historischen Plugin-Caches?
|
|
174
|
+
|
|
175
|
+
Das Plugin ersetzt weder die offizielle Projektions-Cache-Tabelle noch scannt oder migriert es alte Plugin-Caches. Das Öffnen der Archivliste liest keine vollständigen Protokolle erneut ein, um fehlende Einträge aufzufüllen. Sitzungsprotokolle verbleiben beim Host, der abgeleitete Projektionen bei Bedarf regeneriert.
|
|
176
|
+
|
|
177
|
+
**Eine kalte Sitzung ohne offiziellen Cache-Eintrag hat in der Liste möglicherweise zunächst keinen Titel; ein reines Neuladen der Liste garantiert keine Rekonstruktion.** Das Lesen des Protokolls stellt den Titel wieder her, und die Reaktivierung der Sitzung speichert den Cache über den nativen Schreibpfad. Historische Cache-Dateien bleiben unberührt. Weitere Details finden Sie im [Changelog](CHANGELOG.md).
|
|
178
|
+
|
|
179
|
+
### Warum wird der Eintrag nach der Installation nicht angezeigt?
|
|
180
|
+
Starten Sie DSH Web neu und erzwingen Sie ein Neuladen im Browser (`Ctrl+Shift+R`). Stellen Sie sicher, dass das Plugin im aktiven Profil installiert wurde.
|
|
181
|
+
|
|
182
|
+
### Was ist der Unterschied zwischen Archivieren und Löschen?
|
|
183
|
+
Archivieren legt die Unterhaltung ab, damit sie später wiederhergestellt werden kann. **Endgültiges Löschen kann nicht rückgängig gemacht werden** und entfernt alle Daten physisch von der Festplatte.
|
|
184
|
+
|
|
185
|
+
### Kann es zusammen mit Codex UI verwendet werden?
|
|
186
|
+
Ja. [Codex UI](https://github.com/MichengAI/dsh-codex-ui) behält sein Design und seine Seitenleistenfunktionen, und Archive Manager bleibt unter **Einstellungen → Archivierte Sitzungen** verfügbar.
|
|
187
|
+
|
|
188
|
+
### Koexistenz mit anderen Archiv-Plugins
|
|
189
|
+
Das Plugin registriert sich unter der Sektions-ID `archive-manager` und kann problemlos parallel zu anderen Archiv-Plugins betrieben werden.
|
|
190
|
+
|
|
191
|
+
## Installation aus dem Quellcode
|
|
192
|
+
|
|
193
|
+
<details>
|
|
194
|
+
<summary>Aufklappen für Entwicklung oder Tests unveröffentlichter Änderungen</summary>
|
|
195
|
+
|
|
196
|
+
Führen Sie die folgenden Befehle in einem Verzeichnis Ihrer Wahl aus:
|
|
197
|
+
|
|
198
|
+
```powershell
|
|
199
|
+
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
|
|
200
|
+
$OutputEncoding = [System.Text.Encoding]::UTF8
|
|
201
|
+
|
|
202
|
+
git clone https://github.com/MichengAI/dsh-archive-manager.git
|
|
203
|
+
Set-Location .\dsh-archive-manager
|
|
204
|
+
pnpm install --frozen-lockfile
|
|
205
|
+
pnpm build
|
|
206
|
+
dsh plugin --profile web add .
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Nach der Installation DSH Web neu starten und die Browserseite aktualisieren. Der Quellcode unter [src](src) verwendet striktes TypeScript. Sowohl GitHub als auch npm enthalten das ausführbare Verzeichnis `lib`.
|
|
210
|
+
|
|
211
|
+
</details>
|
|
212
|
+
|
|
213
|
+
## DSH-Produktökosystem
|
|
214
|
+
|
|
215
|
+
Für eine Desktop-Arbeitsumgebung laden Sie [DSH Codex Desktop](https://github.com/MichengAI/dsh-codex-desktop/releases) herunter. In bestehenden [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)-Installationen können Plugins bei Bedarf ergänzt werden:
|
|
216
|
+
|
|
217
|
+
| Plugin | Hauptfunktionen |
|
|
218
|
+
| --- | --- |
|
|
219
|
+
| [Codex UI](https://github.com/MichengAI/dsh-codex-ui) | Projekte organisieren, Aufgaben suchen und Chatverläufe durchblättern |
|
|
220
|
+
| [Agency Agents](https://github.com/MichengAI/dsh-agency-agents) | Spezialisierte Agenten für Ihre Aufgaben auswählen und herbeirufen |
|
|
221
|
+
| [Skills Manager](https://github.com/MichengAI/dsh-skills-manager) | Lokale Fähigkeiten suchen, aktivieren, erstellen und importieren |
|
|
222
|
+
| [Archive Manager](https://github.com/MichengAI/dsh-archive-manager) | Archivierte Gespräche durchsuchen, wiederherstellen und physisch bereinigen |
|
|
223
|
+
| [IM Connect](https://github.com/MichengAI/dsh-im-connect) | Aufgaben über Messaging-Apps senden und Antworten empfangen |
|
|
224
|
+
| [Automation](https://github.com/MichengAI/dsh-automation) | Wiederkehrende Aufgaben planen und Ausführungen überwachen |
|
|
225
|
+
| [BTW](https://github.com/MichengAI/dsh-btw) | Nebenfragen stellen, ohne die aktuelle Hauptaufgabe zu unterbrechen |
|
|
226
|
+
| [Simplify](https://github.com/MichengAI/dsh-simplify) | Mit `/simplify` geänderten Code direkt in Git-Commits optimieren |
|
|
227
|
+
| [PUA](https://github.com/MichengAI/dsh-pua) | Den Agenten zu Ursachenforschung und strikter Verifikation vor Abschluss anleiten |
|
|
228
|
+
| [Code Review](https://github.com/MichengAI/dsh-code-review) | Unabhängige Code-Reviews mit `/review` direkt in der aktuellen Unterhaltung anfordern |
|
|
229
|
+
| [Codex Pet](https://github.com/MichengAI/dsh-codex-pet) | Benachrichtigungen und Werkzeuggenehmigungen über ein Desktop-Haustier steuern |
|
|
230
|
+
|
|
231
|
+
## Lizenz
|
|
232
|
+
|
|
233
|
+
Lizenziert unter der [Apache License 2.0](LICENSE).
|
package/README.en.md
ADDED
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/branding/dsh-banner-en.webp" alt="DSH Archive Manager" width="100%">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<div align="center">
|
|
6
|
+
|
|
7
|
+
# DSH Archive Manager
|
|
8
|
+
|
|
9
|
+
**Safely manage archived sessions in DeepSeek Harness**
|
|
10
|
+
|
|
11
|
+
[简体中文](README.zh-CN.md) · [English](README.en.md) · [日本語](README.ja.md) · [Español](README.es.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [Русский](README.ru.md) · [Português](README.pt.md)
|
|
12
|
+
|
|
13
|
+
[Changelog](CHANGELOG.md) · [Apache-2.0](LICENSE)
|
|
14
|
+
|
|
15
|
+
[](LICENSE)
|
|
16
|
+
[](https://www.npmjs.com/package/@michengai/dsh-archive-manager)
|
|
17
|
+
[](https://www.npmjs.com/package/@michengai/dsh-archive-manager)
|
|
18
|
+
[](https://github.com/MichengAI/dsh-archive-manager)
|
|
19
|
+
[](#prerequisites)
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
> DSH Archive Manager is a community-maintained DeepSeek Harness (DSH) plugin, not an official DeepSeek AI product.
|
|
23
|
+
|
|
24
|
+
This document describes **1.1.17**. See [Changelog](CHANGELOG.md) for published releases.
|
|
25
|
+
|
|
26
|
+
## Overview
|
|
27
|
+
|
|
28
|
+
Put inactive conversations away and find them again when needed, keeping everyday task lists tidy.
|
|
29
|
+
|
|
30
|
+
- **Dual views & primary sidebar entry**: Toggleable persistent icon on the host's primary sidebar opens a **960px centered workspace view** for both Archived and Unarchived sessions, eliminating narrow dialog scrolling constraints.
|
|
31
|
+
- **Full lifecycle session management**: Archive individual chats, all chats in a workspace, cross-project batches, and restore or open sessions seamlessly.
|
|
32
|
+
- **Full-row sidebar right-click actions**: Right-click directly anywhere on sidebar workspace or session rows to trigger dedicated actions menus; passes through native system context menus on ungrouped or blank rows without accidental clicks.
|
|
33
|
+
- **Zero-jitter star alignment & status dot coexistence (#90, #92)**: Standardizes favorite stars to 16×16px size and overlays the host leading slot via absolute positioning, eliminating horizontal title jitter; during active states (running or waiting approval), host status dots remain 100% visible while the star badge adapts into a 10px bottom-right badge for seamless coexistence, preserving custom skin compatibility.
|
|
34
|
+
- **Workspace quick action menu**: Provides fast "Copy folder path", "Open folder" (directly opens in Windows Explorer or macOS Finder), and one-click "Archive sessions" in the sidebar workspace menu.
|
|
35
|
+
- **Move session across workspaces**: Move conversations across project workspaces via a cascading hover submenu with process quiescence, atomic rewriting, instant projection pre-warming, and NTFS colon-safety for IM sessions.
|
|
36
|
+
- **Unified accordion cards & 40px ultra-compact rows**: Unifies workspace groups with Skills Manager-style integrated drawer cards (38px header); compacts session row height to 40px for doubled information density.
|
|
37
|
+
- **Host-native dark mode checkboxes**: Reverts checkbox styling strictly to host primitive Checkbox specifications using native `accent-color`, perfectly blending with dark backgrounds and brand blue checked states.
|
|
38
|
+
- **Anti-bleedthrough modals & localized accessibility**: Mounts wide preview dialogs directly to body (`portalToBody`) with solid backing and frosted blur to prevent text bleedthrough; adds comprehensive trilingual close button accessibility labels (`common.close`).
|
|
39
|
+
- **Standardized section ID & coexistence compatibility (#91)**: Section ID updated to `archive-manager` with runtime fail-soft `try/catch` protection, ensuring smooth coexistence with third-party archive plugins.
|
|
40
|
+
- **Clean single-line adaptive toolbar**: Uses the host's native `Input` primitive with an official search icon and glowing green focus border, flexibly expanding to fill remaining width; arranged as search input, view filter/sort menu, project filter, and date range in a clean single line with strict box-model boundaries.
|
|
41
|
+
- **Unified full-text search & Codex composite menu**: Search automatically covers both conversation titles and body history (including user and assistant messages) by default; consolidates session filtering (all / favorites only) and sorting into a two-section Codex-style menu with native checkmarks.
|
|
42
|
+
- **Lightweight DateRange capsule & calendar popover**: Completely replaces the native date input to eliminate dark-mode inversion and focus loss (#74); displays the selected range in a single line with a dedicated clear button; supports quick presets, localized English/Chinese/Russian typography, and full WAI-ARIA keyboard navigation (arrows, Home/End, PageUp/Down with month-end clamping) with real-time range stretch preview.
|
|
43
|
+
- **Automated idle session cleanup**: Specify an idle threshold in days to discover inactive chats, automatically protecting running tasks, interactive prompts, and starred items, with instant undo support.
|
|
44
|
+
- **Permanent deletion**: Thoroughly purge unwanted transcripts, cache rows, and indexes with per-item retry reporting.
|
|
45
|
+
- **Orphan subagent detection & cleanup**: Automatically detect residue subagents whose parent sessions were externally deleted, displaying disk usage and enabling safe one-click reclamation.
|
|
46
|
+
- **Enterprise host-level configuration locking & reverse proxy ready**: Supports enterprise Cordis host security locking and native baseURI dynamic endpoint resolution for prefix-stripping reverse proxies.
|
|
47
|
+
|
|
48
|
+
## Manual list-cache rebuild (#88)
|
|
49
|
+
|
|
50
|
+
Opening Archive Manager checks only headers and official cached projections for ordinary cold sessions in registered workspaces, ungrouped lists, and archives, while excluding special IM channel sessions (`im:`). A repair card appears only for missing/incompatible caches or an unavailable title projection. Click to read complete logs one at a time through read-only handles and rebuild registered projections with official `coldSnapshot`, saving to official `session_projcache`.
|
|
51
|
+
|
|
52
|
+
No old plugin domains are scanned, no JSON is copied, no Session/Agent is activated, no model is called, and archives/schedules remain unchanged. Active sessions are skipped; failed items can be retried individually; feedback provides a "Done" dismiss button and auto-dismisses when clear. The official session list is refreshed and candidates checked again afterward. A persistence-confirmation timeout means unknown, not cancelled: deletion remains ordered after pending native writes. Closing the page stops later requests, not the one already sent.
|
|
53
|
+
|
|
54
|
+
## Orphan subagent cleanup
|
|
55
|
+
|
|
56
|
+
When parent sessions are deleted externally or via the host, orphaned subagents may remain on disk. The Archive Manager detects these orphan sessions in the Organizer panel, calculates disk space usage, and provides one-click physical deletion.
|
|
57
|
+
|
|
58
|
+
## Search and preview
|
|
59
|
+
|
|
60
|
+
- Archived and Unarchived share title/content search, project, favorites, updated-date filters, and creation-time sorting. Star or unstar conversations on either tab.
|
|
61
|
+
- Search automatically covers both conversation titles and body history (including user and assistant messages) by default. Date filters include the entire local end date and combine with project and favorites.
|
|
62
|
+
- Matches show snippets and highlights. On Archived, click a snippet or **More → Quick preview** to inspect context without restoring. On Unarchived, a snippet opens the full conversation.
|
|
63
|
+
- Preview renders Markdown tables, quotes, and code blocks with role labels; switch to source text for highlights. It shows up to eight recent messages, or context around the first match. Each message is limited to 2,000 UTF-16 code units without splitting Unicode characters.
|
|
64
|
+
- Search accepts up to 200 query characters and reads batches of at most 20 sessions, sequentially within each batch. Tools, attachments, reasoning, system messages, and plugin injections are excluded. Read failures remain visible and can be retried. Stored text is not the model's current context.
|
|
65
|
+
- There is no persistent full-text index. Large or long conversations can be slow; narrow project, dates, or favorites first. No session-count or latency guarantee has been established. Changing filters prevents later batches and stale results, but cannot interrupt the batch already reading.
|
|
66
|
+
|
|
67
|
+
## Screenshots
|
|
68
|
+
|
|
69
|
+
### 1. Archive Settings Management (Accordion Cards & Dark Mode Checkboxes)
|
|
70
|
+
|
|
71
|
+
Search, favorite, preview, restore, and clean up in **Settings → Archived sessions → Archived** with integrated drawer cards, 40px ultra-compact rows, and native dark mode checkboxes:
|
|
72
|
+
|
|
73
|
+

|
|
74
|
+
|
|
75
|
+
Switch to **Unarchived** for smart idle cleanup suggestions, one-click archiving, and project-wide operations:
|
|
76
|
+
|
|
77
|
+

|
|
78
|
+
|
|
79
|
+
### 2. Centered Full-Screen Workspace Panel (Direct Sidebar Entry)
|
|
80
|
+
|
|
81
|
+
With the sidebar entry enabled, open a full-featured 960px centered workspace panel directly from the main sidebar:
|
|
82
|
+
|
|
83
|
+

|
|
84
|
+
|
|
85
|
+
### 3. Native Sidebar Full-Row Right-Click & Cascading Menus
|
|
86
|
+
|
|
87
|
+
Right-click directly on any workspace or session row in the primary sidebar to open context menus and cascading workspace migration submenus:
|
|
88
|
+
|
|
89
|
+
| Workspace Actions (Copy/Open Folder) | Move Session Across Workspaces (Cascading Submenu) |
|
|
90
|
+
| :---: | :---: |
|
|
91
|
+
| <img src="assets/screenshots/workspace-context-menu.webp" alt="Workspace Actions Menu" width="100%"> | <img src="assets/screenshots/session-move-menu.webp" alt="Move Session Menu" width="100%"> |
|
|
92
|
+
|
|
93
|
+
*Screenshots showcase the core management panels, centered workspace view, and native sidebar context menu enhancements in lossless WebP format.*
|
|
94
|
+
|
|
95
|
+
## Installation
|
|
96
|
+
|
|
97
|
+
A working DeepSeek Harness environment is required. Examples use the `web` profile; adjust to your environment.
|
|
98
|
+
|
|
99
|
+
Plugin installation supports npm registry, locally built `.tgz` packages, and GitHub. Both GitHub and npm contain runnable `lib` artifacts.
|
|
100
|
+
|
|
101
|
+
### Ask an agent to install it
|
|
102
|
+
|
|
103
|
+
Send this prompt to an agent that can run terminal commands on your computer:
|
|
104
|
+
|
|
105
|
+
```text
|
|
106
|
+
Please install the latest @michengai/dsh-archive-manager into my DSH web profile using the official npm registry, verify activation, and explain how to reload.
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Install manually
|
|
110
|
+
|
|
111
|
+
```powershell
|
|
112
|
+
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
|
|
113
|
+
$OutputEncoding = [System.Text.Encoding]::UTF8
|
|
114
|
+
dsh plugin --profile web add @michengai/dsh-archive-manager@latest --registry=https://registry.npmjs.org/
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Restart DSH Web, then refresh the page (or hard-refresh with `Ctrl+Shift+R`). Open **Settings → Archived sessions** to get started. To update, re-run the installation command.
|
|
118
|
+
|
|
119
|
+
- Host compatibility: Full DeepSeek Harness `0.2.x` line (`>=0.2.0-rc.1 <0.3.0-0`), verified with every `0.2.x` release candidate (`0.2.0-rc.1`, `0.2.0-rc.2`, `0.2.1-rc.1` through `0.2.1-rc.5`, and `0.2.2-rc.1`). Intermediate alphas of a release candidate line are outside the supported range, so install a release candidate or the newest alpha.
|
|
120
|
+
- Legacy hosts prior to `0.2.0-rc.1` are no longer supported. The version gate cleanly intercepts breaking changes in the `0.3.0` generation. Users on `0.1.x` hosts should install `1.0.20`.
|
|
121
|
+
- **Reverse proxy deployment**: Supports hosting DSH behind prefix-stripping reverse proxies (e.g. `/app/dsh/`). API and update endpoints automatically resolve against the page base URI (`document.baseURI`), preventing 404 errors caused by lost prefix segments.
|
|
122
|
+
|
|
123
|
+
## Plugin Configuration & Toggles
|
|
124
|
+
|
|
125
|
+
The plugin follows standard DSH bundle configuration conventions. Options are located at:
|
|
126
|
+
> **Sidebar → Plugins → Click `Archive Manager`** (the host's `plugins.bundle.config` slot).
|
|
127
|
+
|
|
128
|
+
Native configuration options are available:
|
|
129
|
+
|
|
130
|
+
### 1. Entry Location (`entryLocation`)
|
|
131
|
+
- **Options**:
|
|
132
|
+
- **All locations (`both`)**: Displays the Archive navigation icon in the left sidebar and keeps the menu entry under **Settings → Archived sessions**.
|
|
133
|
+
- **Sidebar only (`sidebar`)**: Displays the Archive navigation icon in the left sidebar and unregisters the settings section for a streamlined settings dialog.
|
|
134
|
+
- **Settings only (`settings`)** (Default): Keeps the entry under **Settings → Archived sessions** while maintaining a minimal sidebar.
|
|
135
|
+
- **Fail-safe Guarantee**: A mutually-exclusive 3-state segmented control ensures at least one entry point is always accessible, preventing accidental orphan states.
|
|
136
|
+
- **Effect**:
|
|
137
|
+
- When the sidebar is enabled, clicking the icon opens Archive Manager directly in the primary workspace with a **960px centered container** (matching host plugin manager conventions). This eliminates vertical scrolling constraints in narrow settings dialogs;
|
|
138
|
+
- When switching to **Settings only**, safely unregisters the sidebar entry (and resets the active panel gracefully if currently viewing the panel, preventing blank views);
|
|
139
|
+
- Backward compatible with legacy `sidebarEntry` boolean settings (`true` maps to `both`, `false` maps to `settings`).
|
|
140
|
+
|
|
141
|
+
### 2. Online Update Policy (`onlineUpdate` / `updater`)
|
|
142
|
+
- **Configuration**: For curated plugin indexes or enterprise compliance environments, online updates can be governed directly via Cordis configuration (bundle patch):
|
|
143
|
+
```yaml
|
|
144
|
+
updater: false # or onlineUpdate: false
|
|
145
|
+
```
|
|
146
|
+
Once configured, the updater is completely disabled at startup, preventing unreviewed external versions from being installed in the environment.
|
|
147
|
+
|
|
148
|
+
## Usage Guide
|
|
149
|
+
|
|
150
|
+
| Action | How to do it |
|
|
151
|
+
| --- | --- |
|
|
152
|
+
| **Archive one chat** | Open the session context menu in the sidebar and choose **Archive session** |
|
|
153
|
+
| **Archive a workspace** | Open the workspace menu and choose **Archive session** (opens an in-place confirmation overlay) |
|
|
154
|
+
| **Search & filter** | Open **Settings → Archived sessions** or click **Archive** in the sidebar; search bar automatically covers titles and body messages; use the Codex-style view menu to filter (all / favorites only) and sort; select projects from dropdown; pick dates with the single-field capsule |
|
|
155
|
+
| **Custom calendar & keyboard nav** | Click the date capsule to open the lightweight calendar popover; supports all time and quick presets; provides complete WAI-ARIA keyboard navigation (arrows, Home/End, PageUp/Down, Enter/Space) and real-time range stretch preview |
|
|
156
|
+
| **Quick preview** | Click a match snippet or **More → Quick preview** to inspect context with highlights without restoring |
|
|
157
|
+
| **Adjust ordering** | Sort by recently archived, update time, creation time, or title in the view menu |
|
|
158
|
+
| **Restore a chat** | Click the restore icon on any row; use **More → Restore and open** to resume the chat directly |
|
|
159
|
+
| **Archive entire group** | On **Unarchived**, click the **…** menu next to a group and confirm archiving all chats in that project |
|
|
160
|
+
| **Favorite chats** | Click the star icon on any row; use the view menu to filter starred chats |
|
|
161
|
+
| **Clean up idle chats** | On **Unarchived**, set an idle day threshold, automatically protecting running and starred chats, preview candidates, and confirm |
|
|
162
|
+
| **Copy session ID** | Select **Copy session ID** from the **More** menu |
|
|
163
|
+
| **Clean up orphan subagents** | Detect and physically delete orphan subagents in the Organizer panel |
|
|
164
|
+
| **Archive across projects** | Switch to **Unarchived**, select sessions across projects, then click **Archive** and confirm |
|
|
165
|
+
| **Restore or delete in bulk** | Select chats and use the bulk actions, or use the project menu; there are no separate Restore all / Delete all buttons |
|
|
166
|
+
|
|
167
|
+
The page opens on **Archived**, with **Unarchived** on the right. Switching tabs clears selections; changing search or project filters preserves them. Check the hidden selection count before applying bulk actions, or clear your selection first.
|
|
168
|
+
|
|
169
|
+
**Select all filtered results** selects matching sessions, including collapsed groups. Project-wide actions still apply to the whole project regardless of search filters. Unarchived excludes subagents and blank placeholders.
|
|
170
|
+
|
|
171
|
+
Settings and sidebar batch archive/restore call the official single-session APIs `ctx.workspaces.archiveSession` and `ctx.workspaces.unarchiveSession` serially.
|
|
172
|
+
|
|
173
|
+
### Favorites and idle cleanup
|
|
174
|
+
|
|
175
|
+
Compact project groups can be collapsed. Stars and restore/archive icons appear on the right; archived session menus include restore-and-open and deletion.
|
|
176
|
+
|
|
177
|
+
- Use the star on either tab and the **Favorites only** dropdown to find important chats. Favorites persist on the host across archive, restore, and browser changes. Reopen management to see changes made in other pages. Unknown or unreadable sessions retain their stored favorite IDs; cleanup requires confirmed artifact absence.
|
|
178
|
+
- On Unarchived, enter 1–36,500 whole idle days and preview candidates under the current filters. Deselect individual candidates before confirmation. Favorites, the current chat, running sessions (including subagents), and pending interactions are protected; sessions without a valid activity time are excluded.
|
|
179
|
+
- Archive rechecks favorites and activity. Batch archive, restore, and delete report progress plus successful, skipped, and failed counts. A failure does not stop the rest; retry only the failed items. Delete retries still require confirmation.
|
|
180
|
+
- **Undo this archive** restores sessions archived by the current batch, including successful retries. It is available only while the current management page remains open; refreshing or closing clears it. Permanent deletion cannot be undone.
|
|
181
|
+
- Favorites can still be archived manually. Protection applies to idle cleanup only. There is no scheduled or automatic background cleanup.
|
|
182
|
+
|
|
183
|
+
### View and continue archived conversations
|
|
184
|
+
|
|
185
|
+
Native conversation navigation has been available since `0.1.40`; 1.0.0 uses these entry points:
|
|
186
|
+
|
|
187
|
+
- **Click the session title**: open the native DSH session to view messages, attachments, and tool details. Continue chatting while keeping the session archived.
|
|
188
|
+
- **More → Restore and open**: unarchive the session and open it to resume work.
|
|
189
|
+
|
|
190
|
+
## Search API compatibility (integrators)
|
|
191
|
+
|
|
192
|
+
The canonical API is `workspaceRegistry.searchSessionContent({ sessionIds, query })`, covering archived and unarchived sessions. Supply 1–20 session IDs and a nonempty query of 1–200 characters; IDs are deduplicated. Results have the shape `{ items: [{ sessionId, seq, snippet }], failures: [{ sessionId, message }] }`. Individual read failures appear in `failures`; invalid input rejects the call.
|
|
193
|
+
|
|
194
|
+
`searchArchivedContent` remains the legacy, archived-only entry point. Both use the existing host Typert connection and authorization boundary; no HTTP endpoint or authentication setting is added. Keep the legacy descriptor throughout the currently supported host range, including patch releases. Removal requires an explicit compatibility-range change, client migration, and deprecation notice. New clients prefer the canonical API and use the old one only as a version fallback, never dispatching the same search to both.
|
|
195
|
+
|
|
196
|
+
## Updates
|
|
197
|
+
|
|
198
|
+
Rerun the installation command above in your active DSH profile to update the plugin. In environments requiring compliance locking, updates can be governed via Cordis configuration.
|
|
199
|
+
|
|
200
|
+
## FAQ
|
|
201
|
+
|
|
202
|
+
### Why is the entry missing after installation?
|
|
203
|
+
|
|
204
|
+
Restart DSH Web and hard-refresh your browser. Make sure you installed into the profile you are using. If the entry is still missing, run:
|
|
205
|
+
|
|
206
|
+
```powershell
|
|
207
|
+
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
|
|
208
|
+
$OutputEncoding = [System.Text.Encoding]::UTF8
|
|
209
|
+
|
|
210
|
+
dsh --profile web --dump-config
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
The configuration should include `ui-workspace-archive-manager` and must not disable official `workspace` or `session-projection-cache`. A leftover `archive-manager-host` override can be removed. On current DSH hosts the official `ui-settings-unarchive-sessions` entry is gone, so this plugin no longer disables it (doing so only warned that the patch entry was missing). If your profile's `cordis.patch.yml` still disables `workspace`, `session-projection-cache`, or `ui-workspace`, remove those overrides and restart.
|
|
214
|
+
|
|
215
|
+
### What happens to historical plugin caches after upgrading?
|
|
216
|
+
|
|
217
|
+
The plugin neither replaces the official projection-cache table nor scans, validates, or migrates historical plugin caches. Opening the archive list does not read complete logs or write back official projections to fill missing cache entries. Session logs remain host-owned, and the host rebuilds derived projections such as titles on demand. Enabling or disabling the plugin does not switch cache tables; there is no need to enable it once just to import old caches.
|
|
218
|
+
|
|
219
|
+
**A cold session without an official cache entry may initially have no title in the list; refreshing the list alone does not guarantee a rebuild.** Reading the log can recover the title, and restoring the session as live lets the native write path persist its cache. Historical plugin cache files are left untouched: they are neither read nor deleted automatically. See the [changelog](CHANGELOG.md) for details.
|
|
220
|
+
|
|
221
|
+
### How is archiving different from deletion?
|
|
222
|
+
|
|
223
|
+
Archiving puts a conversation away so you can restore it later. **Permanent deletion cannot be undone** and may also remove that session's attachments. It does not delete your project working directory. Deletion requires confirmation.
|
|
224
|
+
|
|
225
|
+
### Can I use it with Codex UI?
|
|
226
|
+
|
|
227
|
+
Yes. [Codex UI](https://github.com/MichengAI/dsh-codex-ui) keeps its sidebar appearance and interactions. Archive management remains available in **Settings → Archived sessions**.
|
|
228
|
+
|
|
229
|
+
### Coexisting with other archive plugins
|
|
230
|
+
|
|
231
|
+
This plugin registers its Settings entry under the section ID `archive-manager`. If other session archive plugins (such as `@linxin666/dsh-session-archive`) are installed at the same time, two distinct "Archived sessions" entries will appear in the settings sidebar. Both can be accessed independently as expected.
|
|
232
|
+
|
|
233
|
+
For other problems, open an [issue](https://github.com/MichengAI/dsh-archive-manager/issues) with your DSH and plugin versions, reproduction steps, and error details.
|
|
234
|
+
|
|
235
|
+
## Install from source
|
|
236
|
+
|
|
237
|
+
<details>
|
|
238
|
+
<summary>Expand for development or testing unreleased changes</summary>
|
|
239
|
+
|
|
240
|
+
Run these commands in a directory of your choice. For local changes that have not been pushed, use the existing working copy.
|
|
241
|
+
|
|
242
|
+
```powershell
|
|
243
|
+
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
|
|
244
|
+
$OutputEncoding = [System.Text.Encoding]::UTF8
|
|
245
|
+
|
|
246
|
+
git clone https://github.com/MichengAI/dsh-archive-manager.git
|
|
247
|
+
Set-Location .\dsh-archive-manager
|
|
248
|
+
pnpm install --frozen-lockfile
|
|
249
|
+
pnpm build
|
|
250
|
+
dsh plugin --profile web add .
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
Restart DSH Web and hard-refresh your browser afterward. Source code in [src](src) uses strict TypeScript. Both GitHub and npm include a ready-to-run `lib`. After changing source, run `pnpm build` before committing, or a source install keeps the previous runtime. Published JavaScript entry points and runtime modules remain unchanged; installing the npm package does not require TypeScript. Run `pnpm typecheck` for type checking, `pnpm test` to validate changes, or `pnpm verify` for the full checks.
|
|
254
|
+
|
|
255
|
+
</details>
|
|
256
|
+
|
|
257
|
+
## DSH product ecosystem
|
|
258
|
+
|
|
259
|
+
For a desktop workbench, download [DSH Codex Desktop](https://github.com/MichengAI/dsh-codex-desktop/releases). Existing [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) installations can add plugins as needed by following each project's README. Below are 11 first-party plugins; consult the corresponding desktop release notes and bundled catalog for what that version includes.
|
|
260
|
+
|
|
261
|
+
| Plugin | What you can do |
|
|
262
|
+
| --- | --- |
|
|
263
|
+
| [Codex UI](https://github.com/MichengAI/dsh-codex-ui) | Organize projects and conversations, search tasks, and navigate chat turns |
|
|
264
|
+
| [Agency Agents](https://github.com/MichengAI/dsh-agency-agents) | Choose and summon specialists for your task |
|
|
265
|
+
| [Skills Manager](https://github.com/MichengAI/dsh-skills-manager) | Find, enable, create, and import local skills |
|
|
266
|
+
| [Archive Manager](https://github.com/MichengAI/dsh-archive-manager) | Search, restore, or clean up archived conversations |
|
|
267
|
+
| [IM Connect](https://github.com/MichengAI/dsh-im-connect) | Send tasks and receive replies through messaging platforms |
|
|
268
|
+
| [Automation](https://github.com/MichengAI/dsh-automation) | Schedule tasks and review each run |
|
|
269
|
+
| [BTW](https://github.com/MichengAI/dsh-btw) | Ask side questions without interrupting the main task |
|
|
270
|
+
| [Simplify](https://github.com/MichengAI/dsh-simplify) | Use `/simplify` to improve code within your Git changes |
|
|
271
|
+
| [PUA](https://github.com/MichengAI/dsh-pua) | Guide the Agent to try new approaches after failures, investigate causes, and verify results before completion |
|
|
272
|
+
| [Code Review](https://github.com/MichengAI/dsh-code-review) | Use `/review` to request an independent Agent code review and receive the report in the current conversation |
|
|
273
|
+
| [Codex Pet](https://github.com/MichengAI/dsh-codex-pet) | View conversation notifications and respond to tool approvals and questions through a desktop pet |
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
## License
|
|
277
|
+
|
|
278
|
+
Licensed under [Apache License 2.0](LICENSE).
|