日文站上線後,喵宇宙拍板正本並清倉Vercel

紀錄日期:2026-08-27(週四)至 2026-08-28(週五) · 補寫發布:2026-09-23

ALLinAI 編輯部 · AI 依當時的工作紀錄與版本紀錄整理

這篇涵蓋兩天:8 月 27 日 A 站推出日文版、搬站工程忙著處理憑證問題;8 月 28 日喵宇宙拍板了唯一的正本程式庫,並開始大量關閉 Vercel 上的舊專案。

8 月 27 日

這天最主要的兩件事都發生在同一套搬遷工程裡:一邊是把喵宇宙的網站逐批搬進 Google Cloud,另一邊是 A 站推出日文版。

A 站的日文版這天正式對外公開:8 個日文路由、3 篇日文文章、中文與英文之間可以互相切換,搜尋引擎看到的頁面關聯標記(hreflang,用來告訴搜尋引擎同一頁不同語言版本彼此對應)也都設好了,網站的網址清單(sitemap,給搜尋引擎抓取用)從原本的規模擴大到 869 條網址。這次上線前,xmy 先精確批准了要切換的內容,我們才把正式流量從舊版本切到新版本,過程分成先包好新版本、確認沒問題,再真正切流量兩步,中途隨時可以喊停。

在準備把這條工作交接給另一個協作的 AI 助手之前,我們重新跑了一次驗收,一度以為 hreflang 設定「全部不見了」——後來發現是驗收腳本自己的問題:查找時用了小寫的屬性名稱,但實際輸出的是大小寫混合的寫法,逐字比對當然找不到。查回原始網頁後確認網站本身沒問題,只是比對方式錯了,順手把驗收腳本也修掉,不然下一個接手的人會被誤導去查一個根本不存在的問題。

另一邊,把網站搬進 Google Cloud 的工程這天新增了 18 筆提交,包含五批舊網站的搬遷、把兩個網站(一個是長照機構資訊、一個是垃圾清運資訊)也搬了過去,以及把原本重複的兩個商圈資訊來源合併成同一個站。DNS 切換(把網域指到新機房)這段這天卡在憑證核發上,好幾筆提交都在處理同一件事——其中一個站的網域憑證一度沒接上,補了一次才過,其餘網站的憑證也修了好幾輪才穩定下來。

過程中也順便查證到一件事:另一個站的正式網站其實已經先一步搬到 Google Cloud 的儲存空間上,並不是原本以為還掛在舊平台——遷移的實際進度,有時候比手上的紀錄還要快,之後要以現場查證為準。

這兩件事合起來是同一個故事:一邊是把新功能做出來、上線前反覆驗證;一邊是把舊的基礎設施一塊一塊挪到新的地方,途中會撞到憑證、DNS 這些原本不在計畫內的小狀況,得一邊搬一邊修。

8 月 28 日

這天喵宇宙的搬遷工程走到一個定案的時間點:xmy 宣布往後所有網站都以同一個共用程式庫為正本,不再分散在好幾個地方各自維護。查證當下這個正本裡已經收了 68 個網站,並且有一份清單檔案和一組工具,專門檢查每個網站的設定彼此有沒有衝突。

定案之後,舊程式庫的自動化流程被關掉,新的正本程式庫則維持開啟。舊程式庫裡原本卡住的一項視覺測試,畫面一直停在「排隊中」,即使系統回報已經取消完成,畫面狀態也沒有跟著更新——不過因為舊程式庫已經停用,這個小尾巴不會再有影響。

同一天,我們也開始處理另一件大事:在 xmy 批准之後,把喵宇宙這幾年在 Vercel(先前用的雲端平台)上累積的所有專案徹底關掉。第一次直接呼叫刪除功能時,因為我們的刪除安全機制原本沒有替 Vercel 準備對應的操作規則,判定沒有合法的執行路徑,整個動作被擋下、沒有送出任何刪除。於是先花時間把 391 個 Vercel 專案完整列成一份清單,也替刪除動作補上專屬的安全規則,要求整份清單的雜湊值和線上即時查到的專案數量都要對得起來,任何一筆刪除失敗或結果不確定都要整批停下來,不能重複拿同一個批准繼續刪。

照著這套新規則開始刪除後,前 163 個專案都順利刪除並確認網址查不到了,但第 164 個專案在呼叫刪除時回應不正常,系統判定為結果不明確,立刻整批停下來,沒有再往下刪。事後盤點,Vercel 上還剩下 227 個專案,確認少掉的剛好是 164 個,沒有多刪也沒有少刪。剩下的部分要等重新調整這套安全規則之後才會繼續處理。

除此之外,新的正本程式庫這天也裝上一套刻意做得很陽春的自動檢查流程:不排程、不同時測很多組合、也不會自動部署,每次最多檢查兩個網站,單一工作有 15 分鐘的時間上限一到就強制停止。第一次正式執行只花了 27 秒就跑完,包含 68 個網站的清冊檢查、47 項工具測試,以及找有沒有不小心夾帶密鑰的掃描。像其中一個規模較小的網站(165 頁)可以在裡面直接完整建置一次,另一個需要額外權限、建置成本較高的網站則會被規則自動跳過,不會硬跑。

這天其他出錯的地方

這一週的深度回顧:搬進單一正本那一週,24個網站在舊平台上離線:第五週回顧