Commit Graph

23319 Commits

Author SHA1 Message Date
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
Robin Waslander 6be14ab388
fix(cli): defer zsh compdef registration until compinit is available (#56555)
The generated zsh completion script called compdef at source time,
which fails with 'command not found: compdef' when loaded before
compinit. Replace with a deferred registration that tries immediately,
and if compdef is not yet available, queues a self-removing precmd hook
that retries on first prompt.

Handles repeated sourcing (deduped hook entry) and shells that never
run compinit (completion simply never registers, matching zsh model).

Add real zsh integration test verifying no compdef error on source and
successful registration after compinit.

Fixes #14289
2026-03-28 19:35:32 +01:00
Tak Hoffman f32f7d0809
Improve dashboard setup command copy UX (#56551) 2026-03-28 13:09:22 -05:00
Robin Waslander 31112d5985
fix(security): audit web search keys for all bundled providers (#56540)
hasWebSearchKey() was hardcoded to only check Brave and Perplexity
credentials. Replace with provider-aware check using
resolveBundledPluginWebSearchProviders() so Gemini, Grok/XAI, Kimi,
Moonshot, and OpenRouter credentials are recognized by the audit.

Add focused regression tests for each provider.

Fixes #34509
2026-03-28 18:55:38 +01:00
Peter Steinberger 02d4c1f2c3 refactor: derive channel metadata from plugin manifests 2026-03-28 17:17:10 +00:00
Frank Yang c14b169a1b
fix(acp): repair stale bindings after runtime exits (#56476)
* fix(acp): repair stale bindings after runtime exits

* fix(acp): narrow stale binding recovery

* fix(acp): preserve policy gating for stale sessions

* fix(acp): handle signal exits and canonical unbinds

* fix(acp): harden canonical stale-session recovery
2026-03-29 01:15:16 +08:00
Peter Steinberger 22de54d83d test: handle live model probe edge cases 2026-03-28 17:12:09 +00:00
Peter Steinberger 5194cf2019 refactor: load bundled provider catalogs dynamically 2026-03-28 16:57:36 +00:00
Tak Hoffman 54313a8730
fix(dev): rebuild dist after HEAD changes (#56510) 2026-03-28 11:49:09 -05:00
Robin Waslander 840b806c2f
fix(docs): remove broken Xfinity SSL troubleshooting links from FAQ (#56500)
Remove circular self-link in English FAQ and dead anchor reference in
zh-CN FAQ. Both FAQ sections already contain the full workaround inline,
so the cross-references added no value and were never backed by a valid
target in troubleshooting.md.

Fixes #36970
2026-03-28 17:18:26 +01:00
Tak Hoffman 7a878164b0
ci: align bun shard counts with windows (#56429)
* ci: align bun shard counts with windows

* ci: retrigger stuck windows shard
2026-03-28 09:36:59 -05:00
Peter Steinberger 23772bb785 test: exclude topology fixtures from vitest collection 2026-03-28 13:49:16 +00:00
Peter Steinberger f3ecd9ca9c test: guard ui session storage access in node runs 2026-03-28 13:38:21 +00:00
Tak Hoffman 3a34e6b65d
Add reusable TypeScript topology analyzer for public surface usage 2026-03-28 08:37:26 -05:00
Peter Steinberger 5302aa8947 test: use safe storage helpers in app mount hooks 2026-03-28 13:24:04 +00:00
Saurabh Mishra 90e82fabb3
fix: display model name instead of ID in Telegram model selector (#56165) (#56175)
* fix: display model name instead of ID in Telegram model selector (#56165)

* fix(telegram): scope model display names by provider

Signed-off-by: sallyom <somalley@redhat.com>

---------

Signed-off-by: sallyom <somalley@redhat.com>
Co-authored-by: sallyom <somalley@redhat.com>
2026-03-28 09:23:09 -04:00
Peter Steinberger e999f2aae3 test: silence lit dev-mode warnings in ui suite 2026-03-28 13:13:02 +00:00
Peter Steinberger 8c4cc61656 test: avoid raw localStorage access in chat view test 2026-03-28 13:10:27 +00:00
Peter Steinberger bccbfdebfe fix: hydrate lazy tts provider config from source config 2026-03-28 12:56:27 +00:00
Peter Steinberger 3bb199aa43 refactor: lazy-load matrix setup bootstrap surfaces 2026-03-28 12:46:54 +00:00
Peter Steinberger 5df53a99b1 fix: set localstorage file for test planner workers 2026-03-28 12:46:54 +00:00
Tyler Yust 41cf93efff
fix: include extension channels in subagent announce delivery path (#56348)
* fix: include extension channels in subagent announce delivery path

* test: cover extension announce delivery routes
2026-03-28 21:15:23 +09:00
Peter Steinberger 107969c725 test: silence warning filter stderr 2026-03-28 11:57:27 +00:00
Peter Steinberger 9b0b962f8c test: silence ui localstorage warning 2026-03-28 11:54:51 +00:00