Skip to content

Deny state-only plugins from invoking actions#19

Merged
sebastientaggart merged 1 commit intomainfrom
feature/state-only-deny-actions-run
Apr 8, 2026
Merged

Deny state-only plugins from invoking actions#19
sebastientaggart merged 1 commit intomainfrom
feature/state-only-deny-actions-run

Conversation

@sebastientaggart
Copy link
Copy Markdown
Member

ScopedActionRegistry.run() previously denied only read-only, which allowed state-only plugins to invoke arbitrary registered actions (including orchestrator commands like agent.start). This contradicted the docstring intent that state-only has no orchestrator access.

Tightens run() to require full capability, clarifies the state-only docstring bullet to say "cannot register or invoke actions", and extends the state-only test to pin the new behavior.

Closes #15

@sebastientaggart
Copy link
Copy Markdown
Member Author

Review Summary

Verdict: APPROVE

Findings

No issues found. Code looks correct and follows project conventions. The run() guard now correctly denies any non-full capability (covering both read-only and state-only), the module docstring is updated to match, and a regression test asserts that state-only plugins cannot invoke actions.

@sebastientaggart sebastientaggart merged commit 171ea98 into main Apr 8, 2026
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.

Investigate: 'state-only' plugin capability currently permits actions.run

1 participant