Commit Graph

4084 Commits

Author SHA1 Message Date
Peter Steinberger 5ac07b8ef0
fix: normalize huggingface refs and discovery timeout 2026-04-05 09:18:17 +01:00
Vincent Koc c6e117897f test(nextcloud-talk): keep send runtime mock aligned 2026-04-05 09:14:12 +01:00
Peter Steinberger 41e39eb46f
refactor: register channel bootstrap capabilities 2026-04-05 09:13:48 +01:00
Peter Steinberger b57372d665
refactor: route capability runtime through channel stores 2026-04-05 09:07:33 +01:00
Peter Steinberger 1903be5401
refactor: remove generated plugin sdk facades 2026-04-05 09:07:33 +01:00
Vincent Koc c863ee1b86
fix(config): migrate bundled private-network aliases (#60862)
* refactor(plugin-sdk): centralize private-network opt-in semantics

* fix(config): migrate bundled private-network aliases

* fix(config): add bundled private-network doctor adapters

* fix(config): expose bundled channel migration hooks

* fix(config): prefer canonical private-network key

* test(config): refresh rebased private-network outputs
2026-04-05 08:49:44 +01:00
Peter Steinberger 07c2f81392
fix: preserve explicit Ollama apiKey during discovery 2026-04-05 08:43:50 +01:00
wzfmini01 ef5f47bd39
fix(google-gemini-cli-auth): detect bundled npm installs (#60486) (#60486)
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-05 08:41:43 +01:00
Peter Steinberger d91d3cc0f0
fix: respect custom env snapshots for vertex auth 2026-04-05 08:33:54 +01:00
wirjo 019a25e35c
Fix/bedrock aws sdk apikey injection (#61194)
* fix(bedrock): stop injecting fake apiKey marker for aws-sdk auth when no env vars exist

When the Bedrock provider uses auth: "aws-sdk" and no AWS environment
variables are set (EC2 instance roles, ECS task roles, etc.),
resolveAwsSdkApiKeyVarName() fell back to "AWS_PROFILE" unconditionally.
This string was injected as apiKey in the provider config during
normalisation, which poisoned the downstream auth resolver — it treated
the marker as a literal key and failed with "No API key found".

The fix:
- resolveAwsSdkApiKeyVarName() now returns undefined (not "AWS_PROFILE")
  when no AWS env vars are present
- resolveBedrockConfigApiKey() (extension) gets the same fix
- resolveMissingProviderApiKey() guards both the providerApiKeyResolver
  and direct aws-sdk branches: if the resolver returns nothing, the
  provider config is returned unchanged (no apiKey injected)
- The aws-sdk credential chain then resolves credentials at request time
  via IMDS/ECS task role/etc. as intended

When AWS env vars ARE present (AWS_ACCESS_KEY_ID, AWS_PROFILE,
AWS_BEARER_TOKEN_BEDROCK), the marker is still injected correctly.

Closes #49891
Closes #50699
Fixes #54274

* test(bedrock): update resolveBedrockConfigApiKey test for undefined return on empty env

The test previously expected "AWS_PROFILE" when no env vars are set.
Now expects undefined (matching the fix), and adds a separate assertion
that AWS_PROFILE is returned when the env var is actually present.

* fix(bedrock): lock aws-sdk env marker behavior

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-05 08:24:05 +01:00
狼哥 eb130aa4e9
fix(google): disable pinned dns for image generation (#59873)
* fix(google): restore proxy-safe image generation (#59873)

* fix(ssrf): preserve transport policy without pinned dns

* fix(ssrf): use undici fetch for dispatcher requests

* fix(ssrf): type dispatcher fetch path

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-05 08:23:22 +01:00
Vincent Koc 155f4300ba
fix(voice-call): use full config for realtime transcription (#61224)
* fix(voice-call): use full config for realtime transcription

* fix(changelog): note voice-call transcription regression

* Update CHANGELOG.md
2026-04-05 08:14:41 +01:00
Peter Steinberger 20b08f1a85
fix: enforce paired scope baselines on reconnect 2026-04-05 07:53:57 +01:00
Vincent Koc 19b7fbaa73 fix(memory): honor mocked batch fetch clients 2026-04-05 07:48:03 +01:00
Peter Steinberger d655a8bc76
feat: add Fireworks provider and simplify plugin setup loading 2026-04-05 07:43:14 +01:00
Peter Steinberger 332afa2fda
refactor: narrow claude cli fallback seams 2026-04-05 07:29:32 +01:00
Vincent Koc 3da235bf39 fix(telegram): force paginated commands callbacks 2026-04-05 07:28:47 +01:00
Peter Steinberger 657c6f6788
fix: stabilize docker e2e lanes 2026-04-05 07:15:24 +01:00
Peter Steinberger 37cc06f1fd
fix: normalize claude cli fallback config 2026-04-05 07:09:13 +01:00
Ayaan Zaidi f039bbf2aa
fix: resolve acpx plugin root from shared chunks 2026-04-05 11:37:05 +05:30
Ayaan Zaidi 4cfb990382
fix: restore whatsapp doctor contract surface 2026-04-05 11:31:12 +05:30
Peter Steinberger f7a32cd25e
test: reset imessage facade runtime before each test 2026-04-05 05:58:02 +01:00
Peter Steinberger 15d5878d91
test: update telegram paginated commands expectations 2026-04-05 05:53:42 +01:00
Peter Steinberger 50b5c483ee
fix: canonicalize legacy whatsapp group sessions 2026-04-05 05:47:04 +01:00
tarouca bf0f4d93f0
fix: restore Telegram DM voice-note transcription (#61008) (thanks @manueltarouca)
* fix(telegram): enable voice-note transcription in DMs

The preflight transcription condition only triggered for group chats
(isGroup && requireMention), so voice notes sent in direct messages
were never transcribed -- they arrived as raw <media:audio> placeholders.

This regression was introduced when the Telegram channel was moved from
src/telegram/ to extensions/telegram/, losing the fix from c15385fc94.

Widen the condition to fire whenever there is audio and no accompanying
text, regardless of chat type. Group-specific guards (requireMention,
disableAudioPreflight, senderAllowedForAudioPreflight) still apply
only in group contexts.

* fix: restore Telegram DM voice-note transcription (#61008) (thanks @manueltarouca)

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-05 09:49:44 +05:30
Peter Steinberger 2636cc261c
fix: scope discord doctor allowFrom alias migration 2026-04-05 04:06:31 +01:00
Peter Steinberger 1811e54920
test: fix plugin stream typing assertions 2026-04-05 12:03:30 +09:00
Cathryn Lavery 7587e4cac3
fix: ensure bypassPermissions when custom CLI backend args override defaults (#61114)
* fix: ensure bypassPermissions on custom CLI backend args

When users override cliBackends.claude-cli.args (e.g. to add --verbose
or change --output-format), the override array replaces the default
entirely. The normalization step only re-added --permission-mode
bypassPermissions when the legacy --dangerously-skip-permissions flag
was present — if neither flag existed, it did nothing.

This causes cron and heartbeat runs to silently fail with "exec denied:
Cron runs cannot wait for interactive exec approval" because the CLI
subprocess launches in interactive permission mode.

Fix: always inject --permission-mode bypassPermissions when no explicit
permission-mode flag is found in the resolved args, regardless of
whether the legacy flag was present.

* test(anthropic): add claude-cli permission normalization coverage

* fix(test-utils): include video generation providers

* fix: preserve claude-cli bypassPermissions on custom args (#61114) (thanks @cathrynlavery)

---------

Co-authored-by: Shadow <hi@shadowing.dev>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-04 21:55:14 -05:00
Ayaan Zaidi b558610ef3 fix(elevenlabs): pass talk latency override 2026-04-05 08:20:47 +05:30
Peter Steinberger fb580b551e
fix: restore provider and config compatibility checks 2026-04-05 03:47:57 +01:00
Neerav Makwana 22175faaec
fix: trim menu descriptions before dropping commands (#61129) (thanks @neeravmakwana)
* fix(telegram): trim menu descriptions before dropping commands

* fix: note Telegram command menu trimming (#61129) (thanks @neeravmakwana)

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-05 08:05:16 +05:30
Vincent Koc b56517b0ee refactor(providers): tighten family outlier contracts 2026-04-05 11:09:26 +09:00
Altay f299bb812b
test(agents): stabilize announce cleanup assertions (#61088)
* test(plugin-sdk): use telegram public config seam

* test(agents): stabilize announce cleanup assertions
2026-04-05 03:09:28 +03:00
Altay 2b3e89c6d4 fix(ci): remove anthropic auth parse error 2026-04-05 01:40:25 +03:00
coolramukaka-sys 70015be8b5
fix(msteams): replace deprecated HttpPlugin with httpServerAdapter (#60939)
Merged via squash.

Prepared head SHA: 7fe7f3c6bb
Co-authored-by: coolramukaka-sys <271658891+coolramukaka-sys@users.noreply.github.com>
Co-authored-by: BradGroux <3053586+BradGroux@users.noreply.github.com>
Reviewed-by: @BradGroux
2026-04-04 17:21:45 -05:00
Peter Steinberger b4216d197d
fix: restore anthropic setup-token auth flow 2026-04-05 07:14:35 +09:00
@zimeg 13b6a48991
fix(slack): import plugin secret input config 2026-04-04 14:09:00 -07:00
@zimeg 28e1142a24
revert(slack): use packaged thread status method 2026-04-04 13:15:57 -07:00
@zimeg 68b84980cc
refactor(slack): use packaged thread status method 2026-04-04 13:14:06 -07:00
Peter Steinberger 496df07804
fix(extensions): align provider helper surfaces 2026-04-04 20:06:32 +01:00
Peter Steinberger 67d6fc8847
chore(plugins): sync versions to 2026.4.4 2026-04-04 20:03:01 +01:00
Peter Steinberger ca200eb480
fix(providers): stabilize runtime normalization hooks 2026-04-04 19:34:56 +01:00
Peter Steinberger e3ac0f43df
feat(qwen): add qwen provider and video generation 2026-04-04 19:34:56 +01:00
Peter Steinberger 40f958a953
fix(ci): narrow runtime seams and partial mocks 2026-04-04 19:03:00 +01:00
Gustavo Madeira Santana e627f53d24
core: dedupe approval not-found handling (#60932)
Merged via squash.

Prepared head SHA: 108221fdfe
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-04-04 13:23:58 -04:00
Onur 7de3a16ab4
ACPX: bump pinned version to 0.4.1 (#60918)
* ACPX: bump pinned version to 0.4.1

* ACPX: refresh lockfile for 0.4.1
2026-04-04 17:37:17 +02:00
Peter Steinberger 4dbc66b1ed
fix: remove bundled channel startup reentry 2026-04-04 15:39:12 +01:00
Peter Steinberger a4fc1200de
style: normalize provider formatting 2026-04-04 23:36:46 +09:00
Vincent Koc cb1c2e8f86 test(providers): cover xai and zai stream hooks 2026-04-04 23:24:18 +09:00
Vincent Koc e277c01953 test(providers): cover openrouter replay family 2026-04-04 23:23:02 +09:00