Skip to content

Releases: WilliamShi666/dsh-context-compression-selector

dsh-context-compression-selector v0.2.1

Choose a tag to compare

@WilliamShi666 WilliamShi666 released this 16 Oct 07:02

Highlights

  • Fixes a crash in the 0.2.0 settings section. On Harness 0.2.0 the context-compression settings panel rendered blank — the console showed slot entry crashed in 'settings.section' and React error #185 (Maximum update depth exceeded) — while its navigation entry still appeared, because the slot had registered and the component had crashed. The 0.2.0 adapter composes a UI-facing settings document from the entry's volatile projection and built a fresh object on every getSnapshot() read. useSyncExternalStore compares consecutive snapshots by reference and re-renders until they stop differing, so a snapshot that is never reference-equal to itself never settles: React aborted the tree instead of drawing it. The composed document is now memoized against the form's own snapshot reference, so it is rebuilt only when the projection actually changes.
  • The invariant is documented on the SettingsFace interface, since any future adapter that derives a new shape has to memoize it for the same reason.
  • A regression test pins both halves: the adapter returning an identical reference while the form is unchanged, and the section mounting through the same useSyncExternalStore path the slot framework uses. Reverting the memoization reproduces Maximum update depth exceeded exactly, so the test fails on the bug rather than around it.
  • The runtime is unchanged. Both packages move together because the selector pins the runtime to its own version.

Upgrade with: dsh plugin --profile web up dsh-context-compression-selector@latest.

Full details in CHANGELOG.md.

dsh-context-compression-selector v0.2.0

Choose a tag to compare

@WilliamShi666 WilliamShi666 released this 16 Oct 07:02

Highlights

  • One published artifact now mounts on both DeepSeek Harness generations. Every @deepseek-ai/dsh-* peer widens from a 0.1.x-only range to the dual-target range ^0.1.1-rc.2 || ^0.2.0-rc.1, and the two settings surfaces are acquired by capability rather than by version, so the selector renders on either generation without a build-time switch.
  • Web boot no longer aborts on 0.2.0. The client declared settingsScope as a static dependency, but 0.2.0 provides no such service, so the entry's fiber stayed pending forever while the boot gate reads exactly that fiber — the page aborted with 1 entry did not activate. Each settings surface is now acquired in its own ctx.inject sub-fiber, where a missing service leaves only the sub-fiber pending and the entry still reaches active.
  • The runtime no longer throws on 0.2.0. Its settings read called settings.get(namespace), and 0.2.0's settings service has no get at all — the call raised a TypeError rather than merely failing to find a document, which took down the mount. Both settings reads are now capability-guarded.
  • Live settings editing on 0.2.0, through the entry's Host-declared volatile config fields (profile, autoCompactThresholdPercent). The versioned Custom policy is not editable there — the settings form serves only those fields — so the UI withholds the Custom editor and its hint instead of offering an edit that would be silently dropped. Explicitly selecting Custom still resolves.
  • The selected profile now reaches the generated composition on 0.2.0. On 0.1.x the profile lives in the shared context-compression document that the generated composition's runtime entry reads live; 0.2.0 has no shared document, so a selection made on the selector entry never crossed into the composition's own runtime entry and had no effect. PresetOverlayOptions.profile carries it into the pruner's config instead, and the profile joins the generated file's content identity.
  • No Harness core code is modified, and the dsh web launch command is unchanged: the Harness resolves an in-box bundle from the running installation first, so a profile-local copy never shadows it.

Note: 0.2.0's settings panel renders blank on Harness 0.2.0 (the crash fixed in 0.2.1). Prefer 0.2.1.

Install with: dsh plugin --profile web add dsh-context-compression-selector@latest.

Full details in CHANGELOG.md.

dsh-context-compression-selector v0.1.1

Choose a tag to compare

@WilliamShi666 WilliamShi666 released this 23 Sep 18:43

Highlights

  • DeepSeek-V4.1-Flash is now supported on the Harness default route. deepseek-flash resolves an exact bundled tokenizer (deepseek-ai/DeepSeek-V4.1-Flash @ dba1be0a40aa45a94ad051997016db3960a90277) instead of failing closed, so exact-gated compression is no longer a no-op on the default model. deepseek-v4-flash and deepseek-v4-flash-vision-exp are served by the same V4.1-Flash artifact.
  • Vision image-token arithmetic is re-ported to the official V4.1 image processor: the per-image cap moves 384 → 1024, the minimum-pixel floor 147456 → 295936, and the aspect clamp is gone.
  • deepseek-flash gains official pricing rows, and the two retired aliases are repriced at the Flash price. deepseek-v4-pro keeps its own DeepSeek-V4-Pro tokenizer, modelVersion, and prices, unchanged.

Install or upgrade with: dsh plugin --profile web up dsh-context-compression-selector@latest.

Full details in CHANGELOG.md.

dsh-context-compression-selector v0.1.0

Choose a tag to compare

@WilliamShi666 WilliamShi666 released this 02 Sep 20:34

Highlights

  • Adds the official tokenizer for DeepSeek V4 Flash Vision (deepseek-v4-flash-vision-exp).
  • Lets users choose the trigger threshold for model-driven Auto Compact in the selector settings.
  • Links each profile's context-compression strategy and related watermarks to that threshold.

Install or upgrade with: dsh plugin --profile web up dsh-context-compression-selector@latest.

v0.1.0-beta.3

v0.1.0-beta.3 Pre-release
Pre-release

Choose a tag to compare

@WilliamShi666 WilliamShi666 released this 02 Sep 09:49

Highlights

  • Adds a separately pinned official tokenizer for deepseek-v4-flash-vision-exp.
  • Adds best-effort image-token estimates: valid dimensions use the official DeepSeek vision grid arithmetic; unusable metadata falls back to 256 tokens per image.
  • Keeps every image-bearing tool result outside exact-tokenizer rewrite proofs.
  • Adds a user-editable Auto Compact threshold in the context-compression selector settings, with coordinated History/Micro Compact watermarks.
  • Preserves the standard third-party DeepSeek Harness Bundle install and upgrade workflow without modifying Harness core.

Install or upgrade

dsh plugin --profile web up dsh-context-compression-selector@beta

The selector installs dsh-context-compression-selector-runtime@0.1.0-beta.3 as an exact dependency.

Published npm tarballs

  • dsh-context-compression-selector-0.1.0-beta.3.tgz
    • SHA-256: 9e7292a1802c146944efddb56190056ff3a1121049c8b5561ef6bfd0aab263e1
  • dsh-context-compression-selector-runtime-0.1.0-beta.3.tgz
    • SHA-256: bd31679daf70e890d7f1b5e53321a0406c616e0ef1640ab807c1af92bacda45e

Source

  • Branch: codex/beta-0.1.0-beta.3
  • Commit: efa7e852a4286f4155d8bded3d8593fa33281d87
  • Tag: v0.1.0-beta.3

The release remains on the beta branch and is not merged into main.