Commit Graph

19595 Commits

Author SHA1 Message Date
ly85206559
3e60eaa884 fix(docker): verify matrix-sdk-crypto native addon without hardcoded pnpm path (#65608) (#67143)
Merged via squash.

Prepared head SHA: 325e97ead5
Co-authored-by: ly85206559 <12526624+ly85206559@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-04-15 11:37:14 -04:00
Peter Steinberger
69ba56d2c8 build(config): refresh generated schema version for 2026.4.15-beta.1 2026-04-15 15:06:13 +01:00
Peter Steinberger
ef98bcf630 fix(discord): raise carbon slow listener threshold 2026-04-15 06:40:14 -07:00
Ayaan Zaidi
33154ce745 fix: simplify ollama onboarding (#67005)
* feat(ollama): split interactive cloud and local setup

* test(ollama): cover cloud onboarding flow

* docs(ollama): simplify provider setup docs

* docs(onboarding): update ollama wizard copy

* fix(ollama): restore web search auth helper

* fix(ollama): harden setup auth and ssrf handling

* fix(ollama): address review regressions

* fix(ollama): scope ssrf hardening to ollama

* feat(ollama): add hybrid onboarding mode

* fix(ollama): tighten cloud credential setup

* refactor(ollama): distill host-backed setup modes

* fix(ollama): preserve cloud api key in config

* fix: simplify ollama onboarding (#67005)
2026-04-15 19:06:21 +05:30
Peter Steinberger
20cce166ef test: isolate Docker live profile-key auth 2026-04-15 06:31:20 -07:00
Chen Chia Yang
d2a219ea44 fix(media): allow host-local CSV and Markdown uploads via Slack (#67047)
Merged via squash.

Prepared head SHA: 5ce11d0bac
Co-authored-by: Unayung <1853105+Unayung@users.noreply.github.com>
Co-authored-by: frankekn <712880+frankekn@users.noreply.github.com>
Reviewed-by: @frankekn
2026-04-15 20:38:17 +08:00
Peter Steinberger
931581070a test(plugins): allow packaged runtime mirrors 2026-04-15 12:57:32 +01:00
Vincent Koc
3830e687dd test(perf): speed up slow gateway specs 2026-04-15 12:30:48 +01:00
Vincent Koc
7d2e068b27 test(agents): trim extraparams anthropic passthrough cost 2026-04-15 12:28:08 +01:00
Vincent Koc
c5b3f00d11 test(plugins): align jiti loader cache expectations 2026-04-15 12:14:34 +01:00
Vincent Koc
890e299e30 fix(ci): align docker smoke cache tests and reuse built dist 2026-04-15 12:12:58 +01:00
Vincent Koc
bb4498cef7 test(plugins): align unreadable manifest traversal failure code 2026-04-15 12:10:24 +01:00
Vincent Koc
c727388f93 fix(plugins): localize bundled runtime deps to extensions (#67099)
* fix(plugins): localize bundled runtime deps to extensions

* fix(plugins): move staged runtime deps out of root

* fix(packaging): harden prepack and runtime dep staging

* fix(packaging): preserve optional runtime dep staging

* Update CHANGELOG.md

* fix(packaging): harden runtime staging filesystem writes

* fix(docker): ship preinstall warning in bootstrap layers

* fix(packaging): exclude staged plugin node_modules from npm pack
2026-04-15 12:04:31 +01:00
Vincent Koc
f09a4d9ba0 fix(agents): move lean local-model mode behind experimental flag 2026-04-15 11:41:28 +01:00
Mason Huang
edfa074e0f Tests: align pnpm test expectations with main (#67001)
Merged via squash.

Prepared head SHA: 29c8068053
Co-authored-by: hxy91819 <8814856+hxy91819@users.noreply.github.com>
Co-authored-by: hxy91819 <8814856+hxy91819@users.noreply.github.com>
Reviewed-by: @hxy91819
2026-04-15 18:31:23 +08:00
Vincent Koc
becd14424d fix(gateway): stabilize imsg alias test coverage 2026-04-15 11:24:19 +01:00
Pengfei Ni
804bb0f2c3 fix(configure): re-read config hash after persist to avoid stale-hash race (#64188) (#66528)
Merged via squash.

Prepared head SHA: 0c4003a5be
Co-authored-by: feiskyer <676637+feiskyer@users.noreply.github.com>
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com>
Reviewed-by: @vincentkoc
2026-04-15 11:03:09 +01:00
Pengfei Ni
e99a24d645 fix(security): redact secrets in exec approval prompts (#61077) (#64790)
Merged via squash.

Prepared head SHA: 324202d37e
Co-authored-by: feiskyer <676637+feiskyer@users.noreply.github.com>
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com>
Reviewed-by: @vincentkoc
2026-04-15 11:02:10 +01:00
Vincent Koc
9c32c2bf26 fix(gateway): clear fired close timeout handles 2026-04-15 10:46:37 +01:00
Pengfei Ni
88d3620a85 feat(github-copilot): add embedding provider for memory search (#61718)
Merged via squash.

Prepared head SHA: 05a78ce7f2
Co-authored-by: feiskyer <676637+feiskyer@users.noreply.github.com>
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com>
Reviewed-by: @vincentkoc
2026-04-15 10:39:28 +01:00
Vincent Koc
7821fae05d test(types): fix perf test follow-up mocks 2026-04-15 10:36:41 +01:00
Vincent Koc
7320dfc1ff test(perf): speed up slow cron infra and secrets specs 2026-04-15 10:22:43 +01:00
Vincent Koc
f49d9bcae9 test(gateway): harden non-isolated channel mocks 2026-04-15 10:02:05 +01:00
Srinivas Pavan
fb4395c1fe fix(cron): preserve all fields in announce delivery by removing summarization instruction (#65638)
* fix(cron): preserve all fields in announce delivery by removing summarization instruction

The delivery instruction appended to the cron agent prompt contained the word
'summary', causing LLMs to condense structured output non-deterministically and
drop fields on delivery. Replace with 'response' and add explicit instruction
to reproduce all fields exactly.

Fixes #58535

* chore(changelog): add cron announce entry

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-15 09:40:26 +01:00
Vincent Koc
ea4889ecdc fix(update): keep dist verify compat-safe 2026-04-15 09:39:18 +01:00
Vincent Koc
9e665e4328 fix(ts): use typed runtime semver helpers 2026-04-15 09:20:26 +01:00
Vincent Koc
7f35f76914 fix(update): harden dist inventory handling 2026-04-15 09:16:46 +01:00
Ayaan Zaidi
a1d4eb255a fix(inventory): omit qa-matrix dist artifacts 2026-04-15 13:22:04 +05:30
Ayaan Zaidi
2791b00e72 fix(build): move compat sidecars into src 2026-04-15 13:22:04 +05:30
Ayaan Zaidi
8b79141997 fix(update): infer legacy bundled sidecars 2026-04-15 13:22:04 +05:30
Ayaan Zaidi
2a8226f8e2 fix(postinstall): reject dist symlink escapes 2026-04-15 13:22:04 +05:30
Ayaan Zaidi
64f258fc49 fix(update): keep downgrade follow-ups in-process 2026-04-15 13:22:04 +05:30
Ayaan Zaidi
60e2ccbd5b fix(update): preserve legacy downgrade verify 2026-04-15 13:22:04 +05:30
Ayaan Zaidi
aaa6b05f3b fix(update): preserve legacy global verify 2026-04-15 13:22:04 +05:30
Ayaan Zaidi
5e7306bcfc fix(update): filter dist inventory to packed files 2026-04-15 13:22:04 +05:30
Ayaan Zaidi
18d0af3a13 fix(update): verify packaged dist inventory 2026-04-15 13:22:04 +05:30
Chunyue Wang
6aa4515798 fix(context-engine): gracefully degrade to legacy engine on third-party plugin resolution failure (#66930)
Merged via squash.

Prepared head SHA: 969c67716c
Co-authored-by: openperf <80630709+openperf@users.noreply.github.com>
Co-authored-by: openperf <80630709+openperf@users.noreply.github.com>
Reviewed-by: @openperf
2026-04-15 14:59:29 +08:00
Ivan Fofanov
732db75279 fix: classify "No conversation found" as session_expired (#65028)
Merged via squash.

Prepared head SHA: f429ba2de0
Co-authored-by: Ivan-Fn <1247214+Ivan-Fn@users.noreply.github.com>
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com>
Reviewed-by: @altaywtf
2026-04-15 09:31:55 +03:00
Omar Shahine
507b718917 feat(ui): add Model Auth status card to Overview dashboard (#66211)
* feat(gateway,ui): add Model Auth status card to Overview

Adds a new `models.authStatus` gateway endpoint that combines
`buildAuthHealthSummary()` (token expiry/status) with
`loadProviderUsageSummary()` (rate limits) into a single response
suitable for UI rendering. Strips credentials - only ships status,
expiry, remaining time, and rate-limit windows.

Adds a corresponding "Model Auth" card to the Overview dashboard
showing provider token status and rate limits at a glance. Attention
items are raised when OAuth tokens are expiring or expired.

Also catches the OAuth token sink class of bug: if multiple profiles
exist per provider/account and tokens are drifting out of sync, this
surfaces it immediately in the dashboard instead of silently falling
back to a different provider.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* CHANGELOG: note Model Auth status card on Overview

* UI/Overview: render Model Auth card during load with N/A placeholder

* models.authStatus: env-backed OAuth escape hatch + expectsOAuth missing signal

---------

Co-authored-by: Lobster <10343873+omarshahine@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:40:42 -07:00
Mason Huang
3d2f51c0a4 CLI/plugins: stop forced-unsafe installs from falling back to hook packs (#58909)
Merged via squash.

Prepared head SHA: 7cf146efb6
Co-authored-by: hxy91819 <8814856+hxy91819@users.noreply.github.com>
Co-authored-by: hxy91819 <8814856+hxy91819@users.noreply.github.com>
Reviewed-by: @hxy91819
2026-04-15 13:23:17 +08:00
Roger Chien
2e2cbdd19d fix(onboard): crash at channel selection on globally installed CLI (#66736)
* fix(channels): resolve bundled channel catalog from dist/extensions/ in published installs

* refactor(channels): delegate bundled channel catalog loader to resolveBundledPluginsDir

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-04-15 11:08:01 +07:00
Peter Steinberger
ec7635256b build: refresh bundled channel metadata 2026-04-15 05:01:43 +01:00
Peter Steinberger
5ca65c84cc fix: type media private-network request flag 2026-04-15 04:58:11 +01:00
Gustavo Madeira Santana
8db4bb7583 Reply: preserve phased block metadata 2026-04-14 23:44:41 -04:00
Peter Steinberger
0bc4472b7e fix: remove stale media override import 2026-04-15 03:57:15 +01:00
bladin
e0bf756b50 fix: handle OpenRouter Qwen3 reasoning_details streams (#66905) (thanks @bladin)
* fix(openrouter): handle reasoning_details field in Qwen3 stream parsing

Add support for the reasoning_details field returned by OpenRouter/Qwen3
models. Previously this field was not recognized, causing payloads=0 and
incomplete turn errors.

- Add reasoning_details handling in processOpenAICompletionsStream
- Extract text from reasoning_details array items with type reasoning.text
- Treat as thinking content, similar to other reasoning fields
- Add test case for reasoning_details handling

Fixes #66833

* fix(openrouter): keep tool calls with reasoning_details

* fix: handle OpenRouter Qwen3 reasoning_details streams (#66905) (thanks @bladin)

* fix: preserve streamed tool calls with reasoning deltas (#66905) (thanks @bladin)

---------

Co-authored-by: bladin <bladin@users.noreply.github.com>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-15 08:15:58 +05:30
Jim Smith
0c0463b2b7 fix: restore allowPrivateNetwork for self-hosted STT endpoints (#66692) (thanks @jhsmith409)
* fix(audio): restore allowPrivateNetwork for self-hosted STT endpoints

resolveProviderExecutionContext built the request object passed to
transcribeAudio using only sanitizeConfiguredProviderRequest on the
tool-level config and entry — which strips allowPrivateNetwork. The
provider-level request config (models.providers.*.request) was never
included in the merge, so allowPrivateNetwork:true was silently dropped.

Additionally, resolveProviderRequestPolicyConfig only read allowPrivate
Network from params.allowPrivateNetwork (a direct parameter) and ignored
params.request?.allowPrivateNetwork even when it was present.

Fix both gaps:
- runner.entries.ts: use mergeModelProviderRequestOverrides with
  sanitizeConfiguredModelProviderRequest(providerConfig?.request) so
  models.providers.*.request.allowPrivateNetwork flows through to the
  media execution context
- provider-request-config.ts: fall back to params.request?.allowPrivate
  Network when params.allowPrivateNetwork is undefined

Fixes #66691. Regression introduced in v2026.4.14.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* test(media-understanding): assert allowPrivateNetwork flows through resolveProviderExecutionContext

Regression test for the bug where providerConfig.request.allowPrivateNetwork
was dropped when building the AudioTranscriptionRequest passed to media
providers. Verifies that setting allowPrivateNetwork in the provider config
reaches the provider's request object after the fix to use
mergeModelProviderRequestOverrides + sanitizeConfiguredModelProviderRequest.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* test(media-understanding): tighten allowPrivateNetwork regression types

* fix: restore allowPrivateNetwork for self-hosted STT endpoints (#66692) (thanks @jhsmith409)

---------

Co-authored-by: Jim Smith <jhsmith0@me.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-15 08:05:37 +05:30
Serhii
ff4edd0559 fix: restore Telegram native auto defaults (#66843) (thanks @kashevk0)
* fix(config): restore Telegram native commands under auto defaults

* chore: trigger CI rerun

* test(config): split native auto-default regressions

* fix: restore Telegram native auto defaults (#66843) (thanks @kashevk0)

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-15 07:46:35 +05:30
François Martin
734bb9c2e7 Telegram/documents: sanitize binary payloads to prevent prompt input inflation (#66877)
Merged via squash.

Prepared head SHA: 09a87c184f
Co-authored-by: martinfrancois <14319020+martinfrancois@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-04-14 20:53:00 -04:00
Gustavo Madeira Santana
0c4e0d7030 memory: block dreaming self-ingestion (#66852)
Merged via squash.

Prepared head SHA: 4742656a0d
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-14 20:29:12 -04:00