Commit Graph

38419 Commits

Author SHA1 Message Date
github-actions[bot]
da0e96dbbb chore(ui): refresh pt-BR control ui locale 2026-04-29 19:24:27 +00:00
Peter Steinberger
d2e55b01f2 perf(tests): speed up channel plugin id tests 2026-04-29 20:24:12 +01:00
Peter Steinberger
4aedffd37a refactor(plugins): split loader runtime helpers (#74545)
* refactor(plugins): split loader runtime helpers

* test(scripts): include discord api barrel lane

* test(ci): align built artifact guard expectations

* fix(plugins): avoid redundant cache key assertion
2026-04-29 19:22:41 +00:00
openclaw-clownfish[bot]
648ed69f82 fix(control-ui): repair zh-CN localization coverage
Route remaining Control UI agent, debug, channel refresh, and exec approval copy through the locale source of truth.

Preserve the English Cron Jobs tab label, keep the security audit command monospace, and regenerate locale metadata against current main.

Verified locally:
- pnpm test ui/src/ui/views/agents.test.ts ui/src/ui/views/debug.test.ts ui/src/ui/views/exec-approval.test.ts
- pnpm ui:i18n:check
- pnpm exec oxfmt --check --threads=1 ui/src/i18n/locales/en.ts ui/src/i18n/locales/zh-CN.ts ui/src/ui/views/agents-panels-status-files.ts ui/src/ui/views/agents.ts ui/src/ui/views/agents.test.ts ui/src/ui/views/debug.ts ui/src/ui/views/debug.test.ts ui/src/ui/views/exec-approval.ts ui/src/ui/views/exec-approval.test.ts
- git diff --check origin/main...HEAD
2026-04-29 14:22:36 -05:00
Peter Steinberger
3059702687 feat(memory-wiki): add agent-facing people wiki metadata 2026-04-29 20:17:37 +01:00
Vyctor Huggo Przozwski da Silva
ccb8472daf fix(agents): preserve seeded Anthropic text blocks
* fix(agents): preserve seeded Anthropic text blocks

* docs(changelog): note Anthropic seeded block fix

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-04-29 20:16:52 +01:00
辉哥
4eb30fc13a fix(media): surface vision pipeline diagnostics
* fix: improve error message in optimizeImageToJpeg to include actual error details

* fix: improve error message to include configured input for Model does not support images

* fix(media): surface vision pipeline diagnostics

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-04-29 20:13:19 +01:00
Peter Steinberger
945c910f20 test: remove redundant migration runtime assertion 2026-04-29 20:09:50 +01:00
Vincent Koc
26c03c761f test(ci): align CI guard expectations 2026-04-29 12:09:09 -07:00
Vyctor Huggo Przozwski da Silva
06b1d4e0f7 fix(agents): avoid empty Codex Responses input 2026-04-29 20:08:49 +01:00
Peter Steinberger
4b4e0c82e4 perf(tests): avoid channel plugin imports in system prompt 2026-04-29 20:06:07 +01:00
Peter Steinberger
b0ae867034 refactor(migration): share cached config runtime helper 2026-04-29 20:05:23 +01:00
Vyctor Huggo Przozwski da Silva
97e2f5b332 fix(auto-reply): honor direct silent empty replies
* fix(auto-reply): allow direct silent empty replies

* fix(auto-reply): guard direct silent empty replies
2026-04-29 20:02:38 +01:00
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