Skip to content

Releases

v0.7.0 — support harness 0.2.0-rc.2 only

Choose a tag to compare

@auggie246 auggie246 released this 29 Sep 23:59

Harness compatibility release: @deepseek-ai/dsh 0.2.0-rc.2 is now the only supported line. 0.1.1-rc.2, 0.1.2-rc.1, 0.1.5-rc.x, and 0.1.7-rc.x were dropped.

Fixed

On 0.2.0-rc.2 the harness refused to load the bundle:

Plugin @auggieteo/dsh-output-styles@0.6.0 is incompatible with dsh 0.2.0-rc.2:
peerDependencies {"@deepseek-ai/dsh-typert-protocol":"^0.1.7-rc.1"}.

evaluatePluginCompatibility only inspects peers named @deepseek-ai/dsh-*, and ^0.1.7-rc.1 excludes 0.2.0-rc.2 even with prereleases included, so the peer range was the whole failure. It is now ^0.2.0-rc.1.

No source change

0.2.0 keeps both contracts 0.1.7 introduced, so this is a metadata-only release. Comparing the published 0.1.7-rc.2 and 0.2.0-rc.2 tarballs, the lib/ trees are byte-identical for every surface this plugin uses: dsh-typert-protocol (the codec create() factory is unchanged), dsh-settings, dsh-system-prompt, dsh-typert-loader, dsh-typert-registry, dsh-client-modules, dsh-web, dsh-web-app, dsh-client-ui-settings, and dsh-client-ui-slots. dsh-app-boot differs only by one added bundle name, and the remaining client-side diffs are unrelated to this plugin.

Also

  • dsh.client.inject now names @deepseek-ai/dsh-api-gateway instead of @deepseek-ai/dsh-client-web. dsh-client-web is still published, but only as the page-boot library — it declares no dsh.client block and has no ./client export, so the old value was a dangling informational edge. The field is documented as informational and does not drive Cordis service injection. @deepseek-ai/dsh-api-gateway is the provider of the remote service the Settings page mounts the outputStyles remote into; the slots service comes from the shell.
  • scripts/patch-dsh-settings-nav-icon.mjs still matches the 0.2.0 settings shell; its models-branch regex captures the Medium icon suffix.

Verification

Verified in an isolated DSH_HOME against the real 0.2.0-rc.2 loader: the 0.7.0 tarball installs and composes with the output-styles row present and no skip, while the published 0.6.0 is rejected with the exact diagnostic above. A headless boot reaches turn_start with no activation error.

All 25 tests pass.

Upgrade note

This release requires @deepseek-ai/dsh 0.2.0-rc.2 or later on the same line. On 0.1.7 and earlier, stay on 0.6.0.

v0.6.0 — support harness 0.1.7-rc.2 only

Choose a tag to compare

@auggie246 auggie246 released this 27 Sep 05:43

Harness compatibility release: @deepseek-ai/dsh 0.1.7-rc.2 is now the only supported line. 0.1.1-rc.2, 0.1.2-rc.1, and 0.1.5-rc.x were dropped, because 0.1.7 replaced two surfaces this plugin builds on and neither replacement exists on the older lines.

Fixed

Two separate breaks made the plugin fail to activate on 0.1.7.

Typert codecs now require a create() factory. dsh-typert-loader rejected every strict codec that carried only the old _zod-backed schema object:

typert-loader: @auggieteo/dsh-output-styles invocation
  "@auggieteo/dsh-output-styles#outputStyles/get" result codec has no create() factory

Both lib/remote.js and lib/client.js now build codecs with a lazy create() returning the { parse } capability the gateway calls, so the outputStyles remote service registers again.

Editable settings moved to volatile Config. ctx.settings.register(...) no longer exists in 0.1.7, which surfaced as TypeError: ctx.settings.register is not a function. Editable fields are now schemastery .volatile() references on the plugin's own exported Config, read through .get() and written with ctx.settings.update(<profile entry id>, patch).

