Introduction¶
DeepSeek Harness (DSH) adopts a plugin-based architecture and emphasizes extensibility. The dsh-feishu-integration plugin aims to solve the problem that, when DSH runs in a background or Web environment, users cannot interact through instant messaging tools. It provides a mechanism to send DSH conversation summaries to Feishu and allows users to reply to Feishu messages to reverse-control or continue a DSH conversation.
Core Capabilities¶
The plugin provides the following core features:
- Conversation summary push: After a DSH conversation ends, the summary is automatically sent to Feishu.
- Reply routing: When a user replies to a summary in Feishu, the system automatically recognizes the reply and routes it back to the DSH conversation that generated the summary.
- Fixed session continuation: Supports fixed session continuation in peer-to-peer (p2p) and group chat scenarios.
- Administration entry point: The DSH settings page provides binding status viewing, QR code binding, reconnection, disconnection, and unbinding.
- Configuration management: Provides QR code provisioning and a
fsum-adminCLI management entry point. - Multi-domain support: Supports both the Feishu domain and the international Lark domain.
Installation and Binding¶
To install the plugin, run the following command in the target DSH profile:
dsh plugin --profile web add github:yangwuan55/dsh-feishu-integration
After installation, restart the corresponding DSH profile. The plugin ships with dsh.bundle.patch and will be automatically mounted into the profile. After installation, you can view the binding status and scan the QR code to bind on the DSH settings page. By default, this plugin does not enable inbound long connections, so it will not automatically compete with existing Feishu long connection plugins over event streams during installation.
Enabling Inbound Reply Routing¶
To implement the feature “reply to a summary in Feishu → route back to the DSH conversation,” inbound takeover must be enabled. Because Feishu long connections use clustered event distribution, running multiple long connection clients for the same application simultaneously may cause events to be randomly routed. Therefore, other Feishu long connection plugins in the same DSH profile must be disabled first, and then this plugin’s inbound takeover can be enabled.
Override the configuration in the profile patch to enable inbound takeover:
- id: xmanrui-dsh-feishu
disabled: true
- id: dsh-feishu-integration
config:
takeoverInbound: true
replyTimeoutMs: 600000
CLI Management¶
In addition to the web settings page, the plugin also provides the fsum-admin CLI tool for operations such as binding, verification, and unbinding:
fsum-admin list
fsum-admin bind
fsum-admin bind --app-id cli_xxx --app-secret xxx --owner ou_xxx
fsum-admin verify --app-id cli_xxx
fsum-admin set-owner --app-id cli_xxx --open-id ou_xxx
fsum-admin unbind --app-id cli_xxx
Data and Reliability¶
- Data migration: The plugin retains the local data layout of the older
@xmanrui/dsh-feishuplugin ($DSH_HOME/integrations/dsh-feishu/) so that existing bindings and fixed sessions can be preserved during migration. - Secure storage: The sensitive
app_secretis stored in the DSH credential store and is not written into public configuration files. - Send retries: Summary sending includes a built-in retry mechanism, with up to 10 attempts, exponential backoff (starting at 1s, capped at 30s, and ±20% jitter), and a total timeout of 10 minutes. If the network is unavailable, waiting is deferred without consuming an attempt. Each logical send carries an idempotent Feishu message
uuidto avoid duplicate delivery. - Timeout handling: If waiting for a response times out (default 600s), the plugin remains silent and does not send a follow-up error reply. The forwarded receipt itself is treated as delivery confirmation; timeout is only recorded in the host logs.
Development and Maintenance¶
This plugin uses the MIT license. Developers can work on it using the following commands:
git clone https://github.com/yangwuan55/dsh-feishu-integration.git
cd dsh-feishu-integration
pnpm install
pnpm build # 构建前端代码
pnpm test # 运行回归测试
- Host-side logic: Located in the
lib/host/directory. JS files can be edited directly without a build step. - Client-side logic: Located in the
client-src/directory. After changes,pnpm buildmust be run to regeneratelib/client.js.
Ecosystem Background¶
The DSH philosophy is “everything is a plugin,” and this plugin is part of that ecosystem. It is maintained by community user yangwuan55 and has no direct affiliation with DeepSeek or High-Flyer. For more details, refer to the plugin directory page or the source repository.