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