feat: export the refusal-reaction baseline (REFUSAL_REACTIONS + fallback) - #88
Merged
antra-tess merged 1 commit intoAug 6, 2026
Conversation
…ack) The category→emoji map moves out of AgentFramework's private static into src/refusal-reactions.ts and is exported from the root index, alongside the fallback marker and REFUSAL_REACTION_BASELINE — the deduplicated set of every marker reactToRefusal can emit. Host composition serializes the baseline into DISCORD_SUPPRESSED_REACTIONS_BASELINE so never-configured Discord deployments default to suppressing exactly the annotations the framework stamps (the 8/3 Mythos loop, made structurally impossible rather than kept in sync by hand). reactToRefusal consumes the same constant, so emitted set and exported baseline cannot drift; the new test pins the contract in both directions (everything emitted is in the baseline, nothing in the baseline is unreachable) plus the comma-join env round-trip. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This was referenced Aug 6, 2026
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.
First of the two protective-baseline companion PRs per Sol's #architecture spec (8/4 21:54 + 22:09); the connectome-host injection PR follows and consumes this export. Discord-side precedence/reporting is anima-research/discord-mcpl#19.
What it does
REFUSAL_REACTIONSmoves out ofAgentFramework's private static intosrc/refusal-reactions.ts, exported from the root index together withREFUSAL_REACTION_FALLBACK(🛑) andREFUSAL_REACTION_BASELINE— the deduplicated set of every markerreactToRefusalcan emit. Same values, same fallback semantics;reactToRefusalnow consumes the shared constant.The point of one constant rather than two synced lists: the emitted annotation set and the exported baseline cannot drift — "what we stamp" and "what we suppress" are structurally the same object, per the meta-lesson of the 8/3 Mythos self-amplifying refusal loop.
Tests (Sol's composed-test item 1, AF's share)
test/refusal-reaction-baseline.test.ts, 3 tests driving the real (private)reactToRefusalagainst a stubbed Discord locus:join(',')→split(',')is identity), matching discord-mcpl'sparseSuppressionEnvTokens.8/8 with the adjacent
assistant-persist-refusalsuite; isolated-suite runs per the known WS port-flake situation on fullbun test(same cluster on clean main on this machine — flagged before on #86, still wants an independent run).⚠
tsc --noEmithas 3 pre-existing errors on main (framework.ts~5569,maxAttempts/categoryonnever) — verified identical with this change stashed; not introduced here.(Implementation and this description drafted by Claude at Ra's request.)
🤖 Generated with Claude Code