yinwm
1984bb5bbd
fix(test): mock gateway health check in status tests
...
Two gateway tests were flaky due to race conditions:
- TestGatewayStatusReturnsRestartingDuringRestartGap
- TestGatewayRestartReturnsErrorStatusWhenReplacementFailsToStart
The handleGatewayStatus function calls getGatewayHealth which can
override the test's expected status. By mocking gatewayHealthGet
to return an error, the tests now reliably verify the expected
status values.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-22 22:21:27 +08:00
yinwm
c48954d32d
merge: sync main into refactor/agent
2026-03-22 21:44:17 +08:00
daming大铭
729a878f73
Merge pull request #1636 from lppp04808/feat/subturn-poc
...
feat(agent): subturn
2026-03-22 21:17:33 +08:00
Administrator
7868c5811a
fix(agent): fix subturn panic result, hard abort rollback, and drain bus exit
...
- spawnSubTurn: set result=nil on panic instead of constructing a non-nil ToolResult
- HardAbort: roll back session history to initialHistoryLength after Finish()
- drainBusToSteering: switch to non-blocking reads after first message so function
returns promptly when the inbound channel is empty
- remove obsolete documentation files
2026-03-22 20:35:14 +08:00
Administrator
7ba8682ac5
Merge branch 'refactor/agent' into feat/subturn-poc
2026-03-22 19:51:43 +08:00
Administrator
f7f27e237a
merge: resolve conflicts between refactor/agent and main
2026-03-22 19:21:58 +08:00
Mauro
2f6f25dc58
Merge pull request #1882 from lc6464/frontend-fix
...
fix(chat): preserve blank lines and add input hint
2026-03-22 10:48:59 +01:00
daming大铭
809aef87d7
Merge pull request #1885 from alexhoshina/fix-1884-qq-long-audio-file-fallback
...
fix(qq): send long audio as file
2026-03-22 17:37:29 +08:00
Hoshina
2c317444c5
fix(qq): send long audio as file
...
Downgrade outbound QQ audio to file upload when it exceeds the 60 second voice limit or its duration cannot be detected.
Refs #1884
2026-03-22 17:19:11 +08:00
lc6464
7eaadfd273
fix(chat): preserve blank lines and add input hint
...
- Add Tailwind `whitespace-pre-wrap` to the user message bubble of web chat so spaces and blank lines can be rendered correctly.
- Update chat input placeholders in en.json and zh.json to show Enter vs Shift+Enter.
2026-03-22 15:59:19 +08:00
daming大铭
0432facffc
Merge pull request #1863 from alexhoshina/feat/hook-manager
...
Feat/hook manager
2026-03-22 14:36:07 +08:00
Hua Audio
dd82794255
Feat/weixin openclaw port ( #1873 )
...
* init
* fix lint
* fix go test
* update docs
* incorporate pr review
* Update pkg/channels/weixin/weixin.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* feat(weixin): add media sync and typing support
* test(weixin): cover media and sync helpers
---------
Co-authored-by: zhangmikoto <i@electromaster.me >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: Hoshina <hoshina@evaz.org >
2026-03-22 14:23:39 +08:00
daming大铭
04def0f10b
Merge pull request #1844 from afjcjsbx/fix/scope-steering
...
fix(agent) scope steering
2026-03-22 14:22:43 +08:00
Administrator
482c88cd15
remove merge conflict markers from .gitignore
2026-03-22 13:48:03 +08:00
Administrator
88d754b172
merge main
2026-03-22 13:47:14 +08:00
daming大铭
931eee92a0
Merge pull request #1853 from kunalk16/feat-configurable-logger
...
feat(logging): add configurability for log levels preference
2026-03-22 13:27:06 +08:00
Caize Wu
9107740781
Merge pull request #1857 from lc6464/main
...
docs: clean up README and update QRCode
2026-03-22 11:12:30 +08:00
Mauro
c0bb8d6df9
Merge pull request #1617 from yzxlr/codex/fix-1561-heartbeat-template-idle
...
fix(heartbeat): ignore untouched default template
2026-03-21 20:18:39 +01:00
Mauro
e6ea9c4ff3
Merge pull request #1855 from badgerbees/fix/telegram-group-id-validation
...
fix(identity): support negative integers in isNumeric for Telegram group IDs
2026-03-21 20:16:49 +01:00
Mauro
7a47d7a55c
Merge pull request #1782 from biisal/chore/docker-data-in-gitignore
...
chore: Ignore the `docker/data` directory.
2026-03-21 19:52:25 +01:00
Mauro
5286464bfc
Merge pull request #1861 from amirmamaghani/feat/agent-browser-skill-heavy-dockerfile
...
feat: add agent-browser skill and Dockerfile.heavy
2026-03-21 19:47:07 +01:00
daming大铭
3cd674e3b8
Merge pull request #1865 from sipeed/revert-1752-feat/exec-tool-enhancement
...
Revert "feat(tools): add exec tool enhancement with background execution and PTY support"
2026-03-22 00:46:56 +08:00
daming大铭
ebcd5645f1
Revert "feat(tools): add exec tool enhancement with background execution and …"
...
This reverts commit f901af8cbc .
2026-03-22 00:39:47 +08:00
Administrator
24d6cb5272
Merge branch 'upstream-main' into feat/subturn-poc
2026-03-21 23:42:25 +08:00
Hoshina
9978c9550b
docs(hooks): inline and translate hook examples
2026-03-21 23:18:29 +08:00
Liu Yuan
f901af8cbc
feat(tools): add exec tool enhancement with background execution and PTY support ( #1752 )
...
- Unified exec tool with actions: run/list/poll/read/write/send-keys/kill
- PTY support using creack/pty library
- Process session management with background execution
- Process group kill for cleaning up child processes
- Session cleanup: 30-minute TTL for old sessions
- Output buffer: 100MB limit with truncation
Actions:
- run: execute command (sync or background)
- list: list all sessions
- poll: check session status
- read: read session output
- write: send input to session stdin
- send-keys: send special keys (up, down, ctrl-c, enter, etc.)
- kill: terminate session
Tests:
- PTY: allowed commands, write/read, poll, kill, process group kill
- Non-PTY: background execution, list, read, write, poll, kill, process group kill
- Session management: add/get/remove/list/cleanup
2026-03-21 22:38:03 +08:00
Amir Mamaghani
520391643b
feat: add agent-browser skill and Dockerfile.heavy with full runtime
...
Add agent-browser skill to the default workspace with complete CLI
reference for browser automation via Chrome/Chromium CDP. The skill
includes a runtime guard that checks for the binary before use.
Add Dockerfile.heavy — a batteries-included container image with:
- Node.js 24 + npm
- Python 3 + pip + uv
- Chromium + Playwright (for agent-browser)
- agent-browser CLI pre-installed
- Non-root picoclaw user (UID/GID 1000)
- Default workspace with all skills
- Persistent workspace volume
This complements the existing minimal Dockerfile and Dockerfile.full
for deployments that need browser automation and rich tool support.
2026-03-21 15:14:32 +01:00
Hoshina
337e43e5a5
feat(agent): add configurable hook mounting
2026-03-21 19:46:16 +08:00
Hoshina
cf68c91eca
feat(agent): add hook manager foundation
2026-03-21 19:15:10 +08:00
LC
f71a6ff76c
docs: update alt text of wechat.png with a more meaningful description
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-03-21 18:52:39 +08:00
lc6464
e2e3e6d5b0
docs: update WeChat QRCode for README
2026-03-21 18:40:10 +08:00
lc6464
ab93c235ae
docs: clean up README by removing duplicate sections
2026-03-21 18:36:29 +08:00
Administrator
670b433f1a
refactor: replace interface{} with any for improved type clarity
2026-03-21 18:24:56 +08:00
Badgerbees
bc0be17e88
fix(identity): support negative integers in isNumeric for Telegram group IDs
2026-03-21 17:09:02 +07:00
Administrator
1bd144ac13
Merge branch 'upstream-main' into feat/subturn-poc
2026-03-21 17:13:26 +08:00
Administrator
087e8519c5
refactor: improve code readability and consistency across multiple files
2026-03-21 17:12:45 +08:00
Kunal Karmakar
073ae4864f
Fix spelling
2026-03-21 07:20:59 +00:00
Kunal Karmakar
4c8526d917
Merge branch 'feat-configurable-logger' of https://github.com/kunalk16/picoclaw into feat-configurable-logger
2026-03-21 06:54:55 +00:00
Kunal Karmakar
647071d342
Add default value for config
2026-03-21 06:54:49 +00:00
Kunal Karmakar
92b7687068
Add configurable logger
2026-03-21 06:54:49 +00:00
Kunal Karmakar
650827103d
Merge branch 'main' of https://github.com/sipeed/picoclaw into feat-configurable-logger
2026-03-21 06:53:17 +00:00
Kunal Karmakar
f35516c5c9
Add default value for config
2026-03-21 06:53:05 +00:00
BeaconCat
6148ccc529
docs(feishu): note that Feishu channel does not support 32-bit devices ( #1851 )
...
Co-authored-by: BeaconCat <BeaconCat@users.noreply.github.com >
2026-03-21 14:36:51 +08:00
Kunal Karmakar
8490084640
Merge branch 'main' of https://github.com/sipeed/picoclaw into feat-configurable-logger
2026-03-21 05:18:55 +00:00
Kunal Karmakar
329322075d
Add configurable logger
2026-03-21 05:18:25 +00:00
Mauro
100720bb74
Merge pull request #1818 from Alix-007/fix/issue-1815-empty-response-message
...
fix(agent): separate empty-response and tool-limit fallbacks
2026-03-20 23:23:48 +01:00
afjcjsbx
9e344594a2
fix logic
2026-03-20 21:07:07 +01:00
afjcjsbx
827449aff3
fix lint
2026-03-20 20:12:55 +01:00
afjcjsbx
1c6586681d
fix(agent) scope steering
2026-03-20 19:44:00 +01:00
BeaconCat
403ceb39be
docs: fix inaccuracies, add translations, and expand channel docs ( #1837 )
...
## Config field fixes (cross-verified against Go source)
- MaixCam: server_address → host + port
- IRC: use_tls → tls, channels_to_join → channels (all 6 languages)
- WeCom AI Bot: callback port 18791 → 18790
- credential_encryption: base_url → api_base, add required model field,
remove incorrect passphrase-only mode docs
- providers.md: agents.defaults.model → model_name (×4), remove
non-existent session.backlog_limit
- migration guide, troubleshooting: agents.defaults.model → model_name
- ANTIGRAVITY_AUTH: fix file path, Go 1.21 → 1.25, model → model_name
- spawn-tasks: fix truncated file, add Heartbeat introduction
- tools_configuration: add Tavily/SearXNG/GLMSearch, exec allow_remote/
timeout_seconds/custom_allow_patterns, cron allow_command, skills
github/search_cache, clawhub timeout/max_zip_size/max_response_size
- configuration: fix builtin skills path (build-time embedded, not cwd),
HEARTBEAT.md marked auto-generated
## Broken link fixes (15 total)
- chat-apps.md: WeCom/Matrix links with wrong relative paths
- providers.md: migration link with extra docs/ prefix
- hardware-compatibility.md: README links with wrong depth (all 5 langs)
- chat-apps.md: WhatsApp dead links → anchor links (zh/ja)
## Getting-started accuracy
- README (all 6 langs): add picoclaw.io as recommended download,
add missing picoclaw model CLI command
- docker.md: clarify first-run trigger condition (all 6 langs)
- configuration.md: fix builtin skills path description (all 6 langs)
## QQ channel
- Add quick setup via q.qq.com/qqbot/openclaw (one-click bot creation)
- Add manual setup as fallback (all 6 languages)
## Feishu channel
- Update setup flow: WebSocket/SDK mode, no webhook URL needed
- Preserve Lark international domain note (all 6 languages)
## chat-apps.md
- Add Feishu, Slack, IRC, OneBot detail sections (all 6 languages)
- Add MaixCam section to ja/fr/pt-br/vi
- Fix all channel doc links to point to correct language version
## New translations (25 files, 5 docs × 5 languages)
debug.md, credential_encryption.md, hardware-compatibility.md,
ANTIGRAVITY_AUTH.md, ANTIGRAVITY_USAGE.md → zh/ja/fr/pt-br/vi
## Channel docs (6 languages each, 60 new files)
telegram, discord, qq, feishu, maixcam, dingtalk, line, slack, onebot,
wecom/wecom_aibot, wecom/wecom_app, wecom/wecom_bot
Co-authored-by: BeaconCat <BeaconCat@users.noreply.github.com >
2026-03-20 22:37:05 +08:00