修 stage 上 daemon 下載連結誤指 prod GitHub 的 bug,v0.18.24 上架 staging 驗收

daemonOf()(installer/oauth-prototype/worker.js)原本無條件把下載連結組成
raw.githubusercontent.com/youlinhsieh/arcrun-rag-bundles/<sha>/...——這對 prod
(bundleBase 是 jsDelivr @sha,需要換宿主避開單檔 20MB 上限)是對的,但對
staging(bundleBase 本身就是可直接讀檔的 Gitea raw root)會把 staging 的
commit sha 套進 prod 的 GitHub repo 路徑,下載必然 404/502。改成只有偵測到
prod 的 jsDelivr `@sha` 格式才換宿主,其餘直接用 base 本身當下載來源。
cacheKey 加版本後綴避免邊緣快取繼續吐修復前的舊 JSON。

wrangler.toml [env.staging] BUNDLE_BASE 釘子換到推了 v0.18.24 daemon 的
staging bundle commit(31a6ccf)。

diagnostics_stage_manual_test.go 的模擬出貨版本號更新到 v0.18.24(跟目前
實際出貨版本一致)。

實測(stage,真下載+真掛載):
- /api/latest:daemon.version=v0.18.24,下載連結指回 staging 自己的 Gitea repo
- /download/mac:200,sha256 與本機建置產物一致,掛載後
  CFBundleShortVersionString=0.18.24,codesign 有效
- /download/win:200,sha256 一致,exe 內嵌版本字串含 v0.18.24
- TestDiagnosticsStageManual(真 stage youlin 帳號)PASS,匯出診斷檔 JSON
  全文無本機絕對路徑

紅線核對:prod 全程未碰(.github-armed 不存在、arcrun-rag-bundles prod repo
未 clone/push);只動了 staging bundle repo(Gitea arcrun-rag-bundles-staging)
與 arcrun-rag-installer-staging worker。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-08 17:24:31 +08:00
parent 0cdbda8694
commit 5ea6b755d9
@@ -91,7 +91,7 @@ func TestDiagnosticsStageManual(t *testing.T) {
// 重新編譯測試二進位檔本身。
// 這個號碼會過期,過期不影響驗證邏輯本身(update_check 照樣現查現答,
// 比對的是雲端最新版),只是 headline 文案會隨之變化,不必維護到分毫不差。
const simulatedShippedVersion = "v0.18.23"
const simulatedShippedVersion = "v0.18.24"
version = simulatedShippedVersion // ②:本行程(測試)自己的 daemon_version 來源
t.Cleanup(func() { version = "dev" })