Commit Graph

38406 Commits

Author SHA1 Message Date
Hemant Sudarshan
eb7d89f4b9 fix(status): honor channel model context windows 2026-04-29 19:58:21 +01:00
Peter Steinberger
57e4994caf ci: speed up release validation 2026-04-29 19:55:37 +01:00
clawsweeper[bot]
fc2d957923 test(infra): assert dotenv logger warning sink
Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
2026-04-29 19:55:18 +01:00
Shakker
e69da9d578 fix: honor config timeline diagnostics 2026-04-29 19:53:55 +01:00
Shakker
d001c3436b fix: gate diagnostics timeline by flag 2026-04-29 19:53:55 +01:00
Shakker
097eed8cd8 feat: emit diagnostics timeline 2026-04-29 19:53:55 +01:00
Hemant Sudarshan
db6951088a fix(telegram): keep unreachable polling sockets non-fatal
* Runtime: suppress transient network uncaught exceptions

* fix(telegram): keep unreachable polling sockets non-fatal

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-04-29 19:53:43 +01:00
Simone
dabf76b3de fix(device-pair): validate public setup urls (#74538)
* fix(device-pair): validate public setup urls

* test(cli): cover invalid qr override urls

---------

Co-authored-by: Lucenx9 <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-04-29 19:47:35 +01:00
Peter Steinberger
c728d604b2 fix: harden parallels smoke harness 2026-04-29 19:44:50 +01:00
Natalie K
86956f71e6 fix(matrix): close owner-side device verification loop on SAS confirm (#74542)
* fix(matrix): close owner-side device verification loop on SAS confirm

After SAS confirm via the `openclaw matrix verify confirm-sas` CLI, the
operator's Element X stayed in "Verifying…" because three things on the
bot side did not happen before the verb returned:

1. confirmVerificationSas didn't await the rust-crypto verifier promise.
   `Verifier.verify()` resolves only after both sides exchange MACs and
   the protocol fully settles, including cross-signing-key uploads
   triggered by `crossSignDevice`. Returning early meant Element X's
   next /keys/query saw an inconsistent state and the prompt persisted.

2. The 30s auto-confirm path (used when the operator initiates from
   their phone) explicitly passed `{ trustOwnDevice: false }`, so the
   bot never cross-signed its own device on this path. The check inside
   trustOwnDeviceAfterConfirmedSas already gates on isSelfVerification,
   so flipping the flag is safe — non-self requests remain a no-op.

3. The standalone `confirmMatrixVerificationSas` action did not call
   `trustOwnIdentityAfterSelfVerification` (only the higher-level
   `runMatrixSelfVerification` path did). Without that call, the bot
   had not signed the operator's master key, so Element X had no path
   to clear the prompt without a passive sync tick.

Three additive edits:

- verification-manager.ts (confirmVerificationSas): await
  session.verifyPromise after confirmSasForSession returns.
  verifyPromise is the .then().catch() chain set by
  ensureVerificationStarted, which already routes rejections into
  session.error, so awaiting it cannot double-throw.
- verification-manager.ts (maybeAutoConfirmSas): pass
  { trustOwnDevice: true } so the auto-confirm path also cross-signs
  the bot device for self-verifications.
- actions/verification.ts (confirmMatrixVerificationSas): mirror the
  trustOwnIdentityAfterSelfVerification call from
  completeMatrixSelfVerification when the returned summary indicates
  isSelfVerification.

Tests:
- verification-manager.test.ts: flipped the existing "auto-confirmed
  self-verification" assertion (now expects trustOwnDeviceAfterSas to
  be called); added two new tests for verifyPromise await and
  rejection-on-summary.error.
- actions/verification.test.ts: two new tests asserting
  confirmMatrixVerificationSas calls trustOwnIdentityAfterSelfVerification
  on self-verifications and not on remote verifications.

Verified end-to-end against matrix.thepolycule.ca (Synapse 1.145.0+ess.1,
MAS-fronted): after `verify confirm-sas`, Element X's device-list view
shows the bot device with a green shield and no pending Verify prompt.

* fix(matrix): guard owner trust after failed SAS verification

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-04-29 19:42:45 +01:00
Peter Steinberger
072e73d7c3 fix(codex): release quiet app-server turns 2026-04-29 19:42:02 +01:00
Hemant Sudarshan
fbae2a6441 Fix gateway timeout embedded fallback session lock (#74543)
* Agent: isolate gateway timeout fallback sessions

* fix(cli): isolate gateway timeout fallback sessions

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-04-29 19:38:11 +01:00
Peter Steinberger
89f871679e fix(ollama): normalize prefixed tool calls 2026-04-29 19:28:53 +01:00
Blasius Patrick
f5aebe42e1 fix(security): resolve model aliases before audit classification (#74532)
* fix(security): resolve model aliases before audit classification

Before classification, model strings are now resolved through the alias
index so that configured aliases (e.g. 'gpt-prev') are translated to
their canonical provider/key form (e.g. 'openai/gpt-5.4') before hygene
and tier checks run.

Fixes #74455.

Signed-off-by: Blasius Patrick <blasius.patrick@gmail.com>

* fix(security): share audit model alias resolution

---------

Signed-off-by: Blasius Patrick <blasius.patrick@gmail.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-04-29 19:26:02 +01:00
Val Alexander
b1c515270e fix(control-ui): keep mobile chat settings in Lit state
Move the mobile chat settings dropdown open state into Lit-owned app state.

- Render the dropdown open class and ARIA disclosure attributes from state.
- Add Escape, outside pointer, tab-change cleanup, and focus restoration.
- Cover closed/open render state and mounted app dismissal flows with browser tests.

Validation:
- pnpm test ui/src/ui/app-render.helpers.browser.test.ts ui/src/ui/navigation.browser.test.ts
- pnpm exec oxfmt --check --threads=1 ui/src/ui/app.ts ui/src/ui/app-view-state.ts ui/src/ui/app-render.helpers.ts ui/src/ui/app-render.helpers.browser.test.ts ui/src/ui/navigation.browser.test.ts
- node scripts/run-oxlint.mjs --tsconfig tsconfig.oxlint.core.json ui/src/ui/app.ts ui/src/ui/app-view-state.ts ui/src/ui/app-render.helpers.ts ui/src/ui/app-render.helpers.browser.test.ts ui/src/ui/navigation.browser.test.ts
2026-04-29 13:25:41 -05:00
Peter Steinberger
68912111cf fix(slack): avoid generic inline button prompt hint 2026-04-29 19:15:49 +01:00
Peter Steinberger
4bc79f9737 test: relax live web search timeouts 2026-04-29 19:14:15 +01:00
Vincent Koc
39ecedb300 test(gateway): complete reload model config fixture 2026-04-29 11:09:38 -07:00
Peter Steinberger
7e1acf2f1e refactor(discord): split threading and voice segment helpers 2026-04-29 19:09:17 +01:00
Peter Steinberger
6470a23504 fix(slack): ignore duplicate reaction adds 2026-04-29 19:07:08 +01:00
Vincent Koc
b54c642bd6 test(infra): assert dotenv structured warning 2026-04-29 11:04:45 -07:00
Vincent Koc
edf579c406 test(gateway): align reload model visibility fixture 2026-04-29 11:04:45 -07:00
Peter Steinberger
db665a09cd fix(slack): expose fileId in message tool schema 2026-04-29 19:02:30 +01:00
Peter Steinberger
43b084e5fa refactor(discord): split message and binding helpers 2026-04-29 19:00:44 +01:00
Peter Steinberger
efefba2db1 refactor(plugins): split bundled runtime deps jiti aliases 2026-04-29 18:57:05 +01:00
github-actions[bot]
2a7d83b6ad chore(ui): refresh fa control ui locale 2026-04-29 17:45:55 +00:00
github-actions[bot]
6e5a703dd2 chore(ui): refresh vi control ui locale 2026-04-29 17:42:18 +00:00
github-actions[bot]
14118d4bc1 chore(ui): refresh nl control ui locale 2026-04-29 17:42:10 +00:00
github-actions[bot]
b10dd5f3ae chore(ui): refresh ar control ui locale 2026-04-29 17:40:48 +00:00
Vincent Koc
139815d6a9 test(i18n): align locale registry expectations 2026-04-29 10:40:07 -07:00
github-actions[bot]
a7414f728b chore(ui): refresh it control ui locale 2026-04-29 17:39:54 +00:00
Vincent Koc
0126692bf5 fix(docs): allow Thai navigation locale 2026-04-29 10:39:43 -07:00
github-actions[bot]
b0d649b4cb chore(ui): refresh th control ui locale 2026-04-29 17:38:50 +00:00
github-actions[bot]
5ca401f974 chore(ui): refresh pl control ui locale 2026-04-29 17:38:31 +00:00
github-actions[bot]
6ba66c8a8d chore(ui): refresh id control ui locale 2026-04-29 17:38:01 +00:00
github-actions[bot]
58405c70cd chore(ui): refresh uk control ui locale 2026-04-29 17:37:10 +00:00
github-actions[bot]
6ef98f48aa chore(ui): refresh tr control ui locale 2026-04-29 17:37:00 +00:00
github-actions[bot]
0b79e4a223 chore(ui): refresh es control ui locale 2026-04-29 17:36:12 +00:00
github-actions[bot]
7e20f368dd chore(ui): refresh fr control ui locale 2026-04-29 17:36:10 +00:00
github-actions[bot]
35293d3eb2 chore(ui): refresh ja-JP control ui locale 2026-04-29 17:36:07 +00:00
github-actions[bot]
e6acc74db6 chore(ui): refresh ko control ui locale 2026-04-29 17:36:04 +00:00
github-actions[bot]
bfdd255b92 chore(ui): refresh zh-CN control ui locale 2026-04-29 17:35:14 +00:00
github-actions[bot]
5ed819af7b chore(ui): refresh zh-TW control ui locale 2026-04-29 17:35:09 +00:00
github-actions[bot]
44ff41aa77 chore(ui): refresh de control ui locale 2026-04-29 17:35:05 +00:00
github-actions[bot]
542606bea7 chore(ui): refresh pt-BR control ui locale 2026-04-29 17:35:03 +00:00
Vincent Koc
297f4c6e60 feat(i18n): align docs and ui locales 2026-04-29 10:25:47 -07:00
Shakker
c85ff84334 test: type model picker env auth mock 2026-04-29 18:23:40 +01:00
Shakker
fba8af4d62 test: align model picker auth mock 2026-04-29 18:23:40 +01:00
Shakker
587ce45ec9 fix: preserve google vertex adc auth fallback 2026-04-29 18:23:40 +01:00
Shakker
1df1ee48c0 fix: keep model list synthetic auth refs exact 2026-04-29 18:23:39 +01:00