# Changelog

[简体中文](CHANGELOG.zh-CN.md)

Published release notes are retained below; new versions are added without removing earlier entries.

## 0.1.47 - 2026-09-25

- Changed: DSH 0.1.7 rows are retargeted by `name` instead of disable+insert. On 0.1.7 cordis filters service visibility by isolate realm; a top-level inserted replacement service was invisible to the official controllers (session-controller et al. stuck waiting for workspaceRegistry). Overriding the official rows in place keeps id, scope and consumers identical while loading this plugin's implementations.

## 0.1.46 - 2026-09-25

- Fixed: missing `Service` import in lib/workspace.js (the 0.1.45 publish predated the import fix; the module threw ReferenceError at load and the plugin fell into recovery).
- Verified working end-to-end on DSH 0.1.7-rc.1 / DSH Desktop 2.0.14: workspace replacement row activates, workspaceRegistry serves the archive remote methods, session-controller / workspace-controller / ui-deliverables all activate.

## 0.1.45 - 2026-09-25

- Fixed: full 0.1.7 fiber-reload immunity. Both replacement services (workspace registry, projection cache) now open their storage domain through a module-level shared promise (idempotent across the desktop shell boot re-composition), register their disposables via a constructor-time effect, and run no ctx.effect/ctx.on after awaits — the reload window can no longer kill their init and stall the workspace chain.

## 0.1.44 - 2026-09-25

- Fixed: the deferred typert registration fired at 3s, exactly while the sibling projcache fiber was mid-init; the resulting registry cascade disposed it (INACTIVE_EFFECT). Registration now defers 12s, past the desktop shell boot re-composition window, and the workspace replacement row is enabled again.
- Fixed: the dsh-deepseek-web compatibility patch no longer calls settings.register() (absent on 0.1.7).

## 0.1.43 - 2026-09-25

- Fixed: the workspace replacement row registered its typert definitions synchronously in the constructor, which fired a registry cascade that reloaded sibling fibers mid-init on DSH 0.1.7 hosts; the projcache row died with INACTIVE_EFFECT and the whole workspace chain stalled waiting for workspaceRegistry. Registration now defers past the boot-settle window.
- Changed: the legacy projection-cache import no longer extends the init promise (background, non-fatal), so a boot-time reload cannot dispose the row mid-init.

## 0.1.42 - 2026-09-25

- Fixed: projcache activation failed on DSH 0.1.7 hosts ("cannot create effect on inactive context"). The 0.1.7 activation fiber deactivates across awaits, so installWritePath() must run before the legacy-cache import await, matching the upstream init ordering. This stalled sessionProjectionCache, which left workspace-archive-manager pending and took down the whole workspace chain (session-controller / workspace-controller / ui-deliverables stuck waiting for workspaceRegistry).

## 0.1.41 - 2026-09-25

- Fixed: compatibility with DSH 0.1.7-rc.1 (DSH Desktop 2.0.14 / DSH NEXT). The peerDependencies allowlist only accepted up to 0.1.5-rc.2, so the compatibility gate blocked activation — the workspace sidebar went blank because the official workspace rows are disabled by this bundle while the replacement rows could not activate.
- Changed: added 0.1.7-rc.1 to every @deepseek-ai peer range; removed the @deepseek-ai/dsh-client-runtime peer (package no longer ships in 0.1.7 hosts; the client.js store import already falls back via try/catch).

## 0.1.40-plus.1 - this fork (baseline upstream 0.1.40)

- Added: favorites for archived chats, "favorites only" filter, favorited-first ordering, pruning on delete.
- Added: one-click deletion of unfavorited archived chats (all / current filter).
- Added: pin sessions from the sidebar menu (group-level precedence, manual ordering untouched).
- Added: sort by conversation turns plus a per-row turn badge (computed locally from transcripts, zero tokens).
- Added: copy session ID, copy transcript path, copy both — from the sidebar menu.
- Changed: archive settings layout (two-line rows, carded toolbar and header actions).
- Changed: this fork hides the "GitHub" / "Issues" links and the "check for updates" button.
- Note: all of the above build on MichengAI/dsh-archive-manager v0.1.40; existing features and copyright belong to the original author.

## 0.1.40 - 2026-09-13

- Open archived sessions in the native DSH conversation view and continue chatting while keeping them archived, or restore and open them.
- Close the settings overlay after an archived conversation opens successfully; keep settings open and show an error on failure, with a restore-and-open alternative when host navigation adaptation is unavailable.
- Localize archive navigation errors and avoid unnecessary warnings when older hosts load or open archives successfully.

## 0.1.39 - 2026-09-11

- Preserve the Codex UI workspace list, styling, and dedicated interactions when both plugins are installed, while keeping archive management available.
- Delegate the home workspace picker and session navigation to the official DSH plugin while retaining the custom archive sidebar, directory creation, restore, and batch management, reducing navigation API drift across host upgrades.
- Isolate sidebar directory synchronization failures so they do not interrupt other plugins registering directory components. If your Profile manually disables the official `ui-workspace`, remove that override before upgrading; otherwise the archive sidebar and settings page cannot load.

## 0.1.38 - 2026-09-11

- Support DeepSeek Harness `0.1.5-rc.2` while retaining compatibility with the four previously supported versions.

## 0.1.37 - 2026-09-10

- Fix rebuilt archive summaries remaining unusable on DSH `0.1.5-rc.1`; caches with missing or outdated format versions are rebuilt from the session transcript and reused on subsequent visits.

## 0.1.36 - 2026-09-10

- Harden release delivery: align dependency cooling preflight and synchronize bilingual GitHub Releases only after confirming the exact npm version and commit; recover already-published releases without reinstalling or republishing.
- Wait for npm latest propagation to avoid incorrectly marking new releases as non-Latest; fix negative timeout values and deadline diagnostics while preserving abort causes and ordinary network errors.
- Add release recovery, CLI, bilingual notes, and deadline regressions; plugin runtime behavior and the four-version compatibility range remain unchanged.

## 0.1.35 - 2026-09-10

- Support DSH `0.1.5-rc.1`: restore workspace selection, session opening, and fork navigation; dismiss global panels when opening or creating sessions, and suppress stale navigation and draft handoff after panel switches or disposal.
- Route sidebar open/fork actions through the new navigation service with legacy fallbacks; restrict DSH peers to `0.1.0-rc.8 || 0.1.1-rc.2 || 0.1.2-rc.1 || 0.1.5-rc.1` and pin development dependencies to `0.1.5-rc.1`.
- Add navigation and sidebar wiring regressions, validate those four exact versions in the isolated matrix; explicitly provide Zustand/Immer required by the official Store in Node tests.
- Passed real browser acceptance in an isolated DSH `0.1.5-rc.1` Web Profile: archive/restore, deletion and subagent cascades, cross-filter batch deletion, workspace and global-panel navigation, forks, content search, and restart persistence; no external model calls were made.


## 0.1.34 - 2026-09-09

- Unified settings headings, descriptions, and action layouts; maintenance controls no longer squeeze titles or versions. The layout adapts to native DSH settings without Codex UI.

## 0.1.33 - 2026-09-08

- Added real live-session deletion coverage for `0.1.3-alpha.2` with JSONL and Zstandard: verify pending event durability, write-handle closure before directory removal, completion notification, archive bookkeeping cleanup, and no resurrection after reopening storage or a later flush; no production deletion change was required.

- Validate isolated storage test entry points, dependency versions, and resolved paths before loading host modules to prevent false failures from local legacy links; add `test:latest`, build before the matrix, and assert a single completion event for legacy live deletion.

- Added an isolated full regression matrix for DSH `0.1.1-rc.2` / Cordis `4.0.1`, `0.1.2-rc.1` / `4.0.2`, and `0.1.3-alpha.2` / `4.0.2`, passing 134, 134, and 137 tests respectively; corrected legacy client/event test fixtures and explicitly accepted the `0.1.1-rc.2` prerelease peer range.

- Added compatibility with DeepSeek Harness `0.1.3-alpha.2` (official master `c389f96`), including persistence snapshot listings and read-only session handles while retaining legacy API paths.
- Fixed sessions remaining under Ungrouped after batch deletion on the newer host (#19): remove every log generation in the session directory, confirm persistence removal before committing bookkeeping and broadcasting completion, and include cold subagents in cascading deletion.
- Updated development dependencies and added isolated tests against real JSONL / Zstandard storage, covering queries and reopening storage after deletion, fork preservation, and archived projection reads.

## 0.1.32 - 2026-09-07

- Fixed leftover session directories after deletion (#16): remove the entire session-owned directory after validating the official JSONL layout, preserve shared/unknown-backend parent directories, and refuse deletion through directory links.
- Added regression coverage for directory and attachment cleanup, path encoding, shared-directory protection, and failed-deletion retries.
- Kept relative JSONL storage roots stable across host working-directory changes and added warnings when directory ownership cannot be verified.

## 0.1.31 - 2026-09-07

- Added independent in-product update checks with automatic updates when a verified DSH update service is available and a profile-specific manual fallback otherwise.
- Removed the update-button dependency on `react-dom/client` so the client can load on Hosts that do not register that module id.

## 0.1.30 — 2026-09-04

- Kept failed archived-session deletions retryable until their transcript artifact is removed.
- Restricted transcript cleanup to the backend-owned artifact path and refreshed client session lists after deletion.

## 0.1.29 — 2026-09-03

- Added compatibility with DeepSeek Harness `0.1.2-rc.1`.

## 0.1.28 — 2026-09-03

- Enforced LF for JavaScript source, build scripts, and generated `lib` output, fixing Windows CI incorrectly reporting esbuild output as out of sync after a build.
- Added a cross-platform line-ending policy regression test so generated-output synchronization checks behave consistently on Windows and Linux.

## 0.1.27 — 2026-09-03

- Moved the sole maintained source into `src` and atomically generate the publishable `lib` directory with esbuild. A failed build preserves the previous output so local installation remains usable.
- Added generated-output synchronization checks and failed-build regression coverage, and unified CI and prepublish validation under `pnpm verify`.

## 0.1.26 — 2026-09-03

- Fixed the Windows CI host-test fixture to use the same native realpath representation as DSH's asynchronous session-path index, preventing valid workspace sessions from being filtered out only in the test environment.
- Added an initialization regression assertion that verifies accounted workspace sessions remain visible after path membership validation.

## 0.1.25 — 2026-09-03

- Added **Archive all chats** to each workspace action menu. The entry is hidden when no active chats remain, and the client refreshes its session list after a successful batch archive.
- Added a red outlined confirmation style for **Archive all** with hover and keyboard-focus states.
- Kept the path-safe `session_projcache_archive_manager_v2` domain as the only write target. Startup now imports missing entries from the short-lived old-name v2 domain, old-name v1 domain, and supported DSH cache formats without overwriting newer records.
- Added RC2-to-current isolated compatibility coverage and made it a release gate: CI and `prepublishOnly` now run `test:compat`; CI no longer assumes pnpm exists before Corepack enables it.

## 0.1.24 — 2026-09-02

- Upgraded the development test stack to DSH `0.1.2-alpha.5` and `@deepseek-ai/cordis` `4.0.2`, while retaining the existing `>=0.1.0-rc.5 <0.2.0` DSH runtime peer declarations.
- Switched primary client integration tests to the current `dsh-client-store` contract and retained a tested optional `dsh-client-runtime` fallback for older hosts.
- Added a reproducible pnpm alpha-resolution policy that disables automatic peer installation and records the approved newly published packages.

## 0.1.23 — 2026-09-01

- Fixed missing sidebar pending-state indicators on DSH `v0.1.2-alpha.2`: workspace rows now read pending UI interactions from the `ui-session` `pendingInteractions` Map.
- Whitelisted the official visible pending states (`question`, `approval`, and `plan-review`) before passing them to row rendering, so unknown future states are ignored safely.
- Kept the legacy `SessionSummary.pendingInteraction` fallback and added regression coverage for grouped, flat, and search result rows.

Published package: [`@michengai/dsh-archive-manager@0.1.23`](https://www.npmjs.com/package/@michengai/dsh-archive-manager/v/0.1.23).

## 0.1.22 — 2026-09-01

- Added arbitrary archived-chat selection in **Settings → Archived**, including per-row checkboxes, select-all for the current filtered results, cross-project selection, batch restore, and confirmed batch permanent deletion.
- Kept selected operations on the existing authoritative host batch path, so stale records, partial deletion failures, and retry behavior match existing project-wide and all-chat actions.
- Refreshed the client session projection after restoring chats so restored sessions immediately reappear in their original workspace.

Published package: [`@michengai/dsh-archive-manager@0.1.22`](https://www.npmjs.com/package/@michengai/dsh-archive-manager/v/0.1.22).

## 0.1.21 — 2026-08-31

- Preserved the projection-cache `put()` Promise contract when a tombstone suppresses a deleted Session write, so DSH `v0.1.2-alpha.2` cold-read write-back remains fail-soft instead of throwing a synchronous `TypeError`.
- Added direct `put(...).catch(...)` regression coverage for alpha.2 while retaining the `putSoft` path used by DSH `v0.1.1-rc.2`, and clarified the separate safe cache domain and migration behavior.

Published package: [`@michengai/dsh-archive-manager@0.1.21`](https://www.npmjs.com/package/@michengai/dsh-archive-manager/v/0.1.21).

## 0.1.20 — 2026-08-31

- Kept IM and other non-filesystem-safe Session ids unchanged while persisting projection checkpoints under fixed-length safe keys, preventing DSH `v0.1.2-alpha.2` from using colons as Windows filenames.
- Added resumable, add-only cache import from the DSH `v0.1.1-rc.2` whole-file format and from clean alpha per-record profiles, so existing users retain cached projections across either upgrade path.
- Rebuild missing archived-session projections from the retained transcript on demand and refresh the client list, so legacy archive markers remain fully visible whether their old cache row exists or not.

Published package: [`@michengai/dsh-archive-manager@0.1.20`](https://www.npmjs.com/package/@michengai/dsh-archive-manager/v/0.1.20).

## 0.1.19 — 2026-08-30

- Fixed the workspace-row **+** action on DSH `v0.1.2-alpha.1` by resolving the `uiWorkspace` service when the action runs, removing its dependency on plugin load order and avoiding the removed legacy `startSession` API.

Published package: [`@michengai/dsh-archive-manager@0.1.19`](https://www.npmjs.com/package/@michengai/dsh-archive-manager/v/0.1.19).

## 0.1.18 — 2026-08-28

- Added client compatibility for the split store layout in DSH `v0.1.2-alpha.1` while preserving the legacy runtime fallback used by `v0.1.1-rc.2`.
- Restored the alpha Workspace navigation service required by the sidebar, conversation view, and directory picker when Archive Manager replaces the stock Workspace UI.
- Bound observable stores at the Settings boundary and kept subagent-lineage indexing local, preventing archived-chat startup and rendering failures on the alpha release.

Published package: [`@michengai/dsh-archive-manager@0.1.18`](https://www.npmjs.com/package/@michengai/dsh-archive-manager/v/0.1.18).

## 0.1.17 — 2026-08-28

- Enabled npm Trusted Publishing through the repository's GitHub Actions release workflow.

Published package: [`@michengai/dsh-archive-manager@0.1.17`](https://www.npmjs.com/package/@michengai/dsh-archive-manager/v/0.1.17).

## 0.1.16 — 2026-08-27

- Added a restore icon to archived-group bulk action menus for consistent action affordances.
- Shortened the ungrouped bulk action labels to **Restore all** and **Delete all**, avoiding repeated context and reducing menu width.

Published package: [`@michengai/dsh-archive-manager@0.1.16`](https://www.npmjs.com/package/@michengai/dsh-archive-manager/v/0.1.16).

## 0.1.15 — 2026-08-26

- Hardened permanent deletion so missing transcripts clear stale archive, workspace, spill, and projection-cache data while failed physical deletion remains retryable.
- Cleared workspace and projection-cache tombstones when a session ID is reused, preventing valid replacement sessions from being blocked.
- Corrected batch deletion feedback and duplicate restore submission handling, and aligned client batch counts with the host's authoritative archive set.

Published package: [`@michengai/dsh-archive-manager@0.1.15`](https://www.npmjs.com/package/@michengai/dsh-archive-manager/v/0.1.15).

## 0.1.14 — 2026-08-24

- Added project-scoped batch restore and permanent deletion, plus a page-level **Restore all** action.
- Added archived-chat sorting by last update, creation time, or title, backed by authoritative host creation metadata.
- Added confirmation, success, and partial-failure feedback for batch archive operations.

Published package: [`@michengai/dsh-archive-manager@0.1.14`](https://www.npmjs.com/package/@michengai/dsh-archive-manager/v/0.1.14).

## 0.1.13 — 2026-08-23

- Added bilingual changelogs covering the five most recent releases.
- Linked the release history from both README editions and included it in the npm package.

Published package: [`@michengai/dsh-archive-manager@0.1.13`](https://www.npmjs.com/package/@michengai/dsh-archive-manager/v/0.1.13).

## 0.1.12 — 2026-08-18

- Declared official DeepSeek packages as peer dependencies.
- Replaced the README header with the product banner.
- Removed local-only documentation from repository tracking.

Release tag: [`v0.1.12`](https://github.com/MichengAI/dsh-archive-manager/tree/v0.1.12).

## 0.1.11 — 2026-08-17

- Fixed settings-page filtering, tombstone bypasses, and cold-reuse behavior.
- Removed obsolete client cascade code and normalized reused workspace paths.

Release tag: [`v0.1.11`](https://github.com/MichengAI/dsh-archive-manager/tree/v0.1.11).

## 0.1.10 — 2026-08-17

- Isolated Escape handling in archive confirmation dialogs.
- Counted only visible conversations in archive totals.

Release tag: [`v0.1.10`](https://github.com/MichengAI/dsh-archive-manager/tree/v0.1.10).

## 0.1.9 — 2026-08-17

- Removed client-side cascade deletes and surfaced sidebar operation errors.
- Restyled the project filter and refreshed plugin documentation.

Release tag: [`v0.1.9`](https://github.com/MichengAI/dsh-archive-manager/tree/v0.1.9).
