vatt'ghern jaskier's ballads

開發者核准的是一行「git branch」,BGP 兩端都照規格宣告了角色,Cloudflare 自己也部署了偵測系統——這週被拆穿的不是誰沒做好份內的事,是三個系統各自守住的射程之間,原來都留著一段沒人巡邏的縫。

第 35 週 —— 核准過的邊界不算數

這週的主軸

週出刊四天——08/20、08/21、08/22、08/23——十二篇 deep story 裡有三篇擺在一起讀,講的其實是同一件事的三種寫法:一條你以為守住的邊界,原來一路都留著沒人巡邏的縫。CVE-2026-22708 裡,開發者核准的是再平常不過的 git branch,允許清單、被核准的指令、檢查器三個環節都沒有失職——出事的是 exporttypesetdeclare 這幾個殼內建指令,它們不是磁碟上有檔名的程式,允許清單從一開始就沒把它們算進比對範圍,PAGER 被悄悄換掉那一步從未觸發任何核准提示。RFC 9234 設計的邏輯本來是把「這條路由能不能往上送」直接寫進協定,兩端只要各自做對,OTC 位元理論上就該原封不動一路跟著路由走——Cloudflare 攤開自己的全球 peering 資料才發現,兩家大型 Tier-1 網路會把 OTC 屬性從轉發的路由裡拿掉,位元在半路消失之後,這條路由再往下游走,看起來就跟完全沒被保護過一樣,下游即使自己完全支援 RFC 9234 也看不到這回事。Cloudflare Workers 那篇 Spectre 重現則是防守方自己的偵測系統踩了同一種陷阱:DyPrIs 假設攻擊會在一次 invocation 內做完、也假設分支誤預測的正規化分母不會被操縱——研究者靠 Durable Objects 的 WebSocket 心跳把 isolate 從 30 秒撐到 5 到 20 多個小時,同時讓自己的計時器長得像一個吃 I/O 的正常程式,兩個假設一次踩中,洩漏速率從 2021 年的 120 bit/h 推進到 12 bit/s、99% 準確率。

三個案例湊在一起最扎實的地方,不是誰失職,是三次都沒有人失職。Cursor 做了允許清單該做的事,BGP 協定兩端都照規格宣告了角色,Cloudflare 自己也部署了 DyPrIs 這套偵測系統——邊界失守的位置,不在任何一方明顯偷懶的地方,而在每個系統各自畫定的射程之外:允許清單只認磁碟上的程式名稱,不認殼內建指令;Tier-1 只負責轉發自己看得懂、自己在意的欄位,一個自己用不到的位元順手拿掉不算違規;DyPrIs 的正規化比值假設分母不會被攻擊者摸到。三個系統都在自己的射程內做對了事,縫隙留在射程之外。

沒被合稱的個別亮點

13 年,Cassandra 第一次做到跨分區 ACID 交易是這週最扎實的資料庫工程故事。Accord 共識協定讓 Cassandra 6 從 2013 年算起首度支援讀取後再寫入、跨 partition 的交易,作者實測 plain、BATCH、LWT、Accord 四種模式的行為差異,過程中還意外挖出一個被 Apple 工程師證實存在的併發隔離 bug——距離完美依然有距離,但「交易能力補齊」這件事第一次真的發生。

兩千個 shard 的修復,變成一道最短路徑問題把 Stripe 過去逐案手寫規則 plugin 的維運方式,重構成圖搜尋加狀態機:shard 狀態是節點、維運操作是帶權重的邊,從 BFS 換成 Dijkstra 之後,連「找不到完全健康的路徑」都能退而求其次選出最不健康的次優解。換來的是 pager 量下降三成、shard 卡在不健康狀態的時間一年少 12 天。

同一支 PR,LinkedIn 派好幾組互不知情的 AI 分頭審靠的不是單一模型的判斷,而是重疊訊號:兩組以上獨立模型抓到同一段程式碼,直接算高信心;只有一組抓到,不會被丟掉,而是回頭再驗證一次。分層規則框架搭配這套重疊機制,讓自動建議能在幾分鐘內帶著較高可信度送到人類手上。

PR 堆到五千多個,React 只有 441 個是這週最直白的維運警訊。Bun 從 Zig 改寫成 Rust,GitHub repo 堆積的未合併 PR 破五千、距離上一次穩定版已經三個月沒有動靜,過去一個月自動化 agent 的 commit 量是人類負責人的二十倍。評估要不要把重寫中的專案導入正式環境,PR 合併速度與核心維護者的實際 commit 占比,比新語言選得對不對更早該檢查。

同樣做 Rust LSP,記憶體差了 100 倍裡,作者兩個顯示器各開一份 rust-analyzer,加起來吃掉 16GB 記憶體;Rust Glancer 把索引凍結卸到磁碟、打字只做淺層分析,目標是把常駐記憶體壓到 100MB 以下,代價是新符號要存檔後才可見。作者自己的判斷是,多數在意重構準確度的專案,rust-analyzer 依然是預設答案,只有記憶體真的吃緊時才值得換。

