dsh-ui-tools
Ui Tools
DSH web UI toolkit plugin: 1) Changes model selection in the input box to two buttons (cascading provider + model selection, with reasoning-level adjustment); 2) Adds collapse/expand all for sidebar workspaces; 3) Displays a workspace badge next to the conversation title; 4) Adds a “DSH UI Tools” pa
The plugin will be installed here. Keep web if you are unsure.
npx -y @deepseek-ai/dsh plugin --profile web add github:qgx1992/dsh-ui-tools#0a75dde21861e1634b7dd1956992e75a0b580badDescription
DSH web UI toolkit plugin: 1) Changes model selection in the input box to two buttons (cascading provider + model selection, with reasoning-level adjustment); 2) Adds collapse/expand all for sidebar workspaces; 3) Displays a workspace badge next to the conversation title; 4) Adds a “DSH UI Tools” page to Settings (centralized toggles for the above features, with preferences stored in localStorage); 5) Adds an output speed meter in tok/s: after a turn ends, displays the exact value to the left of the official “Duration” pill (using the same source and definition as the kernel’s “duration and speed for this turn”), and displays an estimate at the end of the message stream while generating. Kernel adaptation (v0.4.2): the target-system services required by the speed meter were moved into an alphaFeatures child fiber; older kernels (0.1.1-rc.x) silently fall back to four features and no longer trigger the “Failed to load plugins” banner. v0.4.4 fixes feature 1 throwing remote.session on every session mount on the 0.1.5 kernel: the model catalog service requires callers to declare remote, with a fallback to the official control. v0.4.7 fixes the UI no longer refreshing after a turn ends because of the speed meter (subsequent questions were not displayed): once the buildViewNode for a node being generated is materialized, it must never return null (the kernel treats this as “withdrew a materialized node” and throws in flush(), stopping the entire chat view snapshot chain); the criterion must use the kernel-provided context.current, because real-device streaming increments are transient and settleAssistant() resets the state to firstTokenAt=null at turn completion, so checking only state is unsafe. v0.4.8 further distinguishes “cannot read context.current” from “confirmed not materialized”; the former conservatively returns hidden instead of null (issue #1). engines.dsh now publishes line coverage one release at a time through 0.2.x, and 0.2.0-rc.1 is included in the validation matrix. v0.4.9 removes the “Modified files” conversation tab (its data retrieval duplicated the speed meter, and extracting embedded paths from run_code was costly to maintain); alphaFeatures.inject is narrowed to uiConversation, reducing the plugin from six features to five, and adds three reverse-lock assertions to prevent residual code from returning. v0.4.10 moves the input box’s two model buttons to the right, directly next to the “Dictation” button (pure CSS + :has(), without relying on kernel hash class names), and fixes a latent real bug: backticks in a comment before MSS_CSS prematurely closed the template string, leaving ${OFFICIAL_TRIG} unevaluated and causing the entire rule hiding the official model button to fail (the plugin controls appeared alongside the official controls); adds the guard assertion tools/check-model-seat-hug.mjs and includes it in npm run check. v0.4.11 explicitly sets the normal backgrounds of the input box’s two main buttons (provider / model) to transparent as requested (they previously had an 8% brand-color background), retaining translucent feedback only for hover and expanded states. It also adds five assertions to check-model-seat-hug to pin down that the normal state must be transparent, interactive states must still provide feedback, and the rule must not affect panel dropdown items (14 → 19 assertions). A repository-wide terminology sweep was also performed: README validation criteria now use the tested 0.2.1-alpha.2 / 98/98 values; the “out of scope” entry for the removed feature was deleted; all remnants of feature 3 were removed from tools/live-smoke.mjs (including the inevitably failing “four preference rows” assertion and the nonexistent demo id), and it was added to npm run check (graceful SKIP when no URL is provided); old feature numbers in source comments and assertion labels were standardized to the numbering current after v0.4.9, including renaming the “feature six data retrieval section” sentinel to “feature five data retrieval section.” Only the corresponding controls are modified; DSH source is not changed.
Compatibility and provenance
Ui Tools is published as dsh-ui-tools and currently resolves to version 0.4.11. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.
- DSH compatibility
- *
- Runtime surfaces
- web
- Release source
- github
- Registry updated