Cherry-pick batch: Channel infrastructure (38 commits)#1960
Merged
alexey-pelykh merged 17 commits intomainfrom Mar 24, 2026
Merged
Cherry-pick batch: Channel infrastructure (38 commits)#1960alexey-pelykh merged 17 commits intomainfrom
alexey-pelykh merged 17 commits intomainfrom
Conversation
(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)
(cherry picked from commit 2c3c48f)
…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 f71f445)
(cherry picked from commit 3105a12)
(cherry picked from commit 5018370)
(cherry picked from commit 592dd35)
(cherry picked from commit 6043e73)
(cherry picked from commit 614844c)
(cherry picked from commit 83ee5c0)
(cherry picked from commit 8aca2fd)
(cherry picked from commit 98877dc)
…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)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
Closes #1871
🤖 Generated with Claude Code