Eric Traut
118aae2a5f
Explain safety policy blocks with turn-scoped recourse in the TUI ( #57363 )
...
## What changed
- Handle `TurnModerationMetadata` for the active turn, showing a temporary block notice while an explanation is pending.
- Validate safety recourse metadata and render topic-specific explanations with safer ways to continue for biological and cybersecurity policy blocks. Apply the explanation only when the terminal policy error matches its domain; otherwise retain the existing error handling.
- Queue input while recourse is pending and preserve prepared images when queued messages are submitted.
## Testing
Add an integration test covering biological and cybersecurity blocks, the loading notice, and fallback for a mismatched policy error, plus a snapshot of the cybersecurity explanation. Extend queued-image coverage to verify submission succeeds after the original image file is removed.
GitOrigin-RevId: dd9ca57cf3b2d842e3deb8aff5d7c3c73a92e14d
2026-10-27 05:15:31 +00:00
..
2026-10-26 21:07:09 +00:00
2026-10-14 07:13:22 +00:00
2026-10-20 21:28:45 +00:00
2026-10-23 14:59:40 +00:00
2026-10-26 19:35:31 +00:00
2026-10-27 04:52:09 +00:00
2026-10-26 20:02:45 +00:00
2026-10-26 21:05:47 +00:00
2026-10-26 22:05:00 +00:00
2026-10-26 18:13:00 +00:00
2026-10-26 20:02:45 +00:00
2026-10-12 11:24:22 +00:00
2026-10-26 20:26:32 +00:00
2026-10-15 19:51:22 +00:00
2026-10-22 19:36:47 +00:00
2026-10-26 18:06:07 +00:00
2026-10-26 21:08:15 +00:00
2026-10-27 04:46:24 +00:00
2026-10-26 18:06:07 +00:00
2026-10-26 18:14:57 +00:00
2026-10-20 15:43:19 +00:00
2026-10-26 21:36:35 +00:00
2026-10-26 21:36:35 +00:00
2026-10-26 21:36:35 +00:00
2026-10-26 21:36:35 +00:00
2026-10-26 18:22:11 +00:00
2026-10-19 21:43:19 +00:00
2026-10-26 19:37:32 +00:00
2026-10-26 22:05:00 +00:00
2026-10-26 21:08:15 +00:00
2026-10-26 21:55:00 +00:00
2026-10-27 01:50:46 +00:00
2026-10-20 14:14:59 +00:00
2026-10-19 15:15:17 +00:00
2026-10-26 22:23:59 +00:00
2026-10-20 21:28:45 +00:00
2026-10-26 19:19:10 +00:00
2026-10-08 20:11:43 +00:00
2026-10-26 18:14:57 +00:00
2026-10-26 20:26:59 +00:00
2026-10-22 11:52:34 +00:00
2026-10-26 22:27:05 +00:00
2026-10-26 18:13:00 +00:00
2026-10-27 00:52:31 +00:00
2026-10-22 19:36:47 +00:00
2026-10-22 19:36:47 +00:00
2026-10-21 19:53:00 +00:00
2026-10-13 17:22:34 +00:00
2026-10-26 20:40:53 +00:00
2026-10-27 00:01:05 +00:00
2026-10-21 02:41:05 +00:00
2026-10-26 19:21:08 +00:00
2026-10-26 18:06:07 +00:00
2026-10-22 19:36:47 +00:00
2026-10-26 18:31:21 +00:00
2026-10-26 20:53:10 +00:00
2026-10-26 20:40:53 +00:00
2026-10-22 19:36:47 +00:00
2026-10-23 15:00:06 +00:00
2026-10-22 19:36:47 +00:00
2026-10-27 00:08:07 +00:00
2026-10-27 00:08:07 +00:00
2026-10-27 01:50:46 +00:00
2026-10-27 04:39:28 +00:00
2026-10-26 18:22:40 +00:00
2026-10-20 22:34:40 +00:00
2026-10-26 22:11:01 +00:00
2026-10-27 01:50:46 +00:00
2026-10-27 01:50:46 +00:00
2026-10-10 02:54:59 +00:00
2026-10-23 11:43:14 +00:00
2026-10-19 16:56:42 +00:00
2026-10-26 19:37:32 +00:00
2026-10-27 04:52:09 +00:00
2026-10-26 23:55:28 +00:00
2026-10-26 18:22:11 +00:00
2026-10-20 21:28:45 +00:00
2026-10-20 21:28:45 +00:00
2026-10-22 04:59:19 +00:00
2026-10-20 21:28:45 +00:00
2026-10-19 21:01:44 +00:00
2026-10-26 20:16:30 +00:00
2026-10-22 00:19:02 +00:00
2026-10-12 17:52:12 +00:00
2026-10-26 20:44:30 +00:00
2026-10-26 21:07:36 +00:00
2026-10-26 19:21:08 +00:00
2026-10-27 05:15:31 +00:00
2026-10-13 22:40:57 +00:00
2026-10-26 19:37:06 +00:00
2026-10-16 06:06:54 +00:00
2026-10-22 17:42:21 +00:00
2026-10-20 21:28:45 +00:00
2026-10-22 19:36:47 +00:00
2026-10-22 17:02:32 +00:00
2026-10-26 22:05:00 +00:00
2026-10-26 22:11:01 +00:00
2026-10-26 22:11:01 +00:00
2026-10-26 21:47:10 +00:00
2026-10-20 21:28:45 +00:00