Commit Graph

26226 Commits

Author SHA1 Message Date
Peter Steinberger 9ddfaff45f
docs: clarify node exec approval plan forwarding 2026-04-04 12:18:04 +01:00
Peter Steinberger 605f48556b
refactor(browser): share lifecycle cleanup helpers 2026-04-04 12:17:46 +01:00
Peter Steinberger c3f415ad6e
fix: preserve node system.run approval plans 2026-04-04 20:16:53 +09:00
Peter Steinberger f832699fd7
docs: refresh provider hook overview refs 2026-04-04 12:16:29 +01:00
Peter Steinberger 53c33f8207
fix: forward node exec approval plans 2026-04-04 20:16:19 +09:00
Peter Steinberger 62c54fdc16
docs: refresh provider replay family refs 2026-04-04 12:15:31 +01:00
Jasmine Zhang b838ecf885 fix: add 60s timeout to MiniMax VLM fetch call
The VLM image analysis fetch had no timeout, causing sessions to hang
indefinitely when the MiniMax API is slow or unresponsive. Other
vision/model API calls in the codebase already use timeouts. Adds
AbortSignal.timeout(60_000) consistent with image upload workloads.

Fixes #54139
2026-04-04 20:15:13 +09:00
Peter Steinberger 39bcf695dc
fix(cron): reject unsafe custom session targets earlier 2026-04-04 20:13:39 +09:00
Peter Steinberger 00337cdde1
docs: refresh codex auth and ws refs 2026-04-04 12:11:45 +01:00
Vincent Koc c29d4bbb86 test(providers): add family capability matrix coverage 2026-04-04 20:11:25 +09:00
Peter Steinberger 91bac7cb83
fix(usage): restore provider auth fallback 2026-04-04 12:10:45 +01:00
Peter Steinberger 6bbccb087a
docs: refresh google cached content refs 2026-04-04 12:10:29 +01:00
Peter Steinberger 49bf527fd4
docs: clarify reserved gateway method namespaces 2026-04-04 12:08:41 +01:00
Peter Steinberger 9b352ab5b0
test: isolate session status from provider runtime leak 2026-04-04 12:08:05 +01:00
Peter Steinberger b7411ad594
refactor(cron): share descendant run quiescence wait 2026-04-04 20:07:33 +09:00
Peter Steinberger 7b6334b0f4
refactor(agents): share run wait reply helpers 2026-04-04 20:07:33 +09:00
Peter Steinberger bbb0b574c4
refactor: centralize gateway method policy helpers 2026-04-04 20:07:18 +09:00
Vincent Koc d766465e38
fix(google): add direct cachedContent support (#60757)
* fix(google): restore gemini cache reporting

* fix(google): split cli parsing into separate PR

* fix(google): drop remaining cli overlap

* fix(google): honor cachedContent alias precedence
2026-04-04 20:07:13 +09:00
Peter Steinberger b9e3c1a02e
docs: refresh cron and subagent browser cleanup refs 2026-04-04 12:06:39 +01:00
Peter Steinberger 7ffbbd8586
fix: reserve admin gateway method prefixes 2026-04-04 20:04:48 +09:00
Peter Steinberger 86ee50b968
docs: refresh web search overview mirrors 2026-04-04 12:04:28 +01:00
Peter Steinberger 3b09b58c5d test: cover browser cleanup for cron and subagents (#60146) (thanks @BrianWang1990) 2026-04-04 20:03:57 +09:00
BrianWang1990 e697838899 style: fix import order in server-cron.ts
Move plugin-sdk import after cron/* imports per alphabetical convention.
2026-04-04 20:03:57 +09:00
BrianWang1990 72b2e413d6 fix(browser): clean up browser tabs/processes when cron tasks and subagents complete
When cron tasks or subagents use browser automation, the browser
processes were not cleaned up after the task completed. This caused
orphaned Chrome processes (PPID=1) to accumulate over time.

Root cause: closeTrackedBrowserTabsForSessions was only called during
session-reset/session-delete (via ensureSessionRuntimeCleanup), but
isolated cron runs and subagent completions never triggered these paths.

Fix: Add browser tab cleanup in two places:
1. server-cron.ts: wrap runCronIsolatedAgentTurn in try/finally to
   ensure browser tabs are cleaned up after every cron run.
2. subagent-registry-lifecycle.ts: call closeTrackedBrowserTabsForSessions
   when a subagent run completes, before the announce cleanup flow.

Both cleanup calls are best-effort (caught errors) so they never mask
the actual task result or break the completion flow.

Fixes #60104
2026-04-04 20:03:57 +09:00
Peter Steinberger 0b1c9c7057
fix: stabilize codex auth ownership and ws fallback cache 2026-04-04 20:03:15 +09:00
Peter Steinberger fca889eea3
docs: refresh browser troubleshooting mirrors 2026-04-04 12:02:48 +01:00
Peter Steinberger 29f062770d
docs: refresh browser stop cleanup refs 2026-04-04 12:02:10 +01:00
Peter Steinberger c524d6c76c
docs: refresh shared minimax web search refs 2026-04-04 12:00:58 +01:00
Peter Steinberger bec891b2e2 test: cover attach-only browser stop cleanup (#60097) (thanks @pedh) 2026-04-04 19:59:59 +09:00
pedh 2c9723afd5 fix(browser): disconnect Playwright CDP session on stop for attachOnly/remote profiles
When `browser stop` is called for an `attachOnly` or remote CDP
profile, `profileState.running` is null (no process was launched), so
`stopRunningBrowser()` returned early without closing the Playwright
CDP connection. This left emulation overrides (prefers-color-scheme,
viewport, etc.) permanently applied until a full gateway restart.

Now call `closePlaywrightBrowserConnectionForProfile()` before
returning for attachOnly and remote CDP profiles, matching the cleanup
behavior already present in `resetProfile()`. Regular profiles that
were never started still return `{ stopped: false }`.

Fixes #60095
2026-04-04 19:59:59 +09:00
Peter Steinberger 0bc9f0b5ba
docs: refresh browser screenshot route refs 2026-04-04 11:58:46 +01:00
Jithendra d204be80af feat(tools): add MiniMax as bundled web search provider
Add native MiniMax Search integration via their Coding Plan search API
(POST /v1/coding_plan/search). This brings MiniMax in line with Brave,
Kimi, Grok, Gemini, and other providers that already have bundled web
search support.

- Implement WebSearchProviderPlugin with caching, credential resolution,
  and trusted endpoint wrapping
- Support both global (api.minimax.io) and CN (api.minimaxi.com)
  endpoints, inferred from explicit region config, model provider base
  URL, or minimax-portal OAuth base URL
- Prefer MINIMAX_CODE_PLAN_KEY over MINIMAX_API_KEY in credential
  fallback, matching existing repo precedence
- Accept SecretRef objects for webSearch.apiKey (type: [string, object])
- Register in bundled registry, provider-id compat map, and fast-path
  plugin id list with full alignment test coverage
- Add unit tests for endpoint/region resolution and edge cases

Closes #47927
Related #11399

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 19:56:04 +09:00
Peter Steinberger a722719720
docs: refresh synology webhook auth refs 2026-04-04 11:55:57 +01:00
Peter Steinberger 7d16359aae docs: note Chrome 146 screenshot compat fix (#60682) (thanks @mvanhorn) 2026-04-04 19:55:37 +09:00
Matt Van Horn b22f6257f0 fix(browser): remove fromSurface: false for Chrome 146+ screenshot compat 2026-04-04 19:55:37 +09:00
Peter Steinberger 05da802e1c
refactor: split device-pair command helpers 2026-04-04 19:55:04 +09:00
Peter Steinberger fdb1be0079
docs: refresh mattermost slash auth refs 2026-04-04 11:54:52 +01:00
Peter Steinberger 8a532dead2
docs: refresh browser cdp validation refs 2026-04-04 11:53:36 +01:00
Peter Steinberger 2a65bfee96
fix(mattermost): harden slash command token validation 2026-04-04 19:51:41 +09:00
Peter Steinberger 53d3fbcef6
docs: refresh browser existing session docs 2026-04-04 11:51:07 +01:00
Peter Steinberger 5583bda61d docs: note browser profile CDP validation fix (#60477) (thanks @eleqtrizit) 2026-04-04 19:51:02 +09:00
Agustin Rivera 5da360cada fix(browser): trim validation error prefix 2026-04-04 19:51:02 +09:00
Agustin Rivera aefc6fc161 fix(browser): validate profile cdp urls 2026-04-04 19:51:02 +09:00
Peter Steinberger 36cc397548
fix: reuse shared Synology Chat secret compare 2026-04-04 19:49:35 +09:00
Peter Steinberger c5b2b69f94
docs: refresh live model switch docs 2026-04-04 11:49:23 +01:00
Peter Steinberger bc356cc8c2 fix: harden direct CDP websocket validation (#60469) (thanks @eleqtrizit) 2026-04-04 19:48:01 +09:00
Agustin Rivera c3f8427973 fix(browser): validate initial cdp endpoints 2026-04-04 19:48:01 +09:00
Agustin Rivera 80720b4994 fix(browser): validate cdp websocket pivots 2026-04-04 19:48:01 +09:00
Peter Steinberger e4ea3c03cf fix: scope live model switch pending state (#60266) (thanks @kiranvk-2011) 2026-04-04 19:45:53 +09:00
kiranvk2011 b36a3a3295 fix: add .catch() to fire-and-forget stale-flag clear to prevent unhandled rejection 2026-04-04 19:45:53 +09:00