dsh-session-manager 0.6.3 → 0.7.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 +177 -345
- package/README.md +18 -6
- package/README.zh.md +21 -9
- package/lib/client.js +6402 -4348
- package/lib/compat/dsh-adapter.js +3 -0
- package/lib/index.js +1629 -1335
- package/lib/workspace-archive-store.js +235 -0
- package/package.json +5 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,345 +1,177 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
- **fix(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
- **
|
|
16
|
-
- **
|
|
17
|
-
- **
|
|
18
|
-
- **
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
- **
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
- **fix(ui)**:
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
- **
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
- **fix(ui)**:
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
- **
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
- **
|
|
58
|
-
- **
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
- **fix(
|
|
63
|
-
- **
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
- **
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
- **
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
- **
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
- **
|
|
92
|
-
|
|
93
|
-
- **
|
|
94
|
-
|
|
95
|
-
- **fix**:
|
|
96
|
-
|
|
97
|
-
- **
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
- **fix(
|
|
122
|
-
|
|
123
|
-
- **
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
- **
|
|
128
|
-
- **
|
|
129
|
-
|
|
130
|
-
## 0.
|
|
131
|
-
|
|
132
|
-
- **
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
- **
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
- **feat(
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
- **fix(
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
- **feat(
|
|
149
|
-
|
|
150
|
-
- **
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
- **
|
|
155
|
-
- **
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
/ Move actions, so this fix applies there too.
|
|
179
|
-
|
|
180
|
-
- **fix(ui)**: Modals now close ONLY via Esc or their explicit close
|
|
181
|
-
buttons. The original 0.4.7 behavior (close on backdrop click)
|
|
182
|
-
was removed per user feedback -- a stray click outside the panel
|
|
183
|
-
was dismissing it accidentally. Every `.sm-nativeDialogBackdrop`
|
|
184
|
-
`onMouseDown` handler is gone; the dim backdrop itself is also
|
|
185
|
-
gone so opening a modal never darkens the page (sidebar or
|
|
186
|
-
content area).
|
|
187
|
-
|
|
188
|
-
- **refactor(ui)**: Esc handling moved from per-layer `onKeyDown`
|
|
189
|
-
to a `window`-level `keydown` listener via `useEffect` on every
|
|
190
|
-
modal. A `useRef` lets the listener see the latest state values
|
|
191
|
-
without re-subscribing on every render. The panel listener
|
|
192
|
-
returns early when any inner dialog is open so the child
|
|
193
|
-
dialog's listener gets the first shot at Esc.
|
|
194
|
-
|
|
195
|
-
- **fix(ui)**: After a keyboard-driven close (Esc), the originally
|
|
196
|
-
focused trigger button (sidebar toggle / row button / Cancel
|
|
197
|
-
button) no longer leaves a lingering `:focus-visible` ring. The
|
|
198
|
-
four Esc handlers `blur()` the active element after the close
|
|
199
|
-
call. Mouse-driven closes are not affected -- `:focus-visible`
|
|
200
|
-
only activates for keyboard-acquired focus.
|
|
201
|
-
|
|
202
|
-
- **fix(ui)**: ConfirmDialog no longer listens for Enter at the
|
|
203
|
-
layer level. The previous handler raced with the focused Cancel
|
|
204
|
-
button's native Enter handler -- both fired (`onCancel` +
|
|
205
|
-
`onConfirm`). Enter now lives only on the focused button.
|
|
206
|
-
|
|
207
|
-
- **cleanup(ui)**: Remove three dead `<section>` `ref={(el) =>
|
|
208
|
-
el.focus()}` callbacks (sections have no `tabindex` and are
|
|
209
|
-
not focusable, so the focus calls were silent no-ops). Also
|
|
210
|
-
remove the now-unused `onPanelKey` callback and `tabIndex: -1`
|
|
211
|
-
attributes on the modal layers. The `.sm-nativeDialogBackdrop`
|
|
212
|
-
divs are no longer rendered at all -- they had no behavior left
|
|
213
|
-
after removing the click-to-close.
|
|
214
|
-
|
|
215
|
-
- **chore**: bump version to 0.4.9.
|
|
216
|
-
|
|
217
|
-
## 0.4.7 — 2026-09-10
|
|
218
|
-
|
|
219
|
-
- **fix(disk scan)**: include `session.v3.jsonl.zstd` in the on-disk
|
|
220
|
-
filename list used by readSessionArtifact() and listSessionHeaders().
|
|
221
|
-
DSH 0.1.5-rc.1's persistence backend writes generation v3 artifacts at
|
|
222
|
-
that filename; the 0.4.6 release scanned only v2/plaintext names, so
|
|
223
|
-
fresh sessions appeared to have no disk record and the move/migrate
|
|
224
|
-
endpoints failed with "session has no artifact".
|
|
225
|
-
|
|
226
|
-
- **chore**: bump version to 0.4.7.
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
## 0.4.6 — 2026-09-05
|
|
230
|
-
|
|
231
|
-
- **fix(persistence)**: read all concatenated Zstandard frames in a session
|
|
232
|
-
artifact. DSH writes one frame for the header and additional frames for
|
|
233
|
-
event batches; reading only the first frame made sessions appear to lose
|
|
234
|
-
their event history after refresh.
|
|
235
|
-
- **fix(move)**: preserve the session generation/header version when
|
|
236
|
-
re-homing an artifact, and synchronize the live session, persistence
|
|
237
|
-
coordinator, registry indexes, and workspace accounting after a move.
|
|
238
|
-
This avoids stale-path `ENOENT` failures and v2/v0 filename/header
|
|
239
|
-
mismatches on the next DSH startup.
|
|
240
|
-
- **fix(preset migration)**: fall back to an id-based artifact scan when a
|
|
241
|
-
persistence locate result points at a stale path, and mirror cold-path
|
|
242
|
-
migrations into the live session projection.
|
|
243
|
-
- **fix(client)**: stop calling the removed/unavailable
|
|
244
|
-
`noteAgentPreset` client method; refresh the session projection instead.
|
|
245
|
-
- **recovery**: add `scripts/heal-v2-sessions.ps1` for the DSH 0.1.1-rc.2
|
|
246
|
-
boot-time quirk where `session.v2.jsonl.zstd` contains a `version: 0`
|
|
247
|
-
header. Run it before starting DSH; this repair must happen before DSH's
|
|
248
|
-
workspace initialization, which is earlier than user plugin `apply()`.
|
|
249
|
-
|
|
250
|
-
- **docs**: bump version to 0.4.6.
|
|
251
|
-
## 0.4.5 — 2026-09-05
|
|
252
|
-
|
|
253
|
-
- **fix(move)**: keep the live session and agent in place during a cross-workspace
|
|
254
|
-
move. The previous code tore down the live agent/session, moved the file, then
|
|
255
|
-
called `ctx.agents.resume` to re-create the agent. DSH's `agent/status` event
|
|
256
|
-
is only emitted on phase changes, so a freshly resumed agent never told the
|
|
257
|
-
client it was now idle, leaving the sidebar's model selector and send button
|
|
258
|
-
disabled ("session unavailable") until a manual browser refresh. The new path flushes
|
|
259
|
-
pending events to disk, updates the in-memory session header + coordinator
|
|
260
|
-
state + workspace accounting in place, and atomically renames the artifact,
|
|
261
|
-
so the agent's UI keeps showing the same in-memory session with no client
|
|
262
|
-
re-init.
|
|
263
|
-
- **fix(preset migration)**: drop the over-strict `persistence.readRaw` /
|
|
264
|
-
`persistence.list` precondition that caused the
|
|
265
|
-
`/session-manager/api/preset-scan` endpoint to fail with
|
|
266
|
-
`current persistence backend does not support readRaw/list` on a default DSH
|
|
267
|
-
build. The actual `JsonlSessionPersistence` backend exposes both methods, so
|
|
268
|
-
the precondition is replaced with a try/catch around `listSessionHeaders` that
|
|
269
|
-
converts any missing-method failure into a useful
|
|
270
|
-
`failed to enumerate sessions: <detail>` message.
|
|
271
|
-
- **chore**: remove the now-unused `quietLive` / `releaseLiveSession` helpers
|
|
272
|
-
and squash the per-route indentation noise around `/move` and `/workspaces`.
|
|
273
|
-
|
|
274
|
-
## 0.4.4 — 2026-09-03
|
|
275
|
-
|
|
276
|
-
- **docs**: rename the English README wording from `conversation` to `session` to align with the plugin name (`dsh-session-manager`), the Chinese README (`README.zh.md`), the DSH host APIs, and the [awesome-dsh-plugin](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin) registry entry.
|
|
277
|
-
- **chore**: rewrite `package.json` `description` to use `Session manager` / `sessions` for the same alignment, and bump the version to `0.4.4`.
|
|
278
|
-
- **chore(repo)**: update the GitHub repository description to match.
|
|
279
|
-
|
|
280
|
-
## 0.4.3 — 2026-09-03
|
|
281
|
-
|
|
282
|
-
- **docs**: add the [Awesome DSH Plugin](https://awesome-dsh-plugin.com) badge to `README.md` / `README.zh.md` so the repo surfaces its curated registry membership.
|
|
283
|
-
|
|
284
|
-
## 0.4.2 — 2026-09-03
|
|
285
|
-
|
|
286
|
-
- **feat(theme)**: dialogs now auto-follow DSH''s dark/light theme (`data-ds-dark-theme` / ` `code-scheme` / `data-theme`) via a single `data-sm-theme` attribute and scoped CSS variables, with inline `background` / `color` / `border-color` applied to each dialog root so they stay opaque regardless of how DSH resolves its own tokens. The previous manual light/dark toggle button is removed.
|
|
287
|
-
- **docs**: aligned bilingual README structure, dropped the obsolete "no bulk migration" wording, and added an Acknowledgments section that thanks the users and the contributors filing issues and opening PRs. Listed [dsh-market](https://github.com/dsh-market/dsh-market) and [awesome-dsh-plugin](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin) as install sources.
|
|
288
|
-
- **chore**: rewrote `package.json` `description` to match the new English summary.
|
|
289
|
-
|
|
290
|
-
## 0.4.1 — 2026-08-28
|
|
291
|
-
|
|
292
|
-
- **fix(ui)**: keep the title-bar **Delete conversation** button readable on hover with a red background, white text, and red border; remove the unused legacy danger-button rules.
|
|
293
|
-
|
|
294
|
-
## 0.4.0 — 2026-08-28
|
|
295
|
-
|
|
296
|
-
- **feat(session preset migration)**: replaces the former bulk workflow with a
|
|
297
|
-
per-conversation **Migrate preset** action in Session manager. It resolves the
|
|
298
|
-
effective preset from the latest `agent-preset/selected` event or, when absent,
|
|
299
|
-
the session header, then safely updates that one conversation.
|
|
300
|
-
- **fix(lifecycle)**: moving a conversation or migrating its preset now retires stale
|
|
301
|
-
live agents and persistence owners before refresh. This prevents resume failures
|
|
302
|
-
such as `already has a live persistence owner`.
|
|
303
|
-
- **fix(move)**: refreshes session and workspace state immediately and once more after
|
|
304
|
-
the host event race, so a moved conversation reappears in its target workspace
|
|
305
|
-
without a manual browser refresh.
|
|
306
|
-
- **ui**: finalizes header actions and Session manager dialogs: red delete actions,
|
|
307
|
-
per-row preset migration, consistent dialog placement, readable hover states, and
|
|
308
|
-
a close button beside the manager title.
|
|
309
|
-
- **docs**: refreshes bilingual documentation and npm metadata for the single-session
|
|
310
|
-
preset migration workflow.
|
|
311
|
-
|
|
312
|
-
## 0.3.0 — 2026-08-27
|
|
313
|
-
|
|
314
|
-
- **feat(preset migration)**: introduced preset migration support for conversations
|
|
315
|
-
whose configured Agent preset was renamed or removed.
|
|
316
|
-
- **feat(move)**: added workspace move handling and client-side workspace refreshes.
|
|
317
|
-
|
|
318
|
-
## 0.2.1 — 2026-08-26
|
|
319
|
-
|
|
320
|
-
- **fix(move)**: reimplemented cross-workspace moves so the session artifact, stored
|
|
321
|
-
`cwd`, and workspace accounting are moved together while preserving history,
|
|
322
|
-
title, archive state, and derived-session relationships.
|
|
323
|
-
- **feat(workspaces API)**: added the workspace projection endpoint used by the move UI.
|
|
324
|
-
- **guard**: reject subagent and transient blank-session placeholders for move actions.
|
|
325
|
-
|
|
326
|
-
## 0.2.0 — 2026-08-16
|
|
327
|
-
|
|
328
|
-
> ⚠️ The initial workspace-move implementation was superseded by 0.2.1.
|
|
329
|
-
|
|
330
|
-
- **feat(move)**: added the initial move-to-workspace UI and host endpoints.
|
|
331
|
-
|
|
332
|
-
## 0.1.2 — 2026-08-16
|
|
333
|
-
|
|
334
|
-
- **docs**: synchronized package metadata and bilingual README files for publication.
|
|
335
|
-
|
|
336
|
-
## 0.1.1 — 2026-08-16
|
|
337
|
-
|
|
338
|
-
- **fix(panel)**: hide transient blank-session placeholders from the manager panel.
|
|
339
|
-
- **test**: added the host API smoke test.
|
|
340
|
-
- **ci**: added syntax and package-content verification.
|
|
341
|
-
|
|
342
|
-
## 0.1.0 — 2026-08-16
|
|
343
|
-
|
|
344
|
-
- **feat**: initial session deletion with confirmation, archive management, and the
|
|
345
|
-
Session manager panel.
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## 0.7.0 — 2026-10-15
|
|
6
|
+
|
|
7
|
+
- **fix(ui)**: Unify select dropdown styling across all dialogs and panels with shadow-free custom floating menus, strictly align popup width with triggers, and isolate pointer events to eliminate duplicate native OS popups on Chromium.
|
|
8
|
+
- **fix(ui)**: Fix workspace bulk action buttons wrapping to next row when overflowing in English mode, preventing the unarchive button from exceeding the window boundary.
|
|
9
|
+
- **fix(ui)**: Align dropdown trigger box width and dropdown menu content width in workspace management panel.
|
|
10
|
+
- **fix(ui)**: Make workspace management toolbar buttons adaptively wrap when the window narrows, matching session management panel behavior.
|
|
11
|
+
- **feat(workspace)**: Automatically reveal and restore archived workspaces when creating a workspace with an identical directory path.
|
|
12
|
+
- **feat(workspace)**: Add Workspace Management tab to the Session Manager panel with dedicated search, active/archived filters, and update-time & alphabetical sorting.
|
|
13
|
+
- **feat(workspace)**: Support single and bulk workspace archiving via toggle switch and bulk actions without secondary confirmation.
|
|
14
|
+
- **fix(ui)**: Remove hover tooltip on workspace switch and stabilize layout against window jitter during hover and toggle.
|
|
15
|
+
- **ui**: Reorder workspace toolbar with sort dropdown placed after the active filter button, with responsive multi-row layout for bulk action controls.
|
|
16
|
+
- **ui**: Simplify select-all button label to "Select All Filtered" in both session and workspace management panels.
|
|
17
|
+
- **ui**: Remove duplicate "Reset Filters" button in the Session Management panel.
|
|
18
|
+
- **feat(workspace)**: Support workspace restoration, unarchiving only sessions archived during the workspace archive operation while keeping individually archived sessions intact.
|
|
19
|
+
- **feat(workspace)**: Support workspace bulk management with selection mode, row checkboxes, select-all/clear, and bulk archive/unarchive controls aligned on the same toolbar row as filters and sort.
|
|
20
|
+
- **feat(workspace)**: Consolidate workspace toolbar row layout placing sort dropdown, filter buttons, and bulk action buttons on a single harmonious row.
|
|
21
|
+
- **feat(workspace)**: Robust workspace and session update timestamp extraction supporting live member sessions, backend cache, and filesystem mtimes.
|
|
22
|
+
- **feat(sessions)**: Add Name Ascending (`name-asc`) and Name Descending (`name-desc`) sorting in both session management and workspace management.
|
|
23
|
+
- **ui**: Rename sidebar footer entry from "Sessions" to "Sessions & Workspaces".
|
|
24
|
+
- **feat(workspace)**: Integrate native DSH sidebar hiding via wrapped `workspaces.list.getSnapshot()`, filtering hidden workspaces and merging session IDs into `archivedSessionIds` so sessions never spill into "Ungrouped".
|
|
25
|
+
- **feat(workspace)**: Durable host-side persistence in `workspace-archives.v1.json` with file locking, and zero-flash synchronous `localStorage` caching with automatic migration from legacy `dsh-workspace-hide.hidden.v2`.
|
|
26
|
+
- **feat(safety)**: Refuse workspace archiving if any session has running activity, and implement automatic rollback on partial archive failures.
|
|
27
|
+
- **test**: Add comprehensive test suites covering workspace listing, search/filter/sort, toggle archiving/unarchiving, bulk mode and batch archive/unarchive, sidebar hiding, ungrouped isolation, running session safety, and failure rollbacks.
|
|
28
|
+
|
|
29
|
+
## 0.6.4 — 2026-10-13
|
|
30
|
+
|
|
31
|
+
- **fix(ui)**: Portal `SessionManagerPanel` into `#dsh-session-manager-overlay-root` to resolve overlay occlusion and interaction blocking by DSH sidebar/main view (#28).
|
|
32
|
+
- **fix(responsive)**: Align compact header menu item order with expanded state across folding modes, hide visible primary actions from menu in medium fold, open menu rightwards under 420px ultra-narrow view, and clamp dialog positioning to avoid left sidebar occlusion.
|
|
33
|
+
- **fix(ui)**: Close secondary dialogs in LIFO order on Escape, align action button styles, and unify tooltip wrappers.
|
|
34
|
+
- **fix(compat)**: Support DSH 0.2.0-rc.2+ 3-argument `coldSnapshot` signature, fixing log offset warnings and projection refresh after workspace move (#25).
|
|
35
|
+
- **fix(workspace)**: Sync sidebar state on archive/unarchive via official `uiWorkspace`/`workspaces` commands, unpin archived sessions, and stop active sessions on archive (#26).
|
|
36
|
+
- **test**: Add automated test coverage for issues #25, #26, and #28.
|
|
37
|
+
- **docs**: Streamline dialog opacity and theming documentation in README files.
|
|
38
|
+
|
|
39
|
+
## 0.6.3 — 2026-10-03
|
|
40
|
+
|
|
41
|
+
- **feat(settings)**: Add "Dialog opacity" preference (50%–100%) in Settings card to adjust plugin dialog background transparency without affecting text, borders, or controls (#23).
|
|
42
|
+
- **fix(theme)**: Directly consume official DSH `--dsw-alias-*` theme tokens instead of locally redefining them, removing hardcoded backgrounds and `!important` locks that broke custom themes (#23).
|
|
43
|
+
- **fix(theme)**: Subscribe to DSH `theme/change` event for reliable theme synchronization across light and dark modes.
|
|
44
|
+
- **fix(ui)**: Keep modal layers within DSH's 1000–1100 floating tier (`1020` panel, `1050` overlay root) so DSH tooltips remain visible above dialogs (#21).
|
|
45
|
+
- **fix(ui)**: Standardize dialog action buttons to 28px height with unified transparent border and hover styles.
|
|
46
|
+
- **fix(ui)**: Style dropdown `<option>` elements with DSH `--dsw-alias-bg-layer-3` to fix white popup backgrounds in dark mode.
|
|
47
|
+
- **fix(ui)**: Improve delete button contrast across custom themes using `--dsw-alias-button-floating-fill`.
|
|
48
|
+
- **fix(ui)**: Align AI prompt copy and import layout with standard field structure in Annotation dialog.
|
|
49
|
+
- **fix(css)**: Rewrite injected plugin stylesheet on reload to ensure styles update during client hot reloads.
|
|
50
|
+
- **test**: Add comprehensive test suites for dialog opacity, theme tokens, and z-index layering.
|
|
51
|
+
- **docs**: Clarify that validation is targeted primarily for the official DSH Desktop client.
|
|
52
|
+
|
|
53
|
+
## 0.6.2 — 2026-10-02
|
|
54
|
+
|
|
55
|
+
- **feat(update)**: Add self-update checking and installation workflow with header whale icon, modal `UpdateDialog`, and host API endpoints.
|
|
56
|
+
- **feat(settings)**: Add `SessionManagerSettingsCard` in DSH Settings with version info, auto-check toggle, update actions, and npm registry source selection (npm official or China mirror).
|
|
57
|
+
- **feat(ui)**: Add responsive container queries for header actions (720px / 520px) transitioning between full labels, 32×32 icon buttons, and overflow menu (`⋯`).
|
|
58
|
+
- **fix(ui)**: Reset main view to welcome screen when deleting the active session via `ctx.uiWorkspace.clearMain()`, matching archive behavior.
|
|
59
|
+
- **fix(ui)**: Mount dialogs into dedicated `#dsh-session-manager-overlay-root` with dynamic z-index stacking (`nextDialogZ()`) to escape ancestor stacking contexts (#19).
|
|
60
|
+
- **fix(ui)**: Render `FooterAction` directly as native buttons in wide/rail modes, eliminating duplicate container wrappers (#20).
|
|
61
|
+
- **fix(ui)**: Optimize title bar button ordering with Archive first and vertically centered icons.
|
|
62
|
+
- **fix(css)**: Remove unscoped global tooltip selectors (`[role=tooltip]`, `.bubble`) that interfered with DSH core message bubbles (#21).
|
|
63
|
+
- **test**: Add coverage for updates, settings card, responsive headers, registry switching, and active session deletion.
|
|
64
|
+
|
|
65
|
+
## 0.5.4 — 2026-09-30
|
|
66
|
+
|
|
67
|
+
- **docs**: Update project description and metadata to reflect official Web UI and Desktop app support; clarify client synchronization, install profiles, and runtime requirements.
|
|
68
|
+
|
|
69
|
+
## 0.5.3 — 2026-09-26
|
|
70
|
+
|
|
71
|
+
- **fix(ui)**: Forward translation function `t` to panel `MoveDialog` and unarchive archived sessions when opening from row (#17).
|
|
72
|
+
- **fix(persistence)**: Stamp `header.version` from target filename during `moveSession` to ensure valid headers on V4 artifacts (#18).
|
|
73
|
+
- **fix(ui)**: Display friendly `displayTitle` instead of raw ID in confirmation descriptions and avoid crashes in title-bar action lookups.
|
|
74
|
+
- **fix**: Strip UTF-8 BOM from `package.json` to prevent JSON parse errors.
|
|
75
|
+
- **test**: Add regression guards for issues #17 and #18.
|
|
76
|
+
|
|
77
|
+
## 0.5.2 — 2026-09-23
|
|
78
|
+
|
|
79
|
+
- **fix(bulk management)**: add a missing entry-point for batch operations with a new **Select** toolbar toggle in the panel header.
|
|
80
|
+
- **fix(bulk management)**: Remove duplicate return statement in `SessionManagerPanel` that prevented bulk dialogs from rendering.
|
|
81
|
+
- **feat(bulk management)**: Add multi-select checkboxes to session rows with a sticky bulk action bar for archiving, unarchiving, favorites, review flags, tags, priority, moving, and deletion.
|
|
82
|
+
- **feat(bulk management)**: Add batch preset migration action via `/preset-scan` and `/batch` endpoint.
|
|
83
|
+
- **fix(host)**: Fix Cordis dependency injection for `archiveSession`, resolve annotation accessor closure in `runBatchAction`, and add `unfavorite`/`unreview` to supported batch actions.
|
|
84
|
+
- **fix(ui)**: Position bulk dialogs consistently with other dialogs and apply proper dark theme styling.
|
|
85
|
+
- **feat(sessions)**: Prioritize `session.v4.jsonl.zstd` in artifact filename list for DSH 0.1.7+ compatibility.
|
|
86
|
+
- **test(bulk management)**: Add test coverage for bulk selection, actions, batch execution, and static invariants.
|
|
87
|
+
|
|
88
|
+
## 0.5.1 — 2026-09-18
|
|
89
|
+
|
|
90
|
+
- **feat(annotations)**: Add favorites, review-later flags, tags, multiline notes, and priority levels (1 highest to 5 lowest, default 3 Normal) with atomic persistence, conflict detection, and search/sort integration.
|
|
91
|
+
- **feat(annotations)**: Add opt-in AI assistance with **Copy Prompt** and **Import** JSON from clipboard, supporting schema validation, smart quote normalization, and repair heuristics.
|
|
92
|
+
- **feat(annotations)**: Add inline clear buttons for Tags and Note fields, and streamline dialog layout with unified textarea heights and locale-aware prompts.
|
|
93
|
+
- **feat(manager)**: Add case-insensitive title/ID search, workspace and ungrouped filters, creation time sorting, and count indicators.
|
|
94
|
+
- **fix(safety)**: Validate session IDs, directory containment, symlinks/junctions, and artifact identity before file operations; prevent overwriting occupied destinations.
|
|
95
|
+
- **fix(persistence)**: Separate backup, publication, and rollback phases; preserve recovery files and cleanly abort on write failures.
|
|
96
|
+
- **fix(zstd)**: Use structural frame decoding on rewrite paths and reject corrupt or torn log frames.
|
|
97
|
+
- **fix(startup)**: Normalize snapshot headers, preserve active sessions during startup scan, and reconcile cleanly.
|
|
98
|
+
- **test**: Expand tests covering traversal, junctions, corruption, rollback, and concurrency.
|
|
99
|
+
|
|
100
|
+
## 0.4.11 — 2026-09-14
|
|
101
|
+
|
|
102
|
+
- **chore(client)**: Drop obsolete `@deepseek-ai/dsh-client-runtime` reference from `dsh.client.inject` manifest (#12).
|
|
103
|
+
|
|
104
|
+
## 0.4.10 — 2026-09-13
|
|
105
|
+
|
|
106
|
+
- **fix(move)**: Rebind live JSONL writer's header path during cross-workspace moves to prevent `ENOENT` on subsequent writes (#8).
|
|
107
|
+
|
|
108
|
+
## 0.4.9 — 2026-09-12
|
|
109
|
+
|
|
110
|
+
- **fix(ui)**: Handle Escape key at window level so manager panel and confirmation dialogs close reliably regardless of focus position (#7).
|
|
111
|
+
- **fix(ui)**: Remove backdrop click-to-dismiss behavior and dim backdrops to prevent accidental dismissal and page dimming.
|
|
112
|
+
- **fix(ui)**: Blur trigger button on Escape close to remove lingering focus rings, and eliminate Enter key race conditions.
|
|
113
|
+
|
|
114
|
+
## 0.4.7 — 2026-09-10
|
|
115
|
+
|
|
116
|
+
- **fix(disk scan)**: Include `session.v3.jsonl.zstd` in artifact scanner filenames to detect generation v3 sessions from DSH 0.1.5-rc.1.
|
|
117
|
+
|
|
118
|
+
## 0.4.6 — 2026-09-05
|
|
119
|
+
|
|
120
|
+
- **fix(persistence)**: Read all concatenated Zstandard frames in session artifacts to prevent event history truncation.
|
|
121
|
+
- **fix(move)**: Synchronize live session state, persistence coordinator, registry indexes, and workspace accounting during move operations.
|
|
122
|
+
- **fix(preset migration)**: Fall back to ID-based artifact scan when persistence locate returns stale paths, and mirror migrations into live session projections.
|
|
123
|
+
- **recovery**: Add `scripts/heal-v2-sessions.ps1` helper for DSH 0.1.1-rc.2 v2/v0 header anomalies.
|
|
124
|
+
|
|
125
|
+
## 0.4.5 — 2026-09-05
|
|
126
|
+
|
|
127
|
+
- **fix(move)**: Keep live agent and session instance in place during cross-workspace moves to preserve UI responsiveness without full re-initialization.
|
|
128
|
+
- **fix(preset migration)**: Handle persistence backends gracefully without strict preconditions on `readRaw`/`list`.
|
|
129
|
+
|
|
130
|
+
## 0.4.4 — 2026-09-03
|
|
131
|
+
|
|
132
|
+
- **docs**: Standardize terminology from "conversation" to "session" across documentation and package manifests.
|
|
133
|
+
|
|
134
|
+
## 0.4.3 — 2026-09-03
|
|
135
|
+
|
|
136
|
+
- **docs**: Add Awesome DSH Plugin badge and registry listing references.
|
|
137
|
+
|
|
138
|
+
## 0.4.2 — 2026-09-03
|
|
139
|
+
|
|
140
|
+
- **feat(theme)**: Follow DSH dark/light theme automatically via `data-sm-theme` attribute and scoped CSS variables.
|
|
141
|
+
|
|
142
|
+
## 0.4.1 — 2026-08-28
|
|
143
|
+
|
|
144
|
+
- **fix(ui)**: Improve hover contrast and styling on title-bar delete button.
|
|
145
|
+
|
|
146
|
+
## 0.4.0 — 2026-08-28
|
|
147
|
+
|
|
148
|
+
- **feat(preset migration)**: Add per-session preset migration action in Session Manager.
|
|
149
|
+
- **fix(lifecycle)**: Retire stale live agents and persistence owners prior to move or migration.
|
|
150
|
+
- **fix(move)**: Refresh session and workspace state immediately after moving.
|
|
151
|
+
|
|
152
|
+
## 0.3.0 — 2026-08-27
|
|
153
|
+
|
|
154
|
+
- **feat(preset migration)**: Introduce preset migration for sessions with renamed or missing Agent presets.
|
|
155
|
+
- **feat(move)**: Add cross-workspace move handling and client-side refreshes.
|
|
156
|
+
|
|
157
|
+
## 0.2.1 — 2026-08-26
|
|
158
|
+
|
|
159
|
+
- **fix(move)**: Move session artifact, stored working directory, and workspace accounting together while preserving history, title, and metadata.
|
|
160
|
+
- **feat(workspaces API)**: Add workspace projection endpoint for move UI.
|
|
161
|
+
|
|
162
|
+
## 0.2.0 — 2026-08-16
|
|
163
|
+
|
|
164
|
+
- **feat(move)**: Initial move-to-workspace UI and host endpoints (superseded by 0.2.1).
|
|
165
|
+
|
|
166
|
+
## 0.1.2 — 2026-08-16
|
|
167
|
+
|
|
168
|
+
- **docs**: Synchronize package metadata and documentation for initial release.
|
|
169
|
+
|
|
170
|
+
## 0.1.1 — 2026-08-16
|
|
171
|
+
|
|
172
|
+
- **fix(panel)**: Hide transient blank-session placeholders from Session Manager panel.
|
|
173
|
+
- **test**: Add host API smoke test and CI package verification.
|
|
174
|
+
|
|
175
|
+
## 0.1.0 — 2026-08-16
|
|
176
|
+
|
|
177
|
+
- **feat**: Initial release with session deletion, confirmation dialogs, archive management, and Session Manager panel.
|