From fe0ee8296aafce5d40f6b3f7ca65bc4b803b865e Mon Sep 17 00:00:00 2001 From: uncle6me-web Date: Wed, 5 Aug 2026 16:35:02 +0800 Subject: [PATCH] =?UTF-8?q?portal=20=E4=B8=8B=E8=BC=89=20Mac=20=E7=89=88?= =?UTF-8?q?=E6=94=B9=E7=B5=A6=20DMG=EF=BC=88=E6=8B=96=E9=80=B2=20Applicati?= =?UTF-8?q?ons=EF=BC=89=EF=BC=8C=E4=B8=8D=E5=86=8D=E7=B5=A6=20zip?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit leo 2026-08-05:「Mac 強調要包裝成 application + dmg 的格式,拖進去就會放到 application,**解決之前直接在下載資料夾啟動造成更新問題**」 ## 病(實查證實) manifest 已有 mac_dmg 欄,DMG 也上傳了,**但 portal 下載按鈕仍指 zip**: DAEMON_MAC = 'ArcrunRAG-mac-unsigned.zip' 用戶端實抓該 zip → 解開就是 Arcrun.app ⇒ 很可能直接在「下載」資料夾雙擊啟動, 正是 t184(Oscar)那個「更新完又跳回舊版」的病灶。 ## 修 · DAEMON_MAC → 'ArcrunRAG-mac.dmg'(**固定檔名**,否則每出一版都要改 code) · Mac 安裝提示改成 DMG 的步驟:「開啟後把 Arcrun 拖進『應用程式』,再從啟動台開啟」 (zip 版的話術是「右鍵→打開」,步驟不同不能沿用) ## 說明:App 端的更新邏輯本來就修好了 selfupdate.go 已改成更新「正在跑的那個 .app」(runningAppBundlePath),不寫死 /Applications ⇒ 放哪都更新得了。本次補的是**入口**:讓使用者一開始就放對位置。 ## ⚠️ 殘項(未送達) bundles repo 目前**只有帶版號的 DMG**(ArcrunRAG-v0.18.4.dmg), **沒有固定檔名 ArcrunRAG-mac.dmg**(實測 404)⇒ 這行改動要等出貨時 一併產生固定檔名副本才會生效。出貨需 D20 開閘。 Co-Authored-By: Claude Opus 5 (1M context) --- console-ui/public/portal/index.html | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/console-ui/public/portal/index.html b/console-ui/public/portal/index.html index bd7ba8f..11696ba 100644 --- a/console-ui/public/portal/index.html +++ b/console-ui/public/portal/index.html @@ -796,10 +796,16 @@ function taipeiMonthDay(ms) { var d = new Date(ms + TAIPEI_OFFSET_MS); return { // 判不出 OS 時**兩個都給**,不替用戶猜;且無論判成哪個,頁面都留「不是這個系統?」的另一版連結 // ——UA 會判錯,判錯時用戶要有路可走(施工圖 §3 注意事項 1、3)。 var DAEMON_BASE_DEFAULT = 'https://raw.githubusercontent.com/youlinhsieh/arcrun-rag-bundles/main/daemon/'; - var DAEMON_MAC = 'ArcrunRAG-mac-unsigned.zip'; + // 🔴 2026-08-05 leo:「Mac 強調要包裝成 application + dmg 的格式,拖進去就會放到 + // application,**解決之前直接在下載資料夾啟動造成更新問題**」 + // ⇒ Mac 一律給 **DMG**(開啟後是「把 Arcrun 拖進 Applications」的標準畫面), + // 不再給 zip——zip 解開就是 .app,使用者很可能直接在「下載」資料夾雙擊啟動, + // 而自更新會蓋錯位置(t184 Oscar 的病)。 + // ⚠️ 用**固定檔名**(不帶版號),否則每出一版都要改這裡的 code。 + var DAEMON_MAC = 'ArcrunRAG-mac.dmg'; var DAEMON_WIN = 'ArcrunRAG-win-unsigned.zip'; - // Mac 那顆 21MB > jsDelivr 單檔 20MB 上限(實測回 "File size exceeded...")→ 一律走 raw; - // Windows 13MB 雖在限內,同走 raw 保持單一來源、少一個會壞的地方。 + // Mac 那顆 > jsDelivr 單檔 20MB 上限(實測回 "File size exceeded...")→ 一律走 raw; + // Windows 同走 raw 保持單一來源、少一個會壞的地方。 function daemonBase() { var cfg = (window.ARCRUN_CONFIG || {}); if (cfg.daemonBase) return String(cfg.daemonBase).replace(/\/?$/, '/'); @@ -829,7 +835,8 @@ function taipeiMonthDay(ms) { var d = new Date(ms + TAIPEI_OFFSET_MS); return { // 封測期第一次開啟的擋關提示(未簽章)——Mac/Windows 攔法不同,話術也不同。 function daemonHint(os) { if (os === 'win') return '(封測版未簽章,Windows 第一次會跳藍色視窗擋下來——點「更多資訊」→「仍要執行」就好)'; - return '(封測版未簽章,第一次請右鍵→打開)'; + // DMG 版的步驟與 zip 不同:先拖進「應用程式」再從那裡開,才不會在下載資料夾啟動。 + return '(開啟後把 Arcrun 拖進「應用程式」,再從啟動台開啟;封測版未簽章,第一次請右鍵→打開)'; } // 07-27:設定頁的常駐入口(下載小幫手/換 AI 金鑰)——與一次性卡片同一組 API (function () {