Peter Steinberger
6c1ed9493c
fix: harden queue retry debounce and add regression tests
2026-02-24 03:52:49 +00:00
Sid
c1fe688d40
fix(gateway): safely extract text from content arrays in prompt builder ( #24946 )
...
* fix(gateway): safely extract text from message content arrays in prompt builder
When HistoryEntry.body is a content array (e.g. [{type:"text",
text:"hello"}]) rather than a plain string, template literal
interpolation produces "[object Object]" instead of the actual message
text. This affects users whose session messages were stored with array
content format.
Add a safeBody helper that detects non-string body values and uses
extractTextFromChatContent to extract the text, preventing the
[object Object] serialization in both the current-message return path
and the history formatting path.
Fixes openclaw#24688
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix: format gateway agent prompt helper (#24946 )
---------
Co-authored-by: Cursor <cursoragent@cursor.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-02-24 03:33:37 +00:00
青雲
52ac7634db
fix: persist reasoningLevel 'off' instead of deleting it ( #24406 ) ( #24559 )
...
When a user runs /reasoning off, the session patch handler deleted
the reasoningLevel field from the session entry. This caused
get-reply-directives to treat reasoning as 'not explicitly set',
which triggered resolveDefaultReasoningLevel() to re-enable
reasoning for capable models (e.g. Claude Opus).
The fix persists 'off' explicitly, matching how directive-handling.persist.ts
already handles the inline /reasoning off command.
Fixes #24406
Fixes #24411
Co-authored-by: echoVic <AkiraVic@outlook.com >
2026-02-24 03:33:30 +00:00
David Murray
e2e10b3da4
fix(slack): map threadId to replyToId for restart sentinel notifications ( #24885 )
...
The restart sentinel wake path passes threadId to deliverOutboundPayloads,
but Slack requires replyToId (mapped to thread_ts) for threading. The agent
reply path already does this conversion but the sentinel path did not,
causing post-restart notifications to land as top-level DMs.
Fixes #17716
2026-02-24 03:22:45 +00:00
Peter Steinberger
4a3f8438e5
fix(gateway): bind node exec approvals to nodeId
2026-02-24 03:05:58 +00:00
Peter Steinberger
223d7dc23d
feat(gateway)!: require explicit non-loopback control-ui origins
2026-02-24 01:57:11 +00:00
Peter Steinberger
e5931554bf
test: tighten slow test timeouts and cleanup
2026-02-24 01:16:53 +00:00
Peter Steinberger
6c43d0a08e
test(gateway): move sessions_send error paths to unit tests
2026-02-24 01:16:53 +00:00
Peter Steinberger
0cc327546b
test(gateway): speed up slow e2e test setup
2026-02-24 00:59:52 +00:00
Vincent Koc
30c622554f
Providers: disable developer role for DashScope-compatible endpoints ( #24675 )
...
* Agents: disable developer role for DashScope-compatible endpoints
* Agents: test DashScope developer-role compatibility
* Gateway: test allowlisted sessions.patch model selection
* Changelog: add DashScope role-compat fix note
2026-02-23 19:51:16 -05:00
Peter Steinberger
f58c1ef34e
test(gateway): speed up contract and polling suites
2026-02-24 00:31:58 +00:00
Peter Steinberger
f52a0228ca
test: optimize auth and audit test runtime
2026-02-23 23:31:52 +00:00
Peter Steinberger
ddb7ec99a8
test: speed up cron test polling and waits
2026-02-23 22:42:23 +00:00
Gustavo Madeira Santana
eff3c5c707
Session/Cron maintenance hardening and cleanup UX ( #24753 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 7533b85156
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: shakkernerd <165377636+shakkernerd@users.noreply.github.com >
Reviewed-by: @shakkernerd
2026-02-23 22:39:48 +00:00
Peter Steinberger
ca761d6225
test: consolidate gateway auth test scenarios
2026-02-23 21:57:17 +00:00
Peter Steinberger
75423a00d6
refactor: deduplicate shared helpers and test setup
2026-02-23 20:40:44 +00:00
Peter Steinberger
9af3ec92a5
fix(gateway): add HSTS header hardening and docs
2026-02-23 19:47:29 +00:00
Peter Steinberger
40db3fef49
fix(agents): cache bootstrap snapshots per session key
...
Co-authored-by: Isis Anisoptera <github@lotuswind.net >
2026-02-23 19:19:45 +00:00
Ruslan Kharitonov
8d69251475
fix(doctor): use gateway health status for memory search key check ( #22327 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 2f02ec9403
Co-authored-by: therk <901920+therk@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-02-23 14:07:16 -05:00
Brian Mendonca
bd8b9af9a7
fix(exec): bind env-prefixed shell wrappers to full approval text
...
(cherry picked from commit 1edf957988 )
2026-02-23 18:56:14 +00:00
justinhuangcode
d00d814ad1
fix(gateway): include platform and reason in node command rejection error
...
The generic "node command not allowed" error gives no indication of why the
command was rejected, making it hard to diagnose issues (e.g. running
`nodes notify` against a Linux node that does not declare `system.notify`).
Include the rejection reason and node platform in the error message so
callers can tell whether the command is not supported by the node, not in
the platform allowlist, or the node did not advertise its capabilities.
Fixes #24616
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
(cherry picked from commit e3d74619bc )
2026-02-23 18:56:14 +00:00
Peter Steinberger
2fa6aa6ea6
test(agents): add comprehensive kimi regressions
2026-02-23 18:27:36 +00:00
Vincent Koc
7fb69b7cd2
Gateway: stop repeated unauthorized WS request floods per connection ( #24294 )
...
* Gateway WS: add unauthorized flood guard primitive
* Gateway WS: close repeated unauthorized post-handshake request floods
* Gateway WS: test unauthorized flood guard behavior
* Changelog: note gateway WS unauthorized flood guard hardening
* Update CHANGELOG.md
2026-02-23 09:58:47 -05:00
Peter Steinberger
3f03cdea56
test: optimize redundant suites for faster runtime
2026-02-23 13:57:34 +00:00
Ayaan Zaidi
86fcca2352
fix(gateway): annotate connection test mocks
2026-02-23 11:47:27 +05:30
Ayaan Zaidi
118611465c
test(gateway): make strict-delivery bestEffort case deterministic
2026-02-23 11:45:18 +05:30
Ayaan Zaidi
d589b3a95c
test(gateway): clear agentCommand mock before strict bestEffort assert
2026-02-23 11:45:18 +05:30
Ayaan Zaidi
03122e5933
fix(cron): preserve telegram announce target + delivery truth
2026-02-23 11:45:18 +05:30
Tak Hoffman
35fbf26d24
Gateway: suppress tools.catalog plugin conflict diagnostics
2026-02-23 00:05:57 -06:00
Tak Hoffman
9e1a13bf4c
Gateway/UI: data-driven agents tools catalog with provenance (openclaw#24199) thanks @Takhoffman
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- gh pr checks 24199 --watch --fail-fast
Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-22 23:55:59 -06:00
Peter Steinberger
1c753ea786
test: dedupe fixtures and test harness setup
2026-02-23 05:45:54 +00:00
Peter Steinberger
8af19ddc5b
refactor: extract shared dedupe helpers for runtime paths
2026-02-23 05:43:43 +00:00
Tak Hoffman
77c3b142a9
Web UI: add full cron edit parity, all-jobs run history, and compact filters (openclaw#24155) thanks @Takhoffman
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-22 23:05:42 -06:00
Tak Hoffman
259d863353
Gateway: harden cron.runs jobId path handling (openclaw#24038) thanks @Takhoffman
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-22 19:35:26 -06:00
Vignesh Natarajan
a10ec2607f
Gateway/Chat UI: sanitize untrusted wrapper markup in final payloads
2026-02-22 16:53:54 -08:00
Peter Steinberger
60c494c024
test: tighten mistral media and onboarding coverage
2026-02-23 00:19:05 +00:00
Vincent Koc
d92ba4f8aa
feat: Provider/Mistral full support for Mistral on OpenClaw 🇫🇷 ( #23845 )
...
* Onboard: add Mistral auth choice and CLI flags
* Onboard/Auth: add Mistral provider config defaults
* Auth choice: wire Mistral API-key flow
* Onboard non-interactive: support --mistral-api-key
* Media understanding: add Mistral Voxtral audio provider
* Changelog: note Mistral onboarding and media support
* Docs: add Mistral provider and onboarding/media references
* Tests: cover Mistral media registry/defaults and auth mapping
* Memory: add Mistral embeddings provider support
* Onboarding: refresh Mistral model metadata
* Docs: document Mistral embeddings and endpoints
* Memory: persist Mistral embedding client state in managers
* Memory: add regressions for mistral provider wiring
* Gateway: add live tool probe retry helper
* Gateway: cover live tool probe retry helper
* Gateway: retry malformed live tool-read probe responses
* Memory: support plain-text batch error bodies
* Tests: add Mistral Voxtral live transcription smoke
* Docs: add Mistral live audio test command
* Revert: remove Mistral live voice test and docs entry
* Onboard: re-export Mistral default model ref from models
* Changelog: credit joeVenner for Mistral work
* fix: include Mistral in auto audio key fallback
* Update CHANGELOG.md
* Update CHANGELOG.md
---------
Co-authored-by: Shakker <shakkerdroid@gmail.com >
2026-02-23 00:03:56 +00:00
Peter Steinberger
13db0b88f5
refactor(gateway): share safe avatar file open checks
2026-02-22 23:12:45 +01:00
Peter Steinberger
7b229decdd
test(perf): dedupe fixtures and reduce flaky waits
2026-02-22 22:06:01 +00:00
Peter Steinberger
6970c2c2db
fix(gateway): harden control-ui avatar reads
2026-02-22 22:40:22 +01:00
Peter Steinberger
d24f5c1e3a
fix(gateway): fail fast exec approvals when no approvers are reachable
...
Co-authored-by: fanxian831-netizen <262880470+fanxian831-netizen@users.noreply.github.com >
2026-02-22 22:24:27 +01:00
Peter Steinberger
2081b3a3c4
refactor(channels): dedupe hook and monitor execution paths
2026-02-22 21:19:09 +00:00
Tak Hoffman
f8171ffcdc
Config UI: tag filters and complete schema help/labels coverage ( #23796 )
...
* Config UI: add tag filters and complete schema help/labels
* Config UI: finalize tags/help polish and unblock test suite
* Protocol: regenerate Swift gateway models
2026-02-22 15:17:07 -06:00
Peter Steinberger
9165bd7f37
fix(gateway): auto-approve loopback scope upgrades
...
Co-authored-by: Marcus Widing <245375637+widingmarcus-cyber@users.noreply.github.com >
2026-02-22 22:11:50 +01:00
Peter Steinberger
7eae1933fb
refactor(test): extract shared fixture helpers in gateway and outbound tests
2026-02-22 20:18:20 +00:00
Peter Steinberger
2dcb244985
refactor(test): dedupe gateway and web scaffolding
2026-02-22 20:04:51 +00:00
Peter Steinberger
51b0772e14
fix(exec-approvals): harden forwarding target and resolve delivery paths
...
Co-authored-by: bubmiller <bubmiller@users.noreply.github.com >
2026-02-22 20:37:22 +01:00
Peter Steinberger
bbdfba5694
fix: harden connect auth flow and exec policy diagnostics
2026-02-22 20:22:00 +01:00
Peter Steinberger
aa4c250eb8
fix(cron): split run and delivery status tracking
2026-02-22 20:19:23 +01:00
Peter Steinberger
0c1f491a02
fix(gateway): clarify pairing and node auth guidance
2026-02-22 19:50:29 +01:00