Skip to content

0.3.0 — 使用者視角審查的改動全部落地

Choose a tag to compare

@WwW7olFWwW WwW7olFWwW released this 06 Oct 12:21
· 11 commits to main since this release

對應 commit:62ac3f1(main)

安裝:

dsh plugin --profile web add github:WwW7olFWwW/dsh-codebase-watcher

或直接用下面附的預建包(免建置、免 allowBuilds 授權):

curl -L -o dsh-codebase-watcher.tgz https://github.com/WwW7olFWwW/dsh-codebase-watcher/releases/latest/download/dsh-codebase-watcher.tgz

這一版的完整說明見 CHANGELOG.md;要點:

這一版把「使用者視角審查」的改動全部落地。兩個對外行為變了:GET /config 的回應形狀
(現在分成可寫的 config 與觀測用的 runtime),以及不存在的專案 id 由 502/靜默成功改為
404。有腳本在打這兩條路由的話請看下面 Changed 的第一、二條。

Changed

  • 重建不再週期性重跑:includeDirty 仍是預設開啟,但掃描觸發的重建只在該專案自上次成功重建後
    又有檔案活動時才排入。先前一個長期有未提交變更的專案會在每一輪掃描被重新索引一次,卻永遠追不上
    (實測 29.6 小時 145 次重建,其中 8 次被 CBM 以「重建途中檔案又變」中止)。
  • 新增設定欄位 rebuildCooldownSeconds(預設 45):同一個專案兩次自動重建的最短間隔;0 關閉。
    人工與強制重建不受冷卻限制。設定一改,掃描計時器與已建立的監看器會就地重套(不必暫停再恢復)。
  • GET /api/codebase-watcher/config 改回三個欄位:config(可寫,欄位名與 POST 相同)、runtime
    (執行期形狀,觀測用)、upstream。先前只有執行期形狀,把它 POST 回去不會生效。
  • graphUrl 填了非 http(s) 的值時,改為忽略該覆寫並退回由 ui_port 推導,卡片上會說明原因;
    先前會讓所有圖譜連結消失。

Added

  • POST /api/codebase-watcher/cancel:取消目前正在跑的重建;卡片上多了「全部強制重建」與
    「取消重建」兩顆按鈕。
  • 日誌檔輪替:keeper.log 單檔上限 5 MB,超過輪替成 keeper.log.1(只保留一份)。
  • 卡片可解釋性:顯示判定依據(reasons)、上次掃描失敗原因、監看失敗原因與圖譜 UI 的附註。

Fixed

  • 非 http(s)、或超界、或空字串的設定值不再靜默變成「最小值」或讓整條功能失效;寫錯欄位名會在
    啟動時留下 config.unknown-keys 日誌。
  • check/rebuild 帶不存在的 id 改回 404,不再回 502 或「全部目標都與工作樹一致」的誤導訊息。
  • 監看器的執行期錯誤(例如 inotify 用盡)會讓狀態變成 failed 並記下 lastError,不再停在
    「監看中」而存檔已經追不上。
  • 讀不到 CBM 設定時保留錯誤並在卡片上說明;先前會被誤報成「圖譜 UI 未回應」。
  • 重建失敗的訊息會攤平 CBM 的 {status, hint} 信封,不再把整段 JSON 印到卡片上。