Peter Steinberger
cdaa70facb
refactor: cache repeated lazy imports
2026-04-18 16:32:53 +01:00
Peter Steinberger
464cbbc9f9
perf: trim plugin and skills test overhead
2026-04-18 16:23:00 +01:00
Peter Steinberger
66385670e4
refactor: reduce unnecessary dynamic imports
2026-04-18 16:15:33 +01:00
Peter Steinberger
3f2e73b723
chore(release): bump version to 2026.4.18
2026-04-18 15:46:33 +01:00
@zimeg
25ce5a5822
fix(slack): resolve stream recipient team in shared channels
2026-04-18 04:11:06 -07:00
Ziy
4b5987829d
fix: redact credentials in browser.cdpUrl config paths ( #67679 )
...
Merged via squash.
Prepared head SHA: 77bc2c50ce
Co-authored-by: Ziy1-Tan <49604965+Ziy1-Tan@users.noreply.github.com >
Co-authored-by: hxy91819 <8814856+hxy91819@users.noreply.github.com >
Reviewed-by: @hxy91819
2026-04-18 14:22:58 +08:00
Val Alexander
f45bc09206
[codex] fix(auth): harden OAuth refresh and Codex CLI bootstrap flows ( #68396 )
...
* Harden OAuth refresh and Codex CLI bootstrap flows
- Treat near-expiry OAuth credentials as unusable for bootstrap and refresh
- Add clearer timeout and callback validation handling for OpenAI Codex OAuth
- Tighten file lock retry behavior for stale OAuth refresh contention
* fix(auth): address PR review threads
* fix(auth): adopt fresher imported refresh tokens
* test(auth): align oauth expiry fixtures with refresh margin
* fix(auth): tighten Codex OAuth bootstrap and local fallback
* Keep explicit local auth over CLI bootstrap
- Preserve existing non-OAuth local profiles during external CLI OAuth sync
- Add regression coverage for OpenAI Codex and generic external OAuth overlays
* fix(auth): distinguish oauth lock timeout sources
* fix(auth): reject cross-account external oauth bootstrap
* fix(auth): narrow refresh contention classification
2026-04-18 01:02:29 -05:00
Kagura
c2fb4007c2
Matrix: forward dangerouslyAllowPrivateNetwork config to client SSRF policy ( #68332 )
...
Merged via squash.
Prepared head SHA: d8733928eb
Co-authored-by: kagura-agent <268167063+kagura-agent@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-18 00:50:50 -04:00
Ayaan Zaidi
dc3b10285d
fix(telegram): require authorized abort supersede
2026-04-18 10:14:08 +05:30
Marcus Castro
458a52610a
fix(whatsapp): isolate multi-account inbound state and align shared defaults ( #65700 )
...
* refactor(whatsapp): centralize inbound policy resolution
* fix(whatsapp): scope named-account group session keys
* fix(whatsapp): preserve legacy group activation during scoped-key migration
* fix(whatsapp): wire shared defaults through accounts.default
* fix(whatsapp): align schema, helpers, and monitor behavior
* fix(whatsapp): restore verbose inbound diagnostics
* chore(config): refresh whatsapp changelog and baseline hashes
2026-04-18 01:37:38 -03:00
Rubén Cuevas
996eb9a024
fix: fence Telegram stale reply delivery after abort ( #68100 ) (thanks @rubencu)
...
* fix(telegram): fence stale reply delivery after abort
* refactor(telegram): narrow abort fence scope
* fix(telegram): ignore stale reply finalization after abort
* fix(telegram): close abort supersession races
* fix(telegram): release abort fences on setup errors
* fix(telegram): discard superseded draft cleanup
* refactor(telegram): distill abort fence cleanup
* fix: fence Telegram stale reply delivery after abort (#68100 ) (thanks @rubencu)
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-04-18 10:02:38 +05:30
Gustavo Madeira Santana
a50ec27d3b
Tests: speed up QA lab startup
2026-04-17 22:19:17 -04:00
Onur
361750775d
CI: stabilize live release lanes ( #67838 )
...
* CI: stabilize live release lanes
* CI: widen codex live exclusions
* Gateway: stop live config/auth lazy re-imports
* CI: mount writable live Docker homes
* Live: tighten retry and provider filter overrides
* CI: use API-key auth for codex live lanes
* CI: fix remaining live lanes
* CI: stop forwarding live OpenAI base URLs
* Gateway: fix live startup loader regression
* CI: stop expanding OpenAI keys in live Docker lanes
* CI: stop expanding installer secrets in Docker
* CI: tighten live secret boundaries
* Gateway: pin Codex harness base URL
* CI: fix reusable workflow runner label
* CI: avoid template expansion in live ref guard
* CI: tighten live trust gate
* Gateway: ignore empty Codex harness base URL
* CI: stabilize remaining live lanes
* CI: harden live retries and canvas auth test
* CI: extend cron live probe budget
* CI: keep codex harness lane on api-key auth
* CI: stage live Docker OpenAI auth via env files
* CI: bootstrap codex login for Docker API-key lanes
* CI: accept hosted-runner codex fallback responses
* CI: accept additional codex sandbox fallback text
* CI: accept hosted-runner live fallback variants
* CI: accept codex current-model fallback
* CI: broaden codex sandbox model fallbacks
* CI: cover extra codex sandbox wording
* CI: extend cli backend cron retry budget
* CI: match codex models fallbacks by predicate
* CI: accept configured-models live fallback
* CI: relax OpenAI websocket warmup timeout
* CI: accept extra codex model fallback wording
* CI: generalize codex model fallback matching
* CI: retry cron verify cancellation wording
* CI: accept interactive codex model entrypoint fallback
* Agents: stabilize Claude bundle skill command test
* CI: prestage live Docker auth homes
* Tests: accept current Codex models wording
* CI: stabilize remaining live lanes
* Tests: widen CLI backend live timeout
* Tests: accept current Codex model summary wording
* CI: disable codex-cli image probe in Docker lane
* Tests: respect CLI override for Codex Docker login
* Tests: accept current Codex session models header
* CI: stabilize remaining live validation lanes
* CI: preserve Gemini ACP coverage in auth fallback
* CI: fix final live validation blockers
* CI: restore Codex auth for CLI backend lane
* CI: drop local Codex config in live Docker lane
* Tests: tolerate Codex cron and model reply drift
* Tests: accept current Codex live replies
* Tests: retry more Codex cron retry wording
* Tests: accept environment-cancelled Codex cron retries
* Tests: retry blank Codex cron probe replies
* Tests: broaden Codex cron retry wording
* Tests: require explicit Codex cron retry replies
* Tests: accept current Codex models environment wording
* CI: restore trusted Codex config in live lane
* CI: bypass nested Codex sandbox in docker
* CI: instrument live codex cron lane
* CI: forward live CLI resume args
* Tests: accept interactive Codex model selection
* Tests: bound websocket warm-up live lane
* CI: close live lane review gaps
* Tests: lazy-load gateway live server
* Tests: avoid gateway live loader regression
* CI: scope reusable workflow secrets
* Tests: tighten codex models live assertion
* Tests: normalize OpenAI speech live text
2026-04-18 03:18:12 +02:00
Peter Steinberger
a22b789547
test: stabilize telegram status lane test
2026-04-18 02:13:11 +01:00
Peter Steinberger
36068281fb
test: stabilize whatsapp pdf media test
2026-04-18 02:01:07 +01:00
Gustavo Madeira Santana
0e4ddf7b38
Tests: avoid bundled Discord runtime lookup
2026-04-17 20:57:27 -04:00
Peter Steinberger
c8d722d093
test: fix rebased local gates
2026-04-18 01:49:54 +01:00
Peter Steinberger
27f34f0491
test: merge provider contract wrappers
2026-04-18 01:36:33 +01:00
Peter Steinberger
3abb5fd291
test: slim channel contract hotspots
2026-04-18 01:36:33 +01:00
Peter Steinberger
569247cff8
test: speed channel contract hotspots
2026-04-18 01:36:15 +01:00
Peter Steinberger
576ce7c656
perf: slim zalo group access facade
2026-04-18 01:36:15 +01:00
Peter Steinberger
4143da0ffa
test: use provider contract artifacts
2026-04-18 01:36:15 +01:00
Peter Steinberger
ed65e8017d
test: slim channel directory contracts
2026-04-18 01:36:15 +01:00
Peter Steinberger
7db9a53254
test: slim contract suite imports
2026-04-18 01:36:15 +01:00
Peter Steinberger
e493d1d2fd
test: keep twitch entry test lazy
2026-04-18 01:32:34 +01:00
Gustavo Madeira Santana
5d8dceb37f
QA Matrix: add catchup incremental scenario
2026-04-17 19:16:58 -04:00
Gustavo Madeira Santana
c54464a887
test: keep searxng web search contract light
...
Lazy-load the SearXNG web-search client from provider execution and reuse
the shared contract helper for credential and selection wiring. Keep the
shared fast-path contract focused on the single bundled manifest it checks.
2026-04-17 18:15:59 -04:00
Gustavo Madeira Santana
41ee813a45
test: lazy-load minimax web search runtime
...
Keep the Minimax web-search provider artifact metadata-only and move
execution, cache, endpoint, and test helpers behind a lazy runtime import.
This keeps contract metadata tests from importing the full runtime path.
2026-04-17 18:08:23 -04:00
Gustavo Madeira Santana
b1c032245c
test: lazy-load exa web search runtime
...
Keep Exa provider registration metadata-light and move request,
cache, validation, and test helpers behind a runtime seam.
2026-04-17 18:01:58 -04:00
Gustavo Madeira Santana
cad1d04491
test: keep brave web search metadata light
...
Move Brave test helper exposure out of the provider artifact and
keep schema/config metadata free of runtime shared imports.
2026-04-17 17:54:57 -04:00
Gustavo Madeira Santana
c9dfb19001
test: lazy-load duckduckgo web search runtime
...
Keep DuckDuckGo provider metadata on the contract path and defer
client plus runtime argument helpers until search execution.
2026-04-17 17:49:17 -04:00
Gustavo Madeira Santana
5d6041de81
test: lazy-load moonshot web search runtime
...
Keep Kimi web-search provider metadata light and move setup,
execution, cache, and test helpers behind a runtime seam.
2026-04-17 17:44:32 -04:00
Gustavo Madeira Santana
1da928211b
test: lazy-load xai web search runtime
...
Keep xAI web-search provider registration metadata-light and move
setup, execution, cache, and test helpers behind runtime seams.
2026-04-17 17:37:48 -04:00
Gustavo Madeira Santana
8a0977f405
test: lazy-load Tavily web search runtime
...
Keep Tavily provider registration on the lightweight contract path and
defer runtime client loading until generic search execution.
2026-04-17 17:26:47 -04:00
Gustavo Madeira Santana
c86beb237e
test: lazy-load Perplexity web search runtime
...
Keep the Perplexity web-search public provider artifact metadata-only and move
execution, cache, HTTP, and runtime helper tests behind a lazy runtime seam.
This keeps bundled web-search contract checks from loading runtime-only code.
2026-04-17 17:26:47 -04:00
Gustavo Madeira Santana
2482e70fb8
test: narrow web search contract runtime loads
...
Honor targeted includes in the contracts Vitest lane and compare bundled
web-search fast-path artifacts against plugin-owned runtime artifacts instead
of loading whole plugin entries. Split Google and Firecrawl runtime-only work
behind lazy seams so provider registration stays metadata-light.
Also keep Perplexity contract metadata aligned by sharing its runtime transport
resolution with the contract artifact.
2026-04-17 17:26:46 -04:00
Vincent Koc
c03f97f954
test(plugins): break google contract helper cycles
2026-04-17 14:25:21 -07:00
Vincent Koc
8b5030447a
test(plugins): trim contract helper runtime boot
2026-04-17 14:25:21 -07:00
Vincent Koc
48c4a026dd
test(plugins): fast-path bundled provider contract loads
2026-04-17 14:25:21 -07:00
Vincent Koc
5edf876a5e
test(auth): add codex oauth red-blue coverage
2026-04-17 14:14:03 -07:00
Gustavo Madeira Santana
5ae059db16
test: speed legacy state migration discovery
...
Keep bundled legacy migration discovery on narrow setup-entry surfaces so
state-migration tests and doctor cold paths avoid unrelated channel runtime
loads. Add targeted setup feature metadata, narrow Telegram/WhatsApp legacy
contracts, and a path-only pairing SDK helper.
2026-04-17 16:41:43 -04:00
Gustavo Madeira Santana
8b76bcba90
test: avoid real Telegram config writes in retry tests
2026-04-17 15:50:41 -04:00
Gustavo Madeira Santana
c550642cde
test: keep command registry native overrides hermetic
2026-04-17 15:50:39 -04:00
Devin Robison
90979d7c3e
fix(feishu): resolve card-action chat type before dispatch ( #68201 )
...
* fix(feishu): resolve card-action chat type before dispatch
* changelog: resolve card-action chat type before dispatch (#68201 )
* address review: prefer chat_mode over chat_type, add error-path tests
- Swap resolution order to check chat_mode (conversation type) before
chat_type (privacy classification), since Feishu's chat_type can
return "private" for private group chats which would be wrongly
classified as p2p.
- Treat "topic" as group semantics in the normalizer.
- Add comment explaining the field semantics and why "private" maps
to "p2p" (safe-failure direction).
- Add two error-path tests: API returns non-zero code, and API throws.
* map chat_type=public to group in normalizer
Feishu's chat_type can return "public" for public group chats.
Without this mapping the fallback resolver would miss it and default
to p2p, routing a group card action through DM handling.
* address Aisle: cache chat-type lookups and scrub log output
- Add a 30-minute TTL cache for chatId -> chatType so repeated card
actions on the same chat skip the Feishu API call.
- Strip chatId, event.token, and raw error strings from log messages;
use err.message instead of String(err) to avoid leaking stack traces
or HTTP internals from the Feishu SDK.
* prune expired chat-type cache entries
Add pruneChatTypeCache() called on each lookup so expired entries are
evicted and the cache stays bounded in long-running processes.
* address Aisle: scope cache by account, cap size, sanitize logs
- Key cache by accountId:chatId to prevent cross-account contamination.
- Cap cache at 5000 entries and evict oldest when exceeded.
- Sanitize response.msg and err.message with CR/LF stripping and
length cap before logging to prevent log injection.
2026-04-17 12:29:04 -06:00
Gustavo Madeira Santana
3a1e469732
QA: track scenario coverage intent
2026-04-17 14:05:49 -04:00
Gustavo Madeira Santana
f334ca2b50
Auto-reply: fast-path sandbox media root resolution
2026-04-17 14:05:49 -04:00
Gustavo Madeira Santana
6184f17c91
Twitch: add bundled setup entry ( #68008 )
...
Merged via squash.
Prepared head SHA: 59305356a0
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-17 13:49:08 -04:00
Gustavo Madeira Santana
a464f5926b
Secrets: avoid broad web search discovery for single plugin config
...
Add an Exa web-search contract artifact and use single bundled plugin-scoped webSearch config as a provider hint. This keeps runtime secret resolution on metadata-only surfaces instead of importing full provider tool implementations.
2026-04-17 13:38:24 -04:00
Peter Steinberger
0747a9c85a
test(discord): isolate debug proxy env
2026-04-17 18:35:06 +01:00
Peter Steinberger
8c249a8cca
fix(matrix): keep guarded transport mockable
2026-04-17 17:44:11 +01:00