Skip to content

dsh-client-ui-schedule-tab

Verified

@stolyarovmn/dsh-client-ui-schedule-tab · v0.5.1 · MIT · Web UI

Global Schedule tab for DeepSeek Harness Web: view built-in scheduled reminders across all dialogs and open their source conversations.

Install

dsh plugin add @stolyarovmn/dsh-client-ui-schedule-tab

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Tags

Creators

Readme

@stolyarovmn/dsh-client-ui-schedule-tab

A DeepSeek Harness Web plugin that adds a global Schedule tab. It lists scheduled reminders from all dialogs and opens the source dialog when a reminder is selected.

Screenshots

Schedule control center

Schedule control center with search, filters, grouping and reminder status

Sidebar notifications

Schedule unread and total counters in the DeepSeek Harness sidebar

Features

  • Shows built-in Schedule reminders from all dialogs in one global tab.
  • Searches by reminder text, reminder id, dialog name, or dialog id.
  • Filters reminders by All, Today, Overdue, or Recurring.
  • Groups the visible reminders by date or by source dialog.
  • Orders overdue reminders first, then upcoming reminders by time.
  • Shows Schedule state (Scheduled / Overdue), Session activity (Running / Idle), marks the current dialog when the client exposes it, and adds an explicit Recurring tag to repeating reminders.
  • Turns the sidebar alarm icon into a notification indicator: new unseen reminders color the icon; unread overdue reminders get warning priority.
  • Colors the built-in clock/alarm mark on the source Session row with the same unseen state, including the trailing alarm used by DSH 0.1.7-rc.1 and the newer leading Schedule mark; opening Schedule returns it to the native gray.
  • Shows new/total in the expanded sidebar (for example 3/10); after opening Schedule, the same counter becomes just the current total. The total drops automatically when active reminders disappear, and no 0 is shown when there are no active reminders.
  • Keeps a notification dot instead of the number in the collapsed sidebar rail.
  • Persists seen reminder ids in browser local storage so a reload does not make already viewed active reminders look new again.
  • Includes overdue and recurring counts in the sidebar indicator tooltip so categories stay distinguishable without crowding the row.
  • Labels the stored target as Next for recurring reminders and At for one-shot reminders.
  • Opens the source dialog by mouse or keyboard.
  • Supports both legacy ids/byId Session-list snapshots and the newer items shape without changing the Schedule data source.
  • Supports English and Chinese UI strings.
  • Keeps reminder creation, editing, and cancellation in the built-in Schedule tools; the plugin does not create a second scheduler or a second reminder store.

Install

From GitHub:

dsh plugin --profile web add git+https://github.com/Stolyarovmn/dsh-schedule-tab.git

Pinned to this release:

dsh plugin --profile web add @stolyarovmn/[email protected]

For local development:

dsh plugin --profile web add file:C:\\path\\to\\dsh-schedule-tab

Restart dsh web after installation.

The package declares dsh.bundle.patch, so dsh plugin add activates the plugin without a manual profile patch. The package ships prebuilt lib/ files and has no install-time build scripts.

Usage

  1. Create a reminder in any dialog.
  2. Open the Schedule tab.
  3. Search, filter, or switch grouping between Date and Dialog.
  4. Select a reminder to open its source dialog.

Compatibility

Declared DSH peer range:

>=0.1.5-rc.3 <0.1.7-rc.2

CI runs installation smoke tests against:

  • 0.1.5-rc.3
  • 0.1.7-rc.1

The client supports both projection shapes used by those releases: legacy SessionSummary.projectionValues.schedule and the 0.1.7 refreshProjections()/projectionsBySession API. Session navigation uses uiWorkspace.openSession(), which is available in both releases.

Schedule service on DSH 0.1.5-rc.3 through 0.1.7-rc.1

Those DSH releases ship the Host Schedule service as opt-in, and their Schedule implementation intentionally attaches only to root Agents created after the Schedule plugin has loaded. Since 0.4.6, this bundle makes the Web session-controller wait for a Host bootstrap. The bootstrap mounts time-context and schedule first and only then releases Session creation, so restored dialogs receive schedule_create, schedule_list and schedule_delete after a full process restart.

The tab only displays real Schedule records. It does not treat background bash/pwsh jobs as reminders. Since 0.4.7, the bundle adds model-facing Schedule routing guidance and rejects the narrow background shell-timer pattern (Start-Sleep ...; Write-Output ... / sleep ...; echo ...) when schedule_create is available, so a model cannot silently substitute shell jobs for reminders. A full dsh web process restart is required after installing or upgrading; HMR cannot retrofit the legacy Schedule runtime into an Agent that is already live.

Development

Run all repository tests:

npm run test:all

The test suite covers client behavior and bundle metadata. CI also verifies package contents and installs the plugin into an isolated DSH profile.

Discoverability

The repository uses the dsh-plugin package keyword and is intended to use the GitHub dsh-plugin topic. The package name for npm is @stolyarovmn/dsh-client-ui-schedule-tab.

Files

File Purpose
package.json Package metadata and DSH manifests
cordis.patch.yml Loader entry for the plugin
lib/index.js Host entry point
lib/client.js Schedule tab UI
test/scenarios.test.js Client behavior tests
test/bundle.test.js Bundle metadata validation
.github/workflows/ci.yml Automated tests and DSH installation checks
.github/workflows/publish.yml npm publishing workflow

Publishing

npm publishing uses GitHub Actions trusted publishing from .github/workflows/publish.yml.

License

MIT