Dylan Hurd
d68b85a097
Require fresh approval beneath denied permission paths ( #39266 )
...
## Why
A stored permission grant may allow access to a parent while explicitly denying
a child path. A later request for that child must not be treated as already
approved by the broader parent grant.
## What changed
- Compare materialized permission profiles without intersecting away denied or
reopened paths before deciding that a request is preapproved.
- Execute preapproved commands with the stored grant itself so its denied paths
remain enforced.
- Fail closed when permission profiles cannot be materialized.
## Testing
Added unit and integration coverage for turn and session grants across
`exec_command`, `shell_command`, and `apply_patch`, including approval-disabled
and `Never` approval modes.
GitOrigin-RevId: 5455880328a89c7958f859c7ce87805dff9704fb
2026-08-18 19:17:09 +00:00
..
2026-08-14 02:32:05 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-10 16:57:09 +00:00
2026-08-13 00:00:16 +00:00
2026-08-17 21:49:30 +00:00
2026-08-17 21:49:30 +00:00
2026-08-18 07:26:21 +00:00
2026-08-13 00:00:16 +00:00
2026-08-18 16:27:54 +00:00
2026-08-17 11:44:56 +00:00
2026-07-09 03:40:08 +00:00
2026-08-13 00:00:16 +00:00
2026-08-14 05:49:33 +00:00
2026-08-17 13:16:05 +00:00
2026-08-13 00:00:16 +00:00
2026-08-18 16:38:52 +00:00
2026-08-13 00:00:16 +00:00
2026-08-18 07:32:03 +00:00
2026-08-13 00:00:16 +00:00
2026-08-18 09:38:27 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 21:53:52 +00:00
2026-08-13 00:00:16 +00:00
2026-06-19 05:35:57 -07:00
2026-08-18 02:23:57 +00:00
2026-06-18 14:09:38 +02:00
2026-08-17 21:49:30 +00:00
2026-08-18 15:06:09 +00:00
2026-08-17 04:01:37 +00:00
2026-08-13 00:00:16 +00:00
2026-08-17 21:49:30 +00:00
2026-08-12 03:00:47 +00:00
2026-08-13 15:23:09 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-06-15 21:53:47 -07:00
2026-08-13 00:00:16 +00:00
2026-08-17 22:26:27 +00:00
2026-08-04 15:23:43 +00:00
2026-08-13 22:42:12 +00:00
2026-08-14 18:35:13 +00:00
2026-08-18 18:01:39 +00:00
2026-08-14 04:46:04 +00:00
2026-08-13 23:13:37 +00:00
2026-05-18 21:03:51 -07:00
2026-08-13 00:00:16 +00:00
2026-08-15 16:58:08 +00:00
2026-08-17 10:01:59 +00:00
2026-08-17 11:44:56 +00:00
2026-08-13 00:00:16 +00:00
2026-08-14 18:26:20 +00:00
2026-08-13 00:00:16 +00:00
2026-08-14 07:52:38 +00:00
2026-08-14 07:52:38 +00:00
2026-08-17 21:49:30 +00:00
2026-08-13 02:40:49 +00:00
2026-06-08 13:55:15 -07:00
2026-08-13 00:00:16 +00:00
2026-08-17 11:44:56 +00:00
2026-08-17 11:44:56 +00:00
2026-08-17 22:26:27 +00:00
2026-07-14 10:37:23 +00:00
2026-08-14 19:07:15 +00:00
2026-07-22 20:23:35 +00:00
2026-08-13 00:00:16 +00:00
2026-08-18 18:41:40 +00:00
2026-08-01 01:17:26 +00:00
2026-08-17 21:49:30 +00:00
2026-08-17 11:44:56 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-18 19:17:09 +00:00
2026-08-18 05:42:39 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-14 05:49:33 +00:00
2026-07-22 00:50:28 +00:00
2026-08-18 05:46:08 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 23:13:37 +00:00
2026-08-13 00:00:16 +00:00
2026-08-14 05:49:33 +00:00
2026-08-13 00:00:16 +00:00
2026-07-23 19:19:35 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-17 04:17:45 +00:00
2026-06-23 14:27:13 -07:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-17 10:01:59 +00:00
2026-08-17 10:01:59 +00:00
2026-08-14 18:26:20 +00:00
2026-08-16 00:57:28 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-14 18:26:20 +00:00
2026-08-17 10:01:59 +00:00
2026-08-13 00:00:16 +00:00
2026-08-14 12:21:08 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 19:25:05 +00:00
2026-08-07 22:41:20 +00:00
2026-08-17 18:15:56 +00:00
2026-08-13 00:00:16 +00:00
2026-08-17 19:22:45 +00:00
2026-08-10 19:26:52 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-17 21:49:30 +00:00
2026-08-14 01:23:59 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-17 21:49:30 +00:00
2026-08-05 06:38:57 +00:00