Commit Graph

5212 Commits

Author SHA1 Message Date
Peter Steinberger
d5df4cd4e5 test: add Anthropic Opus QA smokes 2026-04-10 17:24:54 +01:00
Ayaan Zaidi
9d3583bc2f fix(qa-lab): tighten telegram canary matching 2026-04-10 21:53:31 +05:30
Ayaan Zaidi
ecb3e0a62d fix(qa-lab): harden telegram qa artifacts 2026-04-10 21:53:31 +05:30
Ayaan Zaidi
d69cc5da5c fix(qa-lab): address remaining review comments 2026-04-10 21:53:31 +05:30
Ayaan Zaidi
2aaf5a3baa fix(qa-lab): address telegram qa review comments 2026-04-10 21:53:31 +05:30
Ayaan Zaidi
7348c3193d test(telegram): cover threaded qa replies 2026-04-10 21:53:31 +05:30
Ayaan Zaidi
88a7970f84 fix(telegram): thread native command replies 2026-04-10 21:53:31 +05:30
Ayaan Zaidi
0ff03a74a8 fix(qa-lab): trust telegram canary send result 2026-04-10 21:53:31 +05:30
Ayaan Zaidi
653a110ef6 fix(qa-lab): refine telegram canary output 2026-04-10 21:53:31 +05:30
Ayaan Zaidi
5c7a232ebc fix(qa-lab): improve telegram canary diagnostics 2026-04-10 21:53:31 +05:30
Ayaan Zaidi
e093cb6c93 feat(qa-lab): add telegram live qa lane 2026-04-10 21:53:31 +05:30
Peter Steinberger
fa2ee2af85 test: enforce browser cdp policy before playwright 2026-04-10 17:21:19 +01:00
Gustavo Madeira Santana
0dd8ce72a2 Matrix: consolidate migration status routing (#64373)
Merged via squash.

Prepared head SHA: dfe29e36bb
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-10 12:20:13 -04:00
Devin Robison
48c0347921 fix: in the browser extension s tabs action route the (#310) (#63332)
* fix: in the browser extension s tabs action route the (#310)

* fix(browser): fail closed for tab close and CDP redirects

* fix(browser): sanitize tab SSRF policy errors

* chore(changelog): add browser tabs action policy enforcement entry

* fix(browser): differentiate CDP endpoint blocks from navigation blocks in error mapping

Split SsrFBlockedError handling so navigation-target policy failures
(from assertBrowserNavigationAllowed) surface as 'browser navigation
blocked by policy' while CDP endpoint policy failures (from
assertCdpEndpointAllowed) surface as 'browser endpoint blocked by
policy'. Both stay sanitized so raw policy details still do not leak
to callers.

- Add BrowserCdpEndpointBlockedError (extends BrowserError, 400).
- assertCdpEndpointAllowed now catches SsrFBlockedError and rethrows
  as BrowserCdpEndpointBlockedError so the route error mapping can
  route endpoint vs navigation failures to the right user-facing
  message without inspecting stack strings.
- toBrowserErrorResponse: raw SsrFBlockedError now maps to the
  navigation-blocked message; endpoint-blocked errors are handled by
  the existing BrowserError branch and keep the endpoint-blocked
  message.
- Update tests that exercised the endpoint path to assert the new
  error class instead of the raw SSRF message.

* fix(browser): move SSRF check after cache hit and thread ssrfPolicy through tryTerminateExecutionViaCdp

- connectBrowser: move assertCdpEndpointAllowed after cache lookup so
  transient DNS failures don't break active cached sessions.
- tryTerminateExecutionViaCdp: accept ssrfPolicy and run
  assertCdpEndpointAllowed before HTTP/WS I/O so the terminate path
  doesn't bypass SSRF policy enforcement.
- forceDisconnectPlaywrightForTarget: thread ssrfPolicy through to
  tryTerminateExecutionViaCdp.

* fix(browser): drop redundant pre-Playwright SSRF checks so cached sessions survive DNS blips

Remove assertProfileCdpEndpointAllowed() calls that precede
Playwright-backed tab operations (listPagesViaPlaywright,
focusPageByTargetIdViaPlaywright, closePageByTargetIdViaPlaywright)
since connectBrowser already runs the check on cache miss.

Keep the checks before raw CDP HTTP calls (fetchJson/fetchOk for
/json/list, /json/activate, /json/close) where there is no
connection cache.

Add comment on fetchCdpChecked explaining why redirect blocking
covers all CDP HTTP paths, not just probes.
2026-04-10 10:03:16 -06:00
evandance
4fb393980c feat(feishu): standardize request UA and register bot as AI agent (#63835)
- Set User-Agent to openclaw-feishu-builtin/{version}/{platform} for all
  Feishu API requests to comply with OAPI best practices
- Switch health-check probe to POST /bot/v1/openclaw_bot/ping to register
  the app as an AI agent (智能体) on the Feishu platform
- Update probe response parsing for new pingBotInfo response shape
2026-04-10 22:57:38 +08:00
Nimrod Gutman
4b4ec4dbc2 fix(feishu): route /btw through out-of-band lanes (#64324)
* fix(feishu): route /btw through out-of-band lanes

* fix(feishu): bound btw out-of-band lanes

* fix: route feishu btw out-of-band (#64324) (thanks @ngutman)
2026-04-10 17:48:15 +03:00
Peter Steinberger
f621fb4aba refactor: centralize speech voice-note channel routing 2026-04-10 15:01:19 +01:00
Peter Steinberger
07e7222e28 test: split Claude CLI QA auth modes 2026-04-10 14:56:36 +01:00
Peter Steinberger
ddfd6c3401 fix: guard QA lab gateway health fetch (#64242) 2026-04-10 14:56:12 +01:00
Peter Steinberger
beaff3c553 fix: clarify plugin command alias diagnostics (#64242) (thanks @feiskyer) 2026-04-10 14:56:12 +01:00
Alvin
65ef70b070 feat(matrix): add MSC4357 live streaming markers to draft-stream edits (#63513)
Merged via squash.

Prepared head SHA: 87a866a238
Co-authored-by: TigerInYourDream <48358093+TigerInYourDream@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-04-10 09:47:43 -04:00
liuhuaize
271d3b3bdb speech-core: fix TTS regression test typing 2026-04-10 14:37:25 +01:00
liuhuaize
b3d7fd166a speech-core: route Discord auto TTS as voice notes 2026-04-10 14:37:25 +01:00
Peter Steinberger
6286810388 test: add Claude CLI provider QA scenario 2026-04-10 14:23:19 +01:00
Hana Chang
8c876e311f test(discord): prefer claude-sonnet-4-6 in thread-title fixture
Follow repo testing guideline to prefer sonnet-4.6 for Anthropic model
constants in tests (per CLAUDE.md, flagged by Greptile review on #64172).
2026-04-10 14:07:22 +01:00
Hana Chang
537479f5b0 fix(discord): raise thread title max tokens for reasoning models
When the simple-completion model selected for thread-title generation is a
reasoning model (e.g. MiniMax M2, Claude thinking models, OpenAI o-series),
the 24-token output budget is entirely consumed by the internal thinking
block before any user-visible text is emitted. extractAssistantText then
returns an empty string, generateThreadTitle returns null, and the
auto-thread rename is silently skipped while the feature appears to do
nothing.

Raise DISCORD_THREAD_TITLE_MAX_TOKENS to 512 so there is enough headroom
for a short thinking pass plus the 3-6 word title output. The generous
ceiling only matters when the provider actually reasons; non-reasoning
models still emit a short title and stop early at end-of-sequence.

Verified live against a MiniMax M2 reasoning model served through an
Anthropic-compatible API endpoint: before the fix, the rename never fired;
after the fix, the thread is renamed with a concise generated title.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 14:07:22 +01:00
Peter Steinberger
3027efaf21 test: raise QA suite default concurrency 2026-04-10 13:45:57 +01:00
Peter Steinberger
4c14f55c62 test: parallelize QA suite scenarios 2026-04-10 13:45:57 +01:00
Peter Steinberger
9f864c9ade fix: guard browser control fetches 2026-04-10 12:46:26 +01:00
Peter Steinberger
9248a44fc1 fix: restore rebased type gates 2026-04-10 12:24:50 +01:00
Peter Steinberger
7c7a63eab4 test(nostr): type mock profile response 2026-04-10 12:20:04 +01:00
Peter Steinberger
644105bea6 fix: restore latest main typecheck 2026-04-10 12:20:04 +01:00
Peter Steinberger
8e242622e1 fix: stabilize rebased test gates 2026-04-10 12:14:36 +01:00
Peter Steinberger
444cdd055d fix: stabilize main test gates 2026-04-10 12:14:36 +01:00
Peter Steinberger
ef1694575d fix: restore main type gates 2026-04-10 12:14:36 +01:00
Pavan Kumar Gondhi
6517c700de fix(nostr): require operator.admin scope for profile mutation routes [AI] (#63553)
* fix: address issue

* fix: address review feedback

* fix: address review feedback

* fix: finalize issue changes

* fix: address PR review feedback

* fix: address review-pr skill feedback

* fix: address PR review feedback

* fix: address review-pr skill feedback

* fix: address PR review feedback

* fix: address PR review feedback

* fix: address PR review feedback

* fix: address PR review feedback

* docs: add changelog entry for PR merge
2026-04-10 16:38:41 +05:30
Vincent Koc
0e54440ecc fix(cycles): remove browser cli and tlon runtime seams 2026-04-10 11:45:28 +01:00
Vincent Koc
dbe2a97e80 fix(cycles): remove qa-lab and ui runtime seams 2026-04-10 11:45:27 +01:00
Peter Steinberger
10b26ed2ec test: restore full gate stability 2026-04-10 11:36:41 +01:00
Mariano
46f8c4dfd5 fix(memory-core): harden request-scoped dreaming fallback (#64156)
* memory-core: harden request-scoped dreaming fallback

* memory-core: tighten request-scoped fallback classification
2026-04-10 12:11:57 +02:00
Peter Steinberger
f8dbd7dd69 test: align qqbot account speech config expectation 2026-04-10 10:45:11 +01:00
Peter Steinberger
6c82a91d3d refactor: tighten device pairing approval types 2026-04-10 10:22:00 +01:00
Peter Steinberger
edf4ec81c4 fix(imessage): remove duplicate runtime type import 2026-04-10 10:12:07 +01:00
Peter Steinberger
feb3c7f823 fix(test): repair rebased gate failures 2026-04-10 10:12:07 +01:00
Peter Steinberger
8763614d1e test: cover bundled plugin skill runtime 2026-04-10 10:11:35 +01:00
Peter Steinberger
68b4b36a90 test: harden qa eval scenarios 2026-04-10 10:11:35 +01:00
Mingkuan
005b629b6d fix(qqbot): allow extension fields in channel config schema (#64075)
* fix(qqbot): allow extension fields in channel config schema

Use passthrough() on QQBotConfigSchema, QQBotAccountSchema, and
QQBotStreamingSchema so third-party builds that share the qqbot
channel id can add custom fields without triggering
"must NOT have additional properties" validation errors.

tts and stt sub-schemas remain strict to preserve typo detection
for those sensitive fields.

* Update extensions/qqbot/openclaw.plugin.json

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* chore(qqbot): update changelog for config schema passthrough

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-04-10 17:01:00 +08:00
Vincent Koc
3b6500ca20 fix(telegram): bypass bot handlers barrel 2026-04-10 10:00:24 +01:00
Vincent Koc
ae4fdaea82 fix(telegram): split monitor runtime types 2026-04-10 10:00:24 +01:00
Vincent Koc
ad8207c9d5 fix(protocol): regenerate agent models 2026-04-10 09:57:50 +01:00