Commit Graph

12239 Commits

Author SHA1 Message Date
Peter Steinberger
ad65778818 fix: keep windows onboarding logs ascii-safe 2026-03-14 04:46:47 +00:00
Peter Steinberger
b6d1d0d72d fix(browser): prefer user profile over chrome relay 2026-03-14 04:15:34 +00:00
Josh Avant
f4fef64fc1 Gateway: treat scope-limited probe RPC as degraded reachability (#45622)
* Gateway: treat scope-limited probe RPC as degraded

* Docs: clarify gateway probe degraded scope output

* test: fix CI type regressions in gateway and outbound suites

* Tests: fix Node24 diffs theme loading and Windows assertions

* Tests: fix extension typing after main rebase

* Tests: fix Windows CI regressions after rebase

* Tests: normalize executable path assertions on Windows

* Tests: remove duplicate gateway daemon result alias

* Tests: stabilize Windows approval path assertions

* Tests: fix Discord rate-limit startup fixture typing

* Tests: use Windows-friendly relative exec fixtures

---------

Co-authored-by: Mainframe <mainframe@MainfraacStudio.localdomain>
2026-03-13 23:13:33 -05:00
Peter Steinberger
70459e7fec fix: keep exec summaries inline 2026-03-14 04:08:00 +00:00
Muhammed Mukhthar CM
a4a5fdcd98 test(discord): align rate limit error mock with carbon 2026-03-14 04:01:42 +00:00
Peter Steinberger
5c40c1c78a fix(browser): add browser session selection 2026-03-14 03:46:44 +00:00
scoootscooob
b857a8d8bc fix(models): apply Gemini model-id normalization to google-vertex provider (#42435)
* fix(models): apply Gemini model-id normalization to google-vertex provider

The existing normalizeGoogleModelId() (which maps e.g. gemini-3.1-flash-lite
to gemini-3.1-flash-lite-preview) was only applied when the provider was
"google". Users configuring google-vertex/gemini-3.1-flash-lite would get
a "missing" model because the -preview suffix was never appended.

Extend the normalization to google-vertex in both model-selection
(parseModelRef path) and normalizeProviders (config normalization path).

Ref: https://github.com/openclaw/openclaw/issues/36838
Ref: https://github.com/openclaw/openclaw/pull/36918#issuecomment-4032732959


* fix(models): normalize google-vertex flash-lite

* fix(models): place unreleased changelog entry last

* fix(models): place unreleased changelog entry before releases
2026-03-13 20:45:34 -07:00
yunweibang
f4a2bbe0c9 fix(feishu): add early event-level dedup to prevent duplicate replies (#43762)
* fix(feishu): add early event-level dedup to prevent duplicate replies

Add synchronous in-memory dedup at EventDispatcher handler level using
message_id as key with 5-minute TTL and 2000-entry cap.

This catches duplicate events immediately when they arrive from the Lark
SDK — before the inbound debouncer or processing queue — preventing the
race condition where two concurrent dispatches enter the pipeline before
either records the messageId in the downstream dedup layer.

Fixes the root cause reported in #42687.

* fix(feishu): correct inverted dedup condition

check() returns false on first call (new key) and true on subsequent
calls (duplicate). The previous `!check()` guard was inverted —
dropping every first delivery and passing all duplicates.

Remove the negation so the guard correctly drops duplicates.

* fix(feishu): simplify eventDedup key — drop redundant accountId prefix

eventDedup is already scoped per account (one instance per
registerEventHandlers call), so the accountId prefix in the cache key
is redundant. Use `evt:${messageId}` instead.

* fix(feishu): share inbound processing claim dedupe

---------

Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-03-13 22:37:40 -05:00
Peter Steinberger
2659fc6c97 fix: unblock discord startup on deploy rate limits 2026-03-14 03:31:50 +00:00
Peter Steinberger
8bc163d15f fix(ci): repair helper typing regressions 2026-03-14 03:22:53 +00:00
George Zhang
eee5d7c6b0 fix(browser): harden existing-session driver validation and session lifecycle (#45682)
* fix(browser): harden existing-session driver validation, session lifecycle, and code quality

Fix config validation rejecting existing-session profiles that lack
cdpPort/cdpUrl (they use Chrome MCP auto-connect instead). Fix callTool
tearing down the MCP session on tool-level errors (element not found,
script error), which caused expensive npx re-spawns. Skip unnecessary
CDP port allocation for existing-session profiles. Remove redundant
ensureChromeMcpAvailable call in isReachable.

Extract shared ARIA role sets (INTERACTIVE_ROLES, CONTENT_ROLES,
STRUCTURAL_ROLES) into snapshot-roles.ts so both the Playwright and
Chrome MCP snapshot paths stay in sync. Add usesChromeMcp capability
flag and replace ~20 scattered driver === "existing-session" string
checks with the centralized flag.

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

* fix(browser): harden existing-session driver validation and session lifecycle (#45682) (thanks @odysseus0)

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-13 20:21:47 -07:00
Frank Yang
01674c575e fix(agents): preserve blank local custom-provider API keys after onboarding
Co-authored-by: Xinhua Gu <xinhua.gu@gmail.com>
2026-03-14 11:08:19 +08:00
Peter Steinberger
66e02b296f test: share memory search config helpers 2026-03-14 02:40:28 +00:00
Peter Steinberger
c5d905871f test: share oauth profile fixtures 2026-03-14 02:40:28 +00:00
Peter Steinberger
6720bf5be0 refactor: share exec host approval helpers 2026-03-14 02:40:28 +00:00
Peter Steinberger
3bc9d9177d test: share workspace skill test helpers 2026-03-14 02:40:28 +00:00
Peter Steinberger
6ad675c1e9 test: share subagent announce timeout helpers 2026-03-14 02:40:28 +00:00
Peter Steinberger
95b4132674 test: share provider discovery auth fixtures 2026-03-14 02:40:28 +00:00
Peter Steinberger
e474ac882e test: share model selection config helpers 2026-03-14 02:40:28 +00:00
Peter Steinberger
0e6f150c3b test: share timeout failover assertions 2026-03-14 02:40:28 +00:00
Peter Steinberger
dfcc2fae9f test: share context lookup helpers 2026-03-14 02:40:28 +00:00
Peter Steinberger
f0179d3b4a test: share workspace skills snapshot helpers 2026-03-14 02:40:28 +00:00
Peter Steinberger
8622395c8b test: share models config merge helpers 2026-03-14 02:40:28 +00:00
Peter Steinberger
7aedb6d442 test: share subagent gateway mock setup 2026-03-14 02:40:28 +00:00
Peter Steinberger
013ad58f3c test: share sandbox fs bridge seeded workspace 2026-03-14 02:40:28 +00:00
Vincent Koc
bcbfbb831e Plugins: fail fast on channel and binding collisions (#45628)
* Plugins: reject duplicate channel ids

* Bindings: reject duplicate adapter registration

* Plugins: fail on export id mismatch
2026-03-13 19:13:35 -07:00
Peter Steinberger
27e863ce40 chore: update dependencies 2026-03-14 02:09:53 +00:00
Peter Steinberger
10afde99c1 fix: harden discord guild allowlist resolution 2026-03-14 02:09:19 +00:00
2233admin
5c73ed62d5 fix(sessions): create transcript file on chat.inject when missing (#36645)
`chat.inject` called `appendAssistantTranscriptMessage` with
`createIfMissing: false`, causing a hard error when the transcript
file did not exist on disk despite having a valid `transcriptPath`
in session metadata. This commonly happens with ACP oneshot/run
sessions where the session entry is created but the transcript file
is not yet materialized.

The fix is a one-character change: `createIfMissing: true`. The
`ensureTranscriptFile` helper already handles directory creation
and file initialization safely.

Fixes #36170

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 03:00:24 +01:00
Peter Steinberger
965bdb2d2d fix: harden gateway status rpc smoke 2026-03-14 01:56:24 +00:00
Peter Steinberger
9cfc2d4618 refactor: share request url resolution 2026-03-14 01:41:17 +00:00
Peter Steinberger
757077d028 test: share memory tool helpers 2026-03-14 01:41:17 +00:00
Peter Steinberger
42d6e35cb4 refactor: share session tool context setup 2026-03-14 01:41:17 +00:00
Peter Steinberger
d9a604f15f test: share web fetch header helpers 2026-03-14 01:41:17 +00:00
Peter Steinberger
231589ef66 fix: restore imessage control command flag 2026-03-14 01:41:17 +00:00
Peter Steinberger
b61bc4948e refactor: share dual text command gating 2026-03-14 01:41:17 +00:00
Peter Steinberger
91d9573b55 refactor: declone model picker model ref parsing 2026-03-14 01:41:17 +00:00
Peter Steinberger
c0831927b0 refactor: share allowlist wildcard matching 2026-03-14 01:41:17 +00:00
Peter Steinberger
f4094ab19e refactor: share slack text truncation 2026-03-14 01:41:17 +00:00
Peter Steinberger
d886ca6474 fix: widen telegram reply progress typing 2026-03-14 01:41:17 +00:00
Peter Steinberger
5b53481d1d refactor: share daemon install cli setup 2026-03-14 01:41:17 +00:00
Peter Steinberger
5197171d7a refactor: share telegram reply chunk threading 2026-03-14 01:41:17 +00:00
Peter Steinberger
66de7311c7 test: share whatsapp outbound poll fixtures 2026-03-14 01:41:17 +00:00
Peter Steinberger
7285e04ead refactor: share whatsapp outbound adapter base 2026-03-14 01:41:17 +00:00
Peter Steinberger
d4b193b581 test: share embedded workspace attempt helpers 2026-03-14 01:41:17 +00:00
Peter Steinberger
fb93acb046 test: share compaction retry timer helpers 2026-03-14 01:41:16 +00:00
Peter Steinberger
88de4769de refactor: share agent tool fixture helpers 2026-03-14 01:41:16 +00:00
Peter Steinberger
6e3f0f9fcb refactor: share tool result char estimation 2026-03-14 01:41:16 +00:00
Peter Steinberger
0db62fc6c5 refactor: share pinned sandbox entry finalization 2026-03-14 01:41:16 +00:00
Peter Steinberger
414e9c87cb refactor: share browser console result formatting 2026-03-14 01:41:16 +00:00