Saltar al contenido principal
C

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.

Instalar

dsh plugin --profile web add github:changqguo/dsh-peak-valley-indicator

README

@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:00 and 14: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.utilities slot — 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 + a HH:MM clock that ticks every second. Peak/valley is computed from new 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 (apply does 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. Edit lib/client.js and 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.

Plugins relacionados