Skip to content

Releases: bowenliang123/dsh-context

dsh-context v0.6.1

Choose a tag to compare

@bowenliang123 bowenliang123 released this 14 Aug 15:53

UI fixes and polish since v0.6.0.

Changes

  • Dark-mode legibility: the active Step/Turn toggle button now uses the harness's primary-button pairing (button-primary-fill + label-primary-foreground) — dark themes resolve the brand color to near-white, which made the old white-on-white text invisible.
  • Bidirectional composition hover: hovering a legend chip now also lights the matching segment AND shows the tooltip (derived from the shared hover key, centered on the segment); hovering a segment still does both.
  • Granularity re-anchor: switching step ↔ turn scrolls the history back to the newest bars (the narrow turn chart had left a stale left-edge position).
  • Regression guard: a real-React + jsdom render smoke covers the step → turn → step toggle with a 460-request snapshot.

📦 npm: https://www.npmjs.com/package/dsh-context

dsh-context v0.6.0

Choose a tag to compare

@bowenliang123 bowenliang123 released this 14 Aug 15:29

Correct context pricing — the Current composition numbers are now right, plus UI polish.

Critical fix

  • Assistant replies and tool results were priced at a flat 4 tokens (a TS-port regression passed the event envelope instead of data.message), so tool-heavy sessions were massively undercounted (e.g. 20.7k vs the real ~495k). Now priced by content, mirroring dsh's deriveEventMessage/token-meter exactly; empty usage-only assistant messages price 0; tool schemas use dsh's whole-array price.
  • Overview now shows the last provider-reported actual prompt alongside the estimate, so a heuristic gap (fixed density vs real tokenizer, CJK-heavy content) is visible instead of looking like a bug.

Also in this release

  • History retained by whole turns (never cut mid-turn; up to 300 turns) instead of a step count.
  • Turn bars use a uniform column width, aligned 1:1 with the turn strip.
  • Composition bar ↔ legend hover highlight (bidirectional).
  • Message list timestamps (host passes ev.time through).
  • Husky pre-commit hook runs tsc --noEmit.

📦 npm: https://www.npmjs.com/package/dsh-context

dsh-context v0.5.0

Choose a tag to compare

@bowenliang123 bowenliang123 released this 14 Aug 11:55

Interactive history chart — everything since v0.4.0, plus the new granularity toggle.

New in 0.5.0

  • Granularity toggle: a Step/Turn segmented control in the History card switches the chart from one bar per step (default) to one bar per turn — each turn is shown by its last step's record (the context state when the turn finished).
  • Hover linking: hovering a history bar previews its breakdown in the detail panel below (hover > pinned click > newest request).
  • Themed tooltip on the Current-composition stacked bar segments (category, tokens, share of total), replacing the native title.
  • Turn strip: below the chart, one color block per turn aligned to its bar columns — hovering a block highlights that turn's bars in the chart, and hovering a bar highlights its block (bidirectional, hover-only).

Also in this release

  • License switched to Apache-2.0.
  • Package manager switched from npm to pnpm (own workspace root; packageManager: pnpm@11.9.0).
  • Runtime remains zero-dependency; strict TS; all functional tests green.

📦 npm: https://www.npmjs.com/package/dsh-context

dsh-context v0.4.0

Choose a tag to compare

@bowenliang123 bowenliang123 released this 14 Aug 11:03

Full TypeScript port — both plugin halves now ship as strict TypeScript.

Changes

  • src/host.ts: typed fold model (Snapshot/RequestRecord/SurfaceNode/ContextEventRecord), local drift-free service contracts for connection/sessions/sessionQuery via declare module augmentation.
  • src/client.cts: typed client bundle — React types (@types/react), locale/slots/connection contracts, typed component props. CJS-flavored so esbuild keeps require/module.exports semantics despite type: module.
  • tsconfig.json: strict, noEmit, verbatimModuleSyntax — the type system enforces that the client bundle carries no runtime imports.
  • Build: esbuild transpiles both halves (npm run build); npm run typecheck added to npm test.
  • Runtime behavior is byte-for-byte equivalent to v0.3.1; all functional tests pass unchanged.

Note: the official @deepseek-ai/* service type packages publish broken dependency chains on npm (dsh-paths 404s), so this plugin declares the exact API surface it consumes instead — zero drift risk against user-installed harnesses.

📦 npm: https://www.npmjs.com/package/dsh-context

dsh-context v0.3.1

Choose a tag to compare

@bowenliang123 bowenliang123 released this 14 Aug 10:09

README cleanup — publishing instructions removed from the README (the npm page now focuses on installing and using the plugin).

📦 npm: https://www.npmjs.com/package/dsh-context

dsh-context v0.3.0

Choose a tag to compare

@bowenliang123 bowenliang123 released this 14 Aug 10:02

History chart overhaul — the trend chart no longer stretches or squashes.

Changes

  • Fixed-width bars (14px columns): sparse histories no longer render as fat bars, and dense histories scroll horizontally instead of compressing.
  • Scrollable history: the chart scrolls left to reach earlier requests; it stays anchored on the newest bars unless you scroll away manually.
  • Turn ranges: a tick row under the bars groups consecutive requests of the same turn into one labeled range (e.g. T1 spans all of its bars with a connector line), so multi-step turns are readable at a glance.
  • Chart render test added (stateful fake React drives the view; asserts bar count, scroll container, and turn-range geometry).

📦 npm: https://www.npmjs.com/package/dsh-context

dsh-context v0.2.3

Choose a tag to compare

@bowenliang123 bowenliang123 released this 14 Aug 09:49

npm metadata — the package page now links back to the source repository.

Changes

📦 npm: https://www.npmjs.com/package/dsh-context

dsh-context v0.2.2

Choose a tag to compare

@bowenliang123 bowenliang123 released this 14 Aug 09:46

Zero-decision quick install — the README now targets the shipped web profile, which dsh web boots and which is auto-created on first use. No profile naming needed.

Changes

  • Quick install now reads:
    dsh plugin --profile web add dsh-context
    dsh web
  • web is the official default web profile (dsh web is a hardcoded alias of dsh --profile web); custom profile names are only needed for multiple isolated compositions.

📦 npm: https://www.npmjs.com/package/dsh-context

dsh-context v0.2.1

Choose a tag to compare

@bowenliang123 bowenliang123 released this 14 Aug 09:41

README quick-install — one-command install up front, so DeepSeek Harness users can install directly from the npm page.

Changes

  • New Quick install section at the top of the README:
    dsh plugin --profile demo add dsh-context
    dsh --profile demo web
  • Existing Install section trimmed to complement the quick start.

📦 npm: https://www.npmjs.com/package/dsh-context

dsh-context v0.2.0

Choose a tag to compare

@bowenliang123 bowenliang123 released this 14 Aug 09:41

README screenshot fix — the npm package page was showing a broken image because the README referenced a local path.

Changes

  • README screenshot now points to the GitHub raw URL (raw.githubusercontent.com/bowenliang123/dsh-context/main/docs/screenshot.png), so the image renders on npm and anywhere else the README is displayed.

📦 npm: https://www.npmjs.com/package/dsh-context