v0.2.9

livestorejs/livestorev0.2.9May 29, 2026by github-actions[bot]

AI Summary

This release focuses on configuration web UI enhancements, tool feedback improvements, and various bug fixes across multiple components including MQTT channel support and agent discovery features.

Key Highlights

  • Added MCP section to config web UI
  • Enhanced tool feedback with pretty_print and disable_escape_html defaults
  • Fixed stop_mqtt_channel functionality
  • Added support for file diff preview
  • Improved agent discovery prompt

New Features

  • MCP configuration section in web UI
  • Enhanced tool feedback with pretty printing and HTML escaping control
  • File diff preview functionality
  • Agent discovery prompt improvements
  • MQTT channel support
  • Fixed network error retry mechanism
  • Added Telegram media group support

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).