Commit Graph

23342 Commits

Author SHA1 Message Date
Peter Steinberger 587e18cd3f chore: prepare 2026.3.28-beta.1 release 2026-03-28 22:24:51 +00:00
Peter Steinberger 143fb34bf9 docs: remove stale code_execution secretref path 2026-03-28 22:10:22 +00:00
Peter Steinberger 45ecf5e2e9 fix(xai): narrow code execution config typing 2026-03-28 22:10:22 +00:00
Peter Steinberger 8a24cbf450 chore: bump version to 2026.3.28 2026-03-28 22:05:21 +00:00
OfflynAI cb00d44ae4
fix(matrix): load crypto-nodejs via createRequire to fix __dirname in ESM (#54566)
Merged via squash.

Prepared head SHA: 61d99628f9
Co-authored-by: joelnishanth <140015627+joelnishanth@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-03-28 17:43:44 -04:00
Robin Waslander 2022dfd0a1
chore: backfill changelog entries for recent fixes (#56625)
Add missing changelog entries for PRs #56500, #56540, #56555, #56567,
#56573, #56587, #56595, #56612, #56620.
2026-03-28 22:42:27 +01:00
huntharo 216796f1e3 fix(xai): wire plugin-owned codeExecution config 2026-03-28 21:35:13 +00:00
huntharo b7ab0ddb55 refactor(xai): move code_execution into plugin 2026-03-28 21:35:13 +00:00
Peter Steinberger 1617e0218f test(xai): add live x_search coverage 2026-03-28 21:35:13 +00:00
Peter Steinberger 6e0b67a2fd docs(secrets): sync credential surface matrix 2026-03-28 21:35:13 +00:00
Peter Steinberger 887d7584d6 refactor(plugins): expose bundled onboard helpers 2026-03-28 21:35:13 +00:00
Peter Steinberger 46c2928234 fix(plugins): stabilize provider contract loading 2026-03-28 21:35:13 +00:00
Peter Steinberger dba1b31243 fix(xai): repair extension test boundaries 2026-03-28 21:35:13 +00:00
Peter Steinberger 1e424990a2 fix(xai): restore config-backed auth discovery 2026-03-28 21:35:13 +00:00
Peter Steinberger 2a950157b1 refactor(xai): move x_search into plugin 2026-03-28 21:35:13 +00:00
huntharo 396bf20cc6 Tools: add xAI-backed code_execution 2026-03-28 21:35:13 +00:00
huntharo 1c9684608a Docs: guide x_search toward exact-post stats lookups 2026-03-28 21:35:13 +00:00
huntharo c8ed1638ea xAI: restore generic auth and x_search seams 2026-03-28 21:35:13 +00:00
huntharo 43143486eb Docs: refresh x_search secretref matrix 2026-03-28 21:35:13 +00:00
huntharo 0391e455bf Lint: drop stale model compat imports 2026-03-28 21:35:13 +00:00
huntharo 92fb4ad233 xAI: route x_search through public api seam 2026-03-28 21:35:13 +00:00
huntharo 4f3009f57e Tests: classify x_search secret target parity 2026-03-28 21:35:13 +00:00
huntharo 6e3b54430c Tests: keep extension onboarding coverage under extensions 2026-03-28 21:35:13 +00:00
huntharo 09e2ef965b Tests: fix rebased auth and runner type coverage 2026-03-28 21:35:13 +00:00
huntharo b22f65992e Build: fix rebased provider secrets helper 2026-03-28 21:35:13 +00:00
huntharo b918568b1e Rebase: reconcile xAI post-main conflicts 2026-03-28 21:35:13 +00:00
huntharo fb989f0402 Tests: restore provider runtime contract wrapper 2026-03-28 21:35:13 +00:00
huntharo df61660a26 xAI: centralize fallback auth resolution 2026-03-28 21:35:13 +00:00
huntharo 9dd08a49a4 xAI: reuse fallback auth for runtime and discovery 2026-03-28 21:35:13 +00:00
huntharo 800042a3d5 xAI: reuse plugin key for x_search 2026-03-28 21:35:13 +00:00
huntharo 8ca3710b90 xAI: strip unsupported payload fields 2026-03-28 21:35:13 +00:00
huntharo fd748171b8 xAI: strip unsupported Responses reasoning params 2026-03-28 21:35:13 +00:00
huntharo 80a1ccc552 xAI: preserve session auth in embedded runs 2026-03-28 21:35:13 +00:00
huntharo 2765fdc2dd xAI: normalize stale Grok transport to Responses 2026-03-28 21:35:13 +00:00
huntharo f0ce658fbb xAI: add auth resolution diagnostics 2026-03-28 21:35:13 +00:00
huntharo d5fafbe3ce xAI: honor config-backed auth during provider bootstrap 2026-03-28 21:35:13 +00:00
huntharo 2d919cf63d xAI: reuse web search key for provider auth 2026-03-28 21:35:13 +00:00
huntharo 38e4b77e60 Tools: add x_search via xAI Responses 2026-03-28 21:35:13 +00:00
huntharo 5ed8ee6832 xAI: switch bundled provider defaults to Responses 2026-03-28 21:35:13 +00:00
Robin Waslander 4d6c8edd74
fix(telegram): skip empty text replies instead of crashing with GrammyError 400 (#56620)
Filter whitespace-only text chunks at the bot delivery fan-in before
they reach sendTelegramText(). Covers normal text replies, follow-up
text, and voice fallback text paths.

Media-only replies are unaffected. message_sent hook still fires with
success: false for suppressed empty replies.

Fixes #37278
2026-03-28 22:27:56 +01:00
Peter Steinberger eec290e68d fix: support anthropic parallels smoke lanes 2026-03-28 21:27:39 +00:00
Devin Robison 703e68a749
Fix HTTP OpenAI-compatible routes missing operator.write scope checks (#56618)
* Fix HTTP OpenAI-compatible routes missing operator.write scope checks

* Update src/gateway/http-endpoint-helpers.ts

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* Address Greptile feedback

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-03-28 15:22:21 -06:00
Robin Waslander 17479ceb43
fix(auto-reply): suppress JSON-wrapped NO_REPLY payloads before channel delivery (#56612)
Add shared isSilentReplyPayloadText() detector that catches both bare
NO_REPLY tokens and JSON {"action":"NO_REPLY"} envelopes. Apply at the
reply directive parser, reply normalizer, and embedded agent payload
builder so the control payload is stripped before any channel sees it.

Preserves media when text is only a silent control envelope.

Fixes #37727
2026-03-28 22:07:24 +01:00
Robin Waslander ab2ef7bbfc
fix(telegram): split long messages at word boundaries instead of mid-word (#56595)
Replace proportional text estimate with binary search for the largest
text prefix whose rendered Telegram HTML fits the character limit, then
split at the last whitespace boundary within that verified prefix.

Single words longer than the limit still hard-split (unavoidable).
Markdown formatting stays balanced across split points.

Fixes #36644
2026-03-28 21:24:59 +01:00
Robin Waslander 865160e572
fix(telegram): validate replyToMessageId before sending to Telegram API (#56587)
Add shared normalizeTelegramReplyToMessageId() that rejects non-numeric,
NaN, and mixed-content strings before they reach the Telegram Bot API.
Apply at all four API sinks: direct send, bot delivery, draft stream,
and bot helpers.

Prevents GrammyError 400 when non-numeric values from session metadata
slip through typed boundaries.

Fixes #37222
2026-03-28 20:47:10 +01:00
Robin Waslander e69ea1acb3
fix(bluebubbles): guard debounce flush against null text (#56573)
Sanitize message text at the debounce enqueue boundary and add an
independent guard in combineDebounceEntries(). Prevents TypeError when
a queued entry has null text that reaches .trim() during flush.

Add regression test: enqueue null-text entry alongside valid message,
verify flush completes without error and valid message is delivered.

Fixes #35777
2026-03-28 20:22:05 +01:00
Peter Steinberger 756df2e955 test: tune gateway live probe skips 2026-03-28 19:13:47 +00:00
Peter Steinberger 914becee52 fix: isolate live test home from real config 2026-03-28 19:06:59 +00:00
Peter Steinberger 8ea4c4a6ba fix: tolerate npm stderr in Windows Parallels update smoke 2026-03-28 18:59:17 +00:00
Robin Waslander d1b0f8e8e2
fix(google): resolve Gemini 3.1 models for all Google provider aliases (#56567)
The forward-compat resolver hardcoded 'google' as the provider ID for
template lookup, so alias providers (google-vertex, google-gemini-cli)
could not find matching templates. Pass the actual provider ID from the
runtime context and add a templateProviderId fallback for cross-provider
template resolution.

Also fix flash-lite prefix ordering — check 'gemini-3.1-flash-lite'
before 'gemini-3.1-flash' to prevent misclassification.

Add regression tests for pro, flash, and flash-lite across provider
aliases.

Fixes #36111
2026-03-28 19:59:14 +01:00