Commit Graph

183 Commits

Author SHA1 Message Date
Hoshina
11a6f5eb71 docs: update QQ Open Platform link to correct URL 2026-02-14 12:43:44 +08:00
daming大铭
5872e0f55e Merge pull request #147 from ex-takashima/feat/line-channel
feat(channels): add LINE Official Account channel support
2026-02-14 11:24:00 +08:00
ex-takashima
6463796fa1 fix: update tests to match upstream API changes
Fix web_test.go and config_test.go to use current function signatures
after merging upstream changes (WebSearchToolOptions, BraveConfig).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 11:32:42 +09:00
ex-takashima
ac79a23e0a style: fix gofmt formatting (CRLF -> LF)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 11:21:47 +09:00
Meng Zhuo
ff92973361 chore: fix tab in build 2026-02-14 09:56:21 +08:00
Meng Zhuo
d7822e5d52 chore: fmt code in build 2026-02-14 09:47:55 +08:00
ex-takashima
aa7a8b89c3 merge: resolve conflict with upstream main
Merge upstream changes (HeartbeatConfig addition) alongside LINEConfig.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 10:47:06 +09:00
zepan
6083168ab4 update wechat group qrcode 2026-02-14 09:11:44 +08:00
ex-takashima
f294a71bc5 feat(channels): add LINE Official Account channel support
Add LINE Messaging API as the 9th messaging channel using HTTP Webhook.
Supports text/image/audio messages, group chat @mention detection,
reply with quote, and loading animation.

- No external SDK required (standard library only)
- HMAC-SHA256 webhook signature verification
- Reply Token (free) with Push API fallback
- Group chat: respond only when @mentioned
- Quote original message in replies using quoteToken

Closes #146

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 10:01:20 +09:00
Avisek
45351a6a79 refactor: Trim trailing slashes from the API base URL and enhance API error messages with status codes. 2026-02-14 02:09:55 +08:00
lxowalle
1aea912fcd Merge pull request #83 from carzygod/main
update telegram username support
2026-02-14 00:49:14 +08:00
lxowalle
55d5e89246 Merge pull request #78 from SatyamDevv/main
feat(search): Add DuckDuckGo fallback for credit-card-free web search
2026-02-14 00:16:40 +08:00
lxowalle
bd9c9d7efc Merge branch 'main' into main 2026-02-14 00:16:10 +08:00
Meng Zhuo
82a9a80d94 Merge pull request #130 from MHCP000/fix/codeblock-index-bug
fix: correct index bug in extractCodeBlocks and extractInlineCodes
2026-02-13 22:52:42 +08:00
lxowalle
878650c459 * fix: heartbeat/service_test.go test failed 2026-02-13 22:19:18 +08:00
lxowalle
7f60392d88 Merge pull request #24 from Esubaalew/main
Fix concurrency races in session manager and stabilize service lifecycles
2026-02-13 22:17:23 +08:00
lxowalle
bc27707671 Merge branch 'main' into main 2026-02-13 22:08:20 +08:00
zeo
1e17bac9f0 fix: correct index bug in extractCodeBlocks and extractInlineCodes
The previous implementation used len(codes)-1 in ReplaceAllStringFunc,
which caused all placeholders to point to the same (last) index.
This resulted in only the last code block being displayed correctly
when multiple code blocks were present in a message.

Now using a proper counter variable that increments for each match,
ensuring each code block gets a unique placeholder index.
2026-02-13 21:38:14 +08:00
daming大铭
14de80d35f Merge pull request #128 from yinwm/feat/better-version
feat: add git commit hash to version and improve documentation
2026-02-13 20:25:27 +08:00
yinwm
b5a8effcd6 style: fix var block formatting
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 20:23:36 +08:00
zepan
82fea61551 update readme 2026-02-13 20:20:33 +08:00
yinwm
92490feff0 refactor(version): extract version formatting helpers and improve build info display
Extract formatVersion() and formatBuildInfo() helper functions to reduce code duplication between printVersion() and statusCmd(). Update git commit default value to "dev" in Makefile for consistency with version handling. Update documentation for QQ and DingTalk chat integration in Japanese README.
2026-02-13 19:56:31 +08:00
yinwm
3c2e467324 Merge remote-tracking branch 'origin/HEAD' into feat/better-version 2026-02-13 19:34:44 +08:00
daming大铭
9036a511fb Merge branch 'sipeed:main' into main 2026-02-13 19:34:11 +08:00
yinwm
e0f702fe03 docs: add security sandbox documentation
Add comprehensive documentation about the security sandbox feature,
including default configuration, protected tools, exec tool
protection, error examples, and security boundary consistency.
Also remove outdated config.openrouter.json sample file.
2026-02-13 19:33:21 +08:00
Meng Zhuo
ee3e8ccebb Merge pull request #124 from mengzhuo/mengzhuo-fmt-1
Add dependencies for fmt-check in vet and test jobs
2026-02-13 18:47:54 +08:00
Meng Zhuo
b484d3fcf3 Add dependencies for fmt-check in vet and test jobs 2026-02-13 18:46:00 +08:00
Meng Zhuo
000e64c55a gh: add pull request check 2026-02-13 18:13:26 +08:00
Satyam Tiwari
c86e121688 refactor: update tool registry usage and enhance WebSearchTool execution result handling 2026-02-13 15:41:37 +05:30
Satyam Tiwari
e0a766243e Merge branch 'main' of https://github.com/sipeed/picoclaw 2026-02-13 15:36:43 +05:30
Meng Zhuo
1516cb57b4 Change Docker build trigger to on release published 2026-02-13 18:03:25 +08:00
Meng Zhuo
584a3dcc87 misc: fmt code 2026-02-13 17:51:47 +08:00
Meng Zhuo
c58f8b740f Merge pull request #111 from shengsuan/ssy
add ShengSuanYun (胜算云) as a models provider
2026-02-13 17:41:15 +08:00
daming大铭
5339389ef7 Merge pull request #105 from Zhaoyikaiii/bugfix/fix-duplicate-telegram-messages
bugfix: fix duplicate Telegram message sending
2026-02-13 17:25:13 +08:00
Satyam Tiwari
f739c459bf Merge branch 'main' of https://github.com/SatyamDevv/picoclaw 2026-02-13 14:43:26 +05:30
Satyam Tiwari
2f5849b39d feat: add support for DuckDuckGo and refactor Brave search configuration support the control with config.js 2026-02-13 14:42:55 +05:30
Zhaoyikaiii
cf5a84aac1 merge: resolve conflicts with upstream/main
Merge upstream/main into bugfix/fix-duplicate-telegram-messages.

