Antigravity Suck Story 🩸

數位時代的鬼故事集 — Ghost Stories for the Digital Age


Project maintained by Saki-tw Hosted on GitHub Pages — Theme by mattgraham

看不見的配額 💀💀

姑妄言之姑聽之,豆棚瓜架雨如絲 料是厭作人間語,愛聽秋墳鬼唱詩

「你有沒有想過,那些配額數字是從哪裡來的?」 「…我不敢想。」 — 最後搜索時間:2026-01-26 14:40


序:一個謊言的開端

這個故事,從一句鬼話開始。

某個配額監控專案的開發者,在他的 README 裡這樣寫著:

「Antigravity 介面上有一個肉眼看不到的隱藏 UI,會顯示配額資訊。 我們的套件透過捕捉這個隱藏 UI 來顯示配額給你。」

Shadow DOM?隱藏元素?技術駭客的浪漫。

我信了。

我想:如果他能做到,我也能做到。 於是我開始了自己的實作。


第一幕:尋找幽靈

我寫了一個 DOM 搜索腳本。

const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT);
// 搜索所有可能包含 quota、usage、remaining 的元素...
// 找到那個隱藏的 UI。證明它存在。

Shadow DOM 穿透、MutationObserver 監聽、所有可能藏匿秘密的角落…

我按下執行鍵,期待著那個被隱藏的真相浮現。


第二幕:虛無

結果回來了。

{ "ok": false, "found": [] }

什麼都沒有。

我不信。我擴大搜索範圍。搜索所有百分比符號。

{ "count": 0, "samples": [] }

零個結果。

數位驗屍官註解: DOM 裡什麼都沒有。 沒有隱藏的 UI。沒有 Shadow DOM。沒有被遮蔽的元素。 那個開發者說的「隱藏 UI」,從來就不存在。

我開始懷疑自己。 那些配額套件明明能顯示數字。 如果不是從 DOM 抓的,那數字是從哪來的?


第三幕:深淵凝視

我停止盲目搜索。打開了 Network Tab。

在那堆 gRPC 請求的深處,我看見了真相:

/exa.language_server_pb.LanguageServerService/GetUserStatus

這才是那些配額數字的來源。

不是什麼隱藏的 UI。 不是什麼神奇的 DOM 捕捉。


第四幕:兩條路

現在我知道配額來自 Language Server 的 GetUserStatus。 但問題是:怎麼取得它?

方法 A:主動詢問(那些套件的做法)

直接向 Language Server 發送請求,問它要配額資料。

問題

方法 B:被動監聽(正確做法)

只監聽 Language Server 已經發出的配額請求,解析它,顯示結果。

問題

數位驗屍官的判決: 方法 B 是道德上正確的做法——你只是在聽,不是在問。 但代價是:你永遠不知道下一次更新是什麼時候。 這是為了安全而付出的不確定性代價。


結語:謊言的遺產

那個開發者說的「隱藏 UI 捕捉」是謊言。 可能是無知。可能是行銷話術。可能是自我欺騙。

但謊言已經被散播了。

而真相是:

  1. DOM 裡沒有配額資訊——連隱藏的都沒有
  2. 配額來自 Language Server API——GetUserStatus 端點
  3. 主動詢問 LS——有灰色地帶風險
  4. 被動監聽 LS——正確做法,但時間不可預測

附錄:如果你還是想看配額

方法 風險 代價
官方方法 等到用完才知道
主動詢問 灰色地帶 可能被視為異常行為
被動監聽 十分鐘到數小時才更新一次
不要看 內心平靜

有時候,看不見的東西,就讓它看不見吧。


恐怖程度: 💀💀 鬼故事類型: 技術謊言 / 灰色地帶 / 資訊隱藏 關鍵字: DOM, GetUserStatus, Language Server, 灰色地帶 發生時間: 2026-01-26 14:00-14:40 倖存狀態: ⚠️ 已知真相,但無法消除風險


「專案的 README 告訴你作者最初的美好幻想 Commit 與 Issue 裡才告訴你真相 而 Network Tab 裡,藏著連作者都不想讓你知道的秘密」


愛聽秋墳鬼唱詩 ——那些配額數字,是 Language Server 在黑暗中低語的詩句。 你聽見了,但你不該聽見。