# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [0.3.0] - 2026-11-04 npm distribution release. ### Added - **npm distribution**: the plugin is now published as `@baipengyan0101/dsh-harnessmm`; install it from the DSH Plugins page ("添加插件 / Add plugin" → package name) or with `dsh plugin --profile desktop add @baipengyan0101/dsh-harnessmm`. - `prepack` rebuilds the host/client artifacts automatically, so the published tarball always contains a fresh `index.js` / `client.js`. - npm and GitHub install sections (npm recommended) in both READMEs; npm package page linked from the project metadata; `license: Apache-2.0`, keywords and `publishConfig.access: public`. - `scripts/install.mjs` now derives the package name from `package.json`, computes the profile symlink path from the npm scope, and migrates profiles that still reference the old `@local/dsh-harnessmm` dependency / bundle entry / symlink. ### Changed - **Package name**: `@local/dsh-harnessmm` → `@baipengyan0101/dsh-harnessmm`. The client tab id / pane key follow the package name (`@baipengyan0101/dsh-harnessmm/panel`). Existing local installs must re-run `node scripts/install.mjs` (or reinstall from npm) so the profile points at the new package name. - Client contract checks derive the expected package id from `package.json` instead of hard-coding it. ### Docs - README (zh/en): npm install section first, GitHub install kept as a subsection, profile migration note, 0.3.0 changelog summary. - `docs/view-model.md` and `docs/verification.md`: updated plugin id / tab id / symlink path; npm publish and install verification evidence. ## [0.2.1] - 2026-11-04 First public release. ### Added - **Native host engine** (`index.js`): EDG authoring instructions in the system prompt, `llm/stream` wrapping, Guarded Decision Reuse (GDR) on native tool receipts, Certified Callback Substitution (CCS) dispatch through the native tool interface, signed `` markers on foreground bash/pwsh results, and a read-only `harnessmm_status` tool. - **Session-view panel** (`client.js`): 「决策复用」 read-only panel available as a conversation-view tab (slot `conversation.view`, order 20, right after the built-in Trajectory tab) and as a right-sidebar tab; layered EDG rendering, decision timeline, guard badges, certificates, plan inspector, measured-token strip. - **Projection** (`harnessmm`, wire v1): folds committed session-log events only — EDG banks parsed from ``, substitution calls matched by `chisel__