Changelog
- [93977b] Add configurable Sogou-backed web search
- [e556a8] Feat/channel tool feedback animation (#2569)
- [824e80] Fix Sogou user agent formatting for linter
- [9ded79] Fix golines formatting for web search changes
- [dcf21e] Fix provider return formatting for golines
- [278422] Make web search auto-switch with UI language
- [e32a20] Merge branch 'main' into refactor-inbound-context-routing-session
- [df9124] Merge pull request [#2249] from alexhoshina/refactor-inbound-context-routing-session
- [20d352] Merge pull request [#2418] from lahuman/docs/korean-readme
- [dde613] Merge pull request [#2420] from lahuman/docs/tool-escape-semantics
- [d7d437] Merge pull request [#2453] from sipeed/dependabot/go_modules/github.com/aws/aws-sdk-go-v2/config-1.32.14
- [d03d51] Merge pull request [#2454] from sipeed/dependabot/go_modules/github.com/mymmrac/telego-1.8.0
- [282ebc] Merge pull request [#2457] from sipeed/dependabot/go_modules/modernc.org/sqlite-1.48.2
- [ba08d5] Merge pull request [#2474] from srcrs/fix-cron-independent-sessions
- [6d0379] Merge pull request [#2475] from lc6464/fix/issue-2448-separate-thought-message
- [cbd38d] Merge pull request [#2481] from cytown/channel
- [18d35c] Merge pull request [#2486] from sky5454/main
- [08283d] Merge pull request [#2489] from afjcjsbx/fix/mcp-reload-discovery-tools
- [7db2e7] Merge pull request [#2495] from liuy/feat/seahorse-clear
- [2e149f] Merge pull request [#2497] from wj-xiao/build/split-core-builds
- [eb2426] Merge pull request [#2503] from cytown/loop
- [aa1d7c] Merge pull request [#2507] from cytown/allow
- [04e99a] Merge pull request [#2508] from cytown/channel2
- [b52eb5] Merge pull request [#2514] from lc6464/fix/issue-2488-host-binding
- [08fc30] Merge pull request [#2518] from imguoguo/update-wechat-qr
- [c0fadc] Merge pull request [#2523] from lc6464/feat/web-chat-disabled-reasons-hint
- [ead2dc] Merge pull request [#2524] from SiYue-ZO/feature/sogou-web-search-default
- [bb14a5] Merge pull request [#2525] from afjcjsbx/fix/vision-unsupported-media-stuck
- [100e57] Merge pull request [#2529] from lc6464/feat/web-code-highlight
- [b14751] Merge pull request [#2547] from lc6464/chore/issue-2538-network-fallback
- [928a27] Merge pull request [#2549] from lc6464/gateway-auth-no-browser
- [0da962] Merge pull request [#2564] from sky5454/looper_refactor
- [6126ed] Merge pull request [#2566] from lc6464/refactor/providers-tools-layout
- [75e93b] Merge remote-tracking branch 'upstream/main' into feature/sogou-web-search-default
- [6421f1] Revert "Feat/channel tool feedback animation (#2569)" (#2596)
- [a2f02e] Revert "test(agent): remove unused respondWithMediaHook field"
- [7824bc] add test
- [036f65] bug fix for allowFrom contains empty string
- [168b6b] build(android): ci build added
- [f1fe2d] build(deps): bump @tanstack/react-query in /web/frontend (#2458)
- [74856d] build(deps): bump @tanstack/react-query in /web/frontend (#2560)
- [d73897] build(deps): bump @tanstack/react-router in /web/frontend (#2555)
- [c71cd1] build(deps): bump github.com/aws/aws-sdk-go-v2/config
- [7788ed] build(deps): bump github.com/modelcontextprotocol/go-sdk (#2455)
- [01a33b] build(deps): bump github.com/mymmrac/telego from 1.7.0 to 1.8.0
- [9c9744] build(deps): bump go.mau.fi/util from 0.9.7 to 0.9.8 (#2553)
- [c6d15d] build(deps): bump golang.org/x/sys from 0.42.0 to 0.43.0 (#2450)
- [484070] build(deps): bump jotai from 2.19.0 to 2.19.1 in /web/frontend (#2452)
- [e77c4e] build(deps): bump maunium.net/go/mautrix from 0.26.4 to 0.27.0 (#2557)
- [919e9e] build(deps): bump modernc.org/sqlite from 1.48.0 to 1.48.2
- [637544] build(deps): bump pnpm/action-setup from 4 to 6 (#2552)
- [194931] build(deps): bump react from 19.2.4 to 19.2.5 in /web/frontend (#2456)
- [c36a48] build(deps): bump react-i18next from 17.0.2 to 17.0.3 in /web/frontend (#2559)
- [e58f00] build(deps): bump shadcn from 4.1.2 to 4.2.0 in /web/frontend (#2459)
- [2708c8] build(deps): patch gomarkdown and upgrade shadcn (#2568)
- [72f30c] build(deps-dev): bump @types/node from 25.5.0 to 25.6.0 in /web/frontend (#2562)
- [235cb1] build(deps-dev): bump globals from 17.4.0 to 17.5.0 in /web/frontend (#2561)
- [0e57a4] build(deps-dev): bump vite from 8.0.3 to 8.0.8 in /web/frontend (#2451)
- [d73a0e] build(release): move Android bundle publishing into GoReleaser
- [ea2107] build(release): split core builds from release-only artifacts
- [080f53] build: add Android arm64 cross-compile support
- [681b2a] build: address PR review — fix Android launcher flags, systray tag, rename target
- [de3d04] chore(docs): add docs layout lint target and contributor guidance
- [acbe65] chore(web): move app providers out of main entry
- [8461c9] chore(web): update linting and router dependencies (#2592)
- [6a870c] ci(build): remove unused Node.js and pnpm setup from core build workflow
- [f82fe5] ci: use pnpm/action-setup and sync README install steps (#2512)
- [b0d3f1] docs(agent-refactor): document loop.go file split
- [82bfe0] docs(config): remove legacy bindings guide
- [8f7eae] docs(tool): use provider-agnostic JSON escaping guidance
- [f7e768] feat(agent): /clear now clears seahorse DB in addition to JSONL
- [6ca731] feat(agent): add context usage ring indicator and /context command (#2537)
- [e22b4e] feat(agent): support btw side questions (#2532)
- [ab019d] feat(auth): add no-browser option for OAuth login
- [b6617a] feat(cli): structured terminal UI for PicoClaw CLI like modern CLIs (#2229)
- [bb2167] feat(event): log turn context fields
- [a5379d] feat(feishu): Add group chat trigger and random emoji response frontend configuration (#2607)
- [d4d652] feat(host): complete launcher and gateway multi-host binding support
- [4e9773] feat(launcher): add host overrides for launcher and gateway
- [06023c] feat(launcher): standard HTTP login/setup/logout flow for dashboard, frontend and backend impl. and fix windows pid lock for ws (#2339)
- [7b38d4] feat(launcher): support multi-host bind and strict host semantics
- [c3f400] feat(network): implement network error classification and fallback handling
- [bef17d] feat(routing): add ordered dispatch rules
- [3957e2] feat(session): persist scope metadata and aliases
- [25ac56] feat(web): add syntax highlighting for markdown code blocks
- [7f56ca] feat(web): refactor tools page into tabbed library and web search settings (#2539)
- [d4313b] feat(web): show disabled chat reasons in composer
- [bf6d4f] feat(web): show disabled reasons in tooltips when buttons are disabled (#2430)
- [ba6992] feat(web): support list editing for channel array fields (#2595)
- [d3d639] fix lint
- [e60a68] fix lint
- [f16bad] fix some bugs:
- [bd8838] fix(agent): gate pico interim publish for internal turns
- [7bd111] fix(agent): preserve reused tool call IDs across turns (#2528)
- [1245f2] fix(agent): recover after image-input-unsupported failures
- [815e43] fix(agent): reinitialize MCP and discovery tools after reload
- [9c3dc0] fix(auth): canonicalize Google Antigravity provider and enhance credential management (#2599)
- [ffd30d] fix(auth): improve no-browser OAuth login
- [b73cae] fix(chat): improve thought readability in dark mode
- [5b596e] fix(chat): keep tool summaries and assistant output together
- [748ac5] fix(chat): keep tool-call summary and assistant output in sync (#2449)
- [86917f] fix(ci): resolve lint header casing and fallback test routing
- [27db03] fix(config): migrate legacy bindings and optimize session resolve
- [2b7397] fix(cron): add agent: prefix to session key so resolveScopeKey preserves it
- [d8e7a6] fix(cron): add blank line between default and localmodule imports for gci
- [36b969] fix(cron): make each job execution use an independent session
- [5e44a9] fix(docker): run self-built images as root for parity with release (#2435)
- [491418] fix(gateway): log startup errors before exit (#2414)
- [83e93c] fix(gemini): align thinking-off and system prompt semantics
- [6fbd7e] fix(gemini): align thoughtSignature and stream tool IDs
- [459e78] fix(gemini): harden dedicated provider compatibility
- [cbae69] fix(gemini): honor pro-model thinking constraints
- [448027] fix(host): align launcher and gateway host normalization semantics
- [e7b365] fix(host): modernize default host selection order
- [d99777] fix(launcher): align react and react-dom versions (#2467)
- [795ec9] fix(launcher): fall back to token auth on unsupported platforms (#2466)
- [93bf87] fix(launcher): refine console host display
- [7aa2d6] fix(network): classify timeout errors as FailoverTimeout
- [9982ee] fix(pico): avoid duplicate final websocket message
- [c8bac6] fix(pico): separate thought and normal messages
- [2aeed8] fix(pico): stream assistant text between tool calls
- [9b4efd] fix(providers,tools): address linter issues after reorg
- [e9f55d] fix(review): address copilot backpressure and SSE parse feedback
- [bd1309] fix(review): align tool feedback reconstruction with runtime behavior
- [0f2353] fix(runtime): address session promotion and steering regressions
- [b8819b] fix(seahorse): drop/recreate FTS5 triggers so existing DBs get corrected bodies
- [187189] fix(seahorse): sanitize user input for FTS5 MATCH queries (#2436)
- [c5c5ea] fix(session): address review regressions
- [296077] fix(session): restore thread and legacy compatibility
- [a9720d] fix(test): skip TestPrepareCommand_AppliesUserEnv on unsupported operating systems (#2434)
- [743cd3] fix(tools): centralize shared LLM note constants
- [89af3b] fix(tools): message tool no longer suppresses reply to originating chat
- [3e3b6a] fix(tools): message tool no longer suppresses reply to originating chat (#2180)
- [64c354] fix(updater): retry release fetches (#2511)
- [dcb4b6] fix(web): clean up restored chat transcripts and optimize chat UI (#2605)
- [0bb9be] fix(web): address latest Copilot review points
- [0b84f0] fix(web): address sogou search review feedback
- [243822] fix(web): align wildcard advertise IP preference
- [f32b30] fix(web): avoid resetting web search draft on config refetch (#2536)
- [d002e1] fix(web): improve Pico URL and origin handling behind proxies
- [51ab3b] fix(web): restore chat composer disabled-state messaging and clean up code (#2526)
- [a8d0b0] fix(web): save channel configs with nested channel_list patches (#2530)
- [79f87d] fix(web): show localhost entry only for local binds
- [f8190f] fix(web): stop pinning Pico WebSocket origins during setup
- [7fdc9c] fix(web): support proxies in SearXNG and web fetch (#2542)
- [773a94] fix(web_search): validate missing API key/URL directly in Search methods (#2517)
- [ae1958] fix: resolve PR2514 lint regressions
- [f1b659] membench: add LLM-as-Judge evaluation mode (#2484)
- [93f69a] merge: integrate main channel config changes
- [0c6ad3] merge: integrate main into refactor-inbound-context-routing-session
- [69ff69] merge: integrate main seahorse context changes
- [0425cd] refactor skills registries and add GitHub-backed skill discovery (#2442)
- [329e68] refactor(agent): Agent Looper refactor phase2, restructure pipeline and rename loop files to agent (#2585)
- [79de00] refactor(agent): carry inbound context through events and hooks
- [9f23ec] refactor(agent): normalize dispatch and outbound turn metadata
- [2095ec] refactor(agent): route using inbound context
- [12d542] refactor(agent): split loop.go into focused sub-packages
- [cf11ff] refactor(channels): emit inbound context in primary adapters
- [963ed0] refactor(channels): emit inbound context in secondary adapters
- [528c57] refactor(channels): merge non-web fixes from main
- [667fc8] refactor(config): make config.Channel to multiple instance support
- [e6e724] refactor(config): reconcile defaults with main
- [e0ceea] refactor(context): carry route and scope through runtime
- [4e1cee] refactor(docs): reorganize docs by type and locale
- [9cfa3c] refactor(inbound): add inbound context compatibility bridge
- [ee634d] refactor(providers): reorganize provider packages and facades
- [fcab3a] refactor(routing): move session allocation out of router
- [19a01d] refactor(routing): remove legacy bindings config
- [59dee8] refactor(runtime): drop non-session legacy context compatibility
- [718a5e] refactor(runtime): merge bus context and handled tool delivery
- [ca9652] refactor(session): replace dm scope with dimensions policy
- [3d6038] refactor(session): tighten legacy boundary and tool context
- [2b8447] refactor(tests): extract common logic for fallback error handling into a helper function
- [4c133d] refactor(tools): reorganize tool packages and facades
- [5a2e77] refactor(web): improve theme style element management in useHighlightTheme hook
- [53482a] refactor(web): resolve pico sessions from scope metadata
- [4b7619] refactor(web): secure Pico websocket access behind launcher auth
- [74c98a] refactor(web): secure Pico websocket access behind launcher auth (#2545)
- [71c877] refactor(web): switch dashboard auth from tokens to passwords (#2608)
- [389f49] refactor(web): use official highlight themes for markdown
- [f5e779] refactor: make agent loop support parallel and update docs
- [d0ff24] remove useless backend output for platform-token (#2500)
- [168b75] style(lint): fix config and qq formatting
- [58f634] style(lint): satisfy gci and golines for review fixes
- [087e35] test(agent): remove unused respondWithMediaHook field
- [1dc25e] test(agent): remove unused respondWithMediaHook field
- [bb953b] test(api): fix web tools lint issues
- [a827d0] test(channels): normalize manager outbound test message
- [3a9d1f] test(channels): update inbound context assertions
- [453262] test(seahorse): add TestTriggerMigration for old-DB trigger upgrade path
Released by GoReleaser.