
Product
Socket Now Protects the Microsoft Edge Extension Ecosystem
Enterprise security teams can now detect malware, credential theft, suspicious network activity, and risky updates across Microsoft Edge extensions.
dsh-session-buddy
Advanced tools
Session buddy for the dsh web GUI: notify you when the AI finishes replying, needs your answer, or asks for command approval while the tab is hidden, and provide an in-conversation ladder outline (question index) for quick navigation
English | 中文
Session notifications + an in-conversation ladder outline for the DeepSeek Harness Web GUI (dsh web). Get notified when the AI finishes replying, asks you a question, or needs command approval — even while the tab is away — and navigate past questions via a compact outline rail.
Built independently with dsh + Deepseek-V4-Flash
reply: the AI finished replyingask: the AI explicitly asks you a question (ask-user tool) — a plain finished reply does NOT re-fireconfirm: a command approval is pending (approval dialog)(●) title badge, and an optional sound+older" footerdsh plugin add CLI (restart dsh web to apply)tool/result persisted with an empty tool call id, which dsh refuses to read back) — are marked with a small warning badge on the session rowThink reasoning blocks, the interleaved text "小结" notes, and any context injections between them merge into one "共 N 次思考" row (the turn's final summary stays visible); click to expand them againdsh plugin --profile web add dsh-session-buddy
dsh plugin --profile web add link:<this-dir>
After installing, restart dsh web, then configure it under 设置 → 插件 → 插件配置 → "Session Buddy @Shrbuz".
Two ways to upgrade to a newer version:
dsh plugin --profile web update dsh-session-buddy
The plugin is installed as a semver range (^0.x.y), so dsh plugin update picks up the newest compatible release. To force a specific version:
dsh plugin --profile web add dsh-session-buddy@<version>
Open the plugin settings card → "Version & upgrades" → "Check for updates", then click "Upgrade" when a newer version exists.
After upgrading either way, restart dsh web to load the new version.
+older footer to page in hidden history; the jump-to-latest button scrolls to the bottom+older footer stays fixed and always reachabledsh plugin update or the settings card ("Version & upgrades")| Layer | Implementation |
|---|---|
| Notifications | Host watches the session event log and relays reply/ask/confirm triggers over SSE (/api/session-buddy/events) to every tab; a notified ledger claimed at the loopback-only /api/session-buddy/toast route dedupes across tabs and reloads (one OS toast per event). Client-side DOM observation (MutationObserver + official anchors + the composer stop-button running signal) is the fallback while the stream is down |
| Outline | Rungs come from the official sessions service snapshot (independent of how much DOM is rendered); dsh conversation history is a paged window, so the outline pages hidden history in on demand and aligns rungs to the DOM via the official anchor keys |
| Upgrades | The host reads https://registry.npmjs.org/dsh-session-buddy/latest (fail-closed when offline) and runs the official dsh plugin CLI for the actual upgrade |
| Session cleanup | The host lists sessions via sessionPersistence, flags corruption by replicating the harness's own load-time message validation, and deletes a session's directory (resolved through the persistence service's locate(), never from user input); the browser marks corrupt rows and injects the delete item into the row menu |
| Tool-run collapsing | Pure client DOM pass over the official anchor rows: tool-call rows are grouped by their enclosing turn-tail row (the tail is only published after turn/end, so folding happens exactly when the turn is finished), each group collapses to a "共执行 X 步操作" chip with per-session expand state |
| Transcript folding | The same official-markers pass groups a turn's assistant-step rows (think blocks + text "小结" + context injections) by its turn-tail row into a "共 N 次思考" chip, leaving the final summary visible; over-long user rows are clamped to 6 lines with an expand bar. Both silently degrade if the official markers vanish |
| Outline positioning | The rail re-reads the conversation scrollport's right edge on resize, on container/ancestor resize, and on DOM mutations (coalesced to one pass per frame), so it always moves with the conversation width |
The UI is theme-aware and styled entirely with the official --dsw-alias-* design tokens.
data-chat-flow-kind / data-chat-anchor-key markers (question clamping additionally on the _text_ class); if a future dsh version drops them, the plugin silently stops folding (it never hides rows it cannot confidently attribute to a finished turn)dsh webpnpm install
pnpm build # tsc -b && tsdown → lib/
pnpm typecheck
Regression scripts:
node scripts/smoke-host.mjs # host-logic smoke (no web)
node scripts/verify-live.mjs # live check against a running dsh (boot graph + bundle + routes)
node scripts/verify-outline.mjs # CDP: restore session, page hidden history, rung click/flash
node scripts/verify-tooltip.mjs # CDP: hover tooltip on a paged-in rung
node scripts/verify-notify.mjs # CDP: notification fires while hidden, silent while visible
Apache-2.0
FAQs
Session buddy for the dsh web GUI: notify you when the AI finishes replying, needs your answer, or asks for command approval while the tab is hidden, and provide an in-conversation ladder outline (question index) for quick navigation
We found that dsh-session-buddy demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Product
Enterprise security teams can now detect malware, credential theft, suspicious network activity, and risky updates across Microsoft Edge extensions.

Research
/Security News
Socket researchers found 18 Chrome extensions and one Edge extension delivering a wallet drainer, credential theft, and other malicious payloads.

Product
Create ClickUp tasks from Socket alerts, automate ticketing with custom rules, and keep alert and task status synchronized.