.volatile() does not exist in the schemastery the 0.1.5 harness ships, so the two models cannot be supported side by side — a runtime dual path was not possible. This is why the legacy lines were dropped rather than kept.

Behaviour

  • Live updates are preserved. The loader's _commitVolatile parses a volatile-only config change and commits it into the running plugin's references without remounting, so a style change still applies from the next model step with no restart.
  • Prompt placement is unchanged: the output-style section stays at order 5, right after the persona prefix.
  • Settings namespace now derives from the plugin's profile entry id instead of a fixed literal, falling back to the canonical output-styles. The auto-generated settings form is suppressed so this plugin's own page is the only output-styles section.
  • Persistence moved to the entry's config in the profile patch. DSH 0.1.7 imports a legacy ~/.dsh/settings.yaml section itself, once.
  • The reported "only one custom style" symptom is expected to disappear with the activation fix: with apply() throwing, the outputStyles service never mounted, so the page could not round-trip the style list.

Also

  • scripts/patch-dsh-settings-nav-icon.mjs now understands both icon conventions: 0.1.5 exports IconDataOutline16 / IconEditOutline16, 0.1.7 exports IconDataOutlineMedium / IconEditOutlineMedium. It still anchors on the models branch but captures the icon suffix from the shell being patched.
  • Peer ranges narrow to the tested tuple: @deepseek-ai/cordis ~4.0.4, @deepseek-ai/dsh-typert-protocol ^0.1.7-rc.1, @deepseek-ai/schemastery ^3.18.4.
  • dsh.client.inject drops the unpublished legacy @deepseek-ai/dsh-client-runtime bootstrap.

Verification

Verified against the published 0.1.7-rc.2 tarballs: validateTypertManifest accepts the manifest (4 invocations); every codec create() materializes and parses with strictness preserved; apply() wires the prompt section and disables the auto page; Config projects its two volatile form fields; and the nav-icon script patches, re-runs idempotently, and reverts byte-identically on both the 0.1.5 and 0.1.7 shells.

All 25 tests pass.

Upgrade note

This release requires @deepseek-ai/dsh 0.1.7-rc.2 or later on the same line. On 0.1.5 and earlier, stay on 0.5.0.

v0.5.0

Choose a tag to compare

@auggie246 auggie246 released this 13 Sep 06:22

Compatibility with @deepseek-ai/dsh 0.1.5-rc.2 while staying on 0.1.1-rc.2 and 0.1.2-rc.1.

  • The tag-to-tag audit (1486 commits) found no breaking API change for this plugin: settings.register/get/update, systemPrompt.section, the Remote decorator + TypertRemoteService mount, the gateway $mount descriptor contract and {ok, value} envelope, the slots.inject/register contract, the settings.section slot, the dsh.bundle.patch install path, and the dynamic-plugin builtins (harness.handle, host.call, styles.insert) all kept their shapes.
  • @deepseek-ai/dsh-typert-protocol peer range adds a ^0.1.5-rc.1 clause. Strict semver matches a prerelease only on the same major.minor.patch tuple, so 0.1.5-rc.2 resolved against no existing clause: npm refused the install, and pnpm could pull a second, older protocol copy that mounts a remote service with no methods (the TYPERT manifest ownership crash documented since 0.2.0).

v0.4.2

Choose a tag to compare

@auggie246 auggie246 released this 06 Sep 05:54

Added

  • scripts/patch-dsh-settings-nav-icon.mjs: patches the installed DSH settings shell so the output-styles nav row in Settings shows an edit-pen icon (IconEditOutline16) instead of the generic settings-gear fallback. The branch also matches output-style, the id the dynamic-Plugin face registers. The insert is idempotent, marked // dsh-output-styles, and coexists with the dsh-mcp-adapter insert; --revert restores the original bytes. A DSH upgrade replaces the patched file, so re-run the script afterwards, then restart dsh web and refresh the page.

0.4.1

Choose a tag to compare

@auggie246 auggie246 released this 05 Sep 09:36

Output styles for DeepSeek Harness Web.

Highlights

  • README refreshed on npm — this release ships the Standard Readme-spec README and the trimmed package description to the npm package page. 0.4.0 was published before the rewrite and npm versions are immutable, so the docs ride 0.4.1. No code changes since 0.4.0: same dual-bootstrap inject list, same peer ranges, same settings namespace and stored styles.
  • If you upgrade from 0.3.x, the harness 0.1.2-rc.1 compatibility notes from the 0.4.0 release notes apply: one manifest works on @deepseek-ai/dsh 0.1.1-rc.2 and 0.1.2-rc.1.

Upgrade

dsh plugin --profile web add @auggieteo/dsh-output-styles@0.4.1

No stored data changes: the output-styles namespace, the cordis plugin id (output-styles), and existing styles are untouched.

See CHANGELOG.md for the full history.

Full changelog: v0.4.0...v0.4.1

0.4.0

Choose a tag to compare

@auggie246 auggie246 released this 05 Sep 09:10

Output styles for DeepSeek Harness Web.

Highlights

  • Harness 0.1.2-rc.1 compatible — audited against the 0.1.1-rc.2...0.1.2-rc.1 diff: settings.register/get/update, systemPrompt.section, the Remote decorator + TypertRemoteService mount, the gateway $mount descriptor contract and {ok, value} envelope, slots.inject/register, the settings.section slot, the dsh.bundle.patch install path, and the dynamic-plugin builtins (harness.handle, host.call, styles.insert) all kept their shapes. Nothing in the plugin code needed to change.
  • Dual bootstrap inject — dsh.client.inject now lists both harness bootstraps: @deepseek-ai/dsh-client-runtime (0.1.1-rc.x) and @deepseek-ai/dsh-client-web (0.1.2-rc.1 dissolved the former). Loaders on both versions silently skip an inject name they do not ship, so the ordering edge degrades to a no-op instead of a break.
  • Peer range widened — @deepseek-ai/dsh-typert-protocol is now ^0.1.0-rc.7 || ^0.1.1-rc.2 || ^0.1.2-rc.1. Strict semver matches a prerelease only when a comparator carries a prerelease tag on the same major.minor.patch tuple; the per-tuple clauses keep the peer resolving to the harness's own protocol copy (a second, older copy would mount a remote service with no methods).
  • README rewritten to the Standard Readme spec — this tag carries the new README. npm 0.4.0 was published before the rewrite, and npm never allows re-publishing the same version, so the npm package page keeps the previous README until the next release.

Upgrade

dsh plugin --profile web add @auggieteo/dsh-output-styles@0.4.0

No stored data changes: the output-styles namespace, the cordis plugin id (output-styles), and existing styles are untouched.

See CHANGELOG.md for the full history.

Full changelog: v0.3.0...v0.4.0

0.3.0

Choose a tag to compare

@auggie246 auggie246 released this 01 Sep 15:53

Persistent output styles for DeepSeek Harness Web.

Highlights

  • Style descriptions — user styles carry an optional description, stored and shown under the name.
  • Frontmatter extraction — paste a whole style file (Claude Code output styles, Agent Skills SKILL.md); name and description fill their fields, the body becomes the instructions, other keys are reported as ignored.
  • In-place editing — Edit turns the style's own row into the edit form; no edit form spawns below the list, and the create form hides while an edit is open.
  • Markdown instructions — the Instructions field is labelled Markdown, uses a monospace font, and its placeholder shows a complete example style file with frontmatter.

Install

dsh plugin --profile web add @auggieteo/dsh-output-styles

Then append the composition row from cordis.patch.example.yml to your profile's cordis.patch.yml and restart dsh web.

Upgrade

dsh plugin --profile web add @auggieteo/dsh-output-styles@0.3.0

Host and client ship together; the save call now carries a description. Stored styles without a description load with an empty one.

See CHANGELOG.md for the full history.