Mauro
4c5adcd78e
Merge pull request #3128 from chengzhichao-xydt/codex/web-body-close
...
fix(web): explicitly ignore resp.Body.Close() errors after io.ReadAll
2026-07-03 20:45:55 +02:00
Mauro
cf24f32896
Merge pull request #3156 from loafoe/feat/session-token-usage
...
feat(pico): emit per-turn LLM token usage on finalized message
2026-07-03 09:14:36 +02:00
Mauro
883d43b37d
Merge pull request #3063 from trufae/deltachan
...
feat: add deltachat gateway
2026-07-02 23:45:24 +02:00
Mauro
3b24a48a8c
Merge pull request #3161 from danmobot/fix/exec-custom-allow-deny
...
fix(exec): keep deny patterns active for custom allow rules
2026-07-02 21:51:16 +02:00
Mauro
79ae6bf97f
Merge pull request #3158 from danmobot/fix/sandbox-fs-windows-paths
...
test: cover sandbox fs Windows path handling
2026-07-02 21:39:45 +02:00
pancake
612e485d4e
WIP: Initial support for deltachat gateway
...
Features:
- Support voice messages
- Optional crossposting
- Automatic account creation
- Custom avatar image
2026-07-02 15:23:35 +02:00
LC
2cf030d2fd
fix(providers): surface friendly auth error messages ( #3198 )
2026-06-30 17:42:07 +08:00
Mauro
52320f4875
Merge pull request #3181 from Alix-007/fix/gateway-startup-info-ok
...
fix(gateway): guard startup info assertions
2026-06-26 23:06:34 +02:00
Mauro
c15aac21fe
Merge pull request #3143 from lc6464/fix/isatap-ssrf-guard
...
fix(web): block private IPv4 embeds in ISATAP literals
2026-06-26 22:59:41 +02:00
Mauro
7ee4f41b7e
Merge pull request #3187 from chengzhichao-xydt/codex/http-guard-test-body-close
...
test(utils): explicitly ignore resp.Body.Close() errors in tests
2026-06-26 18:11:24 +02:00
Mauro
d65d592a40
Merge pull request #3188 from chengzhichao-xydt/codex/health-encode-errors
...
fix(health): explicitly ignore json.Encode errors in HTTP handler responses
2026-06-26 18:11:05 +02:00
Mauro
9bc8d15685
Merge pull request #3185 from chengzhichao-xydt/codex/updater-checksum-body-close
...
fix(updater): explicitly ignore resp2.Body.Close() error after io.ReadAll
2026-06-26 18:10:21 +02:00
Mauro
979f440af7
Merge pull request #3184 from chengzhichao-xydt/codex/ws-body-close
...
fix(channels): explicitly ignore resp.Body.Close() errors in websocket dial cleanup
2026-06-26 18:10:06 +02:00
Mauro
377c25e7c5
Merge pull request #3183 from chengzhichao-xydt/codex/onebot-body-close
...
fix(onebot): explicitly ignore resp.Body.Close() error after websocket dial
2026-06-26 18:09:04 +02:00
程智超0668000959
2cdfadaa8b
test(utils): explicitly ignore resp.Body.Close() errors in tests
2026-06-26 23:03:32 +08:00
程智超0668000959
0eb721fff7
fix(health): explicitly ignore json.Encode errors in HTTP handler responses
2026-06-26 22:57:48 +08:00
程智超0668000959
500ce72436
fix(onebot): explicitly ignore resp.Body.Close() error after websocket dial
2026-06-26 22:42:43 +08:00
程智超0668000959
583d9e1e14
fix(updater): explicitly ignore resp2.Body.Close() error after io.ReadAll
2026-06-26 22:15:29 +08:00
程智超0668000959
1bd2e84527
fix(channels): explicitly ignore resp.Body.Close() errors in websocket dial cleanup
2026-06-26 22:15:03 +08:00
Alix-007
36d72a0112
fix(gateway): guard startup info assertions
2026-06-26 16:11:54 +08:00
Mauro
124c529bf1
Merge pull request #3172 from chengzhichao-xydt/codex/close-error-checks-clean
...
fix: explicitly ignore Close() errors in error paths and retry loops
2026-06-26 08:41:31 +02:00
程智超0668000959
7ee4ee3b64
fix: correct indentation in shell.go and updater.go for gci linter
2026-06-25 16:11:34 +08:00
程智超0668000959
62a2b0015a
fix: explicitly ignore Close() errors in error paths and retry loops
2026-06-25 15:38:41 +08:00
程智超0668000959
d6371fcb68
fix(agent): close base64 encoder on io.Copy error path
...
Previously when io.Copy to the base64 encoder failed, encoder.Close()
was skipped. This left the encoder's internal buffer unflushed.
Now always call Close() and handle both copy and close errors
explicitly.
2026-06-25 15:23:34 +08:00
程智超0668000959
c3aa8c088c
fix(web): explicitly ignore resp.Body.Close() errors after io.ReadAll
2026-06-25 15:13:29 +08:00
Alix-007
288013ca0f
fix(evolution): skip cold path for heartbeat turns
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
danmobot
acc2c5c6aa
test(fs): cover root path separator normalization
2026-06-23 20:57:42 +01:00
danmobot
ff247b63ac
fix(exec): preserve additive custom allow behavior
2026-06-23 20:47:15 +01:00
danmobot
9721c36e55
fix(exec): keep deny patterns active for custom allow rules
2026-06-23 02:53:14 +01:00
danmobot
46ffda264f
fix: import log in openai compat provider
2026-06-22 23:42:27 +01:00
danmobot
88bda73db6
Merge remote-tracking branch 'upstream/main' into fix/sandbox-fs-windows-paths
2026-06-22 23:42:04 +01: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
danmobot
29e019ec66
test: cover sandbox fs Windows path handling
2026-06-22 23:01:20 +01: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
Andy Lo-A-Foe
cc7b4ca86b
fix(pico): deliver per-turn token usage to the streamer
...
Two bugs prevented the usage block from ever reaching the wire:
1. CallLLM read turnStateFromContext(ctx), but the raw ctx is not seeded
with the turn state (only turnCtx is), so SetLastUsage/SetLastFinishReason
were dropped — GetLastUsage() returned nil at finalize. Set them on the
ts parameter directly, which is also what the streaming publisher reads.
2. The manager wraps the channel streamer in finalizeHookStreamer /
splitMarkerStreamer, neither of which forwarded SetTurnUsage (it is not
part of the bus.Streamer interface), so the type assertion in the
publisher's Finalize failed silently. Mirror the existing SetModelName
forwarding: add a turnUsageStreamer interface + setStreamerTurnUsage
helper and SetTurnUsage methods on both wrappers (splitMarker also stores
and re-applies usage to each freshly-begun part streamer).
Adds regression tests asserting both wrappers forward SetTurnUsage.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 15:38:46 +02:00
Andy Lo-A-Foe
697e94fe8c
feat(pico): emit real per-turn token usage on finalized message
2026-06-22 13:15:35 +02:00
Andy Lo-A-Foe
052c742fe7
feat(pico): add SetTurnUsage and usage payload helper
2026-06-22 13:07:48 +02:00
lc6464
d4adbf9418
fix(web): block private IPv4 embeds in ISATAP literals
2026-06-18 17:12:38 +08: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