Conflict resolutions:
- pkg/agent/loop.go: Adopt upstream's processSystemMessage which removes
  runAgentLoop call entirely (subagents now communicate via message tool
  directly). Keep PR's HasSentInRound() check in Run() for normal
  message processing path.
- pkg/tools/message.go: Merge both changes - keep sentInRound tracking
  from PR and adopt upstream's *ToolResult return type with Silent: true.
2026-02-13 16:52:33 +08:00
yinwm
5aa4dd2975 feat(cli): add git commit hash to version output
Users can now see the exact git commit used to build the binary,
which helps with debugging and deployment tracking.
2026-02-13 16:39:44 +08:00
coohu
896eae4c56 feat: add ShengSuanYun(胜算云) as a models provider. 2026-02-13 15:55:59 +08:00
daming大铭
0d339d9e5a Merge branch 'sipeed:main' into main 2026-02-13 15:46:41 +08:00
daming大铭
c0d1346b5c Merge pull request #85 from lesichkovm/patch-1
Update launch announcement in README
2026-02-13 15:35:21 +08:00
yinwm
7fa70b8cdf chore(docs): remove completed PRD document from tasks 2026-02-13 15:29:35 +08:00
daming大铭
9ccfea4ed4 Merge pull request #108 from yinwm/ralph/tool-result-refactor
refactor: Structured Tool Return Values with ToolResult
2026-02-13 15:27:27 +08:00
yinwm
cef1e39734 docs: add heartbeat documentation with spawn/subagent details
- Add Heartbeat section explaining periodic task execution
- Document spawn tool for async subagent creation
- Explain independent context and message tool communication
- Add workflow diagram for subagent communication
- Update workspace layout with HEARTBEAT.md and state/
- Add heartbeat config to config.example.json

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 15:19:37 +08:00
yinwm
a6aa833237 Merge remote-tracking branch 'origin/main' into ralph/tool-result-refactor 2026-02-13 15:06:23 +08:00
yinwm
8851152cbd refactor(tools): extract shared logic for internal channels and tool definitions
- Add constants package with IsInternalChannel helper to centralize internal channel checks across agent, channels, and heartbeat services
- Add ToProviderDefs method to ToolRegistry to consolidate tool definition conversion logic used in agent loop and tool loop
- Refactor SubagentTool.Execute to use RunToolLoop for consistent tool execution with iteration tracking
- Remove duplicate inline map definitions and type assertion code throughout codebase
2026-02-13 15:05:16 +08:00
Zhaoyikaiii
132fe7db51 bugfix: fix duplicate Telegram message sending
Two issues caused duplicate messages to be sent to users:

1. System messages (from subagent): processSystemMessage set SendResponse:true,
   causing runAgentLoop to publish outbound. Then Run() also published outbound
   using the returned response string, resulting in two identical messages.
   Fix: processSystemMessage now returns empty string since runAgentLoop already
   handles the send.

2. Message tool double-send: When LLM called the "message" tool during
   processing, it published outbound immediately. Then Run() published the
   final response again. Fix: Track whether MessageTool sent a message in the
   current round (sentInRound flag, reset on each SetContext call). Run()
   checks HasSentInRound() before publishing to avoid duplicates.
2026-02-13 14:41:21 +08:00
yinwm
0cce9fc905 refactor(agent): extract reusable tool loop and make subagents independent
Extract core LLM tool loop logic into shared RunToolLoop function that can be
used by both main agent and subagents. Subagents now run their own tool loop
with dedicated tool registry, enabling full independence.

Key changes:
- New pkg/tools/toolloop.go with reusable tool execution logic
- Subagents use message tool to communicate directly with users
- Heartbeat processing is now stateless via ProcessHeartbeat
- Simplified system message routing without result forwarding
- Shared tool registry creation for consistency between agents

This architecture follows openclaw's design where async tools notify via
bus and subagents handle their own user communication.
2026-02-13 14:39:39 +08:00
Esubalew Chekol
fc40f291d1 Merge branch 'main' into main 2026-02-13 09:28:46 +03:00
Satyam Tiwari
0c4b8b00f4 Merge branch 'sipeed:main' into main 2026-02-13 11:23:54 +05:30