joeflorencio-openai
1d64085e67
Validate step settings against proposed permissions ( #40647 )
...
## Why
Model requirements must be evaluated against the permissions that will apply
after a settings update. Validating against the current profile can reject a
valid model-and-permission update or allow a later permission-only update to
invalidate the selected model.
## What changed
- Group model, reasoning, service-tier, personality, and approval inputs into
`StepSettings`, with a single apply-and-validate path.
- Apply permission and environment changes before validating step settings, so
auto-review requirements use the proposed effective permissions.
- Revalidate existing step settings when permission or environment changes alter
their constraints, and commit the update only when the complete candidate is
valid.
## Testing
Added unit and integration coverage for atomic model/permission updates,
permission-only revalidation, environment-derived constraints, and both
standalone and turn-start settings operations.
GitOrigin-RevId: f50dfbd300484a09acc51ee4607278f300ca1cd9
2026-08-25 17:27:04 +00:00
..
2026-08-21 03:31:56 +00:00
2026-08-22 00:42:19 +00:00
2026-08-23 06:10:44 +00:00
2026-08-25 05:16:45 +00:00
2026-08-20 17:46:05 +00:00
2026-08-24 18:22:13 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 17:46:05 +00:00
2026-08-24 19:52:27 +00:00
2026-08-13 00:00:16 +00:00
2026-08-24 20:25:26 +00:00
2026-08-17 11:44:56 +00:00
2026-07-09 03:40:08 +00:00
2026-08-24 18:22:13 +00:00
2026-08-25 02:38:22 +00:00
2026-08-21 20:15:23 +00:00
2026-08-13 00:00:16 +00:00
2026-08-23 17:02:21 +00:00
2026-08-20 08:10:08 +00:00
2026-08-18 07:32:03 +00:00
2026-08-20 17:46:05 +00:00
2026-08-23 21:29:11 +00:00
2026-08-13 00:00:16 +00:00
2026-08-23 20:08:40 +00:00
2026-08-24 18:22:13 +00:00
2026-08-23 06:10:44 +00:00
2026-08-20 18:29:35 +00:00
2026-08-20 18:29:35 +00:00
2026-08-25 05:16:45 +00:00
2026-06-18 14:09:38 +02:00
2026-08-17 21:49:30 +00:00
2026-08-24 21:39:48 +00:00
2026-08-20 05:29:12 +00:00
2026-08-21 21:12:43 +00:00
2026-08-21 21:51:12 +00:00
2026-08-21 21:51:12 +00:00
2026-08-25 05:16:45 +00:00
2026-08-21 21:22:35 +00:00
2026-08-25 05:16:45 +00:00
2026-08-18 22:10:43 +00:00
2026-08-20 18:29:35 +00:00
2026-08-23 06:10:44 +00:00
2026-08-13 00:00:16 +00:00
2026-08-25 01:27:18 +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-21 21:17:42 +00:00
2026-08-04 15:23:43 +00:00
2026-08-25 05:16:45 +00:00
2026-08-22 05:54:43 +00:00
2026-08-25 16:20:38 +00:00
2026-08-20 18:17:28 +00:00
2026-08-25 17:27:04 +00:00
2026-05-18 21:03:51 -07:00
2026-08-13 00:00:16 +00:00
2026-08-23 20:14:26 +00:00
2026-08-17 10:01:59 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 17:46:05 +00:00
2026-08-14 18:26:20 +00:00
2026-08-20 11:57:32 +00:00
2026-08-20 18:29:35 +00:00
2026-08-25 05:16:45 +00:00
2026-08-20 08:10:08 +00:00
2026-08-20 19:09:04 +00:00
2026-06-08 13:55:15 -07:00
2026-08-25 13:59:52 +00:00
2026-08-17 11:44:56 +00:00
2026-08-17 11:44:56 +00:00
2026-08-24 14:37:48 +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-24 03:34:15 +00:00
2026-08-01 01:17:26 +00:00
2026-08-25 05:16:45 +00:00
2026-08-20 17:46:05 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-20 18:29:35 +00:00
2026-08-20 17:54:42 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-23 23:52:07 +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-20 08:10:08 +00:00
2026-08-25 05:16:45 +00:00
2026-08-23 06:10:44 +00:00
2026-07-23 19:19:35 +00:00
2026-08-13 00:00:16 +00:00
2026-08-20 17:46:05 +00:00
2026-08-13 00:00:16 +00:00
2026-08-20 05:42:20 +00:00
2026-08-25 17:20:37 +00:00
2026-08-25 17:27:04 +00:00
2026-08-21 15:24:56 +00:00
2026-08-20 17:46:05 +00:00
2026-08-25 16:00:02 +00:00
2026-08-23 06:10:44 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 17:46:05 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-25 13:59:52 +00:00
2026-08-23 23:38:12 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 19:19:41 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 17:46:05 +00:00
2026-08-13 19:25:05 +00:00
2026-08-20 17:46:05 +00:00
2026-08-24 22:51:36 +00:00
2026-08-20 19:43:54 +00:00
2026-08-25 05:16:45 +00:00
2026-08-10 19:26:52 +00:00
2026-08-13 00:00:16 +00:00
2026-08-20 17:46:05 +00:00
2026-08-23 06:10:44 +00:00
2026-08-14 01:23:59 +00:00
2026-08-13 00:00:16 +00:00
2026-08-21 03:31:56 +00:00
2026-08-24 17:29:21 +00:00
2026-08-20 18:29:35 +00:00
2026-08-20 06:29:32 +00:00