dsh
OpenPetsHQ/openpets将 DeepSeek Harness 的生命周期状态、错误与审批请求,桥接到本地运行的 OpenPets 桌面伙伴。
中文文档 | English
Standalone Feishu self-built app integration for DSH.
{ type: 'image', attachment } content blocks to the selected agent model. Failed downloads or attachment admission degrade to a path-based vision prompt or plain-text notice.session-feishu* session to the real DSH workspace that owns its cwd. New sessions receive 飞书 · <first meaningful message> titles; generic greetings begin as 飞书会话 and upgrade when meaningful text arrives, while existing manual titles remain untouched.cordis by default), inheriting the Host file sandbox and approval policy.turn/start with a blue header. Status, notation-sized plain-text tool progress, the Markdown answer, and the separated hr + notation-sized metadata row use independent elements. Tool-only events never resend the answer element, while cumulative answer updates preserve CardKit's prefix-streaming behavior so only the new suffix is animated. A one-second footer-only heartbeat keeps model, reasoning effort, and elapsed time current and stops on completion, cancellation, errors, and disposal.NO_ADAPTER to clear.Download the newest dsh-feishu-*.tgz from Releases and add it to the profile:
dsh plugin --profile web add D:\downloads\dsh-feishu-0.2.0.tgz
Restart the DSH Web host after installation, then complete the profile configuration below.
For local development, install from a checkout instead:
dsh plugin --profile web add link:D:/项目/dsh-feishu
Add the plugin to the profile bundle list and configure the row in the profile patch. The shipped bundle row is disabled until credentials are configured:
- id: dsh-feishu
config:
enabled: true
appId: cli_xxx
appSecret: your-secret
allowUsers:
- ou_xxx
ack: true
ackReaction: OK
provider: ''
model: ''
reasoningEffort: ''
agentPreset: cordis
The allowUsers list is required for business messages. An empty list rejects all users.
Leave both provider and model empty to follow the current DSH default selection. The Web panel reads reasoning efforts from llm.resolveModelInfo(provider, model) and only offers efforts the selected model declares.
Changing provider, model, reasoning effort, or Agent preset disposes every live Feishu Agent. The update is transactional: if the replacement bridge cannot start, the stored configuration and prior bridge are restored. Session ids use a v2 configuration fingerprint, so legacy sessions without meta.agentPreset remain preserved but are not resumed under a different tool composition; the next Feishu message creates or resumes the matching v2 session.
The plugin has a Host integration and a Web configuration panel. It uses session/event and agent/* Host events, registers loopback-only /api/dsh-feishu/* routes, and does not modify DSH core source.