Repository navigation
Conversation
The ruleset tells the user that "stop ponytail" or "normal mode" turns ponytail off, and every hook host honors it. The Hermes plugin ignored the phrase: its mode stayed on, bare /ponytail still reported the level, and after compaction pre_llm_call re-injected the ruleset. pre_llm_call now applies the same standalone rule as isDeactivationCommand and switches off, so the off notice goes out once. In a gateway, where plain chat is never slash-gated, the phrase is rewritten to /ponytail off and passes the same access control as the command. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
/ponytailstill reported the level, and after compaction_pre_llm_callre-injected the ruleset, so ponytail came back on by itself._pre_llm_callnow readsuser_messageand applies the same standalone rule asisDeactivationCommand(hooks/ponytail-config.js). It switches the mode off, so the off notice from fix(hermes): send the off notice after /ponytail off (#1121) #1122 goes out once and compaction no longer brings the ruleset back.rewrite_gateway_commandrewrites the phrase to/ponytail off, which then passes the same access control as the command. INSTALL.md says so in one clause.Closes #1167
Out of scope
/ponytail offalready is.Test plan
node scripts/check-rule-copies.jsnode scripts/check-versions.jsgit diff --checknpm test: 145/145 root, 30/30 pi-extensionHermes treats a typed "stop ponytail" like /ponytail off, and a gateway runs it as that commandis red onupstream/main(nullinstead of{ context: 'PONYTAIL MODE OFF' })isDeactivationCommandon 14 phrases (case, trailing punctuation, extra words)32b77f51: apre_gateway_dispatchrewrite replacesevent.text, and plugin commands then go through_check_slash_accesslike built-ins.