前言¶
在 DSH Web 中處理智能體會話時,一個已完成 Session 裏某條用戶消息如果表述不理想,常見需求是讓 assistant 重新回答,但不希望丟失原路徑,也不希望創建新的子 Session。dsh-conversation-rewind 針對這個場景,爲 DeepSeek Harness Web UI 提供同 Session 的 append-only 對話分支,以及可編輯用戶消息的安全編輯能力。
這是什麼¶
dsh-conversation-rewind 是一個 DSH Web 插件,由 DTSFO 維護,許可證爲 MIT,package.json 中版本號爲 0.1.7。
它把“修改歷史用戶消息並重新生成回覆”做成在同一 Session 內創建 sibling branch 的操作,同時保持持久事件日誌 append-only,避免直接重寫或刪除歷史事件。
核心功能¶
歷史用戶消息的內聯編輯¶
插件在可編輯的用戶消息旁增加 Edit history message 操作。編輯在該消息行內聯完成,不打開 modal。
用戶修改文本後,可以點擊 Confirm 或 Cancel。Confirm 會從該消息在原 Session 中創建新的 sibling branch,並將編輯後的文本作爲真實新的 user turn 發送,以便 assistant 響應被重新生成。
編輯確認後,後續消息不再作爲可編輯選項提供。
分支樹瀏覽¶
插件用可視化 Branches 樹替代原 history-switching 表單。每個語義分支的最終消息可點擊;中間消息顯示爲靜態樹節點。
非端點消息顯示爲靜態樹節點。Host 對非端點的調用會以 BRANCH_NOT_ENDPOINT 拒絕。
同 Session 內的只讀瀏覽¶
點擊分支端點只是客戶端只讀查看已有路徑。它不發送消息、不調用 Provider、不喚醒 Agent、不寫 inbox、不追加替換、不截斷 Session。
分支瀏覽保持在原 Session 內:Session ID 與瀏覽器 URL 不變,也不創建子 Session。
append-only 日誌與 replacement marker¶
插件保持持久事件日誌 append-only。歷史事件保留用於審計/恢復;插件追加 replacement marker,而不是重寫或刪除歷史事件。
它使用 DSH Surface replacement metadata 隱藏被選消息、舊回覆和後續活躍路徑,使其不進入當前 transcript 和未來模型上下文。
編輯觸發的安全保護¶
內部編輯觸發器被永久保護,確保在 provider dispatch 前被取消,包括重啓後的 orphan recovery。
安裝與啓用¶
環境要求如下:
- DeepSeek Harness
>=0.1.0-rc.6 - Node.js
^22.19或>=24 - DSH Web profile
安裝命令:
dsh plugin --profile web add \
https://github.com/DTSFO/dsh-conversation-rewind/archive/refs/tags/v0.1.7.tar.gz
dsh web
第一條命令將插件加入 Web profile,第二條命令啓動 DSH Web。
典型用法¶
1、在 DSH Web 中打開一個已完成的 Session。
2、點擊目標用戶消息下 Copy 旁邊的 Edit history message;在該消息行內修改文本,然後點擊 Confirm 或 Cancel。Confirm 會在同一 Session 中創建新的 sibling branch。
3、打開 Branches 視圖檢查消息樹;只點擊分支端點以在 Chat 中瀏覽該已有路徑。
4、瀏覽時發送功能被禁用且 Session 保持不變;發送或編輯前先返回活躍端點。
5、舊路徑仍保留在 append-only log 中;只有編輯確認會創建替換並重新生成回覆。
適用場景與注意¶
可編輯條件¶
只有包含恰好一個直接、普通、純文本用戶消息的已完成 turn 可編輯。
包含附件、歧義 user-role 上下文或 unsafe-to-replay turn 的分支在樹中仍可見,但消息不可編輯。
編輯要求 Session 在當前 DSH 進程中 live。如果 Surface 或 inbox 併發變化,操作會失敗關閉。
編輯不做什麼¶
編輯只改變會話歷史;不恢復 workspace 文件,也不回滾工具調用、命令、網絡請求或其他外部副作用。
分支瀏覽是隻讀客戶端投影;不能重建 Host 未在當前窗口暴露的 Chat 行。
安全與安裝前檢查¶
該插件會在當前 DSH 進程中生效,並以當前 dsh 進程權限運行。安裝前應檢查源碼、插件配置和 MIT 許可證,確認其注入行爲與自身環境一致。
結尾¶
dsh-conversation-rewind 的價值在於:把“修改歷史並重新生成回覆”限制在同一 Session、append-only 日誌和明確的只讀瀏覽邊界內,同時保留舊路徑用於審計/恢復。
已覈實資料未給出獨立目錄頁 URL,本文不附未覈實的目錄頁鏈接。GitHub 倉庫地址如下:
https://github.com/DTSFO/dsh-conversation-rewind