Repository navigation
v1.47.0 — 連線逾時可設定
連線逾時終於可以設定,設定檔驗證失敗的錯誤訊息也從一坨 Zod JSON 變成逐欄可讀。
決策記錄:docs/adr/0003-connection-timeout-override-resolved-at-adapter-construction.md
Added
-
新的 root-level 全域旗標
--timeout <ms>。 覆寫連線設定中的timeout;兩者都沒有時沿用各 adapter 內建的 5000ms。合法值為 100~600000 的整數,須放在子指令之前(和--global/--use一樣是 root-level flag)。對所有引擎有效,典型用途是 MongoDB 跨 VPN 或連 Atlas 時,預設 5 秒的 server selection timeout 太緊:dbcli --timeout 20000 --use <conn> list
這個覆寫只在建立連線時套用,不會寫回設定檔;要永久生效請在連線設定裡寫
timeout欄位。 -
連線設定檔新增
timeout欄位。 四種連線 schema 皆支援,毫秒、100~600000 整數、可省略。此欄位不接受$env參照。
Changed
-
設定檔驗證失敗的錯誤訊息改為可讀格式。 過去會吐出整包 Zod
unionErrors巢狀 JSON;現在依連線宣告的system收斂到對應分支,一行一個欄位路徑:Failed to read .dbcli config: 設定內容不符合結構 - connections.m.port: Expected number, received stringsystem不被支援時會列出完整引擎清單,而不是只列出恰好 issue 最少的 SQL 分支。 -
文件明確禁止
2>&1。 診斷訊息走 stderr、結果走 stdout,合併兩者會讓--format json的輸出無法解析。SKILL 與 reference 都補上正確的導管寫法。
為什麼是 100ms 而非 1ms
PostgreSQL adapter 把同一個值同時給 connectionTimeoutMillis 與 statement_timeout,過小的值會讓每一句 SQL 立刻失敗,而錯誤訊息長得像連線問題。
Full Changelog: v1.46.0...v1.47.0