Repository navigation
Releases
dsh-think-ux 0.1.3
Three fixes for the long-session scroll freeze family, plus one new feature. All verified in a live long session (Playwright + console traces).
Fixed
Auto-scroll stops on its own in long sessions. A browser scroll-clamp that preserves the gap to the bottom (content above the reader shrank — a capped think row collapsing on settle, any reflow) used to arm the 700 ms reader-intent window with zero user input: re-pins were reverted, the bundle's at-bottom sample flipped, the growth observer was blocked, and the view froze while content kept streaming. A clamp that preserves the gap is now never armed — only a growing gap (real reading) is.
Back-to-bottom button / turn rail intermittently dead. An expired intent window was never cleared: the TTL only gated one code path, so a stale intentSince zombie-blocked the chase frame gate and the view stayed frozen until the reader physically scrolled back to the bottom. intentFresh() now lazily expires the window at every consumer (chase gate, re-pin swallow, growth observer, scrollTo/scrollBy swallows).
New
Turn-rail navigation glides. A right-rail jump to a past turn used to hard-snap. The bundle's landOnRow write is identified by its caller stack (never by destination), swallowed, and chased to the row with the same episode machine as the bottom follow: fast exponential for big gaps, flat speed for small ones; a re-land while the glide runs (a chunk reflow while an unloaded turn loads) retargets and keeps the episode speed; reader input cancels a running glide. If a future bundle renames the writer, rail jumps fall back to the native snap — no breakage.
Docs
READMEs (EN/ZH) describe the row glide, the writer-stack identification, and its fallback.
Upgrade
dsh plugin --profile web update dsh-think-uxthen refresh the Web UI.
dsh-think-ux 0.1.2
Docs-only: soften compatibility claims.
- README (EN + 中文) no longer promise "quietly degrades, never breaks the host" for all failure classes. The degradation promise is now scoped to behavioral assumptions (selectors, click-to-toggle, the bundle's plain
scrollTopwrite path). Registration/manifest mismatches are documented separately — they break Web UI loading, as 0.1.0 demonstrated. - Both READMEs and the install docs now say "verified against DSH 0.1.5-rc.2; depends on that version's DOM and client load protocol" instead of absolute statements.
- The v0.1.1 release notes were corrected in place: the incident made the Web UI fail to load ("Failed to load plugins"), not fall back to stock behavior.
lib/client.js is byte-identical to 0.1.1; no behavioral change.
dsh-think-ux 0.1.1
Fix: client registration name did not match the package name.
dsh-think-ux@0.1.0 shipped the client bundle still registering under the
old pre-public name (local-dsh-think-ux). The host looks the client module
up by the package name, so the registry rejected it
(loaded without registering "dsh-think-ux") and the Web UI failed to
load entirely — the page shows "Failed to load plugins", not stock
behavior. 0.1.1 corrects the registration id to the package name and ships
a consistency test (tests/client-registration.cjs) that asserts the
registration id matches the installed package.json name, so this class of
drift fails locally instead of at boot.
Behavior is otherwise identical to 0.1.0: lib/client.js differs only in
the registration id and a header comment.
If you installed 0.1.0 and your Web UI won't load:
dsh plugin --profile web update dsh-think-ux
(0.1.0 is deprecated on npm; dsh plugin add installs 0.1.1+.)
dsh-think-ux 0.1.0
First public release.
Smooth "thinking" experience for the DeepSeek Harness (dsh) Web UI:
- think rows expand as a capped 24-line preview that glides to the bottom while reasoning streams; on settle the preview collapses with a short height animation (no one-frame ~490 px jump)
- the main conversation view follows the same way: long-session opens swoosh to the bottom, streamed inserts glide at a constant speed (per-episode chase model)
- a scrollTop write trap makes reader-vs-bundle scroll intent unambiguous: the bundle re-pin is reverted in the same tick, native reader scrolling is never affected
- pure DOM client plugin: no bundle changes, no services, no network calls
Install (DSH 0.1.5-rc.2 verified):
dsh plugin --profile web add dsh-think-ux
Uninstall: dsh plugin --profile web remove dsh-think-ux — the Web UI falls back to stock behavior.
MIT licensed. See the README (English / 中文) for behavior details, tunable constants, and residual risks.