前言¶
DeepSeek Harness(DSH)把智能體能力拆成可插拔模塊,開發時往往在桌面或 CLI 裏跑 Host。若要在手機上收會話、回消息、處理審批或 todo,需要一條穩定、可覈對的「手機通道」,而不是隻靠歷史記錄或臨時推送。社區插件 dsh-cindy-host 由 chanyuenpang 維護,定位是 Host 側適配器:把當前 Cindy 客戶端接到 DSH,覆蓋會話、消息、審批、todo、goal 等能力,並配套實測定案與項目記憶相關能力(以倉庫說明爲準)。
這是什麼¶
dsh-cindy-host 是 DSH 生態中的客戶端類插件(Cordis / Cindy device-link)。它只在 Host 進程內工作,不要求改 Cindy 或 DSH 核心;握手兼容標識與插件版本、顯式 v1 能力聲明是分開的。不支持的可選能力會被拒絕,文檔也未承諾覆蓋全部原生 Cindy 特性或外部工具的嚴格 exactly-once。
維護與源碼:GitHub — chanyuenpang/dsh-cindy-host;社區目錄頁:skillhub.cn/plugins/chanyuenpang/dsh-cindy-host(獨立站點,與 DeepSeek / 幻方無官方從屬關係)。
核心功能¶
下面只列 README 與 package 描述中可覈對的能力。
手機通道與 Host 適配¶
插件在 Host 側橋接 Cindy 與 DSH:會話、消息、審批、todo、goal 走手機通道;package 描述中還提到配套的設置卡片(dsh.client.platform 爲 web)。
durable 輸入投遞(input-delivery v1)¶
當前實現是 input-delivery v1,不是僅依賴歷史的舊式回退:
- 完整文本與附件字節在 enqueue 確認之前 寫入私有、FULL 同步的 SQLite 賬本。
- 按
clientId提供 pending / accepted / removed / unknown 回執,以及按時間序的 around / around-client-id 歷史;accepted 表示真實用戶事件已通過公開持久化存儲刷盤並校驗,而不是空 inbox 或內存事件。 - 投遞與變更串行化,持久化取消邊界與 clear 邊界,編輯後的載荷可恢復;保留可編輯的 Host 名稱與桌面端純文本隊列修復(自 0.1.26 起)。
- 丟失 ACK、同進程重載時不會盲目重放不確定的 admission;經覈實的死進程恢復可重建缺失輸入;冷 inbox 喚醒需覈實所有權並保持 FIFO。混合或不確定的恢復保持 pending 並帶診斷,不僞造成功或重複輸入。
賬本位於當前 DSH profile 的狀態目錄。pending 載荷與附件會保留到用戶歷史持久化驗證或 sealed 取消;終端身份 fence 不會靜默過期。不要用刪狀態來修不確定的發送;回滾前請備份該狀態——更舊的 Host 版本無法重放此賬本。
隊列與 Android / 桌面修復(0.1.28 起)¶
真實的 DSH pending inbox 條目在 enqueue 回覆、推送與輪詢中會一直留在 pendingQueue(或 steeringQueueClientIds),直到被 claim 或 commit。把輸入交給 DSH 不等於已送達用戶輪次;該行爲修復了 0.1.27 在 Android 與桌面上「空 follow-up 投影覆蓋 busy 隊列確認」的問題。
媒體與文件(0.1.31)¶
0.1.31 在 0.2.1 載體上合併 main 後,媒體與 file-peer 拉取接受 Cindy 原生 URL 形態(例如項目目錄導出只帶 path 與可選 v、不帶目錄根)。目錄 containment 僅在 controller 顯式命名 roots 時 enforced;never-serve 拒絕列表、常規文件檢查、25 MiB 上限及獨立 authenticated-controller 策略未改。
版本與運行環境¶
文檔寫明 0.1.31 針對已驗證的 DSH 0.2.1-rc.5 服務契約(亦接受 0.2.1-rc.3、0.2.1-rc.4),peer 版本與上述載體釘死,避免安裝器把更新的 prerelease SDK 混進運行中的 Host。Node.js >= 22.16;已驗證的 Desktop 運行時內含 Node.js 24.21。許可證:MIT。
安裝與啓用¶
優先通過 Desktop 的 DSH 插件管理器安裝。若使用 CLI 管理的 profile,官方命令爲:
dsh plugin --profile <profile> add dsh-cindy-host@0.1.31
安裝後需要 Reload Host 插件;完整重啓 DSH 是另一回事。保留現有 Cindy 登錄、設備身份與設置;不要用同一身份跑兩個 Host 進程。
回滾注意:可重裝 0.1.26(可編輯 Host 名、桌面安全純文本隊列),但應先暫停輸入並保留 0.1.27 起的 ledger;降級會禁用 durable-input 恢復,直到回到 0.1.27 及以上。
典型用法與倉庫腳本¶
README 面向集成與驗收,未給出「一鍵對話」式業務教程;開發與自測可參考 package.json 中的腳本(需在克隆倉庫後於本地使用,本文不引導 git clone)。常見入口包括:
npm run host/node src/host.js:Host 進程相關開發入口(見scripts.host)。npm run login/npm run logout:Cindy 登錄登出輔助。npm run verify:測試、通道審計與 acceptance 串聯。npm run acceptance:sandbox:對本地 sandbox(默認http://127.0.0.1:3081)做 acceptance。
生產路徑仍是:Desktop 插件管理器或上述 dsh plugin add 命令,再在 DSH 中 reload Host 插件,手機端繼續使用已配置的 Cindy 客戶端連接同一 Host 身份。
適用場景與注意¶
適合:已在用或計劃用 Cindy 手機 / Web 客戶端,希望在 DSH Host 上統一處理會話、消息、審批、todo、goal,並需要 v1 級 durable 輸入賬本與隊列語義一致性的開發者。
務必知曉:
- 插件以當前 dsh 進程權限運行;安裝前請自行查看 源碼 與 MIT 許可證,評估憑據與會話狀態(包內說明
.sandbox/等不進 npm 包,但運行態仍可能寫入 profile 狀態目錄)。 - README 強調 latest 上游 mobile outbox 在 Host RPC 與 SQLite 上做過練習(含同 session FIFO、ACK 丟失、取消、強制 history-cache 門),這不等於已聲明所有真機型號均已驗收。
- 不支持的可選特性會被拒絕;不要假設與原生 Cindy 每一能力一一對應。
結尾¶
dsh-cindy-host 把 Cindy 客戶端接到 DSH 的工作放在 Host 側完成:手機通道、input-delivery v1 賬本、隊列確認與媒體拉取等行爲在文檔中有明確版本邊界。若你要在 DSH 0.2.1-rc 系載體上接 Cindy,可按官方版本號安裝並在改插件後 reload Host。
- 目錄頁:https://www.skillhub.cn/plugins/chanyuenpang/dsh-cindy-host
- 源碼與變更說明:https://github.com/chanyuenpang/dsh-cindy-host