snow-The/dsh-session-handoff
dsh-session-handoff
Session handoff & context management for DeepSeek Harness: structured handoff docs (export/resume/status) + active context pruning (acp_* via official compaction API) + optional OpenViking/archify enhancers
Install
npx @deepseek-ai/dsh plugin --profile web add github:snow-The/dsh-session-handoffRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-session-handoff)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from snow-The/dsh-session-handoff, cleaned of badges and images.
@snow-the/dsh-session-handoff
Session handoff & context management for DeepSeek Harness — built because the existing session-management and context-pruning plugins were written before the latest DSH update and don't cover the full workflow.
Why
Long sessions (like a 170k-line r32 session) hit context limits, trigger repeated automatic compaction, and stall. Switching to a fresh session loses all progress. This plugin fixes both halves — and more:
- Handoff — export a structured, portable handoff document so a fresh session can continue seamlessly.
- Active context pruning — compress spent history before the context window fills (official compaction API, model-authored summaries).
- Session management — trash / restore / purge / list sessions.
- Model routes — every registered route (official API, Ark, custom,
vision-toolkit wrappers) is orderable and switchable; each route can pin
its own model and reasoning effort (
provider:model:effort), or follow the chat's current selection. No model id is hard-coded. - ACP thresholds — tune compaction limits without touching YAML.
Tools
Module A — Handoff (zero dependencies)
| Tool | Purpose |
|---|---|
handoff_status | Compact session overview: turns, messages, tool usage, checkpoints, context pressure |
handoff_export | Parse the session into a structured Markdown handoff under <workspace>/.dsh-handoff/ + a ready-to-run handoff package (OpenViking archive command, archify diagram command — only when those enhancers are present) |
handoff_resume | Load the latest handoff document in a fresh session and continue |
Also /handoff command.
Module B — Active Context Pruning (official compaction API)
| Tool | Purpose |
|---|---|
acp_status | Usage, surface seq map, limits (soft/hard pressure level) |
acp_compress | Replace an inclusive surface seq range with your summary (ctx.compaction.compactRegion) |
acp_decompress | Read the original text hidden by a checkpoint (read-only) |
acp_search | Search visible + hidden compacted history |
acp_config | Show the active thresholds (soft/hard limits, preserveRecent, minTokens, nudge) |
acp_set_limit | Persist new thresholds into settings.yaml (new sessions take them) |
Plus a system-prompt pressure banner that nudges the model to compress past
the soft/hard limit (60% / 70% defaults), and a compaction.summarize
interception so model-authored summaries are used.
Module C — Session management
| Tool | Purpose |
|---|---|
session_list | List sessions (optionally including the trash) |
session_trash | Archive + move a session's artifact into the plugin trash (recoverable; refuses running sessions) |
session_restore | Move it back and unarchive |
session_purge | Permanently delete artifact + trash entry |
Trash entries persist as JSON under $DSH_HOME/dsh-session-handoff-trash/
(keeps the newest 10; oldest overflow auto-purged).
Module D — Model routes (same model, many vendors)
| Tool | Purpose |
|---|---|
model_routes | List every route serving deepseek-v4-flash: provider, baseURL, key env + family (ark-/sk-), default marker (incl. vision-toolkit- variants), vision wrapper variant |
model_switch | Point agent-default-model at a route (persisted to settings.yaml; new sessions use it). Optional vision:true selects the vision wrapper variant; warns when the key family is missing |
…

