Changelog
- 14a28ae docs: note that workspace config files are hot-reloaded (#1747)
- 2fec249 refactor(agent): improve SubTurn error handling and logging
- 3293220 Add configurable logger
- 92b7687 Add configurable logger
- 647071d Add default value for config
- f35516c Add default value for config
- f79469c Add model-native search (prefer_native) for OpenAI/Codex (#1618)
- b24c577 Add security config to ExtraBody round-trip test
- be6bf9f Add virtual model support for multi-key expansion
- e05d262 Added tests to verify SubTurn context cancellation behavior when parent finishes early - identified need for Critical+heartbeat+timeout mechanism.
- 9d761b7 Delete .claude/settings.json
- 009a8d7 Feat/feishu card parsing (#1534)
- 899558b Feat/issue 1218 agent md context structure (#1705)
- b23a6b3 Feat/move weixin login to auth and update docs (#1945)
- 828971d Feat/qq local file upload (#1722)
- 75d8672 Feat/wecom aibot processing message config (#1785)
- dd82794 Feat/weixin openclaw port (#1873)
- 75270c4 Fix 1886 media cleanup policy (#1887)
- d4e56bc Fix lint
- 6bd8fec Fix security config precedence during migration (#1984)
- 073ae48 Fix spelling
- e3cc5b1 Fix the limitation on the number of tables in cards caused by Feishu (#1736)
- 8b6cbd9 Fix: Prevent security.yml from being overwritten during config migration (#1966)
- 9a25fad Implement the latest long-connection mode for the WeCom AI Bot. (#1295)
- 0459dec Initial plan
- 4c8526d Merge branch 'feat-configurable-logger' of https://github.com/kunalk16/picoclaw into feat-configurable-logger
- 7767feb Merge branch 'feat/provider-extra-body-config' of github.com:uiYzzi/picoclaw into feat/provider-extra-body-config
- 02393b3 Merge branch 'feat/provider-extra-body-config' of github.com:uiYzzi/picoclaw into feat/provider-extra-body-config
- 3791f06 Merge branch 'main' into feat/markdown-output-format-web-fetch
- 13d4801 Merge branch 'main' into feat/markdown-output-format-web-fetch
- 9835e82 Merge branch 'main' into feat/markdown-output-format-web-fetch
- 6a5a4a5 Merge branch 'main' into feat/provider-extra-body-config
- d3ba400 Merge branch 'main' into feat/skill-channel-commands
- 583c586 Merge branch 'main' into feat/subturn-poc
- 4f646ef Merge branch 'main' into feat/subturn-poc
- 4398e3e Merge branch 'main' into fix-doc
- 317c70a Merge branch 'main' into fix/1323-telegram-endless-typing
- fddfd56 Merge branch 'main' into fix/binary-tool-output-handling
- 14a4983 Merge branch 'main' into fix/binary-tool-output-handling
- 5a8aab8 Merge branch 'main' into version
- cfd3a1b Merge branch 'main' into version
- 36f9d20 Merge branch 'main' into version
- 7c854fe Merge branch 'main' into version
- 94fcb25 Merge branch 'main' into version
- 284ced1 Merge branch 'main' into version
- 927958e Merge branch 'main' into version
- 7bf4831 Merge branch 'main' into version
- 6508271 Merge branch 'main' of https://github.com/sipeed/picoclaw into feat-configurable-logger
- 8490084 Merge branch 'main' of https://github.com/sipeed/picoclaw into feat-configurable-logger
- 7ba8682 Merge branch 'refactor/agent' into feat/subturn-poc
- c732e63 Merge branch 'upstream-main' into feat/subturn-poc
- 532ea4b Merge branch 'upstream-main' into feat/subturn-poc
- 1bd144a Merge branch 'upstream-main' into feat/subturn-poc
- 54889f2 Merge branch 'upstream-main' into feat/subturn-poc
- c18d8a2 Merge branch 'upstream-main' into feat/subturn-poc
- 24d6cb5 Merge branch 'upstream-main' into feat/subturn-poc
- 431a53c Merge branch 'upstream-main' into feat/subturn-poc
- e801ccb Merge branch 'upstream-main' into feat/subturn-poc
- cff9065 Merge pull request #1352 from cytown/version
- bd4317f Merge pull request #1390 from kiannidev/fix/1323-telegram-endless-typing
- 74f2a15 Merge pull request #1479 from securityguy/fix/claude-cli-error-surfacing
- 5e92a38 Merge pull request #1490 from is-Xiaoen/refactor/context-boundary
- 79b0568 Merge pull request #1536 from alexhoshina/fix/allow-picoclaw-media-tempdir
- dfafdf7 Merge pull request #1570 from alexhoshina/fix/cron-deliver-default-false
- c0bb8d6 Merge pull request #1617 from yzxlr/codex/fix-1561-heartbeat-template-idle
- cefa140 Merge pull request #1622 from afjcjsbx/feat/markdown-output-format-web-fetch
- 729a878 Merge pull request #1636 from lppp04808/feat/subturn-poc
- f901218 Merge pull request #1640 from argobell/main
- 2f61440 Merge pull request #1645 from dimonb/fix/mask-bot-tokens-in-logger
- 8a8cc35 Merge pull request #1663 from hyperwd/fix/glm-nil-input
- 11a7ee5 Merge pull request #1690 from Alix-007/docs/issue-529-exec-guard-limitations
- 513537d Merge pull request #1702 from Alix-007/fix/issue-1153-model-round-robin-cleanbase
- 7bf12c3 Merge pull request #1710 from liuy/fix/cron-test-subscribe-outbound
- 8a188cf Merge pull request #1759 from afjcjsbx/docs/add-italian-language
- 7a47d7a Merge pull request #1782 from biisal/chore/docker-data-in-gitignore
- 71ce219 Merge pull request #1798 from sipeed/dependabot/github_actions/goreleaser/goreleaser-action-7
- ffe0289 Merge pull request #1799 from sipeed/dependabot/github_actions/docker/setup-qemu-action-4
- 100720b Merge pull request #1818 from Alix-007/fix/issue-1815-empty-response-message
- 54de9ad Merge pull request #1822 from alexhoshina/feat/agent-eventbus
- 73a683f Merge pull request #1827 from alexhoshina/refactor/agent-loop
- 75cfee4 Merge pull request #1832 from taorye/main
- 04def0f Merge pull request #1844 from afjcjsbx/fix/scope-steering
- 931eee9 Merge pull request #1853 from kunalk16/feat-configurable-logger
- e6ea9c4 Merge pull request #1855 from badgerbees/fix/telegram-group-id-validation
- 9107740 Merge pull request #1857 from lc6464/main
- 5286464 Merge pull request #1861 from amirmamaghani/feat/agent-browser-skill-heavy-dockerfile
- 0432fac Merge pull request #1863 from alexhoshina/feat/hook-manager
- 3cd674e Merge pull request #1865 from sipeed/revert-1752-feat/exec-tool-enhancement
- 3a61892 Merge pull request #1875 from BeaconCat/docs/readme-restructure-v2
- e7ee80f Merge pull request #1878 from uiYzzi/feat/provider-extra-body-config
- 2f6f25d Merge pull request #1882 from lc6464/frontend-fix
- 809aef8 Merge pull request #1885 from alexhoshina/fix-1884-qq-long-audio-file-fallback
- 2a0efb6 Merge pull request #1889 from afjcjsbx/fix/binary-tool-output-handling
- 3500080 Merge pull request #1891 from RussellLuo/audio-transcription
- 054b55f Merge pull request #1893 from afjcjsbx/feat/skill-channel-commands
- 4d84bd9 Merge pull request #1894 from sipeed/refactor/agent
- 2c48cd3 Merge pull request #1907 from xiwuqi/wuxi/fix-reasoning-channel-content
- c328562 Merge pull request #1918 from cytown/panic
- 96e3126 Merge pull request #1926 from cytown/fix
- 4057199 Merge pull request #1930 from uiYzzi/feat/filter-sensitive-data-from-tool-results
- 69cf934 Merge pull request #1938 from huaaudio/fix/weixin-load
- 3d20976 Merge pull request #1948 from cytown/fix-doc
- 1b9445b Merge pull request #1955 from alexhoshina/refactor/wecom
- ff50ffa Merge pull request #1962 from wj-xiao/fix/configure-pico-channel
- 8da0638 Merge pull request #1976 from alexhoshina/refactor/wecom
- eee74f3 Merge pull request #1977 from uiYzzi/fix/virtual-models-bug
- aa9bd69 Merge pull request #1985 from wj-xiao/refactor/split-systray
- 5f50ae5 Merge pull request #1997 from wj-xiao/fix/freebsd-build
- 440bc26 Merge remote branch fix/1323-telegram-endless-typing
- e00a3d9 Merge upstream/main into feat/subturn-poc
- 310358d Merge upstream/main into fix/1323-telegram-endless-typing
- 608ec6d Move minimax reasoning_split injection to provider factory
- 53c6dd3 Move minimax reasoning_split injection to provider factory
- de0364c Move minimax reasoning_split injection to provider factory
- 998b456 Remove UI components and gateway management for picoclaw-launcher-tui
- 12c0132 Remove redundant Darwin tray stub (#1694)
- ebcd564 Revert "feat(tools): add exec tool enhancement with background execution and …"
- cf80ec8 Update config_test.go
- b6c5f58 Update qrcode of wechat group (#1744)
- d1d2155 Use ModelName instead of Model in test config structs
- 79df938 Use getter/setter methods for API key access in ModelConfig
- 2d9517c Use getter/setter methods for API key access in ModelConfig
- fa5ab72 WeChat Web QR Code Integration (#1961)
- e414234 add systray ui for all platform (#1649)
- 7359b2c add testcase for migrate from v0 to v1
- d921bbb bug fix for security initial cause can't save model in launcher (#1952)
- afe22c5 bug fix: gateway should not start when gateway server is not running (#1562)
- 0499cda build: use WEB_GO for web targets and preserve backend dist directory (#1671)
- 40279c8 chore(config): move loglevel settings under gateway (#1912)
- 77d0c67 chore(deps): bump @tabler/icons-react in /web/frontend (#1803)
- 4178b2c chore(deps): bump @tanstack/react-router in /web/frontend (#1609)
- 68d182a chore(deps): bump Go toolchain to 1.25.8 for stdlib security fixes (#1821)
- f247c3b chore(deps): bump actions/setup-go from 5 to 6 (#1600)
- 44ac304 chore(deps): bump actions/setup-node from 4 to 6 (#1597)
- 99304d1 chore(deps): bump dayjs from 1.11.19 to 1.11.20 in /web/frontend (#1608)
- b7b8d1e chore(deps): bump docker/build-push-action from 6 to 7 (#1602)
- 0c94e6f chore(deps): bump docker/login-action from 3 to 4 (#1604)
- 4d4243b chore(deps): bump docker/setup-buildx-action from 3 to 4 (#1595)
- 876898f chore(deps): bump docker/setup-qemu-action from 3 to 4
- 2f40a8c chore(deps): bump github.com/anthropics/anthropic-sdk-go (#1601)
- e9d240d chore(deps): bump github.com/caarlos0/env/v11 from 11.3.1 to 11.4.0 (#1599)
- 80d9a90 chore(deps): bump github.com/ergochat/irc-go from 0.5.0 to 0.6.0 (#1800)
- 43eb6fe chore(deps): bump github.com/github/copilot-sdk/go from 0.1.23 to 0.1.32 (#1603)
- dd93630 chore(deps): bump github.com/mymmrac/telego from 1.6.0 to 1.7.0 (#1598)
- 45c01f4 chore(deps): bump golang.org/x/oauth2 from 0.35.0 to 0.36.0 (#1596)
- 5ada0df chore(deps): bump goreleaser/goreleaser-action from 6 to 7
- b8dfd0b chore(deps): bump jotai from 2.18.0 to 2.18.1 in /web/frontend (#1605)
- c9ac19c chore(deps): bump maunium.net/go/mautrix from 0.26.3 to 0.26.4 (#1805)
- 3bf8a27 chore(deps): bump react-i18next from 16.5.4 to 16.5.8 in /web/frontend (#1607)
- 1fd6dd1 chore(deps): bump shadcn from 4.0.5 to 4.0.8 in /web/frontend (#1808)
- cff85cf chore(deps): bump tailwindcss from 4.2.1 to 4.2.2 in /web/frontend (#1809)
- bda18f5 chore(deps): upgrade eslint dependency chain to resolve flatted vulnerability (#1820)
- fe87376 chore(deps): upgrade modelcontextprotocol go-sdk to v1.4.1 for security fixes (#1823)
- 736baf2 chore(deps-dev): bump @types/node in /web/frontend (#1806)
- a93bd01 chore(deps-dev): bump @vitejs/plugin-react in /web/frontend (#1606)
- 8a488ee chore(deps-dev): bump typescript-eslint in /web/frontend (#1807)
- ee03d12 chore(tui): add build target for picoclaw-launcher TUI and create README for TUI launcher (#1995)
- c806598 chore(web): upgrade eslint deps to resolve flatted vulnerability (#1629)
- 41ebe1e chore: Ignore the
docker/datadirectory. - 77d4716 config: add baidu_search example to config.example.json (#1990)
- 08259d7 docs(agent-refactor): add context.md for Track 6 boundary clarification
- da1fddc docs(exec): document build tool guard limitation
- 6148ccc docs(feishu): note that Feishu channel does not support 32-bit devices (#1851)
- 9978c95 docs(hooks): inline and translate hook examples
- 5790d3e docs(it): add model command to CLI Reference
- 7f16365 docs(matrix): Update docs
- 92678d1 docs(voice): Update docs for audio-transcription
- 94fe54b docs(wecom): align docs with unified channel
- b0bcf1d docs(wecom): update examples and docs
- 1236dd9 feat(agent): add concurrency semaphore and hard abort for SubTurn
- 337e43e feat(agent): add configurable hook mounting
- af61d0b feat(agent): add event bus foundation
- cf68c91 feat(agent): add hook manager foundation
- acd436a feat(agent): add session state rollback on hard abort
- 0e075f7 feat(agent): centralize turn lifecycle and continue queued steering
- 57cde73 feat(agent): expand event bus coverage
- 777230d feat(agent): implement /subagents command and fix sub-turn observability
- f8defe3 feat(agent): implement graceful finish vs hard abort for SubTurn lifecycle
- c639e2c feat(agent): include current sender in dynamic context (#1696)
- 50cc710 feat(agent): make event logs show event kind clearly
- ae23193 feat(agent): port subturn PoC to refactor/agent branch
- 021aa7d feat(agent): steering (#1517)
- ceeae15 feat(agent): wire SubTurn into AgentLoop and Spawn Tool
- e760cb7 feat(auth): add wecom cli qr login
- adf1a57 feat(config): add command pattern detection tool in exec settings (#1971)
- 7b9fdae feat(config): add exec controls and gate cron commands on exec settings (#1685)
- e35906b feat(config): expose context_window in example config and web UI
- e73d9d9 feat(config): support multiple API keys for failover (#1707)
- 2f10b47 feat(credential): part1 add AES-GCM encryption, SecureStore, and onboard ke… (#1521)
- f776611 feat(cron): refactor scheduler to event-driven model and add unit tests (#1313)
- 9381da2 feat(matrix): support encrypted messages with E2EE
- fab9603 feat(matrix): support encrypted messages with E2EE
- a4b5a9e feat(mcp): per server deferred mode (#1654)
- 3b3062a feat(models): add extra_body config field in model add/edit UI (#1969)
- 5449408 feat(pico): add pico_client outbound WebSocket channel (#1198)
- 9a3ca8e feat(provider): add Alibaba Coding Plan and regional Qwen endpoints (#1748)
- b787131 feat(providers): add AWS Bedrock provider (#1903)
- a005e5b feat(providers): add extra_body config to inject custom fields into request body
- 8a046e9 feat(providers): add extra_body config to inject custom fields into request body
- c7544f7 feat(providers): add extra_body config to inject custom fields into request body
- f2985b8 feat(providers): add extra_body config to inject custom fields into request body
- 60a7098 feat(search): add Baidu Qianfan AI Search provider with i18n docs
- 16d23d8 feat(security): add sensitive data filtering for tool results sent to LLM
- d7d2bf6 feat(skills): add channel commands to list and force installed skills
- ce311be feat(subturn): add configurable runtime parameters under agents.defaults
- 99b189d feat(subturn): implement token budget tracking for SubTurns
- 53404f1 feat(subturn): support stateful iteration for evaluator-optimizer pattern
- 71134ba feat(telegram): stream LLM responses via sendMessageDraft (#1101)
- ff975ab feat(tool): anti cloudflare challenge in web_fetch (#1762)
- 7673b62 feat(tool): debug tool usage via channels (#1332)
- d5c2bc5 feat(tool): markdown format in output web_fetch tool
- e931756 feat(tool): overwrite flag in write_file (#1761)
- b402888 feat(tools): add SpawnStatusTool for reporting subagent statuses (#1540)
- f901af8 feat(tools): add exec tool enhancement with background execution and PTY support (#1752)
- fcc20ec feat(tools): add tool argument schema validation before execution (#1877)
- 8ad4b9b feat(voice): add audio-model transcription support
- aa3300c feat(web): Tool feedback on UI (#1933)
- eb307e9 feat(web): add WeCom QR binding flow to channel settings (#1994)
- fcb6986 feat(web): add configurable cron command execution settings (#1647)
- e6ebeae feat(web): implement macOS app feature and file logger (#1723)
- 4d7a629 feat(web): improve Weixin channel binding flow (#1968)
- b446831 feat(web): whitelist private fetch targets (#1688)
- 3b498d2 feat(wecom): add channel-side streaming support
- c3631d8 feat(wecom): send media via temp uploads
- 578f908 feat: Add Novita provider support (#1677)
- 2a6ade0 feat: add /reload to gateway api and command (#1725)
- dd9adf8 feat: add ElevenLabs Scribe STT transcriber and Telegram SendVoice support (#1905)
- 08f305d feat: add IsLark field to FeishuConfig to switch between Feishu and Lark domains (#1753)
- 5203916 feat: add agent-browser skill and Dockerfile.heavy with full runtime
- 7b4d5d4 feat: add channels management page and integrate into home menu
- 8c44597 feat: add chat functionality to home page for interactive AI sessions
- 02da117 feat: add gateway management page to TUI and integrate into home menu
- 545b7af feat: add model selection synchronization to main config in TUI
- ed47d5f feat: add onboarding command execution for non-existent config directory
- 8a44410 feat: add web gateway hot reload and polling state sync (#1684)
- 5a199ec feat: implement TUI configuration and user management for picoclaw-launcher-tui
- 8e3e517 feat: render mixed Markdown+HTML in assistant messages and skills (#1900)
- 12f4029 feat: telegram use parse mode ModeMarkdownV2 instead of ModeHTML (#1018)
- f735b05 fix
- 1e98f86 fix Ooutboundmedia
- 5d5536a fix delivery and steering
- 930dd02 fix err and placeholder
- d773757 fix for ci/cd
- affd77f fix for feat(web): implement macOS app feature and file logger (#1735)
- cf9e049 fix launcher can't save model api_key issue (#1928)
- 388505d fix lint
- 827449a fix lint
- de68688 fix lint
- 8f46072 fix lint + error check
- 9e34459 fix logic
- 6ea9636 fix weixin config
- 1c65866 fix(agent) scope steering
- 844a4ee fix(agent): avoid process exit on exec init failure and add regression test (#1784)
- 8034ee7 fix(agent): correct media token arithmetic and tool call double-counting
- 12a8590 fix(agent): enhance SubTurn robustness and fix race conditions
- edbdc3b fix(agent): findSafeBoundary returns 0 for single-Turn history
- 7868c58 fix(agent): fix subturn panic result, hard abort rollback, and drain bus exit
- 9c65d78 fix(agent): forceCompression must not assume history[0] is system prompt
- c63c644 fix(agent): forceCompression recovers from single oversized Turn
- 3611034 fix(agent): implement Critical flag, complete tools.SubTurnConfig, remove redundant subTurnResults
- d5fdd5e fix(agent): include ReasoningContent and Media in token estimation
- efd4032 fix(agent): preallocate messages slice in budget test
- 672d11c fix(agent): prevent double result delivery and panic bypass in SubTurn
- c7ea018 fix(agent): prevent duplicate history during subturn context recoveries
- 276a0cb fix(agent): rebind provider after /switch model to (#1769)
- 6b5d7e3 fix(agent): resolve critical race conditions and resource leaks in SubTurn
- 3c2d373 fix(agent): resolve race conditions and resource leaks in SubTurn
- e20ff43 fix(agent): resolve subturn deadlocks, panics and context retry state
- 336d5d4 fix(agent): route reasoning_content to reasoning channel
- 82d574e fix(agent): separate empty-response and tool-limit fallbacks
- 85dfb34 fix(agent): suppress heartbeat tool feedback (#1937)
- 1961aab fix(agent): use ModelName in loop tests
- 4e3769e fix(agent): use ModelName in loop tests (#1923)
- 54654d2 fix(anthropic): skip tool calls with empty names to prevent API errors (#1739)
- d014f3e fix(api): include auth header in local model probe (#1896)
- 3e33d10 fix(backend): add no-cgo tray fallback for darwin and freebsd (#1691)
- 51f8285 fix(build): disable Matrix gateway import on freebsd/arm
- 2ccac18 fix(build): exclude matrix on unsupported mipsle and netbsd targets (#1975)
- ce16190 fix(chat): avoid full secret exposure for 7-char secrets (#1942)
- 7eaadfd fix(chat): preserve blank lines and add input hint
- 74a9dca fix(ci): Make CI happy
- 56fb0dc fix(claude_cli): surface stdout in error when CLI exits non-zero
- 38e1fe4 fix(config): model_list inherits api_key/api_base from providers (#1786)
- d23c24c fix(config): normalize empty security config before save/load (#1956)
- 9fb01bc fix(config): persist disabled placeholder settings (#1902)
- cd48c3b fix(config): remove stale wecom security merge fields
- fcf406b fix(config): start model round robin from the first match
- f71eaaf fix(cron): default scheduled jobs to agent execution
- 61a899c fix(cron): update test to use OutboundChan instead of removed SubscribeOutbound
- 3e9b7ce fix(feishu): invalidate cached token on auth error to enable retry recovery (#1318)
- 5660b8f fix(heartbeat): ignore untouched default template
- bc0be17 fix(identity): support negative integers in isNumeric for Telegram group IDs
- fca0158 fix(lint): align VoiceConfig env tags
- b150d7d fix(lint): fix gci import formatting in config.go
- 30db993 fix(lint): fix golines line length in WebToolsConfig struct
- c786f35 fix(lint): fix golines/gci formatting in WebToolsConfig
- 95204db fix(lint): remove CGO_ENABLED=0 for lint and fix (#1989)
- 4bc6449 fix(lint): run golangci-lint fmt to fix golines/gci struct tag formatting
- 11b6b10 fix(linter): fix ci lint err
- 8fc36a4 fix(logger): mask bot tokens in 3rd-party logger output
- 64ceb5a fix(logger): show first/last 4 chars of bot token for identification
- 6aff5b7 fix(pico): use O(1) session indexing and harden websocket concurrency handling (#1970)
- f81b44b fix(provider): deduplicate tool results and merge consecutive tool_result blocks for Anthropic API (#1793)
- 05c65d2 fix(provider): skip empty anthropic tool names (#1772)
- 8d97896 fix(providers): handle nil input in GLM series tool_use blocks
- f06173a fix(qq): preserve filenames in file uploads (#1913)
- 2c31744 fix(qq): send long audio as file
- a1e8ee5 fix(telegram): improve HTML chunking and preserve word boundaries (#1651)
- dc037f0 fix(telegram): stop typing indicator when LLM fails or hangs
- 1984bb5 fix(test): mock gateway health check in status tests
- e71ef37 fix(test): reduce blank identifiers to comply with dogsled linter
- df4f322 fix(tool): route binary outputs through the media pipeline.
- 1bc05e8 fix(tools): allow sandbox access to temp media files
- bb1a414 fix(tools): harden whitelist path resolution
- cef0f28 fix(tools): normalize whitelist path checks for symlinked allowed roots (#1660)
- 29a161e fix(tools): prevent nil pointer dereference in spawn tools
- eb86e10 fix(tools): propagate tool registry to subagents (#1711)
- dea99da fix(web): auto-configure Pico channel on launcher startup
- 6e31f15 fix(web): ensure at least 40% of the characters are hidden for api key
- f1ac1a1 fix(web): ensure at least 40% of the characters are masked for api key
- ffbcbea fix(web): persist api_key when adding models (#1958)
- c513ad2 fix(web): refactor pico chat flow and fix proxied websocket URLs (#1639)
- f93d2b4 fix: Avoid failure of the main agent process due to tool call failures (#1023)
- 9c31b0c fix: Fixed the bug where the bus was closed and consumers had unfinished messages. (#1179)
- 71e2b63 fix: Use secure defaults for Pico channel setup and stop leaking the token in the URL (#1563)
- 0fe0582 fix: add fallback DNS resolver for Android with multi-DNS support (#1835)
- 08fa9bb fix: agent triggered on empty message in telegram (#1927)
- 1f9d390 fix: apply security credentials before config validation in web handlers
- b17cbe5 fix: apply security credentials before config validation in web handlers
- 2b3c95b fix: lint err
- a65e0e9 fix: lint err
- 1120718 fix: proxy WebSocket through web server port (#1665)
- 724cc1b fix: resolve merge conflict markers in README files
- 48cba90 fix: restore missing assets and address Copilot review comments
- f12c09b fix: retry on dimension failure for tg media upload (#1409)
- 1ace296 fix: use fileEvent instead of event when appending fields for file logger
- df17684 implement panic log for gateway and launcher
- 3dfe484 make yaml indent with 2
- 88d754b merge main
- 24a382b merge main
- f7f27e2 merge: resolve conflicts between refactor/agent and main
- c48954d merge: sync main into refactor/agent
- a26a7db moved turnState and related code from subturn.go to a new turn_state.go file
- 1c123e0 refactor Config to add Version and migratable
- be4a33c refactor gateway/helpers and add server.pid to health (#1646)
- 9c82b0b refactor(agent): context boundary detection, proactive budget check, and safe compression
- 639739c refactor(agent): use Turn as the atomic unit for compression cut-off
- 174fbba refactor(backend): add darwin no-cgo tray fallback (#1689)
- b9aaad9 refactor(media): centralize temp media dir path
- 01c2f8d refactor(subturn): remove redundant system prompt handling in runTurn function
- 345452f refactor(tools): remove unused validatePath wrapper
- 4d2b244 refactor(voice): share audio format support and restrict transcriber selection
- a10036a refactor(web): clean up systray platform build files
- a1f95f0 refactor(wecom): rebuild ai bot channel
- c07f5c9 refactor: centralize environment variable key constants (#1730)
- 119cc2e refactor: enhance TUI configuration and user management with improved UI elements and concurrency
- 087e851 refactor: improve code readability and consistency across multiple files
- 670b433 refactor: replace interface{} with any for improved type clarity
- e455eb5 refactor: seperate security.yml for store keys
- 955d6e7 refactor: update interface types to use 'any' and improve code formatting
- a8ce992 refactor[gateway]: just reload the changed channels on reload occurred (#1773)
- 482c88c remove merge conflict markers from .gitignore
- 4e876eb remove useless logs output
- 310f788 rename security.yml to .security.yml
- be59133 resolve conflicts
- b90c500 resolve conflicts
- 8ed171d resolved conflicts
- 7c1a1c2 style(agent): fix gci comment alignment in test
- 74a145c style: apply cyberpunk theme to TUI components for enhanced visual appeal
- b7f1c2b test(agent): add realistic session-shaped tests for context budget
- f2f6987 test(agent): allow mock custom tool args (#1965)
- b768dab test(agent): use realistic session data in context retry test
- 1ef2b69 test(web): add percentage checking of characters displaying in APIKey
- 66d2efc test(web): add test for maskAPIKey
- de11f95 update security migration documents
Released by GoReleaser.