Commit Graph

2505 Commits

Author SHA1 Message Date
程智超0668000959 500ce72436 fix(onebot): explicitly ignore resp.Body.Close() error after websocket dial 2026-06-26 22:42:43 +08:00
Mauro dff16dbb91 Merge pull request #3169 from Alix-007/fix/evolution-heartbeat-coldpath
fix(evolution): skip cold path for heartbeat turns
2026-06-25 08:59:03 +02:00
Mauro 0a47fc8eb1 Merge pull request #3168 from Alix-007/fix/model-list-http-error-read
fix(model): handle error response read failures
2026-06-25 08:42:36 +02:00
Alix-007 f53e6e68e2 fix(model): avoid shadowing response error 2026-06-24 23:35:06 +08:00
Alix-007 288013ca0f fix(evolution): skip cold path for heartbeat turns 2026-06-24 23:29:46 +08:00
Alix-007 5e3fd4cd0f fix(model): handle error response read failures 2026-06-24 23:29:46 +08:00
Alix-007 540f81ff9e fix(openai_compat): use structured logger for native_search warning 2026-06-24 18:30:44 +08:00
Mauro a75b3d15bb Merge pull request #3053 from chengzhichao-xydt/codex/store-lock-type-assert
fix(evolution): add ok check for LoadOrStore type assertion in lockStoreFile
2026-06-23 00:04:42 +02:00
Mauro eb8b6ca7c8 Merge pull request #3101 from sipeed/dependabot/npm_and_yarn/web/frontend/vite-8.0.16
build(deps-dev): bump vite from 8.0.13 to 8.0.16 in /web/frontend
2026-06-22 23:13:12 +02:00
Mauro ec9c6cde8e Merge pull request #3091 from chengzhichao-xydt/codex/provider-native-search-type-assert
fix(openai_compat): add ok check for native_search type assertion
2026-06-22 23:12:51 +02:00
dependabot[bot] 646c2db1e9 build(deps-dev): bump vite from 8.0.13 to 8.0.16 in /web/frontend
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 8.0.13 to 8.0.16.
- [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.16/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 8.0.16
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-22 21:04:17 +00:00
Mauro dc46c05aac Merge pull request #3105 from sipeed/dependabot/npm_and_yarn/web/frontend/eslint-10.4.1
build(deps-dev): bump eslint from 10.2.1 to 10.4.1 in /web/frontend
2026-06-22 23:01:39 +02:00
Mauro 43c671abdc Merge pull request #3152 from phoeagon/main
add installation instructions to picoclaw skills search.
2026-06-22 22:59:12 +02:00
phoeagon a63b44ac74 add installation instructions to picoclaw skills search. 2026-06-21 14:15:27 -07:00
Mauro 287853ab58 Merge pull request #3144 from sipeed/dependabot/github_actions/actions/checkout-7
build(deps): bump actions/checkout from 6 to 7
2026-06-18 22:09:12 +02:00
Mauro 0d1ed99007 Merge pull request #3146 from sipeed/dependabot/go_modules/golang.org/x/term-0.44.0
build(deps): bump golang.org/x/term from 0.43.0 to 0.44.0
2026-06-18 22:08:40 +02:00
Mauro 70afab59e6 Merge pull request #3147 from sipeed/dependabot/go_modules/github.com/Azure/azure-sdk-for-go/sdk/azidentity-1.14.0
build(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.13.1 to 1.14.0
2026-06-18 22:08:22 +02:00
Mauro a3be5a6b25 Merge pull request #3149 from sipeed/dependabot/go_modules/github.com/anthropics/anthropic-sdk-go-1.50.2
build(deps): bump github.com/anthropics/anthropic-sdk-go from 1.46.0 to 1.50.2
2026-06-18 22:07:53 +02:00
Mauro 62206befe1 Merge pull request #3148 from sipeed/dependabot/go_modules/golang.org/x/sys-0.46.0
build(deps): bump golang.org/x/sys from 0.45.0 to 0.46.0
2026-06-18 22:07:28 +02:00
dependabot[bot] 38a1d823c3 build(deps): bump github.com/anthropics/anthropic-sdk-go
Bumps [github.com/anthropics/anthropic-sdk-go](https://github.com/anthropics/anthropic-sdk-go) from 1.46.0 to 1.50.2.
- [Release notes](https://github.com/anthropics/anthropic-sdk-go/releases)
- [Changelog](https://github.com/anthropics/anthropic-sdk-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/anthropics/anthropic-sdk-go/compare/v1.46.0...v1.50.2)

---
updated-dependencies:
- dependency-name: github.com/anthropics/anthropic-sdk-go
  dependency-version: 1.50.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-18 17:14:29 +00:00
dependabot[bot] 35db389025 build(deps): bump golang.org/x/sys from 0.45.0 to 0.46.0
Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.45.0 to 0.46.0.
- [Commits](https://github.com/golang/sys/compare/v0.45.0...v0.46.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-version: 0.46.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-18 17:14:24 +00:00
dependabot[bot] aeab7b15a4 build(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azidentity
Bumps [github.com/Azure/azure-sdk-for-go/sdk/azidentity](https://github.com/Azure/azure-sdk-for-go) from 1.13.1 to 1.14.0.
- [Release notes](https://github.com/Azure/azure-sdk-for-go/releases)
- [Commits](https://github.com/Azure/azure-sdk-for-go/compare/sdk/azidentity/v1.13.1...sdk/azcore/v1.14.0)

---
updated-dependencies:
- dependency-name: github.com/Azure/azure-sdk-for-go/sdk/azidentity
  dependency-version: 1.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-18 17:14:21 +00:00
dependabot[bot] 6d0ca80f21 build(deps): bump golang.org/x/term from 0.43.0 to 0.44.0
Bumps [golang.org/x/term](https://github.com/golang/term) from 0.43.0 to 0.44.0.
- [Commits](https://github.com/golang/term/compare/v0.43.0...v0.44.0)

---
updated-dependencies:
- dependency-name: golang.org/x/term
  dependency-version: 0.44.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-18 17:14:11 +00:00
dependabot[bot] 4514d54ff5 build(deps): bump actions/checkout from 6 to 7
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-18 17:13:51 +00:00
Mauro 99291182e7 Merge pull request #3141 from jincheng-xydt/fix/3125-brave-search-logging
fix(web_search): add diagnostic logging for Brave empty results
2026-06-18 08:16:14 +02:00
Mauro 6c31f9ffdd Merge pull request #3136 from ZOOWH/fix/3111-gemini-thought-signature
fix(gemini): set both camelCase and snake_case thought_signature in tool call request body
2026-06-17 20:40:13 +02:00
Mauro e3464f4388 Merge pull request #2917 from PierreLeGuen/nearai-provider
feat(provider): add NEAR AI Cloud provider
2026-06-17 20:37:38 +02:00
徐闻涵0668001344 08192ddf1b style(test): split long t.Fatalf line to satisfy golines 120-char limit 2026-06-17 17:49:52 +08:00
肆月 7b5fe01187 fix(web): update sogou search regex to match new HTML structure (#3139)
- reSogouTitle: make class attribute quotes optional (class="?resultLink"?)
- reSogouSnippet: allow additional CSS classes after clamp (clamp\d*[^"]*)

Sogou WAP search page changed its HTML format:
- class=resultLink -> class="resultLink" (added quotes)
- class="clamp3" -> class="clamp2 fz-mid click-sugg-content" (extra classes)

Fixes web_search tool failing to parse sogou search results.
2026-06-17 17:02:54 +08:00
lc6464 1420875921 fix(onebot): tighten inbound media download handling 2026-06-17 17:00:24 +08:00
lc6464 234bd03018 fix(onebot): block private inbound media fetches 2026-06-17 17:00:24 +08:00
徐金城0668000897 b2fbe83565 fix(web_search): add diagnostic logging for Brave empty results
When the Brave Search API returns HTTP 200 with zero results, log a
warning with the response body preview to help diagnose silent failures.
This addresses cases where the API response format has changed or a
non-standard error response is misinterpreted as a successful empty
result, leaving the LLM with a misleading "No results" message.

Previously, empty results were silently returned to the LLM as "No
results for: <query>", making it impossible to distinguish between
genuinely empty results and API format mismatches or silent errors.

Closes #3125
2026-06-17 16:23:25 +08:00
Mauro a16a1e1535 Merge pull request #3137 from jp39/cron-command-remotes
feat: allow configured remote cron commands
2026-06-16 22:16:05 +02:00
Mauro 910bfbe6a4 Merge pull request #3120 from carlosprados/feat/register-channel-settings
feat(config): add RegisterChannelSettings hook for out-of-tree channels
2026-06-16 22:09:00 +02:00
Mauro 03b022c2ac Merge pull request #3127 from chengzhichao-xydt/codex/filesystem-dirfile-close
fix: explicitly ignore Close() errors on directory file descriptors
2026-06-16 22:08:31 +02:00
Mauro cc4055b6d4 Merge pull request #3129 from chengzhichao-xydt/codex/tts-close-error
fix(tts): explicitly ignore file.Close() error in write error path
2026-06-16 22:08:10 +02:00
Mauro 86221d470b Merge pull request #3135 from ZOOWH/fix/3110-telegram-forum-thread-id
fix(telegram): use compositeChatID in InboundContext.ChatID for forum topics
2026-06-16 22:06:31 +02:00
Mauro e720be0dd7 Merge pull request #3132 from SiYue-ZO/fix/goroutine-recover
fix: add panic recovery to core-path goroutines
2026-06-16 22:05:31 +02:00
Mauro c9f5872e02 Merge pull request #3130 from chengzhichao-xydt/codex/seahorse-marshal-errors
fix(seahorse): handle json.Marshal errors in grep and expand tools
2026-06-16 22:04:45 +02:00
jp39 0c1e6b5279 docs: warn about cron remote wildcard
Document that command_allowed_remotes = ["*"] is potentially dangerous
because any remote channel that can talk to PicoClaw can schedule shell
commands. Clarify that it should only be used when all enabled remote
channels and chats are trusted.
2026-06-16 17:26:45 +02:00
jp39 981ab3affe fix: scope remote cron command access
Allow allowlisted remote channels to list, get, and update their own
command cron jobs while preserving exact channel/chat ownership checks.

Apply the same access control to remove, enable, and disable so remote
callers cannot mutate jobs outside their channel/chat scope. Keep wildcard
remote allowlist behavior constrained by exact job ownership.

Add regression tests for allowlisted, non-allowlisted, wildcard, internal,
and non-command reminder access paths.
2026-06-16 17:26:45 +02:00
jp39 3056a540bf feat: allow configured remote cron commands
Add tools.cron.command_allowed_remotes so remote channels can be
explicitly allowlisted for command-executing cron jobs. Entries support
channel names, channel:chat_id pairs, and a literal * to allow every
non-empty channel while preserving the default deny posture.

The existing allow_command and command_confirm checks still apply after the
channel gate. Update tests, config examples, and cron documentation for the
new option.
2026-06-16 17:26:45 +02:00
徐闻涵0668001344 5b41f18c3d fix(gemini): set both camelCase and snake_case thought_signature in tool call request body
The Gemini HTTP API provider only set thoughtSignature (camelCase) when
building tool call request bodies. Gemini 2.5 models accept camelCase,
but Gemini 3.5 Flash Agentic reasoning requires thought_signature
(snake_case) — matching the format it returns in API responses. When
only the camelCase variant was sent, Gemini 3.5 Flash rejected the
request with a 400 Bad Request for missing thought_signature.

The fix sets both ThoughtSignature and ThoughtSignatureSnake in the
geminiPart struct, matching the pattern already used in
antigravity_provider.go. This ensures compatibility with both Gemini
2.x (camelCase) and Gemini 3.x Agentic (snake_case) models.

Closes #3111
2026-06-16 20:51:59 +08:00
徐闻涵0668001344 7019143c8e fix(telegram): use compositeChatID in InboundContext.ChatID for forum topics
When handling inbound Telegram messages from forum topics, InboundContext.ChatID was set to the plain chat ID (without thread). This caused outbound messages to lose the thread routing, sending replies to the General topic instead of the specific forum topic — even though typing indicators correctly targeted the right thread because StartTyping received the compositeChatID.

The fix sets InboundContext.ChatID to compositeChatID (chatID/threadID format) for forum messages, matching the format already used for session routing and typing indicators. TopicID is still preserved as a redundant fallback for any path that strips the composite format.

Closes #3110
2026-06-16 20:43:37 +08:00
Guoguo 083e68b49a docs: add PicoPaw banners to READMEs (#3096) 2026-06-16 10:17:21 +08:00
SiYue-ZO fcc2882ffa fix: resolve golines lint issue in subscription.go
Split long log.Printf lines to comply with 120-char line length limit.
2026-06-16 00:53:18 +08:00
SiYue-ZO b292defd95 fix: add panic recovery to core-path goroutines
Add defer-recover to 11 goroutines across 4 files to prevent
ungoroutine panics from crashing the entire process:

- pkg/tools/toolloop.go: parallel tool execution
- pkg/channels/manager.go: HTTP server (x2), channel registration
- pkg/events/subscription.go: concurrent dispatch, timeout handler,
  watchContext
- pkg/tools/shell.go: cmd.Wait, PTY cmd.Wait, PTY read, pipe read

Key design decisions:
- Recover handlers send fallback values to channels (shell done,
  subscription done) to prevent deadlocks when the producer panics
- PTY cmd.Wait sets session.Status='error' on panic for consistency
- toolloop sets ErrorResult on panic so the LLM gets a meaningful
  response instead of a nil result
- subscription.go uses log.Printf to match existing invokeHandler style
- Other files use project logger (ErrorCF) with stack traces

Refs: FIX-PLAN-0.3.0 #2
2026-06-15 23:06:11 +08:00
程智超0668000959 ed55715b6b fix(seahorse): handle json.Marshal errors in grep and expand tools 2026-06-15 20:31:34 +08:00
程智超0668000959 2f8c462366 fix(tts): explicitly ignore file.Close() error in write error path 2026-06-15 20:30:09 +08:00
程智超0668000959 d2156a982c fix(fileutil): explicitly ignore Close() error on directory file descriptor 2026-06-15 20:25:04 +08:00