Skip to content

Cherry-pick batch: Channel infrastructure (38 commits)#1960

Merged
alexey-pelykh merged 17 commits intomainfrom
staging/cherry-pick-1871
Mar 24, 2026
Merged

Cherry-pick batch: Channel infrastructure (38 commits)#1960
alexey-pelykh merged 17 commits intomainfrom
staging/cherry-pick-1871

Conversation

@alexey-pelykh
Copy link
Copy Markdown

Cherry-pick batch from upstream

Issue: #1871
Commits: 14 cherry-picked (24 empty after conflict resolution — fork diverged heavily on plugin loading, setup wizards, and interactive blocks)

Picked commits

Skipped (empty after resolution — fork diverged)

24 commits became empty because the fork has already restructured plugin loading, removed setup wizards, simplified registry scoping, and uses different import paths (extensions → src/). These changes are tracked upstream but not applicable to the fork's current architecture.

Adaptation

  • OpenClawConfig → RemoteClawConfig renames
  • Removed dead runtime inspect re-exports (extensions not present in fork)
  • Removed tests for upstream-only features (interactive blocks harness)
  • Fixed contract suites to use fork's capability API (supportsButtons/supportsCards vs getCapabilities)
  • synologyChatPlugin → createSynologyChatPlugin() (factory pattern in fork)

Closes #1871

🤖 Generated with Claude Code

vincentkoc and others added 15 commits March 24, 2026 03:48
(cherry picked from commit 0277aa0)
* fix(channels): preserve external catalog overrides

* fix(channels): clarify catalog precedence

* fix(channels): respect overridden install specs

(cherry picked from commit 041c474)
…mory hosts (openclaw#46763)

* fix(onboarding): use scoped plugin snapshots to prevent OOM on low-memory hosts

Onboarding and channel-add flows previously loaded the full plugin registry,
which caused OOM crashes on memory-constrained hosts. This patch introduces
scoped, non-activating plugin registry snapshots that load only the selected
channel plugin without replacing the running gateway's global state.

Key changes:
- Add onlyPluginIds and activate options to loadOpenClawPlugins for scoped loads
- Add suppressGlobalCommands to plugin registry to avoid leaking commands
- Replace full registry reloads in onboarding with per-channel scoped snapshots
- Validate command definitions in snapshot loads without writing global registry
- Preload configured external plugins via scoped discovery during onboarding

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix(test): add return type annotation to hoisted mock to resolve TS2322

* fix(plugins): enforce cache:false invariant for non-activating snapshot loads

* Channels: preserve lazy scoped snapshot import after rebase

* Onboarding: scope channel snapshots by plugin id

* Catalog: trust manifest ids for channel plugin mapping

* Onboarding: preserve scoped setup channel loading

* Onboarding: restore built-in adapter fallback

---------

Co-authored-by: Claude Opus 4.6 <[email protected]>
Co-authored-by: Vincent Koc <[email protected]>
(cherry picked from commit f4cc93d)
(cherry picked from commit 3105a12)
(cherry picked from commit 6043e73)
…claw#43539)

Trim leading whitespace from direct WhatsApp text and media caption sends.

Also guard empty text-only web sends after trimming.

(cherry picked from commit a5ceb62)
@alexey-pelykh alexey-pelykh enabled auto-merge (squash) March 24, 2026 03:10
@alexey-pelykh alexey-pelykh merged commit b1cf1cf into main Mar 24, 2026
7 checks passed
@alexey-pelykh alexey-pelykh deleted the staging/cherry-pick-1871 branch March 24, 2026 03:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cherry-pick: Channel infrastructure (38 commits)

7 participants