- Home
- Plugin
- Sessioni e messaggi
- dsh-peak-valley-indicator
dsh-peak-valley-indicator
changqguo/dsh-peak-valley-indicator
Peak/valley electricity-time indicator beside the Session Log in the DSH Web header. Red light during peak hours (09:00-12:00 & 14:00-18:00 local time), green otherwise.
Installazione
dsh plugin --profile web add github:changqguo/dsh-peak-valley-indicatorREADME
@changqingguo/dsh-peak-valley-indicator
English | 中文
A peak/valley electricity-time indicator for DSH Web. It adds a small breathing red/green light + label + live clock to the top-right session header, right beside the Session log button, so you can tell at a glance whether the current moment is an electricity peak or valley period.
- Peak / 峰时 (red light): daily
09:00–12:00and14:00–18:00 - Valley / 谷时 (green light): all other hours
Peak/valley is judged from the local time of the machine running the browser, so it auto-follows your timezone (e.g. Beijing time). No configuration, no prompt surface, zero token cost.
Session log [● 峰时 14:30] ← red dot breathing + red label
Session log [● 谷时 21:08] ← green dot breathing + green label
What it does
- Client half: registers one entry in the
conversation.session.header.utilitiesslot — the right-aligned utility row of the session header, the same row that hosts Session log. The entry renders a compact capsule: a 10 px breathing dot (red during peak, green during valley) + a峰时/谷时label + aHH:MMclock that ticks every second. Peak/valley is computed fromnew Date().getHours()in the browser's local timezone. CSS is injected once via a<style data-plugin>tag and cleaned up with the plugin. - Host half: a no-op carrier (
applydoes nothing) so the loader builds a valid host fiber for a row whose real surface is entirely client-side. It injects no services, registers no commands, and emits no events.
Installation
Install the package into your DSH Web profile, then restart dsh web:
# Recommended: install directly from npm (once published)
dsh plugin --profile web add @changqingguo/dsh-peak-valley-indicator
# Or from the repository (development loop)
git clone https://github.com/ChangQGuo/dsh-peak-valley-indicator.git
dsh plugin --profile web add link:$(pwd)/dsh-peak-valley-indicator
The package ships its own mount row (cordis.patch.yml), so no manual patch
editing is needed — restart dsh web and the indicator appears next to
Session log.
Alternatively, add it as a plain overlay row in your profile patch
(~/.dsh/profiles/web/cordis.patch.yml):
- insert:
- id: peak-valley-indicator
name: '@changqingguo/dsh-peak-valley-indicator'
Configuration
None. The peak windows are hardcoded in lib/client.js (isPeak):
return (h >= 9 && h < 12) || (h >= 14 && h < 18);
Edit that expression and redeploy to change the peak/valley schedule.
Export shape
A client-only Cordis plugin: the browser half exports inject: ["slots"] and
apply, which calls ctx.slots.inject("conversation.session.header.utilities", …) to register the capsule. The host half exports a no-op apply with
inject: [] and name: "peak-valley-indicator". There is no default export
and no public Service.
Model Experience
Prompt and tool surface
What the model sees
Nothing. The plugin injects no prompt sections, registers no tools, and emits
no session events — it is a pure presentational browser widget.
Token effect
Zero per request.
KV Cache effect
No system-prompt contribution, so no cache-stability effect.
Known Limitations and Deferred Work
- Web only: the indicator renders in the DSH Web session header; there is no TUI equivalent.
- Hardcoded schedule: peak windows are fixed in source (
09:00–12:00,14:00–18:00); there is no runtime config. Editlib/client.jsand redeploy to change them. - Local time only: judged from the browser's local timezone; it does not pin to a specific zone. On a machine whose local time is Beijing time, it follows Beijing time.
- Presentational only: no persistence, no settings page, no per-session state — the clock is recomputed each second in the browser.
Plugin correlati
dsh-turn-rewind
anionex/dsh-turn-rewind
dsh-chat-import
nwflower/dsh-chat-import
dsh-suite (plugin-session-export)
whyihaveyou/dsh-suite
dsh-interconnect
chinesezjc/dsh-interconnect