Skip to content

Releases: usermbzlj/dsh-retro-dock

v1.7.0 — Idle hold and a sharper classic dial

Choose a tag to compare

@usermbzlj usermbzlj released this 27 Oct 05:56

Retro Dock 1.7.0

Added

  • Idle hold. When generation stops, the number keeps the last turn's average speed and the unit reads 均速 / avg; the needle still drops to zero. On by default; turn it off under Settings → 空闲读数 (hold in prefs:v3).
  • Turn-average marker. A small triangle outside the scale marks the current turn's running average, or the last turn's once idle. Classic and VU draw a triangle; Swiss draws a hollow square on the rule. It glides to its new position (no motion when reduced motion is on).

Changed

  • Classic dial: tapered needle with a counterweight tail and an accent pivot cap (muted when idle); 12 minor ticks between the four majors; the over-range glow that the README described now exists (--rg-over drives a drop-shadow on the rate arc).
  • Classic readout is right-aligned: the units digit and tok/s share a fixed right edge, so a growing number extends left instead of pushing the sub dial. The over-range + is a superscript that takes no width. An idle 0 is muted instead of being the brightest thing on the gauge.
  • CTX shows % like HIT. The HIT label is tinted teal so it doubles as a legend for the inner ring.
  • Lamps: unlit lamps are solid, faint lenses instead of outline rings; lit lamps get a soft halo, with brighter green and amber in the dark theme (VU keeps its light-face colours).
  • Settings: the context-lamps switch is visibly disabled on Chart and Swiss, where it does nothing.
  • README, README.en and package summary describe the four looks that ship; specimen sheets are regenerated for 1.7.0 with a four-look strip. The stale seven-style hero is no longer referenced or packed.

Fixed

  • A blue dot sat at the start of the classic speed arc at 0 tok/s (a zero-length round line cap). The arc now fades out as the needle reaches zero.

v1.1.0 — Four instruments, one measurement contract

Choose a tag to compare

@usermbzlj usermbzlj released this 25 Oct 17:33

Changelog

1.1.0 — 2026-10-26

视觉、设置与测量核心的一次完整升级。旧的 1.0.0 包只有单一样式,测量与文档也停留在初版。

Added

  • Four high-quality styles: Heritage, Neon HUD, Minimal, Terminal, with independent light/dark palettes that follow body[data-ds-dark-theme].
  • Settings popover anchored to a gear button: style, placement, density, full scale, CTX warning threshold, sub-readout switch, language and calibration reset.
  • Full settings.section page with the same controls and live full/minimal previews.
  • Chinese/English UI, including style names, descriptions, tooltips, aria labels and the settings page.
  • Style gallery and screenshots in docs/ (styles-*.jpg, settings-*.jpg, popover-*.jpg, per-style cards), generated by Playwright.
  • src/ module layout with an esbuild bundle; client.js is now a build artifact.
  • 43 tests: measurement, incremental stream counting, rate/calibration, preference migration, i18n, SSR rendering of all styles, jsdom mount/toggle/popover integration, and the built bundle's ModuleLoader contract.
  • GitHub Actions CI (npm ci && npm run build && npm test).
  • Package compatibility metadata: engines.dsh, dsh.compatibility release map, peer dependency range, repository/homepage/bugs/author.
  • .gitattributes (LF), README.en.md, CHANGELOG.md, rewritten MEASUREMENT.md.

Changed

  • Rate accounting is incremental: only the appended slice of each streaming block is tokenized. Long generations no longer pay O(n²).
  • Calibration compares host sessionStats token deltas against estimated token deltas within the same interval, instead of comparing a session average with a single generation average.
  • Calibration has explicit states: pending, available (with sample count) and unavailable; the tooltip no longer claims ×1.00 when no sample exists.
  • HIT formatting follows the host's exact formatter: integer while integer rounding stays below 100, otherwise the minimum honest precision (e.g. 99.9, 99.99).
  • Layout, size and density are per gauge instance and driven by a ResizeObserver; switching placement can no longer carry the other variant's size over.
  • Preferences moved to dsh-retro-dock:prefs:v2; rg-gauge-placement is migrated and removed.
  • The runtime no longer uses window.__dsh* globals as a data bus. A module-scoped engine owns state; window.__retroDock is a read-only debug mirror.
  • rAF stops after the needle settles; the body MutationObserver is attached only when the chat stream is unavailable.
  • Heritage dial gains a 25-tick scale, metallic bezel ring, redline arc and a brighter face; Neon gains a real gradient arc and aligned endpoint; Minimal CTX tracks use the warning colour; endpoint dot geometry is aligned to the 240° sweep.

Fixed

  • Marker dots in Neon and Minimal were 90° out of phase with the arc.
  • Heritage/Neon tick rings were rotated 90° off the 8 o'clock start.
  • Minimal density could inherit the other placement's dial size.
  • Sub-dial SVG overflowed its 68% face on some sizes.
  • Settings had duplicate “Show CTX / HIT” labels and a duplicated notice.
  • HIT could under-report 99.95 as 99.9; it now matches the host.
  • The popover could be clipped by the composer; it is portaled to body, closes on Escape/outside pointerdown and restores focus.
  • A stale v1.0.0 tarball link and a JPEG saved as preview.png were removed from the docs.

Known limitations

  • A real-session trace of window.__retroDock against host sessionStats is still pending; measured accuracy is not claimed yet.
  • sessionStats missing → calibration unavailable; DOM fallback is less trustworthy than projections.
  • The 1.2 s window can show a spike when tool arguments arrive in one burst.
  • HIT is whole-session cumulative, not the current request.

v1.0.0 — Composer Instrument Dials

Choose a tag to compare

@usermbzlj usermbzlj released this 24 Oct 21:32

Two instrument dials for the DeepSeek Harness composer.

  • Live tokens/sec on a 240-degree dial (0-180 tok/s) with spring-damped needle; past the ceiling the needle rattles and the ring brightens from blue to cyan.
  • Secondary dial: amber ring = context pressure, teal ring = cache hit rate.
  • Click the cluster to dock it above the composer or in the stats bar (remembered in localStorage).
  • Density adapts to the container: full / compact / minimal (sub dial folds into text).
  • Reads streamed blocks from the chat store; calibrates against sessionStats decodeTokens/decodeMs.

Install: download the attached tarball and add it to your DSH profile, or use pnpm add github:usermbzlj/dsh-retro-dock.