Skip to content

Releases: hxql666/dsh-persona-manager

v0.1.2 — security: API request trust fence

Choose a tag to compare

@hxql666 hxql666 released this 23 Oct 10:15

Security release: the local HTTP API now passes the DSH Connection request trust fence before routing.

Security

  • /persona-manager/api previously only compared the Origin host to Host, so a DNS-rebinding page could read and rewrite personas. Requests now pass ctx.connection.requestRejection({ headers }) first:
    • failed Host/Origin fence → 403 untrusted
    • trusted but unauthenticated → 401 unauthenticated
    • without a Connection service the route falls back to a Web-origin/loopback Host fence and refuses sec-fetch-site: cross-site.
  • 9 new automated tests cover the guard (unit) and the real apply() integration (403 / 401 / allow); suite is 92 passing.

Changed

  • API docs now state the route serves only the plugin's browser UI; a bare command-line call gets 401 (copy headers from browser DevTools for debugging).
  • Machine paths in the docs replaced with placeholders; .gitignore covers credential-like files (.npmrc, .env*, *.pem, *.key, *.crt, npm debug logs).

No other behavior changes. The live plugin requires a DSH restart to load the new Host module.

v0.1.1 — docs status for npm publication

Choose a tag to compare

@hxql666 hxql666 released this 23 Oct 10:04

Documentation/status patch for the first public release.

  • README / README_EN: npm badge and the npm installation route (dsh plugin --profile add @hxql/dsh-persona-manager); status updated to "open source + published to npm".
  • CHANGELOG / docs/PUBLISH.md / docs/VERIFY.md: record the GitHub and npm publication, including the npm phased-release behavior (202 Accepted, a few minutes before the version becomes visible).
  • No code or behavior changes since v0.1.0; package version bumped so the published npm README matches the live state.

v0.1.0 — initial release

Choose a tag to compare

@hxql666 hxql666 released this 23 Oct 09:48

Persona manager for DeepSeek Harness. Create, edit, and freely switch multiple system personas.

Highlights

  • Host half: storage-domain-backed persona store on the official JSON backend ($DSH_HOME/storages/persona_manager.json), per-agent scoped deployment:persona-prefix section (order 0, interpolate:false) with collision fallback, and a same-origin /persona-manager/api HTTP API.
  • Client half: a Settings → 人设管理 page (create/edit/delete/set global default) and a composer persona chip for per-session overrides or "follow global".
  • Semantics: global default + per-session override; subagents inherit the global default; switching takes effect on the next model request.
  • Safety: persona only changes tone — facts, process and safety boundaries stay authoritative.
  • Zero dependencies, plain JavaScript, no build step.

Install

Install the bundle into a DSH profile (Plugin Manager or dsh plugin --profile <name> add <path-or-git-url>), then open Settings → 人设管理.

See README.md for details, docs/DESIGN.md for the contract, docs/VERIFY.md for the verification record.