Commit Graph

184 Commits

Author SHA1 Message Date
Satyam Tiwari
0c4b8b00f4 Merge branch 'sipeed:main' into main 2026-02-13 11:23:54 +05:30
lxowalle
42e0e588dd * The docker-build workflow will no longer run when submitting a PR. 2026-02-13 12:14:45 +08:00
lxowalle
68abf6b2ee * fix: docker build failed 2026-02-13 12:10:00 +08:00
yinwm
4dfa133cb8 refactor(heartbeat): add configurable interval and channel-aware routing
feat(config): add heartbeat interval configuration with default 30 minutes

feat(state): migrate state file from workspace root to state directory

feat(channels): skip internal channels in outbound dispatcher

feat(agent): record last active channel for heartbeat context

refactor(subagent): use configurable default model instead of provider default
2026-02-13 11:13:32 +08:00
Guoguo
92b8710f59 fix(version): default to dev (#95)
`make build` injects the real version from git tags via ldflags. Avoid hardcoded version strings here.

Signed-off-by: Guoguo <i@qwq.trade>
2026-02-13 10:33:07 +08:00
Guoguo
8e15c9093b ci: add release workflow 2026-02-13 10:03:04 +08:00
yinwm
8fbbb67f70 refactor(heartbeat): simplify service with single handler and direct bus usage
- Remove redundant ChannelSender interface, use *bus.MessageBus directly
- Consolidate two handlers (onHeartbeat, onHeartbeatWithTools) into one
- Move HEARTBEAT.md and heartbeat.log to workspace root
- Simplify NewHeartbeatService signature (remove handler param)
- Add SetBus and SetHandler methods for dependency injection

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 09:51:51 +08:00
zepan
aa0ab7294b 1. update wechat group qrcode 2026-02-13 09:20:47 +08:00
esubaalew
7fa341c449 fix concurrency and persistence safety in session/cron/heartbeat services 2026-02-12 23:11:28 +03:00
Milan Lesichkov
5893245b45 Update launch announcement in README 2026-02-12 18:33:39 +00:00
yinwm
b59464230a perf(cron): use read lock for concurrent reads in addJob 2026-02-13 02:15:56 +08:00
Wikig
875a16d2d6 update telegram username support 2026-02-13 02:09:59 +08:00
yinwm
e353844dfb feat: re-enable cronTool service after refactor completion
Re-enable cronTool service integration after completing the ToolResult
refactor (US-016). Removed all temporary disable comments and restored
full cron service lifecycle including start/stop operations.

Additional improvements:
- Add thread-safe access to onHeartbeatWithTools handler
- Fix channel parsing to handle user IDs with special characters
- Add error handling for state file loading failures
2026-02-13 02:09:49 +08:00
yinwm
474f3dbf90 fix: resolve code review issues in tool-result-refactor
1. Remove duplicate ToolResult definition in heartbeat package
   - Import tools.ToolResult instead of local definition
   - Add nil check for handler before execution

2. Fix SpawnTool to return AsyncResult and implement AsyncTool
   - Add callback field and SetCallback method
   - Return AsyncResult instead of NewToolResult

3. Add context cancellation support to SubagentManager
   - Check ctx.Done() before and during task execution
   - Set task status to "cancelled" on cancellation
   - Call callback with result on completion

4. Fix data race window in CronTool.addJob
   - Use Lock instead of RLock for channel/chatID access
   - Ensure consistent snapshot during job creation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 01:59:50 +08:00
yinwm
e7e086155e feat: merge heartbeat service improvements from feat-heartbeat branch
- Add ChannelSender interface for sending heartbeat results to users
- Add sendResponse() to automatically deliver results to last channel
- Add createDefaultHeartbeatTemplate() for first-run setup
- Support HEARTBEAT_OK silent response (legacy compatibility)
- Add structured logging with INFO/ERROR levels
- Move integration tests to separate file with build tag

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 01:42:22 +08:00
yinwm
53b5be862f Merge remote-tracking branch 'origin/main' into ralph/tool-result-refactor 2026-02-13 01:02:52 +08:00
yinwm
ab20314882 Merge upstream/main into ralph/tool-result-refactor
Resolved conflicts:
- pkg/heartbeat/service.go: merged both 'started' field and 'onHeartbeatWithTools'
- pkg/tools/edit.go: use validatePath() with ToolResult return
- pkg/tools/filesystem.go: fixed return values to use ToolResult
- cmd/picoclaw/main.go: kept active setupCronTool, fixed toolsPkg import
- pkg/tools/cron.go: fixed Execute return value handling

Fixed tests for new function signatures (NewEditFileTool, NewAppendFileTool, NewExecTool)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 01:00:26 +08:00
Satyam Tiwari
fbe1152e2d Merge branch 'sipeed:main' into main 2026-02-12 22:13:41 +05:30
lxowalle
d83fb6e081 * Fix typos 2026-02-13 00:25:08 +08:00
Sunwood-ai-labs
d2a372e7cc Add openrouter config sample 2026-02-13 00:25:08 +08:00
Sunwood-ai-labs
759f4cfe25 refactor(docker): consolidate compose files and move config to config/ directory
- Deleted docker-compose.discord.yml and merged into docker-compose.yml
- Moved config.example.json to config/
- Updated volume mounts to use ./config/config.json
- Updated verify script permissions (implied if valid)
2026-02-13 00:25:08 +08:00
Sunwood-ai-labs
2997ea0b01 ci: add GitHub Actions workflow for Docker image build & push 🐳 2026-02-13 00:25:08 +08:00
Sunwood-ai-labs
1b45195acb feat: add Docker Compose support for Discord bot deployment
- Add Dockerfile with multi-stage build for picoclaw
- Add docker-compose.discord.yml for Discord bot service
- Add docker-compose.yml for agent mode service
- Add .env.example with environment variable template
- Add .dockerignore for optimized builds
- Update README.md with Docker Compose section and language switch
- Add README.ja.md (Japanese documentation)
- Update .gitignore with Docker-related entries
2026-02-13 00:25:08 +08:00
Satyam Tiwari
04924ed640 Merge branch 'main' of https://github.com/SatyamDevv/picoclaw 2026-02-12 21:49:18 +05:30
Satyam Tiwari
53df8d1f3d feat: Add DuckDuckGo search fallback.
- Refactor web tool to use Provider pattern (Brave/DuckDuckGo)
- Add robust HTML scraping for keyless DuckDuckGo search
- Update README with search provider guidelines
2026-02-12 21:48:51 +05:30
yinwm
b36c87bd60 chore: Clean up Ralph agent tracking files
Remove .ralph/ directory files from git tracking.
These are no longer needed as the tool-result-refactor is complete.

Also removes root-level prd.json and progress.txt.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 23:51:52 +08:00
Guoguo
d165fde011 build: add darwin arm64 target (#76) 2026-02-12 23:37:40 +08:00
yinwm
3eb9d6a409 chore: Remove backup cron files
Remove .bak2 and .broken backup files from pkg/tools/

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 23:35:28 +08:00
lxowalle
e2862c721d Merge pull request #74 from SatyamDevv/main
feat(cron): Add support for direct shell command execution in scheduled jobs
2026-02-12 23:31:36 +08:00
Satyam Tiwari
0b7f8c1e82 Merge remote-tracking branch 'upstream/main' 2026-02-12 20:58:36 +05:30
lxowalle
19fc918e9c Merge pull request #73 from Leeaandrob/feat/claude-cli-provider
feat: add cli-based LLM provider
2026-02-12 23:27:29 +08:00
lxowalle
bba44cf89c Merge pull request #72 from xray918/add-clawdchat-social-network
Add ClawdChat Agent Social Network section
2026-02-12 23:07:58 +08:00
Satyam Tiwari
19b9f93935 Merge remote-tracking branch 'upstream/main' 2026-02-12 20:35:25 +05:30
Satyam Tiwari
2855764712 Merge branch 'main' of https://github.com/SatyamDevv/picoclaw 2026-02-12 20:30:13 +05:30
lxowalle
a8cd784636 Merge pull request #64 from DevEverything01/fix/heartbeat-service-start-bug
fix(heartbeat): resolve bug where service could never start
2026-02-12 22:59:50 +08:00
Satyam Tiwari
7c16afbe62 merged and fixed the issues 2026-02-12 20:29:15 +05:30
Satyam Tiwari
71a81eb297 Merge branch 'main' of https://github.com/SatyamDevv/picoclaw 2026-02-12 20:25:31 +05:30
xiexinfa
ae2501d943 Add ClawdChat Agent Social Network section to README
- Add new section introducing ClawdChat.ai agent social network
- Include ClawdChat icon with transparent background
- Provide clear instructions for joining the network
- Position section before Configuration for better visibility

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 22:53:04 +08:00
Leandro Barbosa
f6362ce7b1 feat: add cli-based LLM provider
Add ClaudeCliProvider that executes the local CLI as a subprocess,
enabling PicoClaw to leverage advanced capabilities (MCP tools,
workspace awareness, session management) through any messaging channel.

- Implement LLMProvider interface via subprocess execution
- Support --system-prompt, --model, --output-format json flags
- Parse real v2.x JSON response format including usage tokens
- Handle error responses, stderr, context cancellation
- Register "claude-cli", "claude-code", "claudecode" aliases in CreateProvider
- 56 unit tests with mock scripts + 3 integration tests against real binary
- 100% coverage on all functions except stripToolCallsJSON (85.7%)
2026-02-12 11:51:51 -03:00
Satyam Tiwari
9c98c11351 Enhance CronTool to support executing shell commands and update job handling 2026-02-12 20:21:49 +05:30
lxowalle
930080f603 Merge pull request #56 from jmahotiedu/fix/openai-device-code-interval
fix(auth): support string interval in OpenAI device-code flow
2026-02-12 22:51:37 +08:00
lxowalle
5b6ad3f7cf Merge pull request #55 from Diegox-17/patch-1
Fix LLM error by cleaning up CONSCIOUSLY message history
2026-02-12 22:49:57 +08:00
mxrain
a9a7a89c07 feat: add Moonshot/Kimi and NVIDIA provider support with proxy 2026-02-12 22:39:38 +08:00
mxrain
53c69ae41e fix: use cmd /c on Windows for shell command execution
The exec tool was hardcoded to use 'sh -c' which doesn't exist on Windows,
causing all tool calls to fail silently in gateway mode.
2026-02-12 22:38:47 +08:00
mxrain
1d143fa10a feat: add Telegram proxy support and flexible allow_from matching
- Add proxy config field for Telegram channel to support HTTP/SOCKS proxies
- Use telego.WithHTTPClient to route all Telegram API requests through proxy
- Add FlexibleStringSlice type so allow_from accepts both strings and numbers
- Improve IsAllowed to match numeric ID, username, and @username formats
- Update config.example.json with proxy field
2026-02-12 22:38:47 +08:00
Guoguo
0661d05541 ci: add build check workflow (#71)
Signed-off-by: Guoguo <i@qwq.trade>
2026-02-12 22:28:27 +08:00
lxowalle
8661d54406 * Delete unused file 2026-02-12 21:58:40 +08:00
lxowalle
8d155988a9 Merge pull request #26 from RinZ27/fix-path-traversal-and-unrestricted-exec
Enforce workspace directory boundaries for system tools
2026-02-12 21:57:29 +08:00
lxowalle
df1e4d0494 Merge branch 'main' into fix-path-traversal-and-unrestricted-exec 2026-02-12 21:57:16 +08:00
yinwm
5582b6d910 docs: Complete tool-result-refactor - All 21 user stories done
All 21 user stories for tool-result-refactor project completed:
- US-001 through US-021
- All acceptance criteria met
- Typecheck passes
- Tests created and passing

Project successfully refactored all tools to use structured ToolResult
return values, supporting async tasks and proper user/LLM message routing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 20:17:13 +08:00