refactor!: align with the DSH plugin conventions and drop the npm publish workflow

Follow the cordis-plugin-development references instead of the ad-hoc choices
the first version made.

Client half:
- register the row button under this package's own id instead of shadowing the
  shipped `archive` action at a lower priority, so the official hover buttons
  keep their cells and archiving stays where the harness put it
- drop the synthetic `pointerout` dispatched at a `[data-row-key]` ancestor:
  a plugin does not read or drive another package's DOM, so the tooltip is now
  positioned from its own button alone
- keep the self-rendered primitives, the `--dsw-*` token-only styling, and the
  modal focus/Escape behavior, and document why

Host half:
- resolve a conversation's descendants with `sessionQuery.traceSession()`
  instead of listing every stored header and re-deriving `parentSession` edges
- decide liveness from the traced `SessionRecord.live` flag, which removes the
  `agents` and `sessions` dependencies from `inject`
- build the orphan-sweep corpus from `sessionQuery.listSessions()`, which
  already merges live and persisted sessions
- document that `sessionPersistence.locate()` is a JSONL-backend diagnostic
  hook, not part of the seam, and keep probing it explicitly
- record only tree roots in the deferred-deletion ledger: the activation sweep
  removes a root with everything under it, so a separately recorded child was
  deleted twice or needed a pass that never runs
- return the activation's sweep promise from `apply()` so a test can await it

Manifest and docs:
- version 2.0.0, `private`, `dsh.manifestVersion`, and `engines`
- delete the Gitea npm publish workflow and every npm-publishing task: the
  package is distributed only through the Git repository and tags
- rewrite the README around the current install paths and the plugin's limits
This commit is contained in:
pyh
2026-09-30 15:30:39 +08:00
parent acaca33c49
commit da8e5e43a4
8 changed files with 253 additions and 343 deletions
+8 -5
View File
@@ -1,17 +1,15 @@
{
"name": "@dsh-plugin/session-delete",
"version": "1.0.2",
"description": "Permanently delete a conversation: stop it, remove its session log, subagent logs, and spilled tool output, and drop every registry reference. Settings → General can sweep orphaned temporary files left by conversations that are gone.",
"version": "2.0.0",
"private": true,
"type": "module",
"description": "Permanently delete a conversation: stop it, remove its session log, subagent logs, and spilled tool output, and drop every registry reference. Settings → General can sweep orphaned temporary files left by conversations that are gone.",
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://gitea.iwake.top/dsh-plugin/session-delete.git"
},
"homepage": "https://gitea.iwake.top/dsh-plugin/session-delete",
"publishConfig": {
"registry": "https://gitea.iwake.top/api/packages/dsh-plugin/npm/"
},
"exports": {
".": "./index.js",
"./client": "./client.js",
@@ -32,7 +30,12 @@
"README.md",
"LICENSE"
],
"engines": {
"node": ">=22",
"dsh": "0.2.0-rc.2"
},
"dsh": {
"manifestVersion": 1,
"bundle": {
"patch": "./cordis.patch.yml"
},