TingRuDeng/dsh-feishu-bot ↗★ 2
@tingrudeng/dsh-feishu-bot
Feishu (Lark) private-chat frontend for DeepSeek Harness: drive, monitor, and approve local agents from Feishu, sharing sessions with the Web GUI
AI Analysis
核心用途是实现通过飞书客户端远程与本地 DSH Agent 交互及审批提权。适合需要移动端办公、远程监控 Agent 任务的用户。
Install
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:TingRuDeng/dsh-feishu-botREADME
Read the full README ↗Configuration reference
Gateway options:
| Key | Default | Purpose |
|---|---|---|
appIdRef / appSecretRef | bundle: FEISHU_APP_ID / FEISHU_APP_SECRET | Credential-service references; never raw secrets |
sendRetryBaseMs | 500 | Exponential retry base delay |
sendMaxAttempts | 4 | Shared maximum attempts for text and card sends |
sendCircuitCooldownMs | 30000 | Per-chat cooldown after the retry budget is exhausted |
disposeDrainTimeoutMs | 5000 | Maximum HMR/shutdown drain time for accepted sends |
Bridge options:
| Key | Default | Purpose |
|---|---|---|
allowedOpenIds | [] | Users allowed to interact; empty rejects everyone |
allowedWorkspaces | [] | Canonical roots visible to /ls, /use, and /new; empty authorizes none |
defaultWorkspace | unset | Default /new cwd; ~ is supported and load fails if the resolved directory is outside the allowed roots |
freshnessMs | 600000 | Maximum age of a newly delivered Feishu event |
listingTtlMs | 300000 | Lifetime of the latest /ls card and ordinal snapshot |
cardThrottleMs | 1000 | Minimum interval between non-terminal task-card patches |
recoveryTtlMs | 86400000 | Maximum age of interrupted inbound work eligible for restart recovery |
bindingCleanupTimeoutMs | 5000 | Independent timeout for disposing a newly-created session after a failed binding switch |
disposeDrainTimeoutMs | 5000 | Bridge deadline for admitted chat/card/approval/projection work before storage is closed |
inboundRetentionMs / inboundMaxRecords | 604800000 / 50000 | Terminal inbound retention and hard capacity; protected recoverable rows cause backpressure instead of eviction |
outboundRetentionMs / outboundMaxRecords | 604800000 / 10000 | Legacy outbox/dead-letter retention and hard capacity |
outboundPendingTtlMs | 86400000 | Age at which a legacy unsent segment is abandoned and its body cleared |
deliveryRetentionMs / deliveryMaxRecords | 604800000 / 10000 | Canonical result-delivery retention and hard capacity |
deliveryPendingTtlMs | 86400000 | Age at which an unsent canonical result is abandoned and its body cleared |
approvalPendingTtlMs / approvalMaxRecords | 86400000 / 1000 | Inactive approval recovery-fact TTL and hard capacity; active/fresh ambiguous rows are protected |
projectionCursorRetentionMs / projectionCursorMaxRecords | 604800000 / 10000 | Unbound cursor retention and hard capacity; active or pending-delivery cursors are protected |
maintenanceIntervalMs | 86400000 | Retention sweep interval; 0 disables the periodic timer while startup cleanup still runs |
agentProvider / agentModel | unset | Optional paired override; when omitted, new and cold-resumed sessions follow Harness agent-default-model |
webUrl | http://127.0.0.1:3080 | Web GUI link placed on approval cards |
Result-card segmentation uses a fixed 24 KiB soft limit over the complete Feishu create-message envelope; it is intentionally not a deployment setting.