Ettore Di Giacinto
6b181cd20b
feat(studio): enforce the action policy of unattended runs
...
A trigger run or an agent job has nobody to approve a step, and so far
the approval mode auto_readonly and the act.* grants were only recorded.
The prompt was the only thing that kept such a run from acting.
Every tool call of an unattended run now goes through one check at the
call. A tool that only reads runs. Any other tool needs the grant of its
class, and the check fails closed:
- act.files for write_file, edit_file, move_file, delete_file and the
built-in bash;
- act.addons, or act.addons:<id>, for add-on tools whose declared kind is
not read, plus act.spend when the add-on gates the tool with a
permission;
- act.spend for MCP tools.
A trigger holds its new acts list within the grants of its agent. A
trigger that declared read only runs, or that a binding in auto_readonly
mode made without asking, is refused every non-read tool whatever it
holds. A binding that cannot be read counts as auto_readonly. A job
holds the act grants of its agent. Sub-agents follow their parent, and a
saved agent cannot be started from an unattended run.
A refused call answers with a plain sentence the model can pass on, not
an error, and writes one audit log line. Triggers set acts through the
REST API; a model never can. A trigger whose plan names a file it writes
keeps act.files.
Assisted-by: Claude:claude-sonnet-5-5 go ginkgo swag
2026-11-03 19:12:29 +00:00
..
2026-11-03 14:56:42 +00:00
2026-11-03 19:12:29 +00:00
2026-11-02 21:03:50 +01:00
2026-11-03 16:56:49 +00:00
2026-11-03 13:57:28 +00:00
2026-11-03 16:56:49 +00:00
2026-11-03 10:58:46 +00:00
2026-11-02 23:50:40 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 19:10:39 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 10:43:37 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 08:39:12 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:56:42 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 16:56:49 +00:00
2026-11-03 08:39:12 +00:00
2026-11-03 14:33:05 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 19:10:39 +00:00
2026-11-03 08:38:53 +00:00
2026-11-03 14:56:42 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 19:12:29 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:33:05 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 19:12:29 +00:00
2026-11-03 19:10:39 +00:00
2026-11-03 19:12:29 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-03 13:57:28 +00:00
2026-11-03 14:45:43 +00:00
2026-11-03 14:45:43 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 19:12:29 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:33:05 +00:00
2026-11-01 18:30:08 +01:00
2026-11-03 14:33:05 +00:00
2026-11-03 14:33:05 +00:00
2026-11-03 14:33:05 +00:00
2026-11-03 14:33:05 +00:00
2026-11-03 14:33:05 +00:00
2026-11-03 14:33:05 +00:00
2026-11-03 08:30:08 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 19:10:39 +00:00
2026-11-03 19:10:39 +00:00
2026-11-03 14:56:42 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 16:57:04 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:45:43 +00:00
2026-11-03 14:45:43 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 17:23:29 +00:00
2026-11-03 14:00:45 +00:00
2026-11-03 14:33:05 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 19:10:39 +00:00
2026-11-03 14:56:42 +00:00
2026-11-03 14:56:42 +00:00
2026-11-03 14:56:42 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 08:38:53 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:32:01 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 10:43:37 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-03 14:32:01 +00:00
2026-11-03 14:42:21 +00:00
2026-11-03 14:32:01 +00:00
2026-11-03 14:59:30 +00:00
2026-11-03 14:53:20 +00:00
2026-11-03 14:53:20 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 15:41:45 +00:00
2026-11-03 15:41:45 +00:00
2026-11-03 15:41:45 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 16:57:04 +00:00
2026-11-02 01:16:55 +00:00
2026-11-03 14:00:31 +00:00
2026-11-03 13:52:56 +00:00
2026-11-03 14:00:31 +00:00
2026-11-03 13:52:56 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 15:41:45 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 14:32:01 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 11:54:33 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 16:57:04 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 16:56:49 +00:00
2026-11-03 14:42:21 +00:00
2026-11-03 16:56:49 +00:00
2026-11-03 15:41:45 +00:00
2026-11-03 11:30:11 +00:00
2026-11-03 11:54:33 +00:00
2026-11-03 14:59:30 +00:00
2026-11-03 14:00:31 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 16:57:04 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 13:57:28 +00:00
2026-11-03 14:56:42 +00:00
2026-11-03 13:57:28 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:00:45 +00:00
2026-11-03 17:23:29 +00:00
2026-11-03 10:58:46 +00:00
2026-11-03 10:58:46 +00:00
2026-11-03 10:58:46 +00:00
2026-11-03 10:58:46 +00:00
2026-11-02 18:48:39 +01:00
2026-11-03 10:43:37 +00:00
2026-11-03 10:43:37 +00:00
2026-11-03 10:58:46 +00:00
2026-11-03 10:58:46 +00:00
2026-11-03 11:31:36 +00:00
2026-11-03 11:31:37 +00:00
2026-11-02 23:50:40 +00:00
2026-11-02 23:50:40 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 16:57:04 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:56:42 +00:00
2026-11-03 14:56:42 +00:00
2026-11-03 14:56:42 +00:00
2026-11-03 15:02:03 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 08:39:12 +00:00
2026-11-03 14:56:42 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-03 19:10:39 +00:00
2026-11-03 11:31:36 +00:00
2026-11-03 08:38:53 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 17:23:29 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 19:12:29 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:45:43 +00:00
2026-11-03 10:58:46 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:00:31 +00:00
2026-11-03 14:33:05 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-03 19:12:29 +00:00
2026-11-03 11:31:36 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 08:30:08 +00:00
2026-11-03 14:42:21 +00:00
2026-11-02 18:48:39 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 10:07:46 +00:00
2026-11-03 10:07:46 +00:00
2026-11-03 14:56:42 +00:00
2026-11-02 18:48:39 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-02 21:03:50 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 19:10:39 +00:00
2026-11-03 08:38:53 +00:00
2026-11-01 18:30:08 +01:00
2026-11-03 19:12:29 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-02 21:03:50 +01:00
2026-11-03 14:42:21 +00:00
2026-11-03 14:33:05 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:33:05 +00:00
2026-11-02 23:50:40 +00:00
2026-11-03 14:45:43 +00:00
2026-11-03 14:59:30 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 19:12:29 +00:00
2026-11-03 14:42:21 +00:00
2026-11-03 14:59:30 +00:00
2026-11-03 14:59:30 +00:00
2026-11-03 14:59:30 +00:00
2026-11-03 19:12:29 +00:00
2026-11-03 19:12:29 +00:00
2026-11-02 23:50:40 +00:00
2026-11-03 19:12:29 +00:00
2026-11-03 14:59:30 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:59:30 +00:00
2026-11-03 14:49:34 +00:00
2026-11-03 14:56:42 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00