Leo
|
0021c274e8
|
t184:自更新蓋回「正在跑的那個 .app」——修 Oscar 更新完又跳回舊版
leo 08-04 實撞(Oscar 截圖):托盤顯示「🟢 新版 v0.15.6 已就緒」,
點下去重啟後**版本又是 v0.15.4**。同一套機制在 leo 機器正常。
真兇=`selfupdate.go` 寫死 `/Applications/Arcrun RAG.app`:
· leo 有把 app 放進 /Applications ⇒ 剛好蓋對他正在跑的那份 ⇒ 一直正常
· Oscar 從下載資料夾直接跑 ⇒ 蓋到一個他沒在跑的路徑
· 而且 **ditto 會自動建出該目錄並回傳成功**(實測 exit 0,非報錯)
⇒ 畫面說「更新完成」、版本卻永遠是舊的=**靜默失敗**
⇒ 不是新舊 Mac 的差別,是 **app 放置位置**的差別(leo 機器實查證實)。
修法:改用 os.Executable() 往上推 .app(runningAppBundlePath),
更新**當前真的在跑的那份**——放哪都能更新,也不再無中生有 /Applications 副本。
找不到 .app 結構時誠實回錯,不猜路徑亂蓋(蓋錯比不更新更難查)。
⚠️ 「檢查更新」這條路**保留且必須修好**——leo:「這是我解決每次都要撞
沒簽章問題的解法,不能說它無用」。本次是修它,不是繞過它。
測試:新增 t184_test.go(不得回傳寫死 /Applications/.app 推導對三種放置位置
/ditto 靜默建目錄的認知回歸);順手把 t182 的 TestAccountEngineLabel 改寫成
新判準(explicit 決定,非 config 殘留字串)。兩模組全綠。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-04 17:57:46 +08:00 |
|