在 DSH 的工作流中,同時運行多個會話(例如一個用於研究,一個用於編碼)是常態。問題不在於會話無法“看見”彼此,而在於缺乏一種程序化的關係層來管理權限邊界、共享資源和加載能力。現有方法往往將這些硬編碼在插件內部,缺乏靈活性。dsh-connection-card-host 旨在解決這個問題。
插件介紹¶
該插件將“連接”提升爲 DSH 中的一等公民。它定義了會話爲節點,連接爲容器,卡片爲連接作用域的插件。本質上,它提供了一個“連接級插件宿主”。
- 維護者:Noob-stupid
- 許可:MIT
- 分類:工作流
核心功能¶
該插件通過連接層爲兩個會話提供多種交互方式,且互不干擾:
- 互相看見:自動收集對方的狀態,包括正在運行的命令、最近編輯的文件、計劃進度等。這些信息由對方按需拉取,不產生額外成本。
- 互相交談:支持多種消息傳遞方式(通知、隊列、打斷、搶佔式打斷),但發送消息會強制接收方運行一輪。
- 共享工具:通過掛載在連接上的“卡片”來實現。卡片可以提供工具給會話,且不受限於插件本身的大小,支持數十 MB 的真實依賴。
- 共享約定:提供一個“約定盒”,用於存放接口、單位、命名規範和資源歸屬等雙方達成的共識。
- 不打擾:感知機制是拉取式的,除非對方主動詢問,否則不會產生開銷。不相關的連接不會打斷當前會話。
典型用法¶
建立連接¶
在 DSH 界面中建立連接非常直觀:
- 操作:按住作曲器左側的圓圈,或者會話行上的
...,將其拖拽到會話列表中的目標行上。 - 目標:放置目標會話行即爲“連接”,已連接的行則爲“斷開”。
- 恢復:連接會在 DSH 下次啓動時自動恢復。
視覺與權限¶
連接建立後,會話行旁邊會出現一條“軌道”,每端有一個彩色圓點,表示該方向的權限。權限由雙方共同決定。
適用場景與注意¶
- 適用場景:適合需要多個會話協同工作,但又希望保持隔離和按需交互的場景。例如,一個會話負責編寫代碼,另一個負責運行實驗,兩者通過連接共享工具和約定,但不互相打擾。
- 注意事項:
- 拉取式感知:對方對你的狀態“看見”與否,完全取決於對方是否主動發起詢問。如果對方不詢問,你對其狀態的感知就是零成本的。
- 消息強制運行:在 DSH 中,發送消息不僅僅是通知,它會強制接收會話進入下一輪運行。
- 卡片限制:掛載在連接上的卡片受連接權限的約束,且所有功能必須由連接提供。