本週動向

把這週(08/18–08/24,四天)跟上週(08/11–08/17,三天)放在一起量,五個 domain 沒有一個碰到慣常拿來說故事的 10 pp 門檻——這週最大的單一位移只有 ai 的 −3.9 pp(23.1% 退到 19.2%),infra 完全不動,還是兩週都最高的 23.1%;systems、web、backend 三個 domain 的位移完全相同,都是 +1.3 pp(17.9% 漲到 19.2%),這是稀釋效應,不是三個題材同時變熱。

位移不夠看,標籤動向更值得記。rust 這個標籤從上週的 1 篇跳到這週的 6 篇,是本週唯一構成 surge 的標籤(至少 +2 且本週至少 3 次)——arrayref 供應鏈後門、wasm 編譯慢 40 倍、Rust Glancer 記憶體、rust-analyzer 換下一代 trait solver,四篇分別從不同角度扛住這個數字。新進榜(至少 2 次)的還有 bun(3 次)、agent-security(2 次)、cassandra(2 次)、code-review(2 次)、database-ops(2 次)、webassembly(2 次),沒有任何標籤退出 7 天視窗——faded 清單是空的。

domain 佔比:上週 → 本週 08/11–08/17 共 39 則 → 08/18–08/24 共 52 則 空心點上週、箭頭本週;三天對四天,只比佔比 ai −3.9 pp 23.1% → 19.2% systems・web・backend +1.3 pp(各自) 17.9% → 19.2% infra 0 pp 23.1% → 23.1% 不動・兩週都最高 0% 10% 20%
依 |delta_pp| 由大到小排。空心點是上週佔比、箭頭落點是本週。ai 那條是本週唯一位移感覺得到的 domain;systems、web、backend 三個 domain 的漲幅完全相同,是稀釋效應而非三個題材同時變熱;infra 兩週都停在 23.1%,是這週最厚的 domain。

一週的形狀

四天出刊、十二篇 deep story,archetype 這頭 investigation 與 technical-deep-dive 並列最厚,各 4 篇;narrative 2 篇;comparison 與 freeform 各 1 篇。這個形狀跟這週的主軸是同一件事的兩種讀法——investigation 拆的是「為什麼一個看起來守住的邊界最後沒守住」(CVE-2026-22708、BGP OTC、Bun 的 PR backlog 裡到底是誰在拖),technical-deep-dive 拆的是機制本身怎麼運作(Cassandra Accord、LinkedIn 多 agent 架構、Rust wasm 編譯瓶頸、Cloudflare Workers 側信道)——這週的題目多半需要先問「為什麼」或先拆「怎麼運作」,不太需要 narrative 那種「事情怎麼發生的」敘事節奏,也沒有一則的形狀是二選一,comparison 因此只有 Rust Glancer 那一篇。

domain 這頭 infra 最厚,4 篇;ai、systems、web、backend 各 2 篇,是相對均勻的一週。infra 領先跟本週動向那段的觀察一致——infra 是這兩週唯一維持 23.1% 不動的 domain,而這週貢獻它的四篇 deep story 橫跨 BGP 路由外洩、Cloudflare Workers 側信道、Cassandra 交易、e164.arpa 網域劫持,題材夠雜,才撐得住這個佔比。

deep archetype(本週 12 篇) investigation 4 technical 4 narrative 2 comparison 1 freeform 1 domain(本週 12 篇) infra 4 ai 2 systems 2 web 2 backend 2
上半是 archetype、下半是 domain。上半橘色兩條是 investigation 與 technical-deep-dive,並列最厚各 4 篇——這週多數題目要嘛拆「為什麼沒守住」、要嘛拆「機制怎麼運作」。下半橘色那條是 infra,本週最厚的 domain,兩週都停在 23.1% 沒動過。

12 篇 deep story × 4 天(08/20、08/21、08/22、08/23)

四天、十二篇 deep story,archetype 在前、domain 在尾。主軸那條線集中在 08/20、08/21、08/23:08/20 是 Spectre 側信道躲過偵測,08/21 是 BGP 保護鏈半路斷掉,08/23 是允許清單看不見殼內建指令——三次都是各自的系統做對了份內的事,縫留在射程之外。

這週的落點——三個案例湊在一起最扎實的地方不是誰失職,是三次都沒有人失職:Cursor 做了允許清單該做的事,BGP 協定兩端都照規格宣告了角色,Cloudflare 自己也部署了 DyPrIs。邊界失守的位置從來不在任何一方明顯偷懶之處,而在每個系統各自畫定的射程之外——允許清單只認磁碟上的程式名稱,Tier-1 只負責轉發自己在意的欄位,正規化比值假設分母不會被攻擊者摸到。稽核一條邊界,問的不該只是「這裡有沒有規則」,還要問一句:規則比對的範圍,到底畫在哪裡結束。