dsh-compat-guard: upgrade gate + compat matrix + lockfile/rollback for DSH's release chaos #4487
Replies: 3 comments
|
Second product from the same workshop — dsh-health: session loop-health diagnostics. Same author as dsh-compat-guard (governance) — this one is the observability layer: zero-dependency CLI + passive live bundle that turns your session log into an auditable health picture. What it does
Design constraints honored
61 unit tests; verified live on a real profile (watch streams the session you're running). Repo: https://github.com/Shizuku-keop/dsh-health (also listed in the Blue-Whale-Harness plugin directory) |
|
Update — M7 landed: live health cards in the web UI. The same zero-dependency detectors now run IN the browser: dsh-health-live registers a ConversationNodeDefinition (kind \health) that folds the live session/event stream and renders a health card at each turn end — score badge, findings with action suggestions, and the plugin-activity block (what dsh-mnemon/system-prompt injected, kept visible but never affecting the score).
Still zero runtime deps; the npm name is now \dsh-health-cli\ (the bare name was taken). Repo: https://github.com/Shizuku-keop/dsh-health |
Uh oh!
There was an error while loading. Please reload this page.
DSH is moving fast (4 releases in 12 days) and every breaking change costs real data — the rc.8 storage-format change already wiped user sessions with no official migration path. The community has been holding this together with manual discipline.
I built dsh-compat-guard: a zero-dependency CLI + plugin that turns that discipline into tooling.
What it does
dsh-guard preflight— upgrade gate: per-plugin compatibility against the target DSH version (registry > author dsh.compat metadata > untested), storage-format fingerprint check (zstd/sqlite magic-byte scan, no decoding), and an automatic $DSH_HOME backup. Blocking changes refuse the upgrade (exit 1).dsh-guard snapshot / verify / rollback— per-profiledsh.guard.lock.json(exact dsh + plugin versions, integrity, config hashes, storage facts) + tar snapshots. One-command rollback with a safety snapshot first.dsh-guard migrate— session migration (sqlite -> zstd JSONL), backup-first, verify-then-rename, unknown formats are backed up and refused, never guessed.dsh.compat, a reusable GitHub Actions workflow + local runner produce per-version install/boot-smoke results into a registry (compat.json) consumed by preflight and rendered as shields.io badges. First results: dsh-better-sidebar & dsh-mnemon pass 8/8 across DSH 0.1.0-rc.7 -> 0.1.1-rc.2.Why it fits DSH's model
dsh pluginCLI; the gate wraps plugin add/update/install (dsh-guard dsh -- <args>alias).Repo: https://github.com/Shizuku-keop/dsh-compat-guard (v0.1.0, MIT, 17 unit tests)
Compatibility metadata PRs are open upstream: DSH-better-sidebar#384, dsh-mnemon#75.
Happy to take feedback — especially on the storage-format fingerprint table (rc.7/rc.8 layouts are still unverified, marked unknown rather than guessed).
All reactions