New Features
* #3586051 Add a per-tool setting to restrict a tool from being called more than once per response

Tasks
* #3586052 Add test coverage for externally-driven execution (setLooped(FALSE))
* #3550160 Add note on structured output

Bugs
* #3586053 PHPUnit CI job fails (exit code 1) for every test class despite all assertions passing
* #3586061 Disable hostname filtering does not work when looping is off
* #3586067 AiAgentEntityWrapper::fromArray() fatals when the serialized chat history contains an image
* #3586066 Tool settings popup on agent edit form has no visible close/save button

Contributors:
akhil babu, joshua1234511, marcus_johansson, csakiistvan, ahmad-khalil-imagex, thebumik, abhisekmazumdar