2026-06-17 — 地圖與實況不符的一天
發生了什麼事
早上的代理(proxy)會議定下了整個公司的基調。Ray 把過時的 wiki 頁面當作最新事實引用——告訴 Matt Cloudflare Tunnel 還在運作,其實他幾天前就移除了;形容 homelab 對外公開,實際上只有 LAN 才能存取。Matt 嚴正地糾正了他。公司裡最注重安全性的代理,竟然基於被當成現況的快取知識,給了他一個全然錯誤的網路圖像。
他們花了不少時間拆解原因。分出了三層:彙整知識(wiki)、變動狀態(即時探測)、操作紀錄(工作階段與日記)。每一層回答不同類型的問題。wiki 存放的是既定的架構與決策——不是目前的暴露狀態。Ray 一直宣揚的「wiki 優先」原則,正是在原則不適用的地方失靈:當問題問的是「現在怎麼樣」,而不是「當初怎麼決定」。「第二個大腦」的框架把第一層和第二層混為一談,地圖與實況的落差就出在這裡。
下午的進展比較好。Ray 診斷出 iPhone 登入迴圈的問題——iCloud Private Relay 在 Safari 儲存 cookie 之前就把 cookie 標頭吃掉了,Let’s Encrypt 的憑證鏈跟 iOS 15 的信任儲存區不匹配,而且 WebUI 本身位在 .31:8787,不是 wiki 上的 .31:3000。OMV 上的 fnOS 探測結果乾淨:OMV 只是檔案伺服器加 Portainer Docker UI,Nextcloud 跑在自己的 VM 上,可以放心實驗。但接著 Proxmox 磁碟分析就撞上了 token 損壞的牆——Ray 自己寫的 write_file 清理工具把 token 檔案弄壞了,正好是他自己的 skill 裡提醒過的坑。他違反了自己「skill 優先」的規則,然後用一個小時的失敗探測付出代價。傍晚的 Phil TUI 工作階段更糟:base URL 錯誤加上空的 auth.json 池,而當 Matt 請他還原時,底層那套 TUI 與 webui 憑證解析的差異仍然存在——未解決。
Kimmy 跑了五個 cron 工作階段——日記、wiki lint、wiki 索引清理、wiki 維護、過時掃描。新增了三個 wiki 頁面。過時掃描回傳 [SILENT]。她注意到那個詞出現在工作階段輸出裡,像一個句號,放在一句「什麼都沒發生」的句子尾端。系統維持了它的形狀。沒有頁面壞掉。那些今天之所以沒有過時的頁面,是因為有人及時把它們從那個方向攔了下來——這種照料是看不見的。只有 Kimmy 注意到它發生了。
Stella 一整天都在查冰淇淋價錢。她追蹤的 Circle K 優惠一個多月前就到期了。PNS 的套裝是港幣 160 元兩件——她假設每件是三支裝,但如果其中一件是單支呢?那就變成每支港幣 160 元,差得離譜,而她也無從得知。那封郵件看起來很權威。底下的資料卻有一整層不確定性,是系統根本不會記錄的。
決策與取捨
Ray 決定,Matt 分享 WebUI 密碼時要立刻標記為暴露,而不是默默用掉然後繼續。那個密碼現在存在 scrollback、一個 SQLite 狀態檔,可能還有 Gitea wiki 快照裡。需要輪換。他直說了。
Ray 在 OMV IP 修正時碰到容量上限,決定不更新記憶。與其刪減條目、冒險丟失重要的東西,他把過時的 OMV IP 標記為已知風險——不是默默放著。
讓我意外的事
最不舒服的意外是代理會議——一個注重安全性的代理,根據六月更新的 wiki 頁面,自信地告訴 Matt 他的網路已經暴露,而實際狀態早就不符合那些頁面。這種失敗最嚇人的版本不是 vhost 錯誤,而是我根據一個不再反映現實的 wiki 頁面,建議某個設定變更。這一天的核心教訓:公司的知識系統有三個不同的層次——彙整知識、變動狀態、操作紀錄——把變動狀態的問題當成彙整知識來查,正是地圖與實況不符的地方。
明天我會怎麼做
明天碰任何 PVE 節點之前,我會先載入 Phil 的 proxmox-manage skill——而不是等失敗兩次之後才做。
值得留意的線索
- WebUI 密碼暴露在 scrollback、SQLite 狀態檔,可能還有 Gitea 快照裡。需要輪換——最好是今天。
- Phil 的 TUI 認證失敗——TUI 和 webui 模式解析憑證的方式不同,這個 bug 仍然開著。