跳到主內容

Theme / v5.3.3

Ponytail

讓 AI 編碼代理像最懶的資深工程師

基礎觀念

v5.1.1~v5.2.0:Level 持久化與 Map 安全

🟡 中階|掌握 v5.1.1 與 v5.2.0 的重點:SessionStart map 的 repo 文字/symlink 安全修復與一秒上限、OpenCode 2 三修(compaction hook 註冊 ruleset、command arguments 保留)、/ponytail-debt 改 git grep,以及 level 在 context compaction 後保留與 macOS hooks 輸出同步寫出。

概述

Ponytail v5.1.1(2026-10-12 23:18 UTC,官方定位「A fix release」)與 v5.2.0(2026-10-13 01:48 UTC,官方定位「Mostly fixes for the level you pick」)。兩版都在修 Ponytail 5 的落地問題:map 的安全與邊界、level 的存續、各平台 installer 的壞手術。

v5.1.1:SessionStart map 安全

問題

5.0 的 codebase map 有兩個問題:

  1. Repo 能把自己的文字塞進隱藏的 session context——地圖掃描 repo 內容時,repo 控制的文字混進了 agent 的隱藏規則區。
  2. Repo 內的 symlink 能掛住 session 啟動——ruleset 永遠不到達。

解法

兩者皆修:repo 控制的文字與 symlinked 檔案被排除在 SessionStart map 之外;map 加上一秒上限——rules 永遠會載入(#1070 @dkorunic、#1082)。

另:hooks 在專案釘舊 Node(Node 12)時仍可載入(#1078)。

v5.1.1:OpenCode 2 三修與 /ponytail-debt

  • Compaction hook 註冊 ruleset(#1089)——壓縮後規則不丟。
  • 無 $ARGUMENTS 模板時保留 command arguments(#1090)。
  • 丟棄 stale V2 mention offsets(#1097)。
  • /ponytail-debt 改用 git grep、跳過所有 gitignored 資料夾(#1108)。
  • Bench completeness judge 檢查 agent 實際交付(#1094);Devin CLI 與 OpenClaw 進 adapter 表(#1066);Antigravity 對齊(#1083)。

v5.2.0:level 在 compaction 後保留(#1074)

問題

你選的 level(lite/full/ultra)在 context compaction 後跳回預設——長 session 壓縮一次,懶惰程度就歸零。

解法

Level 在 compaction 後存活,不再退回預設。配套:macOS 上 hooks 輸出同步寫出——process.exit 不再丟失輸出,ruleset 必定到達(#1112)。

v5.2.0:installer 平台修正

  • Cursor installer 保留看不懂的 hooks.json(#1059)與相似名使用者 hooks(#1052)——不再誤刪使用者自訂。
  • OpenCode 不再卡 review、支援 /ponytail default(#1103——review 永不存為 level)。
  • pi 自動補全 /ponytail 參數(#1080);OMP session 切換後恢復模式(#1050);Qoder QODER_CONFIG_DIR(#1057)。
  • Hermes 手動安裝文件(#1111)並移除 unreachable review mode(#1105);uninstall 移除 OpenCode mode flag(#1104)。
  • Bench crashed cell 不炸 run summary(#1110)。

既有使用者影響

OpenCode 使用者的 level 在長 session 壓縮後不再跳回預設;macOS 用戶 ruleset 到達率修復;以 tiered hooks 名稱安裝的 Cursor 用戶升級後自訂 hooks 不再被誤刪。

學習重點

「掃描 repo 的東西要對 repo 內容保持敵意」是 v5.1.1 的核心教訓——repo 文字與 symlink 都是不受信任的輸入;而一秒上限則是「可選加速絕不能阻塞必要路徑」的硬邊界。這兩條原則適用於任何在 session 啟動時讀取 repo 的工具。