Commit Graph

4073 Commits

Author SHA1 Message Date
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
hugh.li 9dd449045a
fix(google-gemini-cli-auth): fix Gemini CLI OAuth failures on Windows (#40729)
* fix(google-gemini-cli-auth): fix Gemini CLI OAuth failures on Windows

Two issues prevented Gemini CLI OAuth from working on Windows:

1. resolveGeminiCliDirs: the first candidate `dirname(dirname(resolvedPath))`
   can resolve to an unrelated ancestor directory (e.g. the nvm root
   `C:\Users\<user>\AppData\Local\nvm`) when gemini is installed via nvm.
   The subsequent `findFile` recursive search (depth 10) then picks up an
   `oauth2.js` from a completely different package (e.g.
   `discord-api-types/payloads/v10/oauth2.js`), which naturally does not
   contain Google OAuth credentials, causing silent extraction failure.

   Fix: validate candidate directories before including them — only keep
   candidates that contain a `package.json` or a `node_modules/@google/
   gemini-cli-core` subdirectory.

2. resolvePlatform: returns "WINDOWS" on win32, but Google's loadCodeAssist
   API rejects it as an invalid Platform enum value (400 INVALID_ARGUMENT),
   just like it rejects "LINUX".

   Fix: use "PLATFORM_UNSPECIFIED" for all non-macOS platforms.

* test(google-gemini-cli-auth): keep oauth regressions portable

* chore(changelog): add google gemini cli auth fix note

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-04 23:22:36 +09:00
Vincent Koc 3f9e93fd28 test(providers): cover opencode replay family hooks 2026-04-04 23:21:41 +09:00
Vincent Koc a2e0a094c1 test(providers): cover stream family plugin hooks 2026-04-04 23:20:28 +09:00
Vincent Koc fa34f3a9d5 fix(ci): restore provider runtime seams 2026-04-04 23:19:23 +09:00
Vincent Koc 4fe21de3ce test(providers): cover xai tool compat seam 2026-04-04 23:18:31 +09:00
Vincent Koc 20d14745cf refactor(providers): flatten passthrough provider hooks 2026-04-04 23:16:53 +09:00
Peter Steinberger fb59b5c461
fix(ci): sync openrouter stream hook seams 2026-04-04 15:09:49 +01:00
Peter Steinberger dd771f1dc6
fix(ci): repair plugin boundary and bootstrap regressions 2026-04-04 15:09:48 +01:00
Peter Steinberger a5836343df
fix(ci): guard anthropic cli backend registration 2026-04-04 15:09:48 +01:00
Peter Steinberger c5c5c77ebb
fix(ci): restore contract-safe core imports 2026-04-04 15:09:48 +01:00
Peter Steinberger 5c32dddb1c
fix(ci): restore heartbeat task batching checks 2026-04-04 15:09:48 +01:00