| ## Summary | |
| <!-- The problem this solves and the outcome it produces. If the approach | |
| is not the obvious one, say why. --> | |
| Fixes # | |
| <!-- Delete the line above if this PR closes no issue. Use "Refs #N" instead | |
| when an issue is context only. --> | |
| ## Verification | |
| <!-- The checks you actually ran and their results. Name relevant checks | |
| you did not run. For user-visible changes, attach the lightest evidence | |
| that demonstrates the behavior (screenshot, recording, or command output). --> | |
| <!-- | |
| Add a section only when it changes how this PR should be reviewed, | |
| released, or operated, and name it after the real risk: e.g. | |
| Breaking change, Migration, Rollout, Root cause, Security, Review focus. | |
| If work intentionally remains, open as a draft and track it with a | |
| task list under its own section. | |
| --> | |
| ## AI use | |
| Select exactly one: | |
| - [ ] No generative tool made a substantive contribution | |
| - [ ] Generative tooling made a substantive contribution | |
| <!-- If the second option applies, name the tool(s) and briefly describe their | |
| scope. If AI authored material contribution content, add Generated-by trailers | |
| to the affected commits and ensure the final squash commit retains the trailer. --> | |
| Tool(s) and scope: | |
| ## Checklist | |
| - [ ] Tests cover the change and fail without it | |
| - [ ] Lint, format, typecheck and the affected suites pass locally | |
| Does this PR entail a change in behavior? | |
| - [ ] Yes — described under Summary above | |
| - [ ] No |