v0.2.9

flowglad/flowgladv0.2.9May 29, 2026by github-actions[bot]

AI Summary

This update enhances the configuration web UI with an MCP section and improves backend capabilities by adding MQTT channel support and Bedrock streaming. It also introduces new tool feedback defaults and fixes for various providers including DeepSeek and Telegram.

Key Highlights

  • Added MCP section to config web UI
  • Added MQTT channel support
  • Added Bedrock streaming support
  • Added delegate tool feature
  • Added agent discovery prompt

New Features

  • MCP UI section
  • MQTT Channel
  • Bedrock streaming
  • Delegate tool
  • DeepSeek vision unsupported error handling
  • Pretty print and disable_escape_html tool feedback defaults

Full Release Notes

## Changelog
* f062cb41d70a5bfb05b06a5bbcc819b1bf129ca5 1
* 1055e082a427f8e055465cb64456e3271e038fba Add MCP section to config web UI (#2770)
* bdaff5cb693f2c5efbc0105c19d9c8459e7dab2c Add pretty_print and disable_escape_html to tool_feedback defaults
* 569939a7b37e15fd92a5549a44919f7c36308f06 Fix stop_mqtt_channel
* 2287de521e4709f1f6e40e58b5048fa56874f323 Linter fixed
* c731ecdc7409515e8349e5db258d5c48a4490d45 Merge branch 'main' into fix/gemini-mcp-schema-sanitization
* 6e6293e59694342bff8bc7799a13906556862c4c Merge pull request #2158 from afjcjsbx/feat/agent-discovery-prompt
* 01280eaa53c53131cf101523444edc3a3b498c66 Merge pull request #2413 from ex-takashima/refactor/line-sdk
* 658961b728a9a15a1125b87ab4d6a1b9deed3fbf Merge pull request #2531 from is-Xiaoen/feat/delegate-tool
* 306f96cfe3cef434fa724fa95f66afa1d8079a51 Merge pull request #2645 from loafoe/feat/bedrock-streaming
* 272dee3fcab0cc45385a0112c5e281f7ce2d802c Merge pull request #2669 from david1gp/fix/network-error-retry
* ba4abff4a4598623aa8e836ff743a4eb20ee6e78 Merge pull request #2670 from david1gp/fix/tool-feedback-pretty-print
* be67aed4dcc6e0b61f84cd15460659c56203c5c3 Merge pull request #2677 from alexhoshina/feat/runtime-events-plan
* 828a7cba70951e10b3f3439c09d8bee6949a4bf8 Merge pull request #2681 from afjcjsbx/fix/gemini-mcp-schema-sanitization
* f4a5d6e8082197aa33a9db3134bed3df700fe23e Merge pull request #2682 from dtapps/fix/docs-agent-defaults-model-format
* 8508f8060841db0bbdb913eb1c4e4c743e5b342e Merge pull request #2705 from hehaijunandhenry/main
* 490d90749cf4ad7b0c33cdb26f296372a570844e Merge pull request #2717 from LiusCraft/feat/deepseek-vision-unsupported-error
* 7dc78425d1b83e934b89114ee61658a0732cffa0 Merge pull request #2719 from loafoe/feat/slack-webhook-channel
* 5745957429be1440080c7b420cc553b23e41ced2 Merge pull request #2731 from sipeed/dependabot/go_modules/github.com/aws/aws-sdk-go-v2/service/bedrockruntime-1.50.6
* 4e8bd73a581b3b9b664645378d9ffd32d36b5abc Merge pull request #2735 from sipeed/dependabot/go_modules/github.com/aws/aws-sdk-go-v2/config-1.32.17
* f7d25c654676701d341946d50272ecdba6b5142c Merge pull request #2741 from lc6464/fix/deepseek-stream-reasoning-content
* 777269b429be0a8e300d54717180ee479b91b080 Merge pull request #2758 from bogdanovich/codex/telegram-media-groups
* 788cda5c7a81174befe1066337325399804ffee4 Merge pull request #2762 from afjcjsbx/feat/stop-command
* 71c49812ae9d128a989e80b99ba93fea0efe31aa Merge pull request #2764 from alexhoshina/main
* 0df050ff2ea0206625dedb033059c3e7e1d39179 Merge pull request #2766 from SiYue-ZO/docs/v3-config-format-sync
* eb4e18755024b00c1057093f589d52f84cff9cd5 Merge pull request #2767 from afjcjsbx/fix/leaf-summary-target-validation
* 0129da1c8e6523649eb2f4c84ab5ee230a93cab6 Merge pull request #2773 from zhangxinping666/codex/fix-telegram-svg-media
* 894c6251c56bc7da5bf256a28f1e954c2ff754a1 Merge pull request #2783 from zhangxinping666/codex/fix-reload-voice-media-store
* 2834db13de1f60734f1a4e2cbf508512912fa729 Merge pull request #2801 from sipeed/dependabot/go_modules/github.com/google/jsonschema-go-0.4.3
* 6817aa5311fedb762ea25e9a344d1c5c13355bdb Merge pull request #2811 from afjcjsbx/fix/mcp-streamable-http-support
* f571a142bf9038f3c6a6608c5e2cf705fa048f2b Merge pull request #2823 from bogdanovich/fix/parent-session-tool-feedback-cleanup
* af901617ac4d2b6ab06846c2c75683f4d0dfd4fe Merge pull request #2828 from bogdanovich/fix/queued-voice-followups
* eb0653074bb8c80a4558d19e65c8cc6da5761bea Merge pull request #2857 from afjcjsbx/feat/edit-file-diff-preview
* c62a9bf55b3a838371e7eb35ce0f7234bfd38bd1 Merge pull request #2862 from lc6464/fix/mimo-reasoning-history-replay
* 33f9d638626a2957891355b3703357a93dae7898 Merge pull request #2891 from SiYue-ZO/feat/factory-reset
* 87ee76b1174c70ae9da592149746417ca13f11e4 Merge remote-tracking branch 'origin/fix/gemini-mcp-schema-sanitization' into fix/gemini-mcp-schema-sanitization
* 188ee24d2e225683e39ae07ee1f43cdf7983b9dc Merge remote-tracking branch 'origin/main' into refactor/line-sdk
* 5b0c9e27082a712fa79f5912dd3994bf02dce490 Merge remote-tracking branch 'origin/main' into refactor/line-sdk
* e7c0dc821a095f859071af88a27e7e880834fdea Merge remote-tracking branch 'remotes/upstream/main'
* 6f6270b39dd76f4a72e43145908f79a815753916 Merge upstream/main into feat/agent-discovery-prompt
* 9f0f914ad73f9d4516b47e65ac997114d967d3c5 Merge upstream/main into feat/delegate-tool
* 5c0492900e885e446124a7a50e01257cc40ea646 add MQTT channel support
* 4ddd650be44d6e0ec4724437d0a16c64e6fa2d54 align ToolFeedbackConfig field spacing
* f4338d3aaba91f19abe4bc4dc7e09b580a79e285 build(deps): bump @tabler/icons-react in /web/frontend (#2806)
* e3a05bd36d235dfa0ddcc6379a545bbc2e98b8c9 build(deps): bump @tailwindcss/vite from 4.2.2 to 4.2.4 in /web/frontend (#2734)
* 00742b0196178ef9b06b2939912631e398e79575 build(deps): bump @tanstack/react-router in /web/frontend (#2733)
* d0ab5aed7a3e582443f0ada45c63a192c474605b build(deps): bump fyne.io/systray from 1.12.0 to 1.12.1 (#2803)
* eec4436e64518eda50b0cf5e5031a137fd6d5eb8 build(deps): bump github.com/adhocore/gronx from 1.19.6 to 1.19.7 (#2868)
* b792d8b77bd1cc440ec86ac4dbf7b0d166882d0c build(deps): bump github.com/aws/aws-sdk-go-v2/config
* 330aa297e2db1027805830d595c49e38380f8d4b build(deps): bump github.com/aws/aws-sdk-go-v2/service/bedrockruntime
* e948106d50fe8645af9e3c1d47b71f2e05d39dd9 build(deps): bump github.com/google/jsonschema-go from 0.4.2 to 0.4.3
* 0977f59feeeac74d8c2ba0bd9a97ad7958bfa62f build(deps): bump github.com/larksuite/oapi-sdk-go/v3 (#2736)
* 89631b86710d5cb5842deb920dd7ca6f46d336af build(deps): bump github.com/larksuite/oapi-sdk-go/v3 (#2864)
* 2f8429f57c4c85b1b11d2af4ff9675e75e74ddd2 build(deps): bump github.com/mymmrac/telego from 1.8.0 to 1.9.0 (#2866)
* dc41c9c5663e1be23ad76ab180d9ce3796aaed64 build(deps): bump golang.org/x/net from 0.53.0 to 0.54.0 (#2867)
* 0419497c72fd7f6130e20cbec4f62083c28a8146 build(deps): bump i18next from 26.0.7 to 26.0.8 in /web/frontend (#2732)
* 3788e9edad4757e7c60ba2341746db4d99e6c001 build(deps): bump i18next from 26.0.8 to 26.0.10 in /web/frontend (#2809)
* 8ab455171c3068cd3e725be2ca94dfe8c5a39f74 build(deps): bump jotai from 2.19.1 to 2.20.0 in /web/frontend (#2869)
* 4db116896217c8e1237e6b37d2c9bfaa03c1f621 build(deps): bump modernc.org/sqlite from 1.48.2 to 1.50.1 (#2863)
* c2044e5a2c51276714ef6561c7c55e74aad53880 build(deps): bump react-i18next from 17.0.4 to 17.0.6 in /web/frontend (#2808)
* b7edd35d132579df84af78f6d77003060f74239d build(deps): bump shadcn from 4.3.0 to 4.7.0 in /web/frontend (#2804)
* c0bc8a3f9dc8489f0ed2c5720b3ddcab1daa295e build(deps): bump tailwindcss from 4.2.2 to 4.2.4 in /web/frontend (#2729)
* 215d98aa7835e2d7d65ac14d314ec028599bd623 build(deps): bump tailwindcss from 4.2.4 to 4.3.0 in /web/frontend (#2872)
* b225629af8aee699298d7e9c99f306f5d4f737c6 build(deps): update @tailwindcss/vite to 4.3.0 (#2876)
* 7c8cd7c66a5ec277327010cb016f204daa6d7190 build(deps-dev): bump globals from 17.5.0 to 17.6.0 in /web/frontend (#2807)
* a4abbf62e2707ee05df66b762201000bbc1cc547 build(deps-dev): bump prettier-plugin-tailwindcss in /web/frontend (#2870)
* 864bfa1cef054254a3c502615d113d087eef48ed build(deps-dev): bump typescript-eslint in /web/frontend (#2730)
* dab8391344e66306eaa0a23b37b5fea02f40c641 build(deps-dev): bump typescript-eslint in /web/frontend (#2871)
* d8385ce0a7764e0e41d049a05bb667bdc8f548b5 build(deps-dev): bump vite from 8.0.10 to 8.0.13 in /web/frontend (#2865)
* 1c25dcd239956a2d2bc6bd4bf49f4418ed847edc build(go): bump Go to 1.25.10 to fix stdlib vulnerabilities (#2818)
* 32c8b8ce6ae523f8ee29e50c99fd68f735240fd4 chore(config): add default values for max_llm_retries and llm_retry_backoff_secs
* 07748bf076adc564c51a98e360be6303efba6ba4 chore: revert unrelated golines formatting
* a94ba8218186b7d0e1202d2bf137c0059399fa34 chore: update WeChat group QR code (#2747)
* bfb2b35f742451152bce331c8204c6d86f3339c6 chore: update slack-go to v0.23.1 (#2875)
* ffe091d8b2ebbd8fc897c8af4faa611c37faf098 docs(cli): mention streamable-http in mcp add transport help
* fce800414dd4d608123ac525ea89866c7c95ee59 docs(events): align hook design with runtime observation
* f4a24614b88c4a574aaf2983c32a27ea9d605d25 docs(events): remove stale subturn event names
* 0ac8703e0fe1a96a19332c53c6819b65740c4b1e docs(tests): document integration test strategy
* c47f5fd2c43f7d797f4004019e65fea720d75681 feat(agent): add TargetAgentID to SubTurnConfig for cross-agent delegation
* 3b173c0beee1232472b1e0593b14d3988b47661d feat(agent): add multi-agent discovery prompt and per-agent
* 06fad9571959df0d908c8a7dc48d70b3c39a3326 feat(agent): add network error retry with configurable max retries and backoff
* bcc3d447a188114a19c7f900be013e578b95d3c9 feat(agent): add pretty_print and disable_escape_html options for tool feedback
* a0245c7b02e3828fab780c6ff5bdea221a291fd6 feat(agent): stop command
* f3ef7090c5d40b463cf1730132b770c1039daca9 feat(agent): stop command
* 039f35563e6222da0acac3a1dada2f27e6174bec feat(agent): wire delegate tool registration for multi-agent setups
* f53222f6a4c0d1cf78fa053d5df5978c022bbb5a feat(api): add POST /api/config/reset endpoint
* ad5232ade8035012facaab0f3fae5bb2406d8599 feat(bedrock): implement StreamingProvider for real-time token streaming
* b12f03be2e4c43803af0c8dbd5339078333e23c9 feat(channels): add slack_webhook channel
* 789f907f6ddaa92e8c35895d924895ba54ef9aa0 feat(chat): add independent code block copy and collapse controls (#2882)
* b7db0595441d1f725cd4ace994a9936e08557337 feat(chat,seahorse): persist and display model_name across history (#2897)
* d61902d42a1b7c4ec350ace4c7e280e58a9c7e2f feat(config): add ResetToDefaults and CLI `config reset` command
* b3d9f86a01e634cc0afa5b6d95520ac01dd29fc4 feat(events): add configurable runtime event logging
* eedebabbeabfb616b919297354434baf2b8c2f6c feat(events): add runtime event bus
* 8caf9aeb2b3ffb97dd7f554f7b11b284f3b04116 feat(events): publish runtime service events
* 3f653161e33e6e1ef9d1a6b50f2fc91b527f123c feat(frontend): add factory reset button with confirmation dialog
* e613258fa5655a2c5d9eb75cd1006005dc7cdcee feat(gateway): publish lifecycle runtime events
* 96621eff211d96b378629a4a019e1786c8bdd7cb feat(i18n): add Portuguese (Brazil) locale (#2037)
* 57876248e23724ef2fcbecac38a520fe0963aa7b feat(provider): add SiliconFlow provider support (#2885)
* 5bbebb5fc817ba721226794a8b1583425621c6a0 feat(provider): add gpt4free openai-compatible provider (#2909)
* 81a050555d8f6b960e8f2c1df69e1daf75c2b856 feat(provider,web,asr): enhance model management with explicit provider metadata (#2701)
* 794eb04f320a64a900331fd18d2c2803486735ad feat(providers): add gemini web search provider (#2763)
* cd7717bc155a440c06d42dad4c1b9c4aaed1d83b feat(tool): tool schema semplification
* 484ef399f1bcb77cb80cfb77feee784a4afa1b66 feat(tools): add delegate tool for synchronous cross-agent task handoff
* 4a81f0e740a7c58b25e1dc081aae1521147f6a1f feat(tools): show unified diff for edit_file edits
* 941bac2332cf1cf1ed42f6410edfc902800d86e2 feat(web): add chat detail visibility selector (#2886)
* f6190b54de244134aabf7040facafcf28330726b feat(web,api): fetch models and saved catalog support (#2832)
* d2c0b69243a16da6386130f78bec7187d225167f feat(web,api): provider selection and model form foundation (#2831)
* 604187e3125703fdcc8ebbd7e1b62acb74fc30a8 feat(web,api): test connection with real connectivity verification (#2833)
* 1722cfc28222f5259a717a52aaeb63b0a44c1a5c feat: add DeepSeek vision unsupported error detection
* 2992eccbf03e54258a6889cf19a5a4fe6255895f feat: add request-scoped context policies (#2914)
* b3a7b7ad649e241fd25b69496854bef053ad8395 feat: agent self evolution (#2847)
* 639b32703a304ce3b8ba7df7c00cacd04d525bad feat: support streaming (#2892)
* 97b1c3efecc2d5f9050566f4e15596263a743ff7 fix duplicate toolFeedbackArgsPreview function declaration
* bca131909d52d814a6e149a60ad178c7af79debd fix lint
* ec21ddc22231556d7107e860262cd2e1968cba05 fix lint
* 4eeb69688e6dffbb4e26c3ca015ce51ee7a0c145 fix lint
* 4d6337fd262a8915fad272b5369cffaf39f3819c fix runtime event logger reload and shutdown
* 09d3dff4322c24a361ac9d1307d5344436358fe6 fix telegram media group album handling
* 7a1f5fe8b9d86804922584f3246899dffb51ffd4 fix test
* 23df824c776334317aae2cbcf9c6ff3a26695fe2 fix test
* 7b3e8004078b66e91eaa4c19eb1a3fa3980a6134 fix test
* e0370aafcc5df79c5345b48af79537d254cf16ac fix test
* 9bc702ebaf5570fd10e16b87b2d683d1e2cd93b6 fix test: enable pretty_print in tool feedback test
* dd8e247550b62eb6b9b974b1fed5e92eba1fc343 fix(agent): align MCP prompt registration with tool allowlist
* 610e9e3fe8c012ff2a66dba657697b446e759d51 fix(agent): dismiss session tool feedback on skipped outbound
* d63430ab33ef1f0cd30c29431f42127715ba10bb fix(agent): don't arm pending stop when /stop targets idle session
* a7e52e8a25341027fa1b03f866dc89194a71a9f9 fix(agent): drain scoped follow-up queue when pending stop skips turn startup
* 409251e69dd4f1465c6cf43c6d3607afe0850cd3 fix(agent): fail closed on invalid AGENT frontmatter
* abeb2d8e0a3023c245d84e65baec0b8492ee1add fix(agent): fall back to first AGENT line for discovery
* b8f4257ceefbc798abd6d7fc86c18f11bb78e734 fix(agent): filter discovery by spawn permissions
* 148583e7bb211349075b788c36773da328f8f636 fix(agent): hide discovery when spawn is unavailable
* e7e21df354cfd3137acb85b2e922b85bb8fe6980 fix(agent): honor explicit thinking off (#2898)
* f5f1dc980868e6a88fa3a95e5c4a26cd0db66676 fix(agent): load only allowed MCP servers
* 96fd887cad4bf2b49a8c54121c8779f8b621512e fix(agent): match MCP server allowlists case-insensitively
* 38baf1ccd0ef0f357653747d27519476ff18e26b fix(agent): normalize nil args and improve error handling in FormatArgsJSON
* e1ed47b0ffdbfad9452561005e874ff4638d6962 fix(agent): remove unused scheduled helper
* ffa184d18328a77ed1d321374052f133dd718635 fix(agent): resolve primary provider from frontmatter model
* d601b752681028ea20fba95763d0d698d3f686d0 fix(agent): send SVG attachments as files
* c6a09a35e23ded5bcba79b5af3445f6e04f8b0fe fix(agent): suppress MCP discovery when no servers are selectable
* 836220363154452217f7555c1c02c74e24b8384b fix(agent): transcribe queued voice follow-ups
* 2ae25b10389b1608a01c2c5cda964af20c6d6837 fix(agent): treat empty AGENT.md tools as allow none
* 057683d94ce998729e5e98b29ca1900c593e3120 fix(agent): use runtime event kind for LLM retry
* 27bd816b1c832fdfae662c64842cfdb183e02d14 fix(agent): validate AGENT tool declarations from registry
* 765a165475b77e6744631533badb6de170c17f99 fix(agent): warn on unknown frontmatter capabilities
* 703f630f33b2f635d2dfdce4baf3c649ffec18a6 fix(ci): define golang image and volumes for integration-runner
* 6dd30a0c772ad6ee9a0bf0256d3b4b86c836def1 fix(ci): ensure go binary resolution and correct command execution
* 612097b41139a6a78bb3d44aa5cf031d21d786be fix(config): align gci formatting for LLM retry fields
* d2f6a089818dd3207f8007f9af471dd59f5a8eca fix(config): align gci formatting for MaxLLMRetries field
* 1b2f8aac7998a72c51d2081941fdebf7349a7fc5 fix(config): align indentation for new LLM retry default fields
* f0dc709b17de4e358e36327992346e5ee963427a fix(config): fix golines max-len for MaxLLMRetries field
* 68e572f9697a692072b01bfb3811cea7c0fdde28 fix(config): make load_image configurable (#2879)
* d5c8bfffbcdd3e0f0c2c5c7b5436afc4b8c7ede4 fix(docs): correct Baidu Search free tier from 1000/day to 1500/month (#2784) (#2825)
* 78fd080189cdaab14861a41273fc5e0cc6d1cf43 fix(events): keep runtime observers non-blocking
* 91f024eb1d6cb45397d2174f2e0f6b96c4b73163 fix(gateway): keep media store aligned after reload
* f55d7a0598142c09e8c3745af989292039c31a35 fix(i18n): sync locale strings for model provider UI (#2911)
* ffb82437217c9b66026291e51302570b9d957d9e fix(integration): docker runner workspace mounts and go command path
* 4edbc73b640d254967db356a8fc3ec72ee693002 fix(integration): execute suite commands directly in docker runner
* 6d7d1b09096a7da43dfa759950fbcf689716f297 fix(line): capture QuoteToken for all message types and handle location
* 9b7fc7aa6cd805f1e52420bbbeebaf6028b8b1c2 fix(line): classify SDK errors with HTTP status and add client timeout
* ad78ba06ea60df10e643b6cc771af58d98ef5955 fix(line): close HTTP response body from WithHttpInfo calls
* bacb9aba7cfa2c0afb9c013a9155e3a314a0e9de fix(line): close response body on successful SendMedia calls
* ffc8bdba367510749ae06be3e35fe6972c7fa79c fix(mcp): normalize streamable-http before config validation
* 1ff8a418f65e36b46c39e3338568ec2e1f0baca7 fix(mcp): sanitize MCP tool schemas for Gemini function calling
* 6e8590900b99fb4b05ee34ad8adfdfa964580a6b fix(mcp): support streamable HTTP alias and request-response mode
* 6ae7dc38b93795d455f9a67dddf7fd5a5ad74531 fix(openai_compat): align MiMo reasoning replay with DeepSeek
* 10f4466a7e53ca057be42271bff1786fcdf94aba fix(openai_compat): parse SSE events and reasoning variants in streams
* b00ff5bc5d8f5ce7449f44bc5ff335b99b9cbf02 fix(openai_compat): parse reasoning_content in streaming responses
* 412705783d20919d065e59b6051a4c42db7f9945 fix(pico): preserve image media across pico attachments and client (#2874)
* cb5d33124c0c9fe90e9b7253a282b4d4a249ed91 fix(powershell):  windows security enhancement, sec deny  powershell encoding bypass   via iex inje… (#2836)
* 7a8d7fb2181c8e8b6724a710de9e3f8543e6885f fix(scripts): allow command expansion in integration runner
* a1b55fd4f9c0f4bfc31230f0c761423fd5958f85 fix(seahorse): enforce target token thresholds for leaf summaries
* 6801cc7ab8971019c0385e30470077f4307f4b1c fix(telegram): wrap long voice media append
* 131f33f084c0ebf3abae96d6aed97dd9d4ca3ea9 fix(tests): add t.Parallel() to mcp streamable subtests
* 87048499fff62fd8249948c09aa2655bedf47a46 fix(tools) diff preview for files without trailing newline
* 56cca3f12fb0c462e9e83f51beabcd56d916c147 fix(tools) limit edit diff preview size for user and model
* 871892ff15b2d3e627ea0e73d3de5c1ac97e6bbb fix(tools): exempt MCP discovery tools from agent allowlists
* df486b99393cf9e69550b2f4406938977a5f7b2b fix(tools): normalize agent_id before self-check and delegation
* 30938df40b89e147a697c941fad38d731557c306 fix(web): use stored API key when fetching models for saved providers (#2910)
* 4d3070e849620c543bf8c2b06dc0e6552908801f fix(web): 兼容 HTTP 环境复制按钮 (#2712)
* e656ddf5bbe8fa197c31ec310c019f14932585cb fix: align struct tag spacing in AgentDefaults config
* 8dca2a13195fc5fc6bb3546914e12061dada4cd0 fix: improve error handling and nil consistency in FormatArgsJSON
* 847218ef29a6bae4d44bceb6a1d95044ab2f9c57 refactor(agent): added mcp allowlist
* 0ef25f779e1e61cb1211b690d968771b9c41a089 refactor(agent): move delegation details out of discovery prompt
* 6ee66123f22f96eb273fb4b247855bbe1d7ade89 refactor(agent): simplify delegate registration gate
* 6429f6af9a63e0ffc6c5cfc6e602e1abe9adf80c refactor(agent): source discovery identity from AGENT.md frontmatter
* 795ee362ead99924e600618c6509b980494c698e refactor(events): emit agent runtime events directly
* b954e6b8dc26dca2e7b460320ebf845d06bccdc6 refactor(events): remove legacy agent event bus
* b2249df3eae0b3b21fe9456d75d1f7ff6a517864 refactor(events): split agent event payload types
* d9717b5632a8858f0c69919fbf4b304296d4adfa refactor(events): start runtime event consumer migration
* fe51cd504fac4b49904942a75839a7a5aa73f146 refactor(line): use official LINE Bot SDK v8
* 548dc15acdd2f87f18ec445bb9bc0ff874863df0 refactor(models): unify provider metadata around backend catalog (#2896)
* f1f6e1131b0bdc1e62e3d0abf245f8b9487acf47 removed unused code
* 41d6156dce2e875aba3986c02bfdf16505d7e365 style(line): shorten long line for golines linter
* 3c4523e7aaeb969d2530f4cb812219c32b65c946 test(agent): add unit tests for network error retry backoff strategy
* a34120b8219eb342846c538b5ddb4c0e59a095c7 test(agent): assert child turn uses target agent model
* a3edbcd05e37ba7c55fba2a81b104cd22f5afabb test(agent): satisfy lint for tool feedback cleanup
* c8335bfd47c83401c674b7fa7f772d7a4a17aabe test(agent): verify TargetAgentID resolves to correct agent instance
* b03fa6176429ec5c81fca93c7818aa9dea6f308b test(bedrock): add unit tests for ChatStream/parseStreamResponse
* dc80e8f5f20662a9f8d0587b6f89bf04bf87b541 test(events): migrate agent tests to runtime events
* 6e8a81bfbf2ec680fe028dd4ed45dc9bcd4ec5d5 test(events): prefer runtime hook observation
* 0ff78fa53f453a31a665a079076db7da8b5d72e5 test(tools): add delegate tool unit tests
* 6db17b8211a99c070294437e8fca03a4ddcd0269 test(tools): verify normalization prevents self-delegation bypass
* fc89fea319bb8d8cde70ea488965836edf0caac8 test(utils): add unit tests for FormatArgsJSON


---
Released by [GoReleaser](https://github.com/goreleaser/goreleaser).