# ponytail changelog > ponytail release notes. - Vendor: ponytail - Category: AI - License: MIT - Language: JavaScript - Official site: https://ponytail.dev/ - Tracked by: What's New (https://whatsnew.fyi/product/ponytail) - Harvested from: GitHub (DietrichGebert/ponytail) - Entries below: 22 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: release facts (products, versions, dates, links, CVE ids and flags) are open data under CC BY 4.0, from the API at https://whatsnew.fyi/api/v1 or the nightly dataset at https://github.com/whatsnew-fyi/dataset. The summaries, labels and curation are © What's New: quote freely with attribution and a link back; wholesale republication of them is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## Releases ### v5.2.0 - Date: 2026-10-13 - Version: v5.2.0 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v5.2.0 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v5.2.0 - **fixed** — The ponytail level now survives context compaction instead of falling back to the default level - **fixed** — On macOS, hook output is written synchronously so it cannot be dropped when the process exits, ensuring the ruleset always arrives - **fixed** — Benchmark run summary no longer crashes when a cell has crashed - **added** — Hermes installation is documented as manual until Hermes fixes its plugin.json check - **added** — The pi extension autocompletes arguments for the /ponytail command - **fixed** — The Cursor installer preserves invalid hooks.json configurations instead of overwriting them - **fixed** — The Cursor installer preserves user hooks with similar names instead of removing them - **fixed** — Qoder honors the QODER_CONFIG_DIR environment variable when storing mode state - **fixed** — OpenCode no longer saves review as a level and no longer gets stuck in review mode - **added** — OpenCode supports the /ponytail default command - **fixed** — The pi session restores its mode after OMP session switches - **fixed** — OMP starts new sessions at the default level - **removed** — The unreachable review mode has been dropped from Hermes - **fixed** — Uninstall removes the OpenCode mode flag - **fixed** — The statusline copy path is compared JSON-escaped in the hooks tests Mostly fixes for the level you pick. It now survives context compaction instead of falling back to the default, and on macOS the hooks can no longer lose their output, so the ruleset always arrives. Also in here: the Cursor installer leaves hooks.json files it doesn't understand alone and no longer removes your own hooks with a similar name, OpenCode doesn't get stuck in review anymore and supports `/ponytail default`, pi completes `/ponytail` arguments, and OMP starts new sessions at the default level. Thanks to everyone who sent fixes! ##### What's Changed * fix(bench): a crashed cell no longer crashes the run summary by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1110 * docs: manual Hermes install until Hermes fixes its plugin.json check by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1111 * feat(pi-extension): autocomplete /ponytail arguments by @ruttybob in https://github.com/DietrichGebert/ponytail/pull/1080 * fix(hooks): write hook output synchronously so process.exit cannot drop it by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1112 * fix: preserve invalid Cursor hook configurations during install by @ac1982 in https://github.com/DietrichGebert/ponytail/pull/1059 * fix(cursor-hooks): preserve similarly named user hooks by @LurigeLars in https://github.com/DietrichGebert/ponytail/pull/1052 * fix(qoder): honor QODER_CONFIG_DIR for mode state by @Vaishnavi220506 in https://github.com/DietrichGebert/ponytail/pull/1057 * fix: keep the live ponytail level across context compaction by @devohmycode in https://github.com/DietrichGebert/ponytail/pull/1074 * fix(opencode): never save review as a level, support /ponytail default by @manuvarghese456-collab in https://github.com/DietrichGebert/ponytail/pull/1103 * fix(pi): restore the session's mode after OMP session switches by @andrebrait in https://github.com/DietrichGebert/ponytail/pull/1050 * chore(hermes): drop the unreachable review mode by @manuvarghese456-collab in https://github.com/DietrichGebert/ponytail/pull/1105 * fix(uninstall): remove the OpenCode mode flag by @manuvarghese456-collab in https://github.com/DietrichGebert/ponytail/pull/1104 * test: compare the statusline copy path JSON-escaped in hooks.test.js by @Bettinho179 in https://github.com/DietrichGebert/ponytail/pull/1046 * chore: release v5.2.0 by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1113 ##### New Contributors * @ruttybob made their first contribution in https://github.com/DietrichGebert/ponytail/pull/1080 * @ac1982 made their first contribution in https://github.com/DietrichGebert/ponytail/pull/1059 * @LurigeLars made their first contribution in https://github.com/DietrichGebert/ponytail/pull/1052 * @devohmycode made their first contribution in https://github.com/DietrichGebert/ponytail/pull/1074 * @manuvarghese456-collab made their first contribution in https://github.com/DietrichGebert/ponytail/pull/1103 * @andrebrait made their first contribution in https://github.com/DietrichGebert/ponytail/pull/1050 * @Bettinho179 made their first contribution in https://github.com/DietrichGebert/ponytail/pull/1046 **Full Changelog**: https://github.com/DietrichGebert/ponytail/compare/v5.1.1...v5.2.0 ### v5.1.1 - Date: 2026-10-12 - Version: v5.1.1 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v5.1.1 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v5.1.1 - **fixed** — Repo-controlled text and symlinked files are kept out of the SessionStart codebase map so a repository cannot inject text into the hidden session context - **fixed** — The SessionStart codebase map is bounded to a one-second limit so a symlink in the repo can no longer hang session start before the ruleset loads - **fixed** — Hook launchers remain loadable when a project pins an old Node version, including Node 12 - **fixed** — The OpenCode compaction hook registers the ruleset - **fixed** — OpenCode command arguments are kept when the command template has no $ARGUMENTS placeholder - **fixed** — Stale OpenCode V2 command mention offsets are dropped so mention highlights are correct - **fixed** — The /ponytail-debt command scans with git grep so every folder listed in .gitignore is skipped - **fixed** — The completeness judge in the benchmark checks what the agent actually delivered - **added** — Devin CLI and OpenClaw are listed in the adapter table in the README - **changed** — The Antigravity CLI plugin support is aligned in the documentation - **changed** — The README links the bounty program and asks for Ponytail stories instead of bounties, with a stories banner added A fix release. The big one is the codebase map from 5.0: a repo could slip its own text into the hidden session context, and a symlink in the repo could hang the session start until the ruleset never arrived. Both are fixed, and the map now has a one-second limit, so the rules always load. Also in here: hooks work again when a project pins an old Node, three fixes for OpenCode 2 (compaction cache, command arguments, mention highlights), and `/ponytail-debt` now skips everything in `.gitignore`. Thanks to everyone who sent reports and fixes this week. ##### What's Changed * fix(bench): completeness judge checks what the agent actually delivered by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1094 * docs: link the bounty program in the README by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1093 * docs: README asks for Ponytail stories instead of bounties by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1095 * docs: stories banner in the README by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1096 * fix(hooks): keep hook launchers loadable on Node 12 (#1072) by @paul-vd in https://github.com/DietrichGebert/ponytail/pull/1078 * fix(map): keep repo-controlled text and symlinked files out of the SessionStart map by @dkorunic in https://github.com/DietrichGebert/ponytail/pull/1070 * test(map): skip the hostile folder name where the OS forbids it by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1107 * fix(hooks): bound optional SessionStart mapping by @flitzrrr in https://github.com/DietrichGebert/ponytail/pull/1082 * fix(opencode): register the ruleset on the compaction hook (#1086) by @sergiopadure in https://github.com/DietrichGebert/ponytail/pull/1089 * fix(opencode): keep command arguments when the template has no $ARGUMENTS (#1087) by @sergiopadure in https://github.com/DietrichGebert/ponytail/pull/1090 * fix(opencode): drop stale V2 command mention offsets by @kaya0s in https://github.com/DietrichGebert/ponytail/pull/1097 * fix(debt): scan with git grep so every gitignored folder is skipped by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1108 * docs: add Devin CLI and OpenClaw to adapter table by @Boulea7 in https://github.com/DietrichGebert/ponytail/pull/1066 * docs: align Antigravity CLI plugin support by @flitzrrr in https://github.com/DietrichGebert/ponytail/pull/1083 * chore: release v5.1.1 by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1109 ##### New Contributors * @paul-vd made their first contribution in https://github.com/DietrichGebert/ponytail/pull/1078 * @dkorunic made their first contribution in https://github.com/DietrichGebert/ponytail/pull/1070 * @flitzrrr made their first contribution in https://github.com/DietrichGebert/ponytail/pull/1082 * @sergiopadure made their first contribution in https://github.com/DietrichGebert/ponytail/pull/1089 * @kaya0s made their first contribution in https://github.com/DietrichGebert/ponytail/pull/1097 * @Boulea7 made their first contribution in https://github.com/DietrichGebert/ponytail/pull/1066 **Full Changelog**: https://github.com/DietrichGebert/ponytail/compare/v5.1.0...v5.1.1 ### v5.1.0 - Date: 2026-10-08 - Version: v5.1.0 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v5.1.0 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v5.1.0 - **changed** — Deliberate shortcuts are now marked with a neutral comment in the form `shortcut: , ` instead of the ponytail: brand in code comments - **changed** — The /ponytail-debt command still finds the old ponytail: markers so existing ledger entries are not lost - **added** — Users can set a custom marker word or disable the marker word entirely by saying so in the project's CLAUDE.md or AGENTS.md and running /ponytail-debt with the chosen word Ponytail no longer writes its name into your code. Deliberate shortcuts are now marked with a neutral comment, `shortcut: , `, and `/ponytail-debt` still finds the old `ponytail:` ones, so nothing in your ledger gets lost. Want another word, or none at all? Say so in your project's CLAUDE.md or AGENTS.md and run `/ponytail-debt `. Measured against 5.0.0 before shipping: same number of markers, same pass rate, same cost. ##### What's Changed * feat: neutral shortcut: marker instead of the ponytail: brand in code comments by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1068 * chore: release v5.1.0 by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1069 **Full Changelog**: https://github.com/DietrichGebert/ponytail/compare/v5.0.0...v5.1.0 ### v5.0.0 — v5.0.0: Ponytail 5 - Date: 2026-10-08 - Version: v5.0.0 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v5.0.0 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v5.0.0 - **changed** — Rewrite rules to be approximately half as long with mapping of all code locations a change must reach before writing - **changed** — Add codebase map at session start so the agent reuses existing code before writing new code - **changed** — Rebuild /ponytail-review as a full review covering bugs, security, load testing, missing tests, speed, and code removal with detailed findings - **changed** — Rebuild /ponytail-audit to run the same checks across the whole repository ranked by priority - **removed** — Remove unused ballast found in the repo inventory Ponytail 5 is rebuilt from the ground up: new rules, a new review, a new audit. - **Rules:** rewritten and about half as long. The goal is the smallest complete change: before it writes, the agent maps everything the change must reach (callers, tests, config) and what it could break. Every reply ends with what it skipped or did not check, and any risk. - **Codebase map:** at session start the agent gets a short map of what already exists in the repo, so it reuses before it writes. - **`/ponytail-review`:** rebuilt as a full review: bugs, security, real load, missing tests, speed, and what to cut. It reads the code the change touches, not just the diff. Each finding says what the code does, what goes wrong, how to fix it, and what happens if you skip it. - **`/ponytail-audit`:** the same checks for the whole repo, ranked, with what to fix first. Against the same agent without the skill (Claude Code, Opus 5.5, 39 tasks including a real FastAPI + React repo, 5 runs each): -53% code, -41% time, -26% cost, -45% output tokens, and 98% of risky logic ships with a test (without: 68%). Method and limits: [benchmarks/results/2026-10-07-agentic.md](https://github.com/DietrichGebert/ponytail/blob/main/benchmarks/results/2026-10-07-agentic.md). ##### What's Changed * chore: remove unused ballast found in the repo inventory by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1042 * chore: move translations, CONTRIBUTING and .env.example out of the repo root by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1044 * feat: Ponytail 5, rebuilt rules, review and audit by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1061 * chore: release v5.0.0 by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1062 **Full Changelog**: https://github.com/DietrichGebert/ponytail/compare/v4.13.0...v5.0.0 ### v4.13.0 - Date: 2026-10-05 - Version: v4.13.0 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v4.13.0 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v4.13.0 - **fixed** — preserve mode on invalid arguments - **fixed** — don't emit a second JSON object on Qoder report-only mode - **fixed** — persist off mode across prompts - **fixed** — silence off-mode SessionStart - **fixed** — normalize default-mode parsing - **fixed** — fix Codex Ponytail mode instructions - **changed** — use the namespaced $ponytail: form for Codex - **fixed** — avoid deleting similarly named statuslines - **fixed** — remove statusline nudge flag on uninstall - **fixed** — remove the mode flag from every host state directory on uninstall - **fixed** — expand the skill aliases and forward their arguments - **fixed** — clear disabled footer status in pi-extension - **fixed** — restore branch mode after /tree navigation - **fixed** — resolve silent deactivation, probe timeout, and stdin swallowing - **fixed** — expand ${QODER_PLUGIN_ROOT} in plugin hook commands - **fixed** — reject review as a default mode in Hermes - **fixed** — honor default-mode config with a UTF-8 BOM in Hermes - **fixed** — identify Node built-in imports - **fixed** — prevent project mode state collisions - **fixed** — point the statusline badge at a copy that survives plugin updates - **fixed** — make Ponytail discoverable through the Grok marketplace - **removed** — drop ZCode from the supported hosts - **added** — add Kimi Code plugin adapter - **added** — translate README into Spanish, Korean, Simplified Chinese and Japanese This release is mostly about ponytail staying at the level you set. Switching levels on Codex now delivers the new level's rules, each project keeps its own mode, off really means off, and the statusline badge survives plugin updates. Kimi Code joins as a new host, the README now also comes in Spanish, Korean, Simplified Chinese and Japanese, and ZCode support is dropped. ##### What's Changed * fix(hooks): preserve mode on invalid arguments by @l2yujw in https://github.com/DietrichGebert/ponytail/pull/677 * fix(hooks): don't emit a second JSON object on Qoder report-only /pon… by @adiraj66132 in https://github.com/DietrichGebert/ponytail/pull/617 * fix(qoder): persist off mode across prompts by @l2yujw in https://github.com/DietrichGebert/ponytail/pull/676 * fix(hooks): silence off-mode SessionStart by @connerohnesorge in https://github.com/DietrichGebert/ponytail/pull/687 * Normalize default-mode parsing and add regression test by @thb-hash in https://github.com/DietrichGebert/ponytail/pull/716 * Fix Codex Ponytail mode instructions by @nainbaloch in https://github.com/DietrichGebert/ponytail/pull/932 * docs: use the namespaced $ponytail: form for Codex by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1035 * fix: avoid deleting similarly named statuslines by @Yananix in https://github.com/DietrichGebert/ponytail/pull/848 * fix(uninstall): remove statusline nudge flag by @l2yujw in https://github.com/DietrichGebert/ponytail/pull/680 * fix(uninstall): remove the mode flag from every host state dir by @Soumyadip2003-AI in https://github.com/DietrichGebert/ponytail/pull/788 * fix(pi): expand the skill aliases and forward their arguments by @FourWindff in https://github.com/DietrichGebert/ponytail/pull/942 * fix(pi-extension): clear disabled footer status by @ben-reitz in https://github.com/DietrichGebert/ponytail/pull/850 * fix(pi): restore branch mode after /tree navigation by @ghdtjdwn in https://github.com/DietrichGebert/ponytail/pull/828 * test(pi): expect the cleared status in the session_tree test by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1038 * docs: add Oh My Pi (omp) install and uninstall instructions by @Kabir-Sidhu in https://github.com/DietrichGebert/ponytail/pull/931 * fix: resolve silent deactivation, probe timeout, and stdin swallowing by @umran666 in https://github.com/DietrichGebert/ponytail/pull/636 * fix(qoder): expand ${QODER_PLUGIN_ROOT} in plugin hook commands by @lingbin in https://github.com/DietrichGebert/ponytail/pull/598 * fix(hermes): reject review as a default mode by @Iams4kura in https://github.com/DietrichGebert/ponytail/pull/700 * fix(hermes): honor default-mode config with a UTF-8 BOM by @kapelame in https://github.com/DietrichGebert/ponytail/pull/873 * test(hermes): isolate the Python helper from the developer's ponytail config by @TonyWu2333 in https://github.com/DietrichGebert/ponytail/pull/1025 * fix: identify Node built-in imports by @Zethu5 in https://github.com/DietrichGebert/ponytail/pull/775 * chore: drop unused assets and pi-extension tests from the npm package by @EckiTannenweg in https://github.com/DietrichGebert/ponytail/pull/939 * fix(hooks): prevent project mode state collisions by @Vaishnavi220506 in https://github.com/DietrichGebert/ponytail/pull/1037 * fix(statusline): point the badge at a copy that survives plugin updates by @phant0um in https://github.com/DietrichGebert/ponytail/pull/1033 * docs(install): document opencode plugin add for OpenCode 2 by @amnesiaof in https://github.com/DietrichGebert/ponytail/pull/1034 * docs: translate the current README into Spanish, Korean, Simplified Chinese and Japanese by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1039 * fix(grok): make Ponytail discoverable through its marketplace by @stbenjam in https://github.com/DietrichGebert/ponytail/pull/913 * [FIX-642]: docs: close dialog on delete in Radix modal example (#642) by @sudarshansaxena2409 in https://github _[Truncated at 4000 characters — full notes: https://github.com/DietrichGebert/ponytail/releases/tag/v4.13.0]_ ### v4.12.0 - Date: 2026-10-05 - Version: v4.12.0 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v4.12.0 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v4.12.0 - **added** — Number review and audit findings so they can be referenced by number - **added** — CodeBuddy support via the existing Claude plugin - **added** — Goose adapter docs and schema guard - **added** — Qwen Code support documentation - **added** — Muse Code CLI support documentation - **changed** — Move per-agent install steps from README to INSTALL.md - **changed** — /ponytail-gain now shows agentic benchmark averages instead of old single-shot baseline numbers - **fixed** — Show the real error from correctness checks in benchmarks - **fixed** — Skip /bin/sh hook checks where /bin/sh does not exist Review and audit findings are numbered now, so you can answer "fix 2 and 4" instead of quoting lines back. CodeBuddy runs ponytail through the existing Claude plugin, and `/ponytail-gain` shows the honest agentic benchmark averages (54% less code, 22% fewer tokens, 20% lower cost, 27% faster, safety kept) instead of the old single-shot numbers a chatty baseline inflated. The README got slimmer too: every per-agent install step now lives in INSTALL.md. ##### What's Changed * docs: add Qwen Code support by @Dattuog in https://github.com/DietrichGebert/ponytail/pull/888 * feat: CodeBuddy support via the existing Claude plugin (#854) by @ShantanuTaro in https://github.com/DietrichGebert/ponytail/pull/891 * feat: add Goose adapter docs and schema guard (#880) by @nolanchic in https://github.com/DietrichGebert/ponytail/pull/882 * docs: add Muse Code CLI support by @dangtrungan in https://github.com/DietrichGebert/ponytail/pull/950 * docs: note that /ponytail-review takes a target in plain words by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1023 * feat: number review and audit findings (#327) by @yashrao2607 in https://github.com/DietrichGebert/ponytail/pull/523 * docs: new skills come from the maintainer, ideas go in an issue by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1024 * docs: slim the README, move per-agent install steps to INSTALL.md by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1026 * docs: name the only official install sources in the README by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1027 * test: skip the /bin/sh hook checks where there is no /bin/sh by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1028 * fix(gain): show the agentic benchmark averages, not the old single-shot medians by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1029 * fix(bench): report the real error from correctness checks by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1030 * chore: release v4.12.0 by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1031 ##### New Contributors * @Dattuog made their first contribution in https://github.com/DietrichGebert/ponytail/pull/888 **Full Changelog**: https://github.com/DietrichGebert/ponytail/compare/v4.11.0...v4.12.0 ### v4.11.0 - Date: 2026-10-04 - Version: v4.11.0 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v4.11.0 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v4.11.0 - **fixed** — Remove Agent Plugins $schema from root plugin.json so Codex, VS Code and Qwen load ponytail with full hooks and rules instead of skills-only mode - **fixed** — Catch /* ponytail: */ block comments and skip .git, node_modules, dist, build in the debt scan - **fixed** — Require a whole-tree caller check before delete in audit - **added** — Add reuse tag to ponytail-review and ponytail-audit - **fixed** — Drop duplicate reuse tag line in review and audit - **fixed** — Avoid repeated context injection in Hermes by sending the ruleset once instead of every turn - **added** — Add Command Code support - **added** — Add Kilo Code VS Code extension support - **added** — Document ZCode support - **added** — Document Cline CLI native skill installation and discovery - **added** — Add Freebuff CLI support which reads AGENTS.md and .agents/skills - **added** — Add DeepSeek Harness which reads AGENTS.md and SKILL.md - **added** — Document Factory Droid agent with native AGENTS.md and SKILL.md reader - **fixed** — Fix Codex skill invocation syntax in documentation - **fixed** — Keep PONYTAIL_PLUGIN_DIR after the selftest and keep AGENTS.md out of agentic cells in benchmarks If you use ponytail in Codex, update. Since v4.10.2 a one-line change in the root `plugin.json` made Codex, VS Code and Qwen load ponytail as a skills-only Agent Plugin, so the hooks never registered and the rules never reached the model. This release takes that line out and they get the full ponytail again. On top of that, Hermes sends the ruleset once instead of every turn, review and audit learn a `reuse` tag, and seven more agents get documented setups. ##### What's Changed * docs: fix Codex skill invocation syntax by @dangtrungan in https://github.com/DietrichGebert/ponytail/pull/951 * fix(debt): catch /* ponytail: */ block comments and skip .git, node_modules, dist, build in the scan by @DEOWL-kan in https://github.com/DietrichGebert/ponytail/pull/815 * fix(audit): require a whole-tree caller check before delete: (#679) by @szsunyuan in https://github.com/DietrichGebert/ponytail/pull/714 * feat: add reuse tag to ponytail-review and ponytail-audit (#868) by @nolanchic in https://github.com/DietrichGebert/ponytail/pull/881 * fix(skills): drop the duplicate reuse tag line in review and audit by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/984 * fix(hermes): avoid repeated context injection by @Ye1806431561 in https://github.com/DietrichGebert/ponytail/pull/787 * docs: add CONTRIBUTING.md with the benchmark gate for ruleset changes by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/986 * fix(benchmarks): keep PONYTAIL_PLUGIN_DIR after the selftest and keep AGENTS.md out of agentic cells by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/985 * docs: add Factory Droid (native AGENTS.md and SKILL.md reader) by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/987 * feat: add Command Code support (#244) by @dhedhialy in https://github.com/DietrichGebert/ponytail/pull/547 * feat(adapters): add Kilo Code VS Code extension support by @ousamabenyounes in https://github.com/DietrichGebert/ponytail/pull/306 * docs: document ZCode support by @ousamabenyounes in https://github.com/DietrichGebert/ponytail/pull/551 * docs: 补充 Cline CLI 原生技能安装与发现说明 by @kaluli123123 in https://github.com/DietrichGebert/ponytail/pull/842 * docs: add Freebuff CLI (reads AGENTS.md and .agents/skills) (#727) by @szsunyuan in https://github.com/DietrichGebert/ponytail/pull/1017 * docs: add DeepSeek Harness (native AGENTS.md and SKILL.md reader) by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1020 * fix: drop the Agent Plugins $schema from root plugin.json, it switches Codex, VS Code and Qwen to a hook-less mode by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1021 * chore: release v4.11.0 by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/1022 ##### New Contributors * @DEOWL-kan made their first contribution in https://github.com/DietrichGebert/ponytail/pull/815 * @nolanchic made their first contribution in https://github.com/DietrichGebert/ponytail/pull/881 * @Ye1806431561 made their first contribution in https://github.com/DietrichGebert/ponytail/pull/787 * @kaluli123123 made their first contribution in https://github.com/DietrichGebert/ponytail/pull/842 **Full Changelog**: https://github.com/DietrichGebert/ponytail/compare/v4.10.3...v4.11.0 ### v4.10.3 - Date: 2026-10-03 - Version: v4.10.3 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v4.10.3 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v4.10.3 - **fixed** — Keep the live mode per project so concurrent sessions stop overwriting each other - **fixed** — Bare /ponytail switches ponytail on, or reports the level when it already is - **fixed** — Emit hookSpecificOutput JSON on ZCode so rules reach the model - **fixed** — Drop SessionStart systemMessage that renders as a yellow warning in Codex - **fixed** — Do not persist review from /ponytail-review - **fixed** — Read ponytail MCP package version Several sessions, one machine, no more fighting. The ponytail mode is now kept per project, so a session in one repo no longer switches or clears the mode of a session in another. A bare `/ponytail` behaves the same everywhere (off switches on, on just reports the level), ZCode finally gets the ruleset, and Codex stops showing a yellow warning at every start. ##### What's Changed * fix(hooks): do not persist review from /ponytail-review (#736) by @szsunyuan in https://github.com/DietrichGebert/ponytail/pull/750 * fix(hooks): keep the live mode per project so concurrent sessions stop overwriting each other by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/981 * fix(codex): drop SessionStart systemMessage that renders as a yellow warning (#605) by @spde in https://github.com/DietrichGebert/ponytail/pull/606 * fix: emit hookSpecificOutput JSON on ZCode so rules reach the model by @Arteiimis in https://github.com/DietrichGebert/ponytail/pull/799 * fix: read ponytail MCP package version by @ousamabenyounes in https://github.com/DietrichGebert/ponytail/pull/587 * fix: bare /ponytail switches ponytail on, or reports the level when it already is by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/982 * chore: release v4.10.3 by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/983 ##### New Contributors * @szsunyuan made their first contribution in https://github.com/DietrichGebert/ponytail/pull/750 * @spde made their first contribution in https://github.com/DietrichGebert/ponytail/pull/606 * @Arteiimis made their first contribution in https://github.com/DietrichGebert/ponytail/pull/799 **Full Changelog**: https://github.com/DietrichGebert/ponytail/compare/v4.10.2...v4.10.3 ### v4.10.2 - Date: 2026-10-03 - Version: v4.10.2 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v4.10.2 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v4.10.2 - **security** — Harden OIDC publishing dependencies and add test gate for npm publishing - **fixed** — Stop interpolating plugin root into lifecycle hook shell text - **fixed** — Time-box PONYTAIL_SUBAGENT_MATCHER so a backtracking regex cannot hang SubagentStart - **fixed** — Normalize a backslashed plugin root before loading hook scripts - **fixed** — Reference the stdin fallback timer so it actually fires - **fixed** — Exit 0 without node in Copilot CLI hooks - **fixed** — Inject via systemPromptOptions.sections to preserve Pi prompt cache - **fixed** — Keep before_agent_start systemPrompt as array for OMP - **fixed** — Require a quoted value for Hermes mode-filter examples - **changed** — Declare agent-plugins.org 1.0.0 manifest in root plugin.json A security and reliability release. The lifecycle hooks no longer splice the plugin path into shell text, a slow subagent matcher can no longer hang a session, and npm publishing now waits for green tests. On top of that, Windows and WSL hooks stop hanging and find their scripts again, Pi keeps its prompt cache, OMP keeps its prompt parts, and Hermes installs work again. Thanks to the eleven first-time contributors in this one. ##### What's Changed * fix: harden OIDC publishing dependencies and test gate by @Inference1 in https://github.com/DietrichGebert/ponytail/pull/831 * fix(pi): inject via systemPromptOptions.sections to preserve prompt cache by @HoneyTyagii in https://github.com/DietrichGebert/ponytail/pull/963 * fix(pi): keep before_agent_start systemPrompt as array for OMP by @aniruddhaadak80 in https://github.com/DietrichGebert/ponytail/pull/780 * fix: reword benchmark doc lines that force DANGEROUS plugin-scan verdict by @harshil-darji in https://github.com/DietrichGebert/ponytail/pull/826 * chore: declare agent-plugins.org 1.0.0 manifest in root plugin.json by @shashikanth171 in https://github.com/DietrichGebert/ponytail/pull/744 * fix: require a quoted value for Hermes mode-filter examples by @cr-sbarbouche in https://github.com/DietrichGebert/ponytail/pull/875 * docs(benchmarks): clarify structural correctness checks by @dajiaohuang in https://github.com/DietrichGebert/ponytail/pull/961 * test(opencode): guard against re-exporting parseCommandFile (#631) by @nethmadtharuka in https://github.com/DietrichGebert/ponytail/pull/632 * fix(hooks): stop interpolating plugin root into lifecycle hook shell text by @STiFLeR7 in https://github.com/DietrichGebert/ponytail/pull/827 * fix(hooks): time-box PONYTAIL_SUBAGENT_MATCHER so a backtracking regex can't hang SubagentStart (#658) by @ShantanuTaro in https://github.com/DietrichGebert/ponytail/pull/890 * fix(hooks): exit 0 without node in Copilot CLI hooks, document the shared-hook limit by @ousamabenyounes in https://github.com/DietrichGebert/ponytail/pull/655 * fix(hooks): normalize a backslashed plugin root before loading hook scripts (#646) by @marikkan-microsoft in https://github.com/DietrichGebert/ponytail/pull/752 * fix(hooks): ref the stdin fallback timer so it actually fires by @HoneyTyagii in https://github.com/DietrichGebert/ponytail/pull/806 * chore: release v4.10.2 by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/979 ##### New Contributors * @Inference1 made their first contribution in https://github.com/DietrichGebert/ponytail/pull/831 * @HoneyTyagii made their first contribution in https://github.com/DietrichGebert/ponytail/pull/963 * @aniruddhaadak80 made their first contribution in https://github.com/DietrichGebert/ponytail/pull/780 * @harshil-darji made their first contribution in https://github.com/DietrichGebert/ponytail/pull/826 * @shashikanth171 made their first contribution in https://github.com/DietrichGebert/ponytail/pull/744 * @cr-sbarbouche made their first contribution in https://github.com/DietrichGebert/ponytail/pull/875 * @dajiaohuang made their first contribution in https://github.com/DietrichGebert/ponytail/pull/961 * @nethmadtharuka made their first contribution in https://github.com/DietrichGebert/ponytail/pull/632 * @STiFLeR7 made their first contribution in https://github.com/DietrichGebert/ponytail/pull/827 * @ShantanuTaro made their first contribution in https://github.com/DietrichGebert/ponytail/pull/890 * @marikkan-microsoft made their first contribution in https://github.com/DietrichGebert/ponytail/pull/752 **Full Changelog**: https://github.com/DietrichGebert/ponytail/compare/v4.10.1...v4.10.2 ### v4.10.1 - Date: 2026-10-02 - Version: v4.10.1 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v4.10.1 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v4.10.1 - **fixed** — OpenCode plugin now loads on OpenCode 2 with all commands and skills - **changed** — OpenCode plugin ported to OpenCode 2 plugin API while maintaining compatibility with OpenCode 1.15 through 1.18.34 - **added** — The /ponytail switch now applies to the current message on OpenCode 2 OpenCode 2 support. The OpenCode plugin failed to load on OpenCode 2 with "Plugin must export a default definition", and now it loads there with all commands and skills. The same entrypoint still runs on OpenCode 1 (tested from 1.15 up to 1.18.34), and on OpenCode 2 a `/ponytail ` switch already applies to the current message. Thanks @ragokan for the port. ##### What's Changed * Port the OpenCode plugin to the OpenCode 2 plugin API by @ragokan in https://github.com/DietrichGebert/ponytail/pull/943 * chore: release v4.10.1 by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/975 ##### New Contributors * @ragokan made their first contribution in https://github.com/DietrichGebert/ponytail/pull/943 **Full Changelog**: https://github.com/DietrichGebert/ponytail/compare/v4.10.0...v4.10.1 ### v4.10.0 - Date: 2026-09-14 - Version: v4.10.0 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v4.10.0 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v4.10.0 - **added** — Native Cursor support through hooks.json with scripts/cursor-hooks.js install that merges into existing Cursor hooks file - **added** — Grok Build native skills adapter - **fixed** — Detect VS Code Copilot via CLAUDE_PLUGIN_ROOT fallback to resolve incorrect Claude Code statusline nudge - **fixed** — Drop commandWindows from hooks.json for Claude.ai marketplace validation Two new homes for Ponytail. The headline: native Cursor support through `hooks.json`, with a `scripts/cursor-hooks.js install` that merges into your existing Cursor hooks file and leaves everything else in it alone. Also new: a Grok Build skills adapter, VS Code Copilot is finally detected correctly (no more Claude Code statusline nudge there), and the Claude.ai marketplace validator accepts the plugin again. ##### What's Changed * fix: drop commandWindows from hooks.json for Claude.ai marketplace validation (#593) by @prayag0one4 in https://github.com/DietrichGebert/ponytail/pull/601 * fix: detect VS Code Copilot via CLAUDE_PLUGIN_ROOT fallback (#528) by @krishrathi1 in https://github.com/DietrichGebert/ponytail/pull/579 * feat: add Grok Build native skills adapter (revive #561) by @p-clements in https://github.com/DietrichGebert/ponytail/pull/661 * docs: add Trendshift badge to READMEs by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/801 * docs: add Trendshift monthly ranking badge by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/802 * docs: put daily, weekly and monthly Trendshift badges in one row by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/803 * docs: Built with Ponytail, Retriever by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/830 * feat: add native Cursor hooks via hooks.json (#817) by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/869 ##### New Contributors * @prayag0one4 made their first contribution in https://github.com/DietrichGebert/ponytail/pull/601 * @p-clements made their first contribution in https://github.com/DietrichGebert/ponytail/pull/661 **Full Changelog**: https://github.com/DietrichGebert/ponytail/compare/v4.9.0...v4.10.0 ### v4.9.0 — v4.9.0: 53 commits of doing less - Date: 2026-08-07 - Version: v4.9.0 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v4.9.0 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v4.9.0 - **added** — Add /ponytail default command to persist the default mode across restarts - **added** — Add Qoder hooks support (UserPromptSubmit + PreToolUse) - **added** — Add opt-in agent-type scoping for SubagentStart injection via PONYTAIL_SUBAGENT_MATCHER - **added** — Add pi status bar controls to hide the indicator while keeping ponytail active - **changed** — Make bare /ponytail command report the active level instead of resetting to default - **changed** — Make the ultra statusline badge stand out - **fixed** — Fix copilot-plugin test to check all 6 command files - **fixed** — Fix exec lifecycle hook commands - **fixed** — Handle stdin error in ponytail-mode-tracker to avoid uncaught crash - **fixed** — Prevent Windows session freeze from stdin EOF deadlock - **fixed** — Strip UTF-8 BOM before parsing config.json - **fixed** — Don't destroy combined statuslines on uninstall - **fixed** — Don't crash uninstall on malformed settings.json - **fixed** — Guard pi before_agent_start against bad event and missing systemPrompt - **fixed** — Ship scripts/uninstall.js in the npm package - **fixed** — Handle CRLF in loc.js fence regex - **fixed** — Fix hermes test hardcoding python3 which fails on Windows - **fixed** — Fix writeDefaultMode to merge config instead of overwriting - **fixed** — Make statusline setup nudge honor CLAUDE_CONFIG_DIR - **fixed** — Ignore invalid opencode mode arguments Five weeks of merged work in one drop. The headline: `/ponytail default ` makes your chosen mode survive restarts, and a bare `/ponytail` now reports the active level instead of resetting it. Also new: Qoder support, subagent scoping via `PONYTAIL_SUBAGENT_MATCHER`, pi status bar controls, and about 30 fixes across Windows, Codex, OpenCode, and the uninstaller. ##### What's Changed * fix: copilot-plugin test checks all 6 command files by @nanaubusiness in https://github.com/DietrichGebert/ponytail/pull/393 * docs(benchmarks): add Independent benchmarks section by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/460 * fix: exec lifecycle hook commands by @sanmaxdev in https://github.com/DietrichGebert/ponytail/pull/474 * fix: handle stdin error in ponytail-mode-tracker to avoid uncaught crash by @Megashubham in https://github.com/DietrichGebert/ponytail/pull/227 * fix: prevent Windows session freeze from stdin EOF deadlock (#443) by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/477 * fix: strip UTF-8 BOM before parsing config.json (#375) by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/478 * fix: don't destroy combined statuslines on uninstall (#374) by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/479 * docs(help): list all 6 skills and fix OpenCode command count (#437, #438) by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/480 * fix: don't crash uninstall on malformed settings.json (#434) by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/481 * fix: guard pi before_agent_start against bad event and missing systemPrompt (#439, #440) by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/482 * fix: ship scripts/uninstall.js in the npm package by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/538 * docs(help): add /ponytail-gain to the OpenCode help card by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/539 * fix: handle CRLF in loc.js fence regex and remove dead codeOf (#339) by @dhedhialy in https://github.com/DietrichGebert/ponytail/pull/518 * fix: hermes test hardcoding python3 (fails on Windows) (#498) by @dhedhialy in https://github.com/DietrichGebert/ponytail/pull/513 * fix: writeDefaultMode merges config instead of overwriting (#490) by @dhedhialy in https://github.com/DietrichGebert/ponytail/pull/514 * fix: statusline setup nudge honors CLAUDE_CONFIG_DIR by @Lakshya77089 in https://github.com/DietrichGebert/ponytail/pull/338 * feat: add /ponytail default to persist the default (#329) by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/541 * feat: hide the pi status bar indicator while keeping ponytail active (#324) by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/544 * Update Spanish README with improved wording by @lorensation in https://github.com/DietrichGebert/ponytail/pull/560 * docs: clarify that GitHub Copilot Chat (VS Code/JetBrains) is supported (#497) by @yashrao2607 in https://github.com/DietrichGebert/ponytail/pull/526 * docs: reword Copilot Chat note without em dash by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/562 * docs: add Zed to the agent portability table by @Lakshya77089 in https://github.com/DietrichGebert/ponytail/pull/190 * docs: align benchmark prerequisites with promptfoo's Node requirement by @hamza-ali-shahjahan in https://github.com/DietrichGebert/ponytail/pull/205 * ux: make the ultra statusline badge stand out by @Lakshya77089 in https://github.com/DietrichGebert/ponytail/pull/192 * check-rule-copies: pin the reuse rung as an invariant by @Rafaelpta in https://github.com/DietrichGebert/ponytail/pull/281 * test: run ponytail-mcp suite under root npm test (wire MCP tests into CI) by @KC-Explore in https://github.com/DietrichGebert/ponytail/pull/235 * fix: ignore invalid opencode mode arguments by @sanmaxdev in https://github.com/DietrichGebert/ _[Truncated at 4000 characters — full notes: https://github.com/DietrichGebert/ponytail/releases/tag/v4.9.0]_ ### v4.8.4 — v4.8.4: lazy in Hermes now - Date: 2026-06-29 - Version: v4.8.4 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v4.8.4 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v4.8.4 - **added** — Ponytail now runs as a native Hermes Agent plugin with always-on context, bundled skills, and slash commands - **added** — Ponytail ships as a Devin CLI plugin - **changed** — The skill now triggers on any coding task, not just keyword prompts, improving recall on coding tasks from 2/6 to 6/6 with precision unchanged - **fixed** — Benchmarks now strip block comments before counting lines of code - **fixed** — Benchmark rejects --ollama-url without a host ###### New - Ponytail now runs as a native **Hermes Agent** plugin (#323) — always-on context, bundled skills, and slash commands. - Ponytail ships as a **Devin CLI** plugin (#318). - The skill now triggers on any coding task, not just keyword prompts (#447) — description-driven hosts load it reliably on plain coding work, recall on coding tasks went 2/6 to 6/6 with precision unchanged. ###### Docs - Sponsors section, with GreenPT as the first sponsor (#321) - Announcement banner replaces the badge; waitlist teaser added and translated (#316, #314, #312) - Swift/SwiftUI section in `platform-native.md` (#313) - Star History chart and Trendshift badges in the READMEs (#294, #293) - ES and Korean READMEs synced with the Devin CLI addition (#322) ###### Fixes - benchmarks: strip block comments before counting LOC (#232) - benchmark: reject `--ollama-url` without a host (#315) **Full changelog:** https://github.com/DietrichGebert/ponytail/compare/v4.8.3...v4.8.4 ### v4.8.3 — v4.8.3: lazy in subagents too - Date: 2026-06-24 - Version: v4.8.3 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v4.8.3 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v4.8.3 - **added** — The ponytail ruleset now injects into subagents via a SubagentStart hook, ensuring spawned subagents stay lazy like the main thread ###### New - The ponytail ruleset now injects into **subagents** via a `SubagentStart` hook (#254) — spawned subagents stay lazy, not just the main thread. ###### Docs - Korean README — `README.ko.md` (#283) - OpenCode npm install + npm badge across the English and Spanish READMEs; dropped the obsolete command-symlink note (#285) **Full changelog:** https://github.com/DietrichGebert/ponytail/compare/v4.8.2...v4.8.3 ### v4.8.2 — v4.8.2: now on npm - Date: 2026-06-24 - Version: v4.8.2 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v4.8.2 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v4.8.2 - **added** — Package is now installable from npm as @dietrichgebert/ponytail - **added** — Pi-extension status bar indicator for the active ponytail mode - **added** — Swival install instructions - **added** — PowerShell-safe shared hooks - **fixed** — Uninstall cleanup for state left outside plugin files - **fixed** — Benchmark and test fixes Ponytail is now installable from npm as `@dietrichgebert/ponytail`, published from CI via npm **trusted publishing** (OIDC, with provenance) — no tokens. ###### OpenCode ```json { "plugin": ["@dietrichgebert/ponytail"] } ``` ###### Also in this release - pi-extension status bar indicator for the active ponytail mode (#275, #279) - Swival install instructions (#264) - PowerShell-safe shared hooks (#265) - uninstall cleanup for state left outside plugin files (#228) - benchmark + test fixes (#274, #268) **Full changelog:** https://github.com/DietrichGebert/ponytail/compare/v4.8.1...v4.8.2 ### v4.8.1 — v4.8.1: consistent versioning - Date: 2026-06-23 - Version: v4.8.1 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v4.8.1 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v4.8.1 - **fixed** — Align all four plugin manifests and both package.json files to 4.8.1 - **added** — Add a CI guard (scripts/check-versions.js) that fails when version files disagree, or when a release tag does not match the manifest version Patch release. Metadata only, no changes to the ruleset or behavior. v4.8.0 shipped with the version manifests still reading 4.7.0 (and the package.json files at 0.1.0), so plugins reported 4.7.0 as the latest version even after updating. This release aligns every version-bearing file to 4.8.1 so the version reports correctly across Claude, Codex, Copilot, and Gemini. ##### Fixes - Align all four plugin manifests and both package.json files to 4.8.1 (#260, #262) - Add a CI guard (`scripts/check-versions.js`) that fails when version files disagree, or when a release tag does not match the manifest version, so this cannot recur ##### Updating Update the ponytail plugin in your host (re-run your marketplace or plugin update, or reinstall). It will then report 4.8.1. ### v4.8.0 — v4.8.0: comprehension first, now with an MCP server - Date: 2026-06-23 - Version: v4.8.0 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v4.8.0 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v4.8.0 - **added** — Add ponytail-mcp, an MCP server that serves the ruleset to any MCP-capable agent - **added** — Add /ponytail-gain measured-impact scoreboard showing less code, less cost, and more speed from benchmark medians - **added** — Add Antigravity support via .agents/rules/ponytail.md - **added** — Add CodeWhale support with native AGENTS.md reader and zero setup - **added** — Add argument-hint on the ponytail skill - **security** — Bump @modelcontextprotocol/sdk to ^1.26.0 to address CVE-2026-25536 - **fixed** — Implement comprehension-first guard and reuse rung to climb the ladder only after understanding the problem and reusing what already lives in the repo - **fixed** — Do not embed shell-unsafe install paths in the statusline setup nudge - **fixed** — Make Python command in robustness-audit.js portable for Windows - **fixed** — Do not write output on SessionStart for Copilot - **fixed** — Register skills dir via config hook so OpenCode discovers ponytail skills - **fixed** — Avoid Gemini loading Claude hook events - **fixed** — Make statusline read the flag from CLAUDE_CONFIG_DIR, not just ~/.claude - **fixed** — Guard final writeHookOutput against stdout EPIPE in ponytail-activate - **fixed** — Strip UTF-8 BOM before parsing settings.json in ponytail-activate - **fixed** — Resolve test failure on Node.js < 20.11.0 - **fixed** — Only deactivate on a standalone 'stop ponytail' or 'normal mode' command - **fixed** — Pin all four safety carve-outs in the rule-drift canary He read the whole thing first, then wrote less. This release sharpens the core ruleset (comprehension before laziness, reuse before rewriting), ships an MCP server for the rules, adds a measured-impact scoreboard, and lands a security bump. Two more agents join the family. ##### ✨ Features - **`ponytail-mcp`**: an MCP server that serves the ruleset to any MCP-capable agent (#91) - **`/ponytail-gain`**: measured-impact scoreboard — less code, less cost, more speed from the benchmark medians (#108) - **Antigravity support** via `.agents/rules/ponytail.md` (#119) - **CodeWhale support** — native AGENTS.md reader, zero setup (#124) - `argument-hint` on the ponytail skill (#85) ##### 🔒 Security - Bump `@modelcontextprotocol/sdk` to `^1.26.0` (CVE-2026-25536) (#208) ##### 🛠 Fixes - **Comprehension-first guard + reuse rung** — climb the ladder only after understanding the problem; reuse what already lives in the repo before rewriting it (#245, #217) - Don't embed shell-unsafe install paths in the statusline setup nudge (#224) - Portable Python command in `robustness-audit.js` (Windows) (#209) - Don't write output on SessionStart for Copilot (#168) - Register skills dir via config hook so OpenCode discovers ponytail skills (#138) - Avoid Gemini loading Claude hook events (#139) - Statusline reads the flag from `CLAUDE_CONFIG_DIR`, not just `~/.claude` (#154) - Guard final `writeHookOutput` against stdout EPIPE in `ponytail-activate` (#149) - Strip UTF-8 BOM before parsing settings.json in `ponytail-activate` (#148) - Resolve test failure on Node.js < 20.11.0 (#157) - Only deactivate on a standalone "stop ponytail" / "normal mode" (#162) - Pin all four safety carve-outs in the rule-drift canary (#114) ##### 📊 Benchmarks - Agentic LOC + safety benchmark against a fair agentic baseline (#126, #158) - Completeness judge so LOC wins can't hide under-delivery (#171) - critic-email task reproducing the critique's own example (#173) ##### 📚 Docs & examples - Spanish (LATAM) README translation (#110) - 6 new over-engineering survivors + platform-native guide (#109) - Agentic benchmark chart and corrected cost claim (42–75%, 30-rep) in the README (#160, #129) **Full changelog**: https://github.com/DietrichGebert/ponytail/compare/v4.7.0...v4.8.0 ### v4.7.0 — v4.7.0: lazy in OpenClaw now - Date: 2026-06-16 - Version: v4.7.0 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v4.7.0 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v4.7.0 - **added** — Add OpenClaw skill that integrates ponytail as an agent capability accessible via clawhub install ponytail - **added** — Include review, audit, debt, and help skills as part of the OpenClaw integration - **changed** — Generate the OpenClaw skill directly from ponytail's single source to prevent drift across platforms OpenClaw is the fastest-growing open-source agent out there, an always-on assistant that reads your messages and runs your workflows. The lazy senior dev now lives inside it. `clawhub install ponytail` and he's there: an OpenClaw skill that kicks in on coding tasks and tells the agent to write less. The review, audit, debt, and help skills come along too. He does not care how big the house is. He still deletes more than he adds. The skill is generated straight from ponytail's single source, so the OpenClaw copy cannot drift from every other platform. One ruleset, now on one more agent. Tested the boring way: installed OpenClaw, loaded the skill, watched it come up ready and visible to the model. Then he went back to not talking. ### v4.6.0 — v4.6.0: help, reluctantly - Date: 2026-06-15 - Version: v4.6.0 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v4.6.0 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v4.6.0 - **added** — Add `/ponytail-help` command that lists all available commands, wired up on all skill-capable hosts (Claude Code, Codex, OpenCode, Gemini CLI, pi) - **added** — Add Ollama runner to test ponytail on local models - **added** — Add parity test to ensure no future command can be advertised without corresponding implementation files - **fixed** — Fix counter that scored unfenced code as zero - **fixed** — Fix Unicode character that crashed the runner on Windows He has never explained a command in his life. You typed `/ponytail-help` and got nothing, because the file was never actually there, only the promise of it in the docs. The most senior-dev bug there is: works in the standup, missing from the repo. Now it ships. `/ponytail-help` is wired up alongside the other commands on every skill-capable host (Claude Code, Codex, OpenCode, Gemini CLI, pi): one command that lists the rest. A new parity test makes sure no future command can be advertised without the files to back it. He hates writing documentation. He hates broken promises more. **We benchmarked him on a tiny local model and shipped the flop.** A contributor added an Ollama runner so you can test ponytail on local models. We ran it on llama3.2 (3B) and the lines-of-code win turned out to be noise: one run lands 17% under baseline, the next 50% over, the median shrugs. The skill is tuned for models that actually follow instructions. A 3B model nods along and writes the boilerplate anyway. We published that instead of burying it. A benchmark you only show when it flatters you is an ad. The frontier numbers (80-94% less code on Haiku, Sonnet, Opus) still hold, and now there's an honest note on where they stop. Full reproduction in `benchmarks/results/`. Swept up on the way out: a counter that scored unfenced code as zero, and a Unicode character that crashed the runner on Windows after the work was already done. He'd call it a quiet release. Then he'd stop talking. ### v4.5.0 — v4.5.0: lazy in Copilot - Date: 2026-06-15 - Version: v4.5.0 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v4.5.0 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v4.5.0 - **added** — GitHub Copilot CLI plugin support via Copilot Marketplace - **added** — CI on every push and PR with npm test script - **fixed** — Correctness checks now use python3 for macOS/CI compatibility - **fixed** — Hooks degrade gracefully when node is not on PATH This release is mostly other people, and that's the point. GitHub Copilot CLI is now a full plugin host, contributed by @maxfelker (a Microsoft engineer) who built it with Copilot, tested it live, then reviewed his own PR in ponytail ultra (the headline finding was "delete a test"). CI, an `npm test` script, and a python3 fix came from @christophermayfield. Plus a fix for the hooks erroring when `node` isn't on PATH (Nix/nvm setups). The tool that does less got more thorough by getting more hands. - GitHub Copilot CLI plugin: `copilot plugin marketplace add DietrichGebert/ponytail` then `copilot plugin install ponytail@ponytail`. - CI on every push and PR, plus `npm test`. - Correctness checks work on macOS/CI now (python3 probe). - Hooks degrade gracefully when `node` isn't on PATH. ##### What's Changed * Adding support for Copilot Marketplace plugin by @maxfelker in https://github.com/DietrichGebert/ponytail/pull/47 * docs: bump the agents badge to 13 by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/56 * fix: use python3 for correctness checks and add CI by @christophermayfield in https://github.com/DietrichGebert/ponytail/pull/50 * fix: hooks degrade gracefully when node is not on PATH by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/57 * docs: note the Codex install also covers the desktop app by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/59 * chore: bump version to 4.5.0 by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/60 ##### New Contributors * @maxfelker made their first contribution in https://github.com/DietrichGebert/ponytail/pull/47 * @christophermayfield made their first contribution in https://github.com/DietrichGebert/ponytail/pull/50 **Full Changelog**: https://github.com/DietrichGebert/ponytail/compare/v4.4.0...v4.5.0 ### v4.4.0 — v4.4.0: field-tested, still lazy - Date: 2026-06-15 - Version: v4.4.0 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v4.4.0 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v4.4.0 - **changed** — Sharpen rules based on field review feedback: hardware is never the spec ideal (leave the calibration knob), the one-runnable-check rule is now a headline (lazy code without its check is unfinished), and explanation you explicitly asked for isn't debt - **added** — Add ponytail-debt skill to harvest deferred ponytail: shortcuts into a ledger so later doesn't quietly become never - **added** — Add a behavior-gate eval so rules can't silently regress - **added** — Add a dark-background logo - **changed** — Use the dark logo in the README header on dark themes **The headline of this release isn't a feature, it's a field test.** A user ran ponytail across a from-scratch rewrite of a real system: nine phases, protocol plus desktop app plus simulator plus Raspberry Pi daemon plus ESP32 firmware. The verdict was "net win, kept it on the whole build," and across all nine phases "it never once trimmed a failsafe, validation, or auth check." It also flagged where the laziness needed a tighter leash. v4.4.0 is the result. - Sharper rules from that feedback: hardware is never the spec ideal (leave the calibration knob), the one-runnable-check rule is now a headline ("lazy code without its check is unfinished"), and explanation you explicitly asked for isn't debt. - `/ponytail-debt`: harvests the `ponytail:` shortcuts you've deferred into a ledger, so "later" doesn't quietly become "never." - A behavior-gate eval so those rules can't silently regress. - A dark-background logo (community-contributed) and a cleaner README. ##### What's Changed * feat: refine ruleset from a full-project field review by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/39 * feat: add ponytail-debt skill by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/40 * docs: commands reference + portability accuracy by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/41 * feat: add a dark-background logo by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/43 * docs: use the dark logo in the README header on dark themes by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/44 * chore: bump version to 4.4.0 by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/45 * chore: untrack one-off social images committed by mistake by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/46 **Full Changelog**: https://github.com/DietrichGebert/ponytail/compare/v4.3.0...v4.4.0 ### v4.3.0 — v4.3.0: more agents, still lazy - Date: 2026-06-14 - Version: v4.3.0 - Original notes: https://github.com/DietrichGebert/ponytail/releases/tag/v4.3.0 - Permalink: https://whatsnew.fyi/product/ponytail/releases/v4.3.0 - **added** — Add ponytail-audit skill - **added** — Add Gemini CLI support - **added** — Add correctness assertion to benchmarks - **fixed** — Fix Windows hooks failing under PowerShell when cmd.exe %VAR% is not expanded - **fixed** — Honor CLAUDE_CONFIG_DIR in hooks ##### What's Changed * feat: add ponytail-audit skill by @rygel in https://github.com/DietrichGebert/ponytail/pull/20 * fix: Windows hooks fail under PowerShell (cmd.exe %VAR% not expanded) by @ousamabenyounes in https://github.com/DietrichGebert/ponytail/pull/26 * feat: add Gemini CLI support by @ousamabenyounes in https://github.com/DietrichGebert/ponytail/pull/25 * docs: document GitHub Copilot CLI support by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/30 * docs: document Antigravity and VS Code Codex extension support by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/36 * feat(benchmarks): add correctness assertion by @zamal-db in https://github.com/DietrichGebert/ponytail/pull/31 * fix: honor CLAUDE_CONFIG_DIR in hooks by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/37 * chore: bump version to 4.3.0 by @DietrichGebert in https://github.com/DietrichGebert/ponytail/pull/38 ##### New Contributors * @rygel made their first contribution in https://github.com/DietrichGebert/ponytail/pull/20 * @ousamabenyounes made their first contribution in https://github.com/DietrichGebert/ponytail/pull/26 * @zamal-db made their first contribution in https://github.com/DietrichGebert/ponytail/pull/31 **Full Changelog**: https://github.com/DietrichGebert/ponytail/compare/v4.2.0...v4.3.0