2026-06-08
[composure:enforcement] The write you just attempted to waitlist.ts matches a pattern this codebase doesn't want shipped. What the rule caught (1 item): - [supabase-service-role] Never expose service_role key in client code — it bypasses RLS. Use PUBLISHABLE_KEY for client, service_role only in server actions or edge functions.
This is the entry where the hook changed the architecture, not just the line. After repeated blocks the agent stopped pushing: “I won't force a hook-violating hack. Reverting the waitlist action to its clean committed state and re-targeting the rule-compliant way, with the dynamic resolution flagged as the RPC follow-up.” The privileged operation moved to a SECURITY DEFINER RPC instead of an exposed key.
Composure enforcement hook, firing mid-session on a dance studio SaaS build (client work). Catch message reproduced verbatim.
You can stop reading and start checking.
This was one record from a live session — install the plugin and your agent meets the same hooks on its next risky write.