Releases: Fakek0f3sT/dsh-mcp-diff
Releases · Fakek0f3sT/dsh-mcp-diff
Release list
0.7.0
Security and robustness hardening plus reviewer UX features.
Security
- Workspace containment for open-file links: every path this plugin forwards to the host opener is resolved and gated — absolute targets,
~paths,..traversal, or a bash call working outside the workspace render as plain text. Rendered content can no longer trigger an open of an arbitrary host file. - CI hygiene: workflow actions pinned to commit SHAs,
pushfiltered tomain, concurrency group.
Robustness (adversarially reviewed, all repro-confirmed)
- bash parser rewritten: linear heredoc extraction (a 10k-marker command froze the tab for ~10s, now ~50ms), several heredocs on one line parse sequentially, quoted spans and comments no longer claim phantom writes,
sed -iclaims only its own segment's files,tee --append, fd-prefixed redirects (2> err.log),/devskip narrowed to stream sinks (> /dev/sdastays visible). - diff render bounded: max 400 rows by default with a footer, LCS bails to del-all/add-all past 1M dp cells, parse memoized per command.
- failed MCP edit/write cards now show the red outcome dot instead of reading as a clean diff; links suppressed when a
cdshifts the base or the target is dynamic.
Features
- Copy actions on every diff card: copy the rendered diff, the bash command, or the real server patch (settled
edit_file, fence-stripped,git apply-able). - Wrap toggle for long lines and per-card show all N override of the render cap.
- Risk annotations: plain terminal cards badge unambiguous destructive signatures (
rm -rf,chmod 777,git reset --hard,git clean -f,curl … | sh,mkfs,dd of=,shred). - Honest write flavor in the badge (
appendvswrite), Inspect affordance on mutation cards.
Full change log: v0.6.0...v0.7.0
v0.6.0
Highlights
- feat: openable file paths on diff cards via the host opener (282d9fc)
- feat: cover create_directory and bash path ops with info cards (a271908)
- docs: README for open links, create_directory and bash path ops (aa8679c)
Full Changelog: v0.5.0...v0.6.0
0.5.0
Fixed
- Localized terminal card labels: the Copy/Done/Failed/Running (and expand/collapse) strings in bash terminal cards now follow the GUI language instead of the primitive's built-in Chinese defaults (复制 / 已完成). The card entry registers with
locale: 'conversation'and passes localized labels to the TerminalBlock primitive.
(This is the first release run under the new release protocol: annotated tag + GitHub Release + user-side npm publish.)
0.4.0
Added
- Status dot on collapsed bash cards (green ok / red error / amber stopped / neutral for background acks).
Fixed
- Empty bash card bodies for sub-calls nested inside
run_code(view-less code-dispatch blocks): the card is now assembled from the raw block. - Red state dot for view-less failed sub-calls.
- Badge renders the dot only (no double signal).
0.3.0
Added
- Multi-file bash header: one bash command touching several files lists the rest in the card body (
… · N files). - MCP filesystem
move_file: an informational source → destination card.
CI / Build
- GitHub Actions workflow: build, typecheck and self-checks.
tsxdevDependency +npm run testscript; esbuild build allowlist (pnpm 11).
0.2.0
Added
- Bash toolview: file-mutating bash commands render as badged diff-style cards (python-heredoc
old/newpairs,cat >/tee/>writes,sed -i).- Line-mutation detector (
parse-bash) with a self-check. - Extra mutated files listed in the card body.
- Non-mutating commands: a native-look terminal fallback.
- Line-mutation detector (
- Workspace-relative paths in diff card headers.
- Chevron affordance on diff card summaries.
Fixed
- Registered the bash view at priority
-1(shadows the shipped bash row).
Docs / Tests
- README section for bash edit cards; translation of README and patch comment to English; diff-card screenshot.
- Self-check for the server-diff parser (a mirror of the index.tsx code).
0.1.0
Initial release.
Added
- MCP filesystem diff cards for
edit_file/write_file(unified, colorized, collapsible). - Also overrides the built-in
edit/writetools so every file mutation reads identically. dsh plugin add github:…support: the prepare script buildslib/on install.
The npm tarball ships lib/ + types only (no src/).
0.1.1
Fixed
- Dropped
src/from the npm tarball — the published package shipslib/+ types only.
(Docs: README rewritten for unified/collapsible cards + git install; normalized repository.url; install leads with the npm form.)