Skip to content

chore(claude): allowlist persona-sati MCP tools to prevent non-interactive REJECT#11

Merged
brandwe merged 1 commit into
mainfrom
fix/persona-sati-allowlist-hook
Jun 8, 2026
Merged

chore(claude): allowlist persona-sati MCP tools to prevent non-interactive REJECT#11
brandwe merged 1 commit into
mainfrom
fix/persona-sati-allowlist-hook

Conversation

@brandwe

@brandwe brandwe commented Jun 8, 2026

Copy link
Copy Markdown
Member

Summary

Adds a PreToolUse hook in .claude/settings.json with matcher ^mcp__persona-sati__ that returns permissionDecision: allow. Bypasses Claude Code's permission gate for any persona-sati tool call so a non-interactive permission re-prompt can never fire.

Why

On 2026-05-28, persona-sati's MCP session produced a 3h 21m hang in the entrabot main LLM thread. Root cause: Claude Code's permission gate fired a re-prompt on mcp__persona-sati__observe while the user was away from the terminal, and the default-deny-on-no-human path produced a REJECTED status. The agent loop then entered a stuck reconciliation state.

Persona-sati server-side fixes for related issues already shipped on persona-sati main (PRs #56 bound sync I/O, #61 structured logging, #62 Container Insights opt-in). This is the client-side companion change — together they belt-and-suspenders the failure mode.

Full incident write-up: persona-sati docs/runbooks/hard-won-learnings.md Learning #39.

Behavior change

Before: persona-sati tool calls may trigger a Claude Code permission prompt that, in non-interactive sessions (user AFK), defaults to deny → REJECTED status → main thread can hang in reconciliation.

After: persona-sati tools are silently allowed by the hook. No permission prompt, no REJECTED outcome.

Existing hooks (Write/Edit/NotebookEdit, entrabot send-side tools, SessionStart, PostToolUse) are untouched.

Test plan

  • JSON valid (python3 -c "import json; json.load(open('.claude/settings.json'))") — confirmed locally before commit
  • On next Claude Code session, observe persona-sati tools no longer surface a permission prompt
  • Verify other PreToolUse hooks (Write/Edit, entrabot send-side) still fire as expected

🤖 Generated with Claude Code

…ctive REJECT

Adds a PreToolUse hook with matcher ^mcp__persona-sati__ that returns
permissionDecision=allow. Prevents Claude Code from re-prompting for
persona-sati tool permissions during long sessions, which on 2026-05-28
hung the main LLM thread for 3h 21m when a re-prompt fired while the
user was AFK and the default-deny path triggered.

Server-side fixes for related issues already shipped on persona-sati
main (PRs #56, #61, #62). Full incident analysis: persona-sati
hard-won-learnings Learning #39.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@brandwe brandwe changed the base branch from dev to main June 8, 2026 00:32
@brandwe brandwe merged commit bdb28bc into main Jun 8, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant