Commit Graph

40441 Commits

Author SHA1 Message Date
Vincent Koc
f9a1f86e64 test(secrets): audit external channel SecretRefs (#76589) 2026-05-03 02:17:41 -07:00
Vincent Koc
3338581c20 fix(onboarding): prefer clawhub diagnostics installs 2026-05-03 02:15:51 -07:00
buyitsydney
aba97a4c7c fix(memory): reindex archived session transcript updates 2026-05-03 02:15:20 -07:00
Vincent Koc
478887083e test(plugins): decouple config-gated install fixture 2026-05-03 02:14:42 -07:00
Vincent Koc
31e2276fe9 fix(memory): load unconfigured lancedb metadata 2026-05-03 01:57:36 -07:00
Vincent Koc
5ecd01ff94 fix(plugins): trust managed npm peer links 2026-05-03 01:49:24 -07:00
Vincent Koc
9ef35ea5c7 fix(plugin-sdk): classify channel facades 2026-05-03 01:48:53 -07:00
solodmd
d1365fef16 fix: handle ENOSPC file watcher errors gracefully (#73357)
Merged via squash.

Prepared head SHA: ce2dd6ed3e
Co-authored-by: solodmd <51304754+solodmd@users.noreply.github.com>
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com>
Reviewed-by: @altaywtf
2026-05-03 11:42:38 +03:00
Vincent Koc
4781b46056 fix(channels): load third-party official channel packages 2026-05-03 01:30:43 -07:00
Vincent Koc
8af6add03b test(ci): update plugin registry fixture assertion 2026-05-03 01:23:00 -07:00
Vincent Koc
84cb9108ec docs(changelog): move @amknight Teams and Matrix restart fixes to Unreleased
Both #75585 (msteams sent-message marker persistence) and #75586 (matrix
approval reaction target persistence) landed on main 2026-05-03 but
appended their changelog entries under `## 2026.4.30`, which was
finalized on 2026-05-01. Move them under `## Unreleased ### Fixes` so
the released section stays frozen and the new fixes are credited in the
right release window. Thanks @amknight.
2026-05-03 01:22:28 -07:00
Vincent Koc
ea45950a9d test(plugins): add lifecycle matrix coverage
Add plugin lifecycle matrix Docker E2E coverage, resource metrics, fixture registry version support, and gauntlet handling for bundled plugin ids / required config.
2026-05-03 01:18:31 -07:00
buyitsydney
2ffdb5d248 fix(memory): keep archive transcript visibility safe
Keep reset/deleted session archives searchable while preserving visibility filtering, and keep internal cron-run archives opaque when live ownership metadata is gone.\n\nRefs #56131.\nThanks @buyitsydney.
2026-05-03 01:17:45 -07:00
Vincent Koc
d583662fd9 test(tooling): isolate a2ui copy env 2026-05-03 01:07:58 -07:00
Vincent Koc
d89be34360 fix(onboarding): trust official web search installs 2026-05-03 00:48:37 -07:00
Neerav Makwana
b6cbd9225c fix(cli): load memory plugin for doctor/status when registry is cold (#76393)
Summary:
- The PR adds a scoped standalone memory-slot plugin load for doctor/status memory resolution, updates memory-runtime regression tests, and adds a changelog fix entry.
- Reproducibility: yes. source-reproducible: current main's doctor/status path reads getMemoryRuntime after on ...  registers that runtime only during plugin activation. I did not run a live macOS LaunchAgent reproduction.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(cli): load memory plugin for doctor/status when registry is cold

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

Prepared head SHA: a6a1967316
Review: https://github.com/openclaw/openclaw/pull/76393#issuecomment-4365255585

Co-authored-by: Neerav Makwana <261249544+neeravmakwana@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
2026-05-03 07:38:55 +00:00
Vincent Koc
39bc94e4dd fix(onboarding): trust official optional plugin installs 2026-05-03 00:29:04 -07:00
Alex Knight
6ae09d029c msteams: persist sent-message markers best-effort (#75585)
* msteams: persist sent-message markers best-effort

* docs: clarify Teams restart persistence changelog

* msteams: remove redundant sent-message TTL comment

* msteams: preserve sent-message marker TTL on recovery
2026-05-03 17:25:20 +10:00
Vincent Koc
882ddc4665 fix(gateway): keep agent image attachment checks accurate 2026-05-03 00:21:04 -07:00
Vincent Koc
74f243a0d0 fix(cli): keep plugin toggles out of channel config (#76525) 2026-05-03 00:19:37 -07:00
Alex Knight
f27ecffc0c matrix: persist approval reaction targets best-effort (#75586)
* matrix: persist approval reaction targets best-effort

* docs: refine matrix approval changelog
2026-05-03 17:17:01 +10:00
Vincent Koc
b74401074b fix(gateway): keep models list read-only fast
Fixes https://github.com/openclaw/openclaw/issues/76382
2026-05-03 00:10:54 -07:00
Vincent Koc
a6d25c1c2e test(plugins): assert local install uninstall cleanup 2026-05-03 00:04:05 -07:00
Vincent Koc
f1da57a4a8 test(update): keep global install sidecar failure covered 2026-05-02 23:59:23 -07:00
Peter Steinberger
95cee64ca6 fix(cli): keep empty agent replies silent
* fix(cli): keep empty agent replies silent

* fix(commands): preserve empty gateway status summaries

---------

Co-authored-by: Peter Steinberger <steipete@steipete-macstudio.local>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-05-02 23:47:59 -07:00
Vincent Koc
c7bbb3f9af refactor(plugins): declare static runtime assets in package metadata 2026-05-02 23:47:25 -07:00
Vincent Koc
188c3b74ba fix(plugins): declare host peer in npm runtime packs 2026-05-02 23:47:25 -07:00
Vincent Koc
25ceffbf25 refactor(plugins): centralize npm runtime package planning 2026-05-02 23:47:25 -07:00
Vincent Koc
fb6893cf48 docs(changelog): note plugin runtime package fix 2026-05-02 23:47:25 -07:00
Vincent Koc
13d2bfb742 test(plugins): add npm runtime build sweep 2026-05-02 23:47:25 -07:00
Vincent Koc
b44cbecdf8 fix(plugins): keep package dry-run json clean 2026-05-02 23:47:25 -07:00
Vincent Koc
11a5b30f3e fix(plugins): build package-local npm runtimes 2026-05-02 23:47:25 -07:00
Vincent Koc
ac7e7f0512 docs(changelog): credit sqlite-vec report 2026-05-02 23:47:04 -07:00
Vincent Koc
95001d6c41 fix(memory): keep sqlite-vec optional 2026-05-02 23:44:01 -07:00
Vincent Koc
140c274335 test(cli): cover official external npm installs without integrity
Add catalog-derived coverage so official external npm plugin aliases without integrity pins still use the trusted official install path.
2026-05-02 23:42:26 -07:00
Vincent Koc
2a22eb68aa fix(plugins): require provenance for official npm trust
Require OpenClaw-owned install provenance before granting official npm plugin scanner trust. Direct npm package names now scan normally; catalog, onboarding, and doctor paths pass explicit provenance.\n\nValidation:\n- pnpm test:serial src/plugins/install.npm-spec.test.ts src/cli/plugins-cli.install.test.ts src/commands/onboarding-plugin-install.test.ts src/commands/doctor/shared/missing-configured-plugin-install.test.ts src/channels/plugins/contracts/channel-catalog.contract.test.ts src/commands/auth-choice.apply.plugin-provider.test.ts\n- pnpm test:serial src/plugins/install.test.ts src/plugins/provider-auth-choices.test.ts src/plugins/provider-install-catalog.test.ts src/commands/channel-setup/plugin-install.test.ts\n- pnpm exec oxfmt --check --threads=1 ...\n- node scripts/run-oxlint.mjs ...\n- Crabbox cbx_6157440c9bbe / run_cbd813956eed: pnpm check:changed passed\n\nThanks @fede-kamel and @vincentkoc.
2026-05-02 23:30:45 -07:00
Vincent Koc
f249b1c6df fix(plugins): clean managed git uninstall roots 2026-05-02 23:30:01 -07:00
Chris Zhang
cb7b2850e4 fix(build): externalize Feishu Lark SDK
Externalize @larksuiteoapi/node-sdk from the bundled Feishu ESM runtime so packaged startup loads the SDK as a plugin-local runtime dependency instead of inlining the SDK's ESM __dirname path.

Adds changelog credit and a tsdown-config regression assertion.

Fixes #76291.
Fixes #76494.

Co-authored-by: Chris Zhang <4436110+zqchris@users.noreply.github.com>
2026-05-02 23:27:13 -07:00
Vincent Koc
14312ff570 fix(feishu): avoid duplicate voice reply text 2026-05-02 23:18:42 -07:00
Vincent Koc
3c51692543 fix(config): bound clobber recovery snapshots (#76483) 2026-05-02 23:13:56 -07:00
Vincent Koc
b0a6543838 fix(agents): keep delayed sessions_send replies alive (#76484) 2026-05-02 23:08:10 -07:00
Jesse Merhi
207aa18c40 Add shell command explainer (#75004)
Summary:
- The PR adds an internal Tree-sitter-backed shell command explainer under `src/infra`, parser runtime/tests, dependency/build-policy updates, an index export, and a changelog entry.
- Reproducibility: not applicable. this is a feature PR rather than a bug report. For the prior PR blocker, source inspection shows byte-to-string span conversion and focused Unicode span coverage on the exact head.

Automerge notes:
- Ran the ClawSweeper repair loop before final review.
- Included post-review commit in the final squash: Repair shell command explainer automerge blockers
- Included post-review commit in the final squash: fix(clawsweeper): address review for automerge-openclaw-openclaw-7500…

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

Prepared head SHA: 47577579e9
Review: https://github.com/openclaw/openclaw/pull/75004#issuecomment-4351322592

Co-authored-by: Jesse Merhi <jessejmerhi@gmail.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
2026-05-03 06:05:29 +00:00
Vincent Koc
e27b7c2d74 docs(changelog): credit secretref channel fix 2026-05-02 22:55:31 -07:00
Arnab Saha
b83b2e3f1c fix(openai-codex): honor providerConfig.baseUrl in dynamic-model synthesis fallback (#76428)
* fix(openai-codex): honor providerConfig.baseUrl in dynamic-model synthesis fallback

The synthesis fallback in resolveCodexForwardCompatModel hardcoded
OPENAI_CODEX_BASE_URL when the model registry had no template row to
clone, which meant openai-codex providers configured with a custom
baseUrl (e.g. a local proxy that forwards Codex traffic) silently
fell back to api.openai.com / chatgpt.com - bypassing the proxy and
typically failing the auth contract.

Synthesis now reads ctx.providerConfig.baseUrl when present, with the
existing OPENAI_CODEX_BASE_URL constant as the fallback. No effect on
template-clone or registry-find paths, which already inherit the
configured baseUrl through the cloned template.

* docs(changelog): add Unreleased Fixes entry for #76428 codex synthesis baseUrl honor
2026-05-02 22:52:29 -07:00
Marvinthebored
73a95d3af4 fix(gateway): read-only persisted fast path for models.list catalog (#76406)
* fix(gateway): read-only fast path for models.list catalog loading

The gateway model catalog refresh calls loadModelCatalog without
readOnly, triggering ensureOpenClawModelsJson (60-70s), full PI SDK
registry instantiation, auth storage discovery, and live provider
plugin augmentation on every Control UI list/refresh. None of this
is needed for a read-only UI listing.

Three changes:

1. Gateway catalog refresh now passes readOnly: true to loadModelCatalog.
2. In readOnly mode, skip augmentModelCatalogWithProviderPlugins — live
   provider discovery is explicit admin/background work, not a UI list
   operation.
3. Add a persisted models.json fast path: when readOnly is true, first
   try reading the existing models.json directly and converting
   providers.<provider>.models[] to catalog rows. Falls back to the
   full PI registry path if the file is missing or unreadable.

Observed improvement on a production install:
  loadGatewayModelCatalog: 967 entries / 4651ms → 89 entries / 8ms
  Live models.list during startup: ~18s → ~2s

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(gateway): preserve full model catalog view

* fix(agents): preserve read-only catalog defaults

* fix(agents): preserve provider catalog defaults

---------

Co-authored-by: Marvinthebored <peter@lindsey.jp>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-05-02 22:48:55 -07:00
Vincent Koc
de24a05d6d test(gateway): satisfy shard splitter lint 2026-05-02 22:40:00 -07:00
Vincent Koc
833a42c253 test(gateway): split full-suite gateway-server shard 2026-05-02 22:40:00 -07:00
Vincent Koc
3ad0ad994a test(gateway): avoid stuck gateway-server fork shard 2026-05-02 22:40:00 -07:00
Vincent Koc
2e593d07f7 fix(plugins): preserve registry manifest fast path 2026-05-02 22:40:00 -07:00
Vincent Koc
d69d610bf0 fix(ui): guard app custom element registration 2026-05-02 22:40:00 -07:00