# dsh-reasoning-ruler
[简体中文](README.md) | **English**
[](LICENSE)
[](https://www.npmjs.com/package/dsh-reasoning-ruler)
A DeepSeek Harness (DSH) web plugin that moves the reasoning-effort picker out of the model popup and into the composer as a **minimal hairline ruler** — the selected level is a sliding vertical marker, its name shown left of the line. Effort is **remembered per model** and switching is **optimistic** (UI updates instantly, the host round-trip settles asynchronously). Also streamlines the model picker: opens directly on the full model list, no wheel, no "Refreshing model list" flash, closes on pick.
> Not affiliated with DeepSeek.
> ⚠️ **Experimental**: some polish layers rely on DSH Web DOM details (hashed class suffixes, label text matching) and may break on DSH upgrades; the core picker uses official slot / ModelDirectory APIs and is unaffected. File an issue if something regresses.
## Preview
## Features
- **Minimal hairline ruler**: one 2px line, low→high left to right; selected level is a sliding marker with hover ghost preview and tooltip
- **Per-model effort memory**: each model remembers your last pick (localStorage) and restores it on switch
- **Optimistic switching**: effort and model picks paint instantly; the host RPC settles later, with rollback on failure
- **Model picker polish**: opens directly on the full model list (skips the root pane), list fully expanded (no wheel), "Refreshing model list" flash hidden, closes on pick
- **Seat dedup**: the model seat shows the model name only; the native "Effort" row in the popup is hidden
## Install
```bash
dsh plugin --profile web add dsh-reasoning-ruler
```
Wait for hot reload, refresh the browser. No DSH restart needed.
Or hand it to your AI assistant with the prompt in `INSTALL.md`.
## How it works
The host half is a no-op; the client mounts a Ruler component into the official `conversation.input.right` slot and shares the native ModelSelect's `modelDirectories` SnapshotStore (two-way sync). Polish layers run in pre-paint MutationObserver microtasks for zero-flash DOM handling.
## License
MIT