xiaoen
039f35563e
feat(agent): wire delegate tool registration for multi-agent setups
...
Register the delegate tool in registerSharedTools when multiple agents
are configured. Gated independently from the subagent tool — delegate
uses SubTurn directly and does not depend on SubagentManager.
Self-delegation is prevented by injecting the current agent ID.
Permission is enforced via CanSpawnSubagent (reuses allow_agents config).
Single-agent setups are unaffected: the tool is not registered when
only one agent exists in the registry.
Ref: #2148
2026-04-15 21:29:29 +08:00
xiaoen
0ff78fa53f
test(tools): add delegate tool unit tests
...
12 test cases covering:
- success path with result attribution
- agent_id validation (missing, empty, whitespace, wrong type)
- task validation (missing, empty, whitespace)
- permission denied / allowed via allowlist checker
- self-delegation blocked
- nil spawner, spawner error, nil result from spawner
- open access when no allowlist checker is set
Ref: #2148
2026-04-15 21:28:54 +08:00
xiaoen
484ef399f1
feat(tools): add delegate tool for synchronous cross-agent task handoff
...
delegate(agent_id, task) hands off a task to a named agent and blocks
until the result is ready. The target agent runs with its own config
via the TargetAgentID mechanism in SubTurnConfig.
Key behaviors:
- Self-delegation explicitly rejected
- Permission gated by subagents.allow_agents (D4)
- Spawner errors preserve the underlying error via WithError
- Nil result from spawner handled gracefully
- Response attributed with target agent ID
Ref: #2148
2026-04-15 21:28:31 +08:00
xiaoen
c8335bfd47
test(agent): verify TargetAgentID resolves to correct agent instance
...
Add multi-agent test setup (newMultiAgentLoop) with two agents using
distinct models (model-alpha, model-beta).
Three new tests:
- UsesTargetAgent: parent=alpha delegates to beta, event log confirms
child runs as agent_id=beta with model=model-beta
- NotFound: TargetAgentID pointing to nonexistent agent returns error
- EmptyModelAccepted: empty Model field accepted when TargetAgentID
provides the model implicitly
Ref: #2148
2026-04-15 21:27:39 +08:00
xiaoen
c47f5fd2c4
feat(agent): add TargetAgentID to SubTurnConfig for cross-agent delegation
...
When TargetAgentID is set, spawnSubTurn resolves the target AgentInstance
from the registry and uses it as the base for the child turn. This gives
the child turn the target's workspace, model, tools, and system prompt
instead of inheriting from the caller.
Model validation is relaxed: empty Model is accepted when TargetAgentID
provides the model implicitly via the resolved agent instance.
Ref: #2148
2026-04-15 21:27:13 +08:00
taonyx
2e149f44dd
Merge pull request #2497 from wj-xiao/build/split-core-builds
...
build(release): move Android bundle publishing into GoReleaser
2026-04-13 14:25:17 +08:00
wenjie
6a870cb260
ci(build): remove unused Node.js and pnpm setup from core build workflow
2026-04-13 11:56:43 +08:00
wenjie
d73a0e89b4
build(release): move Android bundle publishing into GoReleaser
...
- build the Android universal bundle from GoReleaser hooks
- attach the bundle as a release asset
- remove the separate post-release upload step
- simplify Make targets around cross-platform builds
2026-04-13 11:52:35 +08:00
wenjie
ea2107e8a9
build(release): split core builds from release-only artifacts
...
- add a dedicated build-release-artifacts target for Android bundle packaging
- switch CI and release workflows to Corepack-managed pnpm with cache support
- pin the frontend pnpm version and make dependency installs deterministic
- inject version metadata into launcher binaries in GoReleaser
- update build documentation to reflect the new workflow
2026-04-13 11:23:55 +08:00
Guoguo
2b2bc26f8e
docs: fix Conventional Commits links in CONTRIBUTING files ( #2494 )
...
- CONTRIBUTING.md: change link from zh-hans to en locale
- CONTRIBUTING.zh.md: fix NBSP causing surrounding text to be absorbed into the link
- Both files now use proper markdown link syntax
2026-04-13 10:46:17 +08:00
daming大铭
6d03791929
Merge pull request #2475 from lc6464/fix/issue-2448-separate-thought-message
...
feat(gemini,pico): separate thought messages and add native Gemini provider
2026-04-12 19:20:19 +08:00
daming大铭
18d35c7d5d
Merge pull request #2486 from sky5454/main
...
build: add Android arm64 cross-compile support
2026-04-12 18:58:37 +08:00
sky5454
681b2a258b
build: address PR review — fix Android launcher flags, systray tag, rename target
2026-04-12 18:50:52 +08:00
dataCenter430
b6617a4b17
feat(cli): structured terminal UI for PicoClaw CLI like modern CLIs ( #2229 )
...
* feat(cli): add boxed help/error UI with no-color support
* fix: CI testing error
* fix: lint errors
* fix linter error
* fix: address review
2026-04-12 18:44:24 +08:00
sky5454
168b6bec58
build(android): ci build added
2026-04-12 18:35:05 +08:00
sky5454
080f532d82
build: add Android arm64 cross-compile support
...
- Add build-android-arm64, build-launcher-android-arm64, build-all-android
targets to Makefile and web/Makefile
- Use -tags stdjson (no goolm) for Android; CGO_ENABLED=0 throughout
- Output staged as build/android-staging/arm64-v8a/libpicoclaw{,-web}.so
for JNI consumption; zip packaging handled by CI
- Exclude Matrix channel from android builds (channel_matrix.go) to avoid
modernc.org/sqlite CGO dependency
- Exclude systray from android builds; use headless stub instead
(systray.go / systray_stub_nocgo.go)
2026-04-12 17:41:10 +08:00
lc6464
6fbd7e0a3f
fix(gemini): align thoughtSignature and stream tool IDs
2026-04-11 12:02:58 +08:00
lc6464
e9f55d776d
fix(review): address copilot backpressure and SSE parse feedback
2026-04-11 11:18:41 +08:00
lc6464
86917faa9b
fix(ci): resolve lint header casing and fallback test routing
2026-04-11 02:23:35 +08:00
lc6464
b73caebe6f
fix(chat): improve thought readability in dark mode
2026-04-11 01:44:39 +08:00
lc6464
cbae69ad64
fix(gemini): honor pro-model thinking constraints
2026-04-11 01:38:13 +08:00
lc6464
83e93ca572
fix(gemini): align thinking-off and system prompt semantics
2026-04-11 01:15:38 +08:00
lc6464
459e78c076
fix(gemini): harden dedicated provider compatibility
2026-04-11 00:50:24 +08:00
lc6464
c8bac699fe
fix(pico): separate thought and normal messages
2026-04-10 20:23:12 +08:00
Guoguo
748ac58dd1
fix(chat): keep tool-call summary and assistant output in sync ( #2449 )
...
* fix(chat): keep tool summaries and assistant output together
* fix(pico): stream assistant text between tool calls
* fix(pico): avoid duplicate final websocket message
* fix(review): align tool feedback reconstruction with runtime behavior
* style(lint): satisfy gci and golines for review fixes
* fix(agent): gate pico interim publish for internal turns
2026-04-10 15:08:30 +08:00
winterfx
187189ad4a
fix(seahorse): sanitize user input for FTS5 MATCH queries ( #2436 )
...
User input containing FTS5 operators (-, +, *, OR, NOT, :, quotes,
parentheses) could cause query errors or unexpected search results.
Wrap each token in double quotes to force literal matching while
preserving user-quoted phrases.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-10 11:59:50 +08:00
wenjie
d9977715a3
fix(launcher): align react and react-dom versions ( #2467 )
...
Pin react and react-dom to 19.2.5 to avoid runtime crashes caused by a version mismatch.
Refresh the pnpm lockfile to keep frontend dependencies in sync.
2026-04-10 11:13:05 +08:00
wenjie
795ec9af05
fix(launcher): fall back to token auth on unsupported platforms ( #2466 )
...
Handle platforms where the dashboard password store is unavailable
by treating legacy token auth as initialized, rejecting password
setup, and adding platform-specific store stubs and tests.
2026-04-10 11:12:54 +08:00
dependabot[bot]
7788ed4677
build(deps): bump github.com/modelcontextprotocol/go-sdk ( #2455 )
...
Bumps [github.com/modelcontextprotocol/go-sdk](https://github.com/modelcontextprotocol/go-sdk ) from 1.4.1 to 1.5.0.
- [Release notes](https://github.com/modelcontextprotocol/go-sdk/releases )
- [Commits](https://github.com/modelcontextprotocol/go-sdk/compare/v1.4.1...v1.5.0 )
---
updated-dependencies:
- dependency-name: github.com/modelcontextprotocol/go-sdk
dependency-version: 1.5.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 10:46:45 +08:00
dependabot[bot]
e58f00b0c1
build(deps): bump shadcn from 4.1.2 to 4.2.0 in /web/frontend ( #2459 )
...
Bumps [shadcn](https://github.com/shadcn-ui/ui/tree/HEAD/packages/shadcn ) from 4.1.2 to 4.2.0.
- [Release notes](https://github.com/shadcn-ui/ui/releases )
- [Changelog](https://github.com/shadcn-ui/ui/blob/main/packages/shadcn/CHANGELOG.md )
- [Commits](https://github.com/shadcn-ui/ui/commits/shadcn@4.2.0/packages/shadcn )
---
updated-dependencies:
- dependency-name: shadcn
dependency-version: 4.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 10:28:03 +08:00
dependabot[bot]
f1fe2db7ac
build(deps): bump @tanstack/react-query in /web/frontend ( #2458 )
...
Bumps [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query ) from 5.96.1 to 5.97.0.
- [Release notes](https://github.com/TanStack/query/releases )
- [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md )
- [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query@5.97.0/packages/react-query )
---
updated-dependencies:
- dependency-name: "@tanstack/react-query"
dependency-version: 5.97.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 10:27:18 +08:00
dependabot[bot]
19493140eb
build(deps): bump react from 19.2.4 to 19.2.5 in /web/frontend ( #2456 )
...
Bumps [react](https://github.com/facebook/react/tree/HEAD/packages/react ) from 19.2.4 to 19.2.5.
- [Release notes](https://github.com/facebook/react/releases )
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md )
- [Commits](https://github.com/facebook/react/commits/v19.2.5/packages/react )
---
updated-dependencies:
- dependency-name: react
dependency-version: 19.2.5
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 10:19:39 +08:00
dependabot[bot]
c6d15da1ea
build(deps): bump golang.org/x/sys from 0.42.0 to 0.43.0 ( #2450 )
...
Bumps [golang.org/x/sys](https://github.com/golang/sys ) from 0.42.0 to 0.43.0.
- [Commits](https://github.com/golang/sys/compare/v0.42.0...v0.43.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/sys
dependency-version: 0.43.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 10:18:25 +08:00
dependabot[bot]
484070736d
build(deps): bump jotai from 2.19.0 to 2.19.1 in /web/frontend ( #2452 )
...
Bumps [jotai](https://github.com/pmndrs/jotai ) from 2.19.0 to 2.19.1.
- [Release notes](https://github.com/pmndrs/jotai/releases )
- [Commits](https://github.com/pmndrs/jotai/compare/v2.19.0...v2.19.1 )
---
updated-dependencies:
- dependency-name: jotai
dependency-version: 2.19.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 10:13:42 +08:00
dependabot[bot]
0e57a446dc
build(deps-dev): bump vite from 8.0.3 to 8.0.8 in /web/frontend ( #2451 )
...
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) from 8.0.3 to 8.0.8.
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v8.0.8/packages/vite )
---
updated-dependencies:
- dependency-name: vite
dependency-version: 8.0.8
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 10:13:13 +08:00
Mauro
491418775b
fix(gateway): log startup errors before exit ( #2414 )
...
* fix(gateway): log startup errors before exit
* preserve deferred startup failure logging
2026-04-10 10:10:45 +08:00
Mauro
282ebcd956
Merge pull request #2457 from sipeed/dependabot/go_modules/modernc.org/sqlite-1.48.2
...
build(deps): bump modernc.org/sqlite from 1.48.0 to 1.48.2
2026-04-09 22:14:55 +02:00
Mauro
dde61365d4
Merge pull request #2420 from lahuman/docs/tool-escape-semantics
...
docs(tool): use provider-agnostic JSON escaping guidance
2026-04-09 20:50:06 +02:00
Mauro
d7d4374617
Merge pull request #2453 from sipeed/dependabot/go_modules/github.com/aws/aws-sdk-go-v2/config-1.32.14
...
build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.12 to 1.32.14
2026-04-09 20:42:54 +02:00
Mauro
d03d519c6d
Merge pull request #2454 from sipeed/dependabot/go_modules/github.com/mymmrac/telego-1.8.0
...
build(deps): bump github.com/mymmrac/telego from 1.7.0 to 1.8.0
2026-04-09 20:42:07 +02:00
dependabot[bot]
919e9eb645
build(deps): bump modernc.org/sqlite from 1.48.0 to 1.48.2
...
Bumps [modernc.org/sqlite](https://gitlab.com/cznic/sqlite ) from 1.48.0 to 1.48.2.
- [Changelog](https://gitlab.com/cznic/sqlite/blob/master/CHANGELOG.md )
- [Commits](https://gitlab.com/cznic/sqlite/compare/v1.48.0...v1.48.2 )
---
updated-dependencies:
- dependency-name: modernc.org/sqlite
dependency-version: 1.48.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-09 17:18:28 +00:00
dependabot[bot]
01a33bbb61
build(deps): bump github.com/mymmrac/telego from 1.7.0 to 1.8.0
...
Bumps [github.com/mymmrac/telego](https://github.com/mymmrac/telego ) from 1.7.0 to 1.8.0.
- [Release notes](https://github.com/mymmrac/telego/releases )
- [Commits](https://github.com/mymmrac/telego/compare/v1.7.0...v1.8.0 )
---
updated-dependencies:
- dependency-name: github.com/mymmrac/telego
dependency-version: 1.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-09 17:18:19 +00:00
dependabot[bot]
c71cd1eede
build(deps): bump github.com/aws/aws-sdk-go-v2/config
...
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2 ) from 1.32.12 to 1.32.14.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.12...config/v1.32.14 )
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
dependency-version: 1.32.14
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-09 17:18:14 +00:00
lc6464
bd88385923
fix(agent): gate pico interim publish for internal turns
2026-04-10 00:19:45 +08:00
lc6464
58f634b582
style(lint): satisfy gci and golines for review fixes
2026-04-10 00:02:20 +08:00
lc6464
bd13092831
fix(review): align tool feedback reconstruction with runtime behavior
2026-04-09 23:52:02 +08:00
lc6464
9982ee29a8
fix(pico): avoid duplicate final websocket message
2026-04-09 22:59:36 +08:00
lc6464
2aeed8fb3a
fix(pico): stream assistant text between tool calls
2026-04-09 22:32:35 +08:00
lc6464
5b596ed2f0
fix(chat): keep tool summaries and assistant output together
2026-04-09 22:16:36 +08:00
Mauro
20d3522069
Merge pull request #2418 from lahuman/docs/korean-readme
...
docs: add Korean README translation
2026-04-09 11:25:15 +02:00