Commit Graph

25051 Commits

Author SHA1 Message Date
Vincent Koc
7fd7f6f355 fix(gateway): mark chat slash commands as text 2026-05-06 03:24:59 -07:00
Vincent Koc
e4b629c6d3 test(gateway): deliver codex bind commands 2026-05-06 03:24:59 -07:00
Vincent Koc
a2f1d1dfd8 fix(reply): keep text command replies visible 2026-05-06 03:24:59 -07:00
Vincent Koc
5e218b402f test(gateway): capture codex bind outbound replies 2026-05-06 03:24:58 -07:00
Vincent Koc
53423a2a7f test(gateway): disable heartbeat in codex bind live 2026-05-06 03:24:58 -07:00
Vincent Koc
2dc8748b59 test(gateway): accept compact codex status 2026-05-06 03:24:58 -07:00
Vincent Koc
87f3501b91 test(docker): skip external auth sync in filtered gateway live 2026-05-06 03:24:58 -07:00
Vincent Koc
c686eda8f8 test(docker): bound live gateway setup 2026-05-06 03:24:57 -07:00
Vincent Koc
ff09f8022d test(docker): scope live gateway discovery 2026-05-06 03:24:57 -07:00
Vincent Koc
8a47c79826 test(docker): preserve live gateway heap 2026-05-06 03:24:57 -07:00
Vincent Koc
64ab50e42b fix(update): preserve plugin warning context 2026-05-06 03:24:56 -07:00
Peter Steinberger
1d3efb7e9e test(perf): trim focused runtime contract imports 2026-05-06 11:23:49 +01:00
Mason Huang
cbba122cdd test(update-cli): cleanup temp dirs after each case (#78408) 2026-05-06 18:20:47 +08:00
Alex Knight
1c2915677b fix: recognize custom compaction conversation (#78390)
* fix: recognize custom compaction conversation

* fix: use branch fallback for compaction safeguard

---------

Co-authored-by: Alex Knight <15041791+amknight@users.noreply.github.com>
2026-05-06 20:13:31 +10:00
Vincent Koc
16321a27b6 fix(talk): add bounded lifecycle logging 2026-05-06 03:02:02 -07:00
Alex Knight
fa445003b5 fix(acp): preserve streamed progress chunks (#78383)
Co-authored-by: Alex Knight <15041791+amknight@users.noreply.github.com>
2026-05-06 20:00:34 +10:00
Vincent Koc
5d557171b3 fix(plugins): apply npm overrides to managed roots (#78386) 2026-05-06 02:47:25 -07:00
Peter Steinberger
ceaa56fb12 fix(release): stabilize final validation checks 2026-05-06 10:45:29 +01:00
Chunyue Wang
34b67c3f25 fix(web_search): skip redundant provider re-resolution for external Brave plugin
Guards the secondary resolveProviders call with `!allProviders.some(p => p.id === rawProvider)` so it only fires when the first pass genuinely missed the configured provider. Eliminates the spurious `WEB_SEARCH_PROVIDER_INVALID_AUTODETECT` warning and incorrect `providerSource: "none"` for external Brave plugin installs. Fixes #77676.
2026-05-06 17:45:20 +08:00
Conan-Scott
e437763246 fix(agents): deliver agent TTS audio when block streaming is off (#78355)
Summary:
- The branch changes non-streaming block reply delivery to direct-send all media-bearing block replies, updates reply-delivery/media-path regression tests, and adds a changelog entry.
- Reproducibility: yes. Current main's predicate and unit test show captioned media-bearing block replies are  ... sent when block streaming is disabled, and the PR body adds real Telegram after-fix proof for the TTS path.

Automerge notes:
- PR branch already contained follow-up commit before automerge: test(agents): align direct media block delivery coverage

Validation:
- ClawSweeper review passed for head e9bb1314fe.
- Required merge gates passed before the squash merge.

Prepared head SHA: e9bb1314fe
Review: https://github.com/openclaw/openclaw/pull/78355#issuecomment-4386200162

Co-authored-by: Clawdbot <clawdbot@apilab.us>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-05-06 09:37:22 +00:00
Peter Steinberger
ffafa9008d test(agents): avoid provider runtime in fallback tests 2026-05-06 10:21:34 +01:00
Peter Steinberger
a24d5fe790 perf(config): avoid duplicate plugin auto-enable channel probes 2026-05-06 10:17:31 +01:00
Vincent Koc
e2501b2d6d fix(diagnostics): export Talk metrics after SDK refactor
Adds bounded Talk lifecycle/audio diagnostics and session recovery metrics for OTEL, Prometheus, and stability snapshots after the Talk SDK/session refactor. Includes changelog/docs updates and Testbox/live proof.
2026-05-06 02:01:52 -07:00
Alex Knight
d9ffc1aa63 fix cron run binding route (#78373)
Co-authored-by: Alex Knight <15041791+amknight@users.noreply.github.com>
2026-05-06 18:57:32 +10:00
Peter Steinberger
5cf55ed3f1 fix(openai): suppress stale Codex OAuth models 2026-05-06 09:38:07 +01:00
JC
85ded4d444 pdf: add Codex instructions for extraction fallback (#51329)
* Fix Codex PDF extraction fallback missing instructions

- add a Codex-specific systemPrompt on the PDF extraction fallback path
- keep non-Codex PDF fallback requests unchanged
- add regression coverage proving openai-codex-responses requests include instructions for PDF tool calls

* test: cover Codex text-only extraction fallback

- add regression coverage for the branch where PDF extraction includes images
  but the selected Codex model only accepts text input
- assert Codex-specific extraction instructions are still attached in that path

* test: fix extracted image mock shape

- add the required `type: "image"` field to the text-only fallback regression mock
- keep the new Codex coverage test aligned with PdfExtractedImage

* test: align Codex PDF fallback tests

* docs(changelog): note PDF Codex fallback fix

---------

Co-authored-by: Dr JCai <jingxiao.cai@gmail.com>
Co-authored-by: anyech <8743351+anyech@users.noreply.github.com>
2026-05-06 09:34:42 +01:00
Peter Steinberger
ce8b0da9a2 test: slim secret runtime coverage 2026-05-06 09:33:28 +01:00
Alex Knight
ff655cb346 fix: preserve subagent task overrides (#78356)
Co-authored-by: Alex Knight <15041791+amknight@users.noreply.github.com>
2026-05-06 18:31:01 +10:00
Vincent Koc
0ddbf2e258 fix(plugins): keep managed npm mutations in legacy peer mode 2026-05-06 01:29:52 -07:00
Edionwheels
b902d86318 fix(cli): pass instructions for local openai-codex model probes (#76470)
* fix infer model run codex instructions

* docs changelog for codex model probe fix

* fix codex model probe instructions only

* docs: note codex model probe instruction shim

* chore: rerun proof gate

---------

Co-authored-by: Le LI <leli@LedeMacBook-Air.local>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-06 09:24:56 +01:00
Peter Steinberger
2eaf8ad712 feat(plugins): support npm pack installs 2026-05-06 09:16:49 +01:00
Peter Steinberger
54e23b6d11 test: satisfy lint in optimized tests 2026-05-06 09:12:55 +01:00
Peter Steinberger
3fb1abcdcb test: isolate directory contract fixtures 2026-05-06 09:12:55 +01:00
Sliverp
329580c64d fix(onboard): recover externalized channel plugin from stale config (#78328)
When a user's config has a stale `channels.<id>` entry (e.g. `appId`
or tokens left over from an earlier install) and the plugin is no
longer on disk -- for instance because the externalized npm package
was uninstalled or pruned during an upgrade -- `handleChannelChoice`
used to dead-end with "<channel> plugin not available." and leave
onboard stuck until the user manually deleted the config entry and
re-ran the CLI.

Two discovery paths are affected:

1. The `installedCatalogEntry` branch: when
   `loadScopedChannelPlugin` returns null but the catalog entry still
   carries `install.npmSpec`, fall back to
   `ensureChannelSetupPluginInstalled` with the same entry so onboard
   can reinstall the plugin from the official catalog.

2. The bundled-enable `else` branch: with a non-empty
   `channels.<id>` record, `isStaticallyChannelConfigured` drops the
   channel from `installableCatalogEntries`; if the plugin is also
   missing on disk (so it never enters `manifestInstalledIds`), both
   discovery buckets come back empty and the channel falls through to
   `enableBundledPluginForSetup`. Before delegating to that bundled
   path, consult the trusted catalog via
   `getTrustedChannelPluginCatalogEntry` and, if an `install.npmSpec`
   is available, drive the same catalog install flow used by a fresh
   pick of the channel.

Both new fallbacks re-apply the `resolveConfigDisabledHint` guard
that `enableBundledPluginForSetup` has always enforced, so an
operator-disabled channel (`plugins.entries.<id>.enabled === false`
or explicit `channels.<id>.enabled === false`) with a stale config
entry cannot be silently reinstalled or re-enabled through the
catalog path.

Both branches also keep their previous behavior when no catalog npm
spec is available (e.g. purely bundled channels), so this change is
a superset of the old flow rather than a replacement.

Affects all externalized channel plugins listed in the core
package's `files` exclusion (qqbot, bluebubbles, discord, whatsapp,
line, msteams, feishu, googlechat, nostr, zalo, zalouser,
synology-chat, tlon, twitch, and similar).
2026-05-06 15:55:16 +08:00
Edionwheels
58f81b0e04 fix(codex): honor OAuth contextTokens in native harness
Fixes #77858.

Co-authored-by: Edionwheels <267595845+lilesjtu@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-06 08:54:52 +01:00
Peter Steinberger
3915089a25 test: cache provider contract entries 2026-05-06 08:51:25 +01:00
Peter Steinberger
5969ac8ccf test: parallelize plugin package scan 2026-05-06 08:38:58 +01:00
Peter Steinberger
c5fcfa1b56 test: remove reload deferral wait 2026-05-06 08:34:17 +01:00
Ayaan Zaidi
6be5422fd6 fix(gateway): avoid plugin model resolution in session lists 2026-05-06 13:03:54 +05:30
Forge
ef517e1a54 Preserve session list model normalization 2026-05-06 13:03:54 +05:30
Forge
948375f494 Optimize session list model row resolution 2026-05-06 13:03:54 +05:30
Forge
8bfec5b9ac fix(sessions): fast-path qualified row model refs 2026-05-06 13:03:54 +05:30
Peter Steinberger
e59890eff0 test: speed up gateway cron history case 2026-05-06 08:31:28 +01:00
keshavbotagent
3f210b10ce fix: show Codex tool progress in channel drafts (#77949)
Summary:
- Normalize Codex app-server dynamic and native tool activity into channel-visible tool progress.
- Keep Telegram message-tool-only progress drafts visible without duplicate dynamic item/tool lines.
- Preserve suppressed item progress while avoiding duplicate tool callbacks.

Verification:
- OPENCLAW_VITEST_MAX_WORKERS=1 pnpm test extensions/codex/src/app-server/event-projector.test.ts extensions/codex/src/app-server/run-attempt.test.ts extensions/telegram/src/bot-message-dispatch.test.ts src/auto-reply/reply/agent-runner-execution.test.ts src/auto-reply/reply/dispatch-from-config.test.ts --pool=forks --maxWorkers=1
- pnpm tsgo:extensions:test
- pnpm exec oxfmt --check --threads=1 CHANGELOG.md extensions/codex/src/app-server/event-projector.ts extensions/codex/src/app-server/event-projector.test.ts extensions/codex/src/app-server/run-attempt.ts extensions/codex/src/app-server/run-attempt.test.ts extensions/codex/src/app-server/tool-progress-normalization.ts extensions/telegram/src/bot-message-dispatch.ts extensions/telegram/src/bot-message-dispatch.test.ts src/auto-reply/get-reply-options.types.ts src/auto-reply/reply/agent-runner-execution.ts src/auto-reply/reply/agent-runner-execution.test.ts src/auto-reply/reply/dispatch-from-config.ts src/auto-reply/reply/dispatch-from-config.test.ts src/infra/agent-events.ts
- pnpm lint:extensions
- pnpm build
- CI on 6ff6a1f868: 88 success, 20 skipped, 1 neutral, no failures or pending checks

Fixes #75641.
2026-05-06 08:18:20 +01:00
Peter Steinberger
900e416688 test: avoid deepseek loader cold path 2026-05-06 08:17:44 +01:00
Peter Steinberger
95fd321b68 test: mock web provider fast-path artifacts 2026-05-06 08:08:48 +01:00
Shakker
d46859d886 fix: reuse plugin snapshot for agent metadata 2026-05-06 07:55:27 +01:00
Shakker
fe393e4427 fix: reuse plugin snapshot for read-only channels 2026-05-06 07:55:27 +01:00
Shakker
df209586bd fix: reuse plugin snapshot for auto enable 2026-05-06 07:55:27 +01:00
Shakker
5655c2b066 fix: pass current snapshot to embedded runs 2026-05-06 07:55:27 +01:00