Runtime permission model: trust hierarchy and policy configurability #3
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Background
Currently per-action policy (
auto-accept/queue/auto-deny) is hardcoded inactions.mjs. ThecanApproverelationships live insecrets.json(static, out-of-band). Mail permissions are already runtime-configurable, gated bycanApprove. The question is how far to extend this pattern.The core tension
Making policies runtime-configurable is useful — e.g. switching
send-emailtoqueuewithout restarting the server. But it creates an elevation risk: if an agent can request a policy change and that change is auto-accepted, it could lower its own oversight.The non-negotiable constraint
canApprovemust never be runtime-writable. It is the root of the trust hierarchy. All runtime permission changes must be gated by it, and nothing runtime should be able to modify it.Possible paths forward
Option A: Runtime policy overrides (per-action)
mail_perms) holds policy overridescanApproveof the requesting useractions.mjsif no override existsOption B: Extend the TUI
Option C: Config file (not secrets)
config.json(not secret, can be in git) holds policy overridesQuestions to resolve before implementing