Changelog
- [14a28a] docs: note that workspace config files are hot-reloaded (#1747)
- [2fec24] refactor(agent): improve SubTurn error handling and logging
- [329322] Add configurable logger
- [92b768] Add configurable logger
- [647071] Add default value for config
- [f35516] Add default value for config
- [f79469] Add model-native search (prefer_native) for OpenAI/Codex (#1618)
- [b24c57] Add security config to ExtraBody round-trip test
- [be6bf9] Add virtual model support for multi-key expansion
- [e05d26] Added tests to verify SubTurn context cancellation behavior when parent finishes early - identified need for Critical+heartbeat+timeout mechanism.
- [9d761b] Delete .claude/settings.json
- [009a8d] Feat/feishu card parsing (#1534)
- [899558] Feat/issue 1218 agent md context structure (#1705)
- [b23a6b] Feat/move weixin login to auth and update docs (#1945)
- [828971] Feat/qq local file upload (#1722)
- [75d867] Feat/wecom aibot processing message config (#1785)
- [dd8279] Feat/weixin openclaw port (#1873)
- [75270c] Fix 1886 media cleanup policy (#1887)
- [d4e56b] Fix lint
- [6bd8fe] Fix security config precedence during migration (#1984)
- [073ae4] Fix spelling
- [e3cc5b] Fix the limitation on the number of tables in cards caused by Feishu (#1736)
- [8b6cbd] Fix: Prevent security.yml from being overwritten during config migration (#1966)
- [9a25fa] Implement the latest long-connection mode for the WeCom AI Bot. (#1295)
- [0459de] Initial plan
- [4c8526] Merge branch 'feat-configurable-logger' of https://github.com/kunalk16/picoclaw into feat-configurable-logger
- [7767fe] Merge branch 'feat/provider-extra-body-config' of github.com:uiYzzi/picoclaw into feat/provider-extra-body-config
- [02393b] Merge branch 'feat/provider-extra-body-config' of github.com:uiYzzi/picoclaw into feat/provider-extra-body-config
- [3791f0] Merge branch 'main' into feat/markdown-output-format-web-fetch
- [13d480] Merge branch 'main' into feat/markdown-output-format-web-fetch
- [9835e8] Merge branch 'main' into feat/markdown-output-format-web-fetch
- [6a5a4a] Merge branch 'main' into feat/provider-extra-body-config
- [d3ba40] Merge branch 'main' into feat/skill-channel-commands
- [583c58] Merge branch 'main' into feat/subturn-poc
- [4f646e] Merge branch 'main' into feat/subturn-poc
- [4398e3] Merge branch 'main' into fix-doc
- [317c70] Merge branch 'main' into fix/1323-telegram-endless-typing
- [fddfd5] Merge branch 'main' into fix/binary-tool-output-handling
- [14a498] Merge branch 'main' into fix/binary-tool-output-handling
- [5a8aab] Merge branch 'main' into version
- [cfd3a1] Merge branch 'main' into version
- [36f9d2] Merge branch 'main' into version
- [7c854f] Merge branch 'main' into version
- [94fcb2] Merge branch 'main' into version
- [284ced] Merge branch 'main' into version
- [927958] Merge branch 'main' into version
- [7bf483] Merge branch 'main' into version
- [650827] Merge branch 'main' of https://github.com/sipeed/picoclaw into feat-configurable-logger
- [849008] Merge branch 'main' of https://github.com/sipeed/picoclaw into feat-configurable-logger
- [7ba868] Merge branch 'refactor/agent' into feat/subturn-poc
- [c732e6] Merge branch 'upstream-main' into feat/subturn-poc
- [532ea4] Merge branch 'upstream-main' into feat/subturn-poc
- [1bd144] Merge branch 'upstream-main' into feat/subturn-poc
- [54889f] Merge branch 'upstream-main' into feat/subturn-poc
- [c18d8a] Merge branch 'upstream-main' into feat/subturn-poc
- [24d6cb] Merge branch 'upstream-main' into feat/subturn-poc
- [431a53] Merge branch 'upstream-main' into feat/subturn-poc
- [e801cc] Merge branch 'upstream-main' into feat/subturn-poc
- [cff906] Merge pull request [#1352] from cytown/version
- [bd4317] Merge pull request [#1390] from kiannidev/fix/1323-telegram-endless-typing
- [74f2a1] Merge pull request [#1479] from securityguy/fix/claude-cli-error-surfacing
- [5e92a3] Merge pull request [#1490] from is-Xiaoen/refactor/context-boundary
- [79b056] Merge pull request [#1536] from alexhoshina/fix/allow-picoclaw-media-tempdir
- [dfafdf] Merge pull request [#1570] from alexhoshina/fix/cron-deliver-default-false
- [c0bb8d] Merge pull request [#1617] from yzxlr/codex/fix-1561-heartbeat-template-idle
- [cefa14] Merge pull request [#1622] from afjcjsbx/feat/markdown-output-format-web-fetch
- [729a87] Merge pull request [#1636] from lppp04808/feat/subturn-poc
- [f90121] Merge pull request [#1640] from argobell/main
- [2f6144] Merge pull request [#1645] from dimonb/fix/mask-bot-tokens-in-logger
- [8a8cc3] Merge pull request [#1663] from hyperwd/fix/glm-nil-input
- [11a7ee] Merge pull request [#1690] from Alix-007/docs/issue-529-exec-guard-limitations
- [513537] Merge pull request [#1702] from Alix-007/fix/issue-1153-model-round-robin-cleanbase
- [7bf12c] Merge pull request [#1710] from liuy/fix/cron-test-subscribe-outbound
- [8a188c] Merge pull request [#1759] from afjcjsbx/docs/add-italian-language
- [7a47d7] Merge pull request [#1782] from biisal/chore/docker-data-in-gitignore
- [71ce21] Merge pull request [#1798] from sipeed/dependabot/github_actions/goreleaser/goreleaser-action-7
- [ffe028] Merge pull request [#1799] from sipeed/dependabot/github_actions/docker/setup-qemu-action-4
- [100720] Merge pull request [#1818] from Alix-007/fix/issue-1815-empty-response-message
- [54de9a] Merge pull request [#1822] from alexhoshina/feat/agent-eventbus
- [73a683] Merge pull request [#1827] from alexhoshina/refactor/agent-loop
- [75cfee] Merge pull request [#1832] from taorye/main
- [04def0] Merge pull request [#1844] from afjcjsbx/fix/scope-steering
- [931eee] Merge pull request [#1853] from kunalk16/feat-configurable-logger
- [e6ea9c] Merge pull request [#1855] from badgerbees/fix/telegram-group-id-validation
- [910774] Merge pull request [#1857] from lc6464/main
- [528646] Merge pull request [#1861] from amirmamaghani/feat/agent-browser-skill-heavy-dockerfile
- [0432fa] Merge pull request [#1863] from alexhoshina/feat/hook-manager
- [3cd674] Merge pull request [#1865] from sipeed/revert-1752-feat/exec-tool-enhancement
- [3a6189] Merge pull request [#1875] from BeaconCat/docs/readme-restructure-v2
- [e7ee80] Merge pull request [#1878] from uiYzzi/feat/provider-extra-body-config
- [2f6f25] Merge pull request [#1882] from lc6464/frontend-fix
- [809aef] Merge pull request [#1885] from alexhoshina/fix-1884-qq-long-audio-file-fallback
- [2a0efb] Merge pull request [#1889] from afjcjsbx/fix/binary-tool-output-handling
- [350008] Merge pull request [#1891] from RussellLuo/audio-transcription
- [054b55] Merge pull request [#1893] from afjcjsbx/feat/skill-channel-commands
- [4d84bd] Merge pull request [#1894] from sipeed/refactor/agent
- [2c48cd] Merge pull request [#1907] from xiwuqi/wuxi/fix-reasoning-channel-content
- [c32856] Merge pull request [#1918] from cytown/panic
- [96e312] Merge pull request [#1926] from cytown/fix
- [405719] Merge pull request [#1930] from uiYzzi/feat/filter-sensitive-data-from-tool-results
- [69cf93] Merge pull request [#1938] from huaaudio/fix/weixin-load
- [3d2097] Merge pull request [#1948] from cytown/fix-doc
- [1b9445] Merge pull request [#1955] from alexhoshina/refactor/wecom
- [ff50ff] Merge pull request [#1962] from wj-xiao/fix/configure-pico-channel
- [8da063] Merge pull request [#1976] from alexhoshina/refactor/wecom
- [eee74f] Merge pull request [#1977] from uiYzzi/fix/virtual-models-bug
- [aa9bd6] Merge pull request [#1985] from wj-xiao/refactor/split-systray
- [5f50ae] Merge pull request [#1997] from wj-xiao/fix/freebsd-build
- [440bc2] Merge remote branch fix/1323-telegram-endless-typing
- [e00a3d] Merge upstream/main into feat/subturn-poc
- [310358] Merge upstream/main into fix/1323-telegram-endless-typing
- [608ec6] Move minimax reasoning_split injection to provider factory
- [53c6dd] Move minimax reasoning_split injection to provider factory
- [de0364] Move minimax reasoning_split injection to provider factory
- [998b45] Remove UI components and gateway management for picoclaw-launcher-tui
- [12c013] Remove redundant Darwin tray stub (#1694)
- [ebcd56] Revert "feat(tools): add exec tool enhancement with background execution and …"
- [cf80ec] Update config_test.go
- [b6c5f5] Update qrcode of wechat group (#1744)
- [d1d215] Use ModelName instead of Model in test config structs
- [79df93] Use getter/setter methods for API key access in ModelConfig
- [2d9517] Use getter/setter methods for API key access in ModelConfig
- [fa5ab7] WeChat Web QR Code Integration (#1961)
- [e41423] add systray ui for all platform (#1649)
- [7359b2] add testcase for migrate from v0 to v1
- [d921bb] bug fix for security initial cause can't save model in launcher (#1952)
- [afe22c] bug fix: gateway should not start when gateway server is not running (#1562)
- [0499cd] build: use WEB_GO for web targets and preserve backend dist directory (#1671)
- [40279c] chore(config): move loglevel settings under gateway (#1912)
- [77d0c6] chore(deps): bump @tabler/icons-react in /web/frontend (#1803)
- [4178b2] chore(deps): bump @tanstack/react-router in /web/frontend (#1609)
- [68d182] chore(deps): bump Go toolchain to 1.25.8 for stdlib security fixes (#1821)
- [f247c3] chore(deps): bump actions/setup-go from 5 to 6 (#1600)
- [44ac30] chore(deps): bump actions/setup-node from 4 to 6 (#1597)
- [99304d] chore(deps): bump dayjs from 1.11.19 to 1.11.20 in /web/frontend (#1608)
- [b7b8d1] chore(deps): bump docker/build-push-action from 6 to 7 (#1602)
- [0c94e6] chore(deps): bump docker/login-action from 3 to 4 (#1604)
- [4d4243] chore(deps): bump docker/setup-buildx-action from 3 to 4 (#1595)
- [876898] chore(deps): bump docker/setup-qemu-action from 3 to 4
- [2f40a8] chore(deps): bump github.com/anthropics/anthropic-sdk-go (#1601)
- [e9d240] chore(deps): bump github.com/caarlos0/env/v11 from 11.3.1 to 11.4.0 (#1599)
- [80d9a9] chore(deps): bump github.com/ergochat/irc-go from 0.5.0 to 0.6.0 (#1800)
- [43eb6f] chore(deps): bump github.com/github/copilot-sdk/go from 0.1.23 to 0.1.32 (#1603)
- [dd9363] chore(deps): bump github.com/mymmrac/telego from 1.6.0 to 1.7.0 (#1598)
- [45c01f] chore(deps): bump golang.org/x/oauth2 from 0.35.0 to 0.36.0 (#1596)
- [5ada0d] chore(deps): bump goreleaser/goreleaser-action from 6 to 7
- [b8dfd0] chore(deps): bump jotai from 2.18.0 to 2.18.1 in /web/frontend (#1605)
- [c9ac19] chore(deps): bump maunium.net/go/mautrix from 0.26.3 to 0.26.4 (#1805)
- [3bf8a2] chore(deps): bump react-i18next from 16.5.4 to 16.5.8 in /web/frontend (#1607)
- [1fd6dd] chore(deps): bump shadcn from 4.0.5 to 4.0.8 in /web/frontend (#1808)
- [cff85c] chore(deps): bump tailwindcss from 4.2.1 to 4.2.2 in /web/frontend (#1809)
- [bda18f] chore(deps): upgrade eslint dependency chain to resolve flatted vulnerability (#1820)
- [fe8737] chore(deps): upgrade modelcontextprotocol go-sdk to v1.4.1 for security fixes (#1823)
- [736baf] chore(deps-dev): bump @types/node in /web/frontend (#1806)
- [a93bd0] chore(deps-dev): bump @vitejs/plugin-react in /web/frontend (#1606)
- [8a488e] chore(deps-dev): bump typescript-eslint in /web/frontend (#1807)
- [ee03d1] chore(tui): add build target for picoclaw-launcher TUI and create README for TUI launcher (#1995)
- [c80659] chore(web): upgrade eslint deps to resolve flatted vulnerability (#1629)
- [41ebe1] chore: Ignore the
docker/datadirectory. - [77d471] config: add baidu_search example to config.example.json (#1990)
- [08259d] docs(agent-refactor): add context.md for Track 6 boundary clarification
- [da1fdd] docs(exec): document build tool guard limitation
- [6148cc] docs(feishu): note that Feishu channel does not support 32-bit devices (#1851)
- [9978c9] docs(hooks): inline and translate hook examples
- [5790d3] docs(it): add model command to CLI Reference
- [7f1636] docs(matrix): Update docs
- [92678d] docs(voice): Update docs for audio-transcription
- [94fe54] docs(wecom): align docs with unified channel
- [b0bcf1] docs(wecom): update examples and docs
- [1236dd] feat(agent): add concurrency semaphore and hard abort for SubTurn
- [337e43] feat(agent): add configurable hook mounting
- [af61d0] feat(agent): add event bus foundation
- [cf68c9] feat(agent): add hook manager foundation
- [acd436] feat(agent): add session state rollback on hard abort
- [0e075f] feat(agent): centralize turn lifecycle and continue queued steering
- [57cde7] feat(agent): expand event bus coverage
- [777230] feat(agent): implement /subagents command and fix sub-turn observability
- [f8defe] feat(agent): implement graceful finish vs hard abort for SubTurn lifecycle
- [c639e2] feat(agent): include current sender in dynamic context (#1696)
- [50cc71] feat(agent): make event logs show event kind clearly
- [ae2319] feat(agent): port subturn PoC to refactor/agent branch
- [021aa7] feat(agent): steering (#1517)
- [ceeae1] feat(agent): wire SubTurn into AgentLoop and Spawn Tool
- [e760cb] feat(auth): add wecom cli qr login
- [adf1a5] feat(config): add command pattern detection tool in exec settings (#1971)
- [7b9fda] feat(config): add exec controls and gate cron commands on exec settings (#1685)
- [e35906] feat(config): expose context_window in example config and web UI
- [e73d9d] feat(config): support multiple API keys for failover (#1707)
- [2f10b4] feat(credential): part1 add AES-GCM encryption, SecureStore, and onboard ke… (#1521)
- [f77661] feat(cron): refactor scheduler to event-driven model and add unit tests (#1313)
- [9381da] feat(matrix): support encrypted messages with E2EE
- [fab960] feat(matrix): support encrypted messages with E2EE
- [a4b5a9] feat(mcp): per server deferred mode (#1654)
- [3b3062] feat(models): add extra_body config field in model add/edit UI (#1969)
- [544940] feat(pico): add pico_client outbound WebSocket channel (#1198)
- [9a3ca8] feat(provider): add Alibaba Coding Plan and regional Qwen endpoints (#1748)
- [b78713] feat(providers): add AWS Bedrock provider (#1903)
- [a005e5] feat(providers): add extra_body config to inject custom fields into request body
- [8a046e] feat(providers): add extra_body config to inject custom fields into request body
- [c7544f] feat(providers): add extra_body config to inject custom fields into request body
- [f2985b] feat(providers): add extra_body config to inject custom fields into request body
- [60a709] feat(search): add Baidu Qianfan AI Search provider with i18n docs
- [16d23d] feat(security): add sensitive data filtering for tool results sent to LLM
- [d7d2bf] feat(skills): add channel commands to list and force installed skills
- [ce311b] feat(subturn): add configurable runtime parameters under agents.defaults
- [99b189] feat(subturn): implement token budget tracking for SubTurns
- [53404f] feat(subturn): support stateful iteration for evaluator-optimizer pattern
- [71134b] feat(telegram): stream LLM responses via sendMessageDraft (#1101)
- [ff975a] feat(tool): anti cloudflare challenge in web_fetch (#1762)
- [7673b6] feat(tool): debug tool usage via channels (#1332)
- [d5c2bc] feat(tool): markdown format in output web_fetch tool
- [e93175] feat(tool): overwrite flag in write_file (#1761)
- [b40288] feat(tools): add SpawnStatusTool for reporting subagent statuses (#1540)
- [f901af] feat(tools): add exec tool enhancement with background execution and PTY support (#1752)
- [fcc20e] feat(tools): add tool argument schema validation before execution (#1877)
- [8ad4b9] feat(voice): add audio-model transcription support
- [aa3300] feat(web): Tool feedback on UI (#1933)
- [eb307e] feat(web): add WeCom QR binding flow to channel settings (#1994)
- [fcb698] feat(web): add configurable cron command execution settings (#1647)
- [e6ebea] feat(web): implement macOS app feature and file logger (#1723)
- [4d7a62] feat(web): improve Weixin channel binding flow (#1968)
- [b44683] feat(web): whitelist private fetch targets (#1688)
- [3b498d] feat(wecom): add channel-side streaming support
- [c3631d] feat(wecom): send media via temp uploads
- [578f90] feat: Add Novita provider support (#1677)
- [2a6ade] feat: add /reload to gateway api and command (#1725)
- [dd9adf] feat: add ElevenLabs Scribe STT transcriber and Telegram SendVoice support (#1905)
- [08f305] feat: add IsLark field to FeishuConfig to switch between Feishu and Lark domains (#1753)
- [520391] feat: add agent-browser skill and Dockerfile.heavy with full runtime
- [7b4d5d] feat: add channels management page and integrate into home menu
- [8c4459] feat: add chat functionality to home page for interactive AI sessions
- [02da11] feat: add gateway management page to TUI and integrate into home menu
- [545b7a] feat: add model selection synchronization to main config in TUI
- [ed47d5] feat: add onboarding command execution for non-existent config directory
- [8a4441] feat: add web gateway hot reload and polling state sync (#1684)
- [5a199e] feat: implement TUI configuration and user management for picoclaw-launcher-tui
- [8e3e51] feat: render mixed Markdown+HTML in assistant messages and skills (#1900)
- [12f402] feat: telegram use parse mode ModeMarkdownV2 instead of ModeHTML (#1018)
- [f735b0] fix
- [1e98f8] fix Ooutboundmedia
- [5d5536] fix delivery and steering
- [930dd0] fix err and placeholder
- [d77375] fix for ci/cd
- [affd77] fix for feat(web): implement macOS app feature and file logger (#1735)
- [cf9e04] fix launcher can't save model api_key issue (#1928)
- [388505] fix lint
- [827449] fix lint
- [de6868] fix lint
- [8f4607] fix lint + error check
- [9e3445] fix logic
- [6ea963] fix weixin config
- [1c6586] fix(agent) scope steering
- [844a4e] fix(agent): avoid process exit on exec init failure and add regression test (#1784)
- [8034ee] fix(agent): correct media token arithmetic and tool call double-counting
- [12a859] fix(agent): enhance SubTurn robustness and fix race conditions
- [edbdc3] fix(agent): findSafeBoundary returns 0 for single-Turn history
- [7868c5] fix(agent): fix subturn panic result, hard abort rollback, and drain bus exit
- [9c65d7] fix(agent): forceCompression must not assume history[0] is system prompt
- [c63c64] fix(agent): forceCompression recovers from single oversized Turn
- [361103] fix(agent): implement Critical flag, complete tools.SubTurnConfig, remove redundant subTurnResults
- [d5fdd5] fix(agent): include ReasoningContent and Media in token estimation
- [efd403] fix(agent): preallocate messages slice in budget test
- [672d11] fix(agent): prevent double result delivery and panic bypass in SubTurn
- [c7ea01] fix(agent): prevent duplicate history during subturn context recoveries
- [276a0c] fix(agent): rebind provider after /switch model to (#1769)
- [6b5d7e] fix(agent): resolve critical race conditions and resource leaks in SubTurn
- [3c2d37] fix(agent): resolve race conditions and resource leaks in SubTurn
- [e20ff4] fix(agent): resolve subturn deadlocks, panics and context retry state
- [336d5d] fix(agent): route reasoning_content to reasoning channel
- [82d574] fix(agent): separate empty-response and tool-limit fallbacks
- [85dfb3] fix(agent): suppress heartbeat tool feedback (#1937)
- [1961aa] fix(agent): use ModelName in loop tests
- [4e3769] fix(agent): use ModelName in loop tests (#1923)
- [54654d] fix(anthropic): skip tool calls with empty names to prevent API errors (#1739)
- [d014f3] fix(api): include auth header in local model probe (#1896)
- [3e33d1] fix(backend): add no-cgo tray fallback for darwin and freebsd (#1691)
- [51f828] fix(build): disable Matrix gateway import on freebsd/arm
- [2ccac1] fix(build): exclude matrix on unsupported mipsle and netbsd targets (#1975)
- [ce1619] fix(chat): avoid full secret exposure for 7-char secrets (#1942)
- [7eaadf] fix(chat): preserve blank lines and add input hint
- [74a9dc] fix(ci): Make CI happy
- [56fb0d] fix(claude_cli): surface stdout in error when CLI exits non-zero
- [38e1fe] fix(config): model_list inherits api_key/api_base from providers (#1786)
- [d23c24] fix(config): normalize empty security config before save/load (#1956)
- [9fb01b] fix(config): persist disabled placeholder settings (#1902)
- [cd48c3] fix(config): remove stale wecom security merge fields
- [fcf406] fix(config): start model round robin from the first match
- [f71eaa] fix(cron): default scheduled jobs to agent execution
- [61a899] fix(cron): update test to use OutboundChan instead of removed SubscribeOutbound
- [3e9b7c] fix(feishu): invalidate cached token on auth error to enable retry recovery (#1318)
- [5660b8] fix(heartbeat): ignore untouched default template
- [bc0be1] fix(identity): support negative integers in isNumeric for Telegram group IDs
- [fca015] fix(lint): align VoiceConfig env tags
- [b150d7] fix(lint): fix gci import formatting in config.go
- [30db99] fix(lint): fix golines line length in WebToolsConfig struct
- [c786f3] fix(lint): fix golines/gci formatting in WebToolsConfig
- [95204d] fix(lint): remove CGO_ENABLED=0 for lint and fix (#1989)
- [4bc644] fix(lint): run golangci-lint fmt to fix golines/gci struct tag formatting
- [11b6b1] fix(linter): fix ci lint err
- [8fc36a] fix(logger): mask bot tokens in 3rd-party logger output
- [64ceb5] fix(logger): show first/last 4 chars of bot token for identification
- [6aff5b] fix(pico): use O(1) session indexing and harden websocket concurrency handling (#1970)
- [f81b44] fix(provider): deduplicate tool results and merge consecutive tool_result blocks for Anthropic API (#1793)
- [05c65d] fix(provider): skip empty anthropic tool names (#1772)
- [8d9789] fix(providers): handle nil input in GLM series tool_use blocks
- [f06173] fix(qq): preserve filenames in file uploads (#1913)
- [2c3174] fix(qq): send long audio as file
- [a1e8ee] fix(telegram): improve HTML chunking and preserve word boundaries (#1651)
- [dc037f] fix(telegram): stop typing indicator when LLM fails or hangs
- [1984bb] fix(test): mock gateway health check in status tests
- [e71ef3] fix(test): reduce blank identifiers to comply with dogsled linter
- [df4f32] fix(tool): route binary outputs through the media pipeline.
- [1bc05e] fix(tools): allow sandbox access to temp media files
- [bb1a41] fix(tools): harden whitelist path resolution
- [cef0f2] fix(tools): normalize whitelist path checks for symlinked allowed roots (#1660)
- [29a161] fix(tools): prevent nil pointer dereference in spawn tools
- [eb86e1] fix(tools): propagate tool registry to subagents (#1711)
- [dea99d] fix(web): auto-configure Pico channel on launcher startup
- [6e31f1] fix(web): ensure at least 40% of the characters are hidden for api key
- [f1ac1a] fix(web): ensure at least 40% of the characters are masked for api key
- [ffbcbe] fix(web): persist api_key when adding models (#1958)
- [c513ad] fix(web): refactor pico chat flow and fix proxied websocket URLs (#1639)
- [f93d2b] fix: Avoid failure of the main agent process due to tool call failures (#1023)
- [9c31b0] fix: Fixed the bug where the bus was closed and consumers had unfinished messages. (#1179)
- [71e2b6] fix: Use secure defaults for Pico channel setup and stop leaking the token in the URL (#1563)
- [0fe058] fix: add fallback DNS resolver for Android with multi-DNS support (#1835)
- [08fa9b] fix: agent triggered on empty message in telegram (#1927)
- [1f9d39] fix: apply security credentials before config validation in web handlers
- [b17cbe] fix: apply security credentials before config validation in web handlers
- [2b3c95] fix: lint err
- [a65e0e] fix: lint err
- [112071] fix: proxy WebSocket through web server port (#1665)
- [724cc1] fix: resolve merge conflict markers in README files
- [48cba9] fix: restore missing assets and address Copilot review comments
- [f12c09] fix: retry on dimension failure for tg media upload (#1409)
- [1ace29] fix: use fileEvent instead of event when appending fields for file logger
- [df1768] implement panic log for gateway and launcher
- [3dfe48] make yaml indent with 2
- [88d754] merge main
- [24a382] merge main
- [f7f27e] merge: resolve conflicts between refactor/agent and main
- [c48954] merge: sync main into refactor/agent
- [a26a7d] moved turnState and related code from subturn.go to a new turn_state.go file
- [1c123e] refactor Config to add Version and migratable
- [be4a33] refactor gateway/helpers and add server.pid to health (#1646)
- [9c82b0] refactor(agent): context boundary detection, proactive budget check, and safe compression
- [639739] refactor(agent): use Turn as the atomic unit for compression cut-off
- [174fbb] refactor(backend): add darwin no-cgo tray fallback (#1689)
- [b9aaad] refactor(media): centralize temp media dir path
- [01c2f8] refactor(subturn): remove redundant system prompt handling in runTurn function
- [345452] refactor(tools): remove unused validatePath wrapper
- [4d2b24] refactor(voice): share audio format support and restrict transcriber selection
- [a10036] refactor(web): clean up systray platform build files
- [a1f95f] refactor(wecom): rebuild ai bot channel
- [c07f5c] refactor: centralize environment variable key constants (#1730)
- [119cc2] refactor: enhance TUI configuration and user management with improved UI elements and concurrency
- [087e85] refactor: improve code readability and consistency across multiple files
- [670b43] refactor: replace interface{} with any for improved type clarity
- [e455eb] refactor: seperate security.yml for store keys
- [955d6e] refactor: update interface types to use 'any' and improve code formatting
- [a8ce99] refactor[gateway]: just reload the changed channels on reload occurred (#1773)
- [482c88] remove merge conflict markers from .gitignore
- [4e876e] remove useless logs output
- [310f78] rename security.yml to .security.yml
- [be5913] resolve conflicts
- [b90c50] resolve conflicts
- [8ed171] resolved conflicts
- [7c1a1c] style(agent): fix gci comment alignment in test
- [74a145] style: apply cyberpunk theme to TUI components for enhanced visual appeal
- [b7f1c2] test(agent): add realistic session-shaped tests for context budget
- [f2f698] test(agent): allow mock custom tool args (#1965)
- [b768da] test(agent): use realistic session data in context retry test
- [1ef2b6] test(web): add percentage checking of characters displaying in APIKey
- [66d2ef] test(web): add test for maskAPIKey
- [de11f9] update security migration documents
Released by GoReleaser.