Preface

When developing with DeepSeek Harness (DSH), adding notification mechanisms to different task flows usually requires writing integration code for a specific transport layer, such as the Telegram Bot API. The dsh-maestro-notifier plugin solves this problem by abstracting a pluggable notification service layer.

Plugin Positioning

This plugin is maintained by ddtcorex and belongs to the Maestro Harness suite (dsh-maestro-*). It provides an in-memory provider registry, integrates the Telegram transport by default, and reserves the ability to extend to other transport layers.

Core Features

The plugin mainly provides the following capabilities:

  1. maestroNotifier service: The service object includes register, ids, and send methods, which are used to manage notification providers and dispatch messages.
  2. Telegram transport: As the default transport layer, it provides unidirectional bot message sending. The configuration includes message content protection (protect_content), disabled link previews, and a 10-second timeout. The plugin is designed not to log credentials.
  3. Default target resolution: When the send method is called without an explicit target, it attempts to read the notify.telegram configuration from the shared settings store as the default target.
  4. Never-Throw delivery: This is a design principle. Whether the provider is unknown or target resolution fails, no exception is thrown; instead, an object containing the status and reason is returned: { sent: false, reason }.

Installation and Activation

Install it using the officially provided command. The plugin must be compatible with the Cordis core of DeepSeek Harness.

dsh plugin --profile web add @ddtcorex/dsh-maestro-notifier

After installation, the service is registered in the Cordis context and can be retrieved via ctx.get('maestroNotifier').

Typical Usage

In code, obtain the maestroNotifier instance and call the send method. The following example shows how to send a message, where the target is obtained through the default resolution logic.

const notifier = ctx.get('maestroNotifier')

// target 参数省略时,会尝试从共享设置读取 notify.telegram
await notifier.send('telegram', undefined, { text: 'review finished' })

Dependencies and Environment

Before using this plugin, make sure the runtime environment meets the following dependency requirements:

  • Node.js version: ^22.19.0 or >=24.0.0 is required.
  • Cordis version: It depends on @deepseek-ai/cordis, with the version requirement ~4.0.4.
  • Configuration library: It depends on @ddtcorex/dsh-maestro-config-lib (workspace:^0.3.0).

Notes

  1. Transport-only: This is a pure transport-layer plugin. The message text content (domain text) belongs to the consuming plugin; this package never generates domain text.
  2. Explicit target first: If the caller explicitly provides the target parameter, that parameter takes precedence; any resolver failure ultimately degrades to { sent: false, reason: 'not-configured' }.
  3. Ecosystem membership: It is part of the Maestro Harness suite, with the short alias maestro-notifier.

Summary

dsh-maestro-notifier provides DeepSeek Harness with a simple, non-invasive notification abstraction. Through its Never-Throw design and default target resolution mechanism, it lowers the integration cost of notification features. Developers can call the service directly from code without handling lower-level transport details or thrown errors.