Overview
dsh-archive-manager
README / EN
Package documentation
Registry summary
dsh.pub verifies the pinned bundle contract, runtime facts, and distribution semantics. The complete README remains in the source repository.
Read the full README on GitHubLIMITATIONS
Known limitations
- **Only archived sessions.** The route refuses any id not present in `workspaceRegistry.archivedSessionIds`. - **Live sessions are refused** — checked before the persistence lookup and again immediately before the `rm`, with HTTP `409`. - **Raw-artifact backend required.** The persistence backend must advertise `supportsRawArtifacts === true` and a `locate()` returning `{ kind: 'jsonl', path }`. Otherwise the route answers `501`. - **Deletes the session directory only.** `rm(dirname(location.path), { recursive: true, force: false })` removes the directory that holds the session's JSONL log (and any session-local files inside it). It does **not** modify the workspace registry, the archived markers, the projection cache, or content-addressed attachments (which live in a separate shared store and are shared across sessions). - **Stale archived markers.** After a successful delete, the archived marker in `archivedSessionIds` remains by design (removing it would mutate the registry). Because the panel only lists archived ids that still have a session summary, and the physical deletion removes that summary, the leftover marker does not reappear after a page reload. A local deleted-id set also hides the row immediately even if the follow-up refresh fails. - **Not reversible.** The deletion is a recursive `rm` with `force: false`. There is no trash or restore path.
