Skip to content

Feature/upgrade openclaw#1709

Merged
liuzhq1986 merged 166 commits intomainfrom
feature/upgrade-openclaw
Apr 17, 2026
Merged

Feature/upgrade openclaw#1709
liuzhq1986 merged 166 commits intomainfrom
feature/upgrade-openclaw

Conversation

@liuzhq1986
Copy link
Copy Markdown
Collaborator

  • 升级到openclaw4.8

Angus2333 and others added 30 commits March 26, 2026 19:46
…ions

Before: MCP card descriptions used a custom Tooltip component that had persistent positioning issues — tooltips would appear offset, overflow the viewport, cover adjacent cards, or jump to incorrect locations (top-left corner, between cards, etc.).

After: Introduced a ClampedText component that detects text truncation via scrollHeight comparison and shows a theme-aware popover above the text on hover. The popover only appears when content is actually clamped (line-clamp-2), uses CSS absolute positioning anchored to bottom-full for stable placement, and inherits the app's semantic color tokens (bg-surface-raised, text-foreground, border-border) for consistent theming in both light and dark modes.

Changes: - Add ClampedText component with overflow detection and hover popover - Replace Tooltip usage in installed/marketplace/custom tabs with ClampedText - Remove Tooltip import from McpManager.tsx - Simplify Tooltip.tsx positioning logic
Bump openclaw.version from v2026.3.2 to v2026.4.5. Adapt plugin and
local-extension sync scripts to handle the new dist/extensions layout
introduced in v2026.4.5, with fallback to the legacy extensions path.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Resolve GatewayClient from plugin-sdk/gateway-runtime.js (the official
  public subpath) instead of the old client-*.js chunk which now contains
  unrelated RPC utilities with minified exports.
- Increase GATEWAY_READY_TIMEOUT_MS from 15s to 30s to accommodate the
  new connect.challenge pre-auth step introduced in v2026.4.5.
- Don't reject the handshake promise on transient onClose/onConnectError
  events — let the GatewayClient's built-in reconnection succeed within
  the timeout window instead of failing on the first dropped connection.
- Bump moltbot-popo plugin from 1.0.66 to 2.0.3 for ESM compatibility.

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

- Rewrite ensure-openclaw-plugins.cjs to use `openclaw plugins install` instead
  of manual npm download, letting the CLI handle dependency resolution and module
  setup properly for v2026.4.5
- Disable bundled `qqbot` and `feishu` plugins when third-party versions are
  installed, preventing tool name conflicts (ref: openclaw-qqbot#249)
- Place third-party plugins in extensions/ (not dist/extensions/) and discover
  via plugins.load.paths to bypass bundled-channel-entry contract check
- Clean up stale third-party plugins from dist/extensions/ on startup to support
  overlay upgrades
- Upgrade plugin versions: openclaw-qqbot 1.7.1, wecom 2026.4.3, weixin 2.1.7,
  dingtalk 3.5.2 (optional, incompatible with v2026.4.5 telegram-core)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add source-level patch for openclaw v2026.4.5 that gates the
model-pricing OpenRouter fetch behind OPENCLAW_SKIP_MODEL_PRICING env
var.  The fetch times out (15s) in regions with slow external API access,
delaying gateway handshake.  See openclaw/openclaw#60116, #59348.

- Add scripts/patches/v2026.4.5/openclaw-disable-model-pricing-bootstrap.patch
- Set OPENCLAW_SKIP_MODEL_PRICING=1 in gateway env vars
- Increase GATEWAY_READY_TIMEOUT_MS from 30s to 60s as fallback
- Set OPENCLAW_PREPACK_PREPARED=1 on npm pack to skip redundant rebuild

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Bump openclaw version from v2026.4.5 to v2026.4.8
- Skip release:check in embedded runtime build (not needed, broken on Windows)
- Add patch for build-all.mjs Windows shell compatibility (spawnSync .cmd)
- Clean up stale openclaw SDK stubs that break plugin loading via jiti alias map
- Remove obsolete openclaw-weixin CHANNEL_VERSION patch (no longer needed in v2026.4.8)
- Always enable weixin channel so gateway registers web.login gateway methods
- Downgrade openclaw-weixin plugin to 2.1.6 for v2026.4.8 compatibility

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… for v2026.4.8

- Add patch to convert facade-activation-check.runtime dynamic require to
  static import, fixing "Unable to load facade activation check runtime"
  error caused by esbuild bundle breaking createRequire(import.meta.url)
  relative path resolution
- Remove dmPolicy/groupPolicy/groupAllowFrom/historyLimit from qqbot
  account config (removed from v2026.4.8 schema, caused Config invalid
  gateway crash)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…undled channel scan

gateway-bundle.mjs runs from the package root (not dist/), making
RUNNING_FROM_BUILT_ARTIFACT=false. This causes resolveBundledPluginScanDir
to scan `extensions/` where our third-party IM plugins fail the
bundled-channel-entry contract check, wasting ~30s on serial load failures.

Move plugins to `third-party-extensions/` which the bundled scan never
touches. Plugins are still discovered via `plugins.load.paths` (origin=
"config"). Also add build-time and runtime cleanup of stale plugins from
the old `extensions/` and `dist/extensions/` locations.

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

- Upgrade feishu plugin from @larksuiteoapi/feishu-openclaw-plugin@2026.3.8
  to @larksuite/openclaw-lark@2026.4.7 (new package name, compatible with
  openclaw v2026.4.x)
- Upgrade dingtalk to v3.5.3 (fixes telegram-core import removed in v2026.4.8)
- Remove dingtalk config fields not in plugin schema: sessionTimeout,
  separateSessionByConversation, groupSessionScope,
  sharedMemoryAcrossConversations, gatewayToken/gatewayBaseUrl
- Auto-cleanup old feishu-openclaw-plugin dirs after rename to openclaw-lark

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…way restart loops

OpenClaw v2026.4.1+ auto-injects gateway.auth/tailscale/controlUi and
plugins.entries for minimax/volcengine/browser at startup.  ConfigSync's
full overwrite removed these fields on every cycle, causing the gateway
to detect a diff and restart (~60s downtime each time).

Preserve gateway runtime fields by reading them from the existing config
before overwrite, and explicitly declare the three auto-injected plugins
— consistent with the existing qwen-portal-auth pattern.

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

- Add timeoutMs to GatewayClientLike type to expose the SDK's existing
  per-request timeout option
- Set chat.history timeouts: 3s (history check), 5s (prefetch), 8s
  (syncFinal), 10s (reconcile/fetchSession) — down from 30s default
- Disable acpx plugin in configSync to skip the embedded ACP runtime
  probe that adds ~11s to gateway startup (always fails, LobsterAI
  does not use ACP). See openclaw/openclaw#62588.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
# Conflicts:
#	src/main/libs/openclawConfigSync.ts
OpenClaw v2026.4.8 schema no longer accepts this key, causing gateway
startup failure with "Config invalid – cron: Unrecognized key: skipMissedJobs".

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove `accountId` field from channel config (not in plugin schema,
  `additionalProperties: false` rejects it)
- Restore `dmPolicy` and `allowFrom` framework-level fields that were
  stripped in 6a22112, matching other channel configs
- Bump openclaw-weixin plugin from 2.1.6 to 2.1.7
- Remove stale post-install patches from ensure-openclaw-plugins.cjs
  (gatewayMethods injection no longer needed in 2.1.7)

Refs: openclaw/openclaw#61358

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
新版 OpenClaw 对 channel 配置做了严格 schema 校验,不允许额外属性。
移除 openclawConfigSync 中向 channels.* 注入 _agentBinding 的逻辑,
避免网关启动时因 must NOT have additional properties 校验失败而反复重启。
… stale patches

When switching LobsterAI branches, patch-created files (e.g. gateway-entry.ts)
persisted as untracked files in the openclaw source, causing build errors.
Now both ensure-version and apply-patches scripts reset the openclaw tree
with git clean -fd before proceeding.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The openclaw-weixin plugin implements loginWithQrStart/loginWithQrWait but
does not declare gatewayMethods — this is by design upstream (CLI login uses
plugin.auth.login, not the web RPC path). Our embedded UI relies on the
web.login.start/web.login.wait gateway RPCs which require gatewayMethods
for plugin discovery via resolveWebLoginProvider(). Restore the patch that
was incorrectly removed in 7a2cba4.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…LobsterAI into feature/upgrade-openclaw-im

# Conflicts:
#	src/main/libs/openclawConfigSync.ts
feat: 钉钉,飞书,QQ,企微,Telegram和Discord适配
…tration

fix(weixin): restore gatewayMethods patch and fix channel config
liuzhq1986 and others added 17 commits April 16, 2026 10:30
merge commit 7df29fd 在解决冲突时误删了 SearchIcon、PencilIcon、
TrashIcon、ConnectorIcon 的 import,导致 McpManager 页面崩溃。
fix(mcp): 恢复 merge 时误删的图标组件 import
Add local heartbeat-ack filtering so pure HEARTBEAT_OK responses do not surface
in Cowork sessions when OpenClaw background heartbeats or system-event
follow-up turns leak through upstream suppression.

Filter heartbeat acks in both gateway history parsing and runtime message
handling paths, including system-message sync, streaming assistant text,
and final assistant completion cleanup. Add regression tests for history
parsing and adapter sync behavior.

Signed-off-by: Dylan <2894220@gmail.com>
Use one helper for the prevent-sleep blocker lifecycle.

Startup restore and IPC updates now follow the same path.

This removes the last prevent-display-sleep usage and keeps
all blocker starts on prevent-app-suspension.

Signed-off-by: Dylan <2894220@gmail.com>
…LobsterAI into feat/webcom-multi-bots

# Conflicts:
#	src/main/libs/openclawConfigSync.ts
处理冲突,修复lint错误
feat: 企微支持多机器人;修复定时任务通知,企微失败的bug
…ension

fix(main): unify power save blocker type
fix(cowork): suppress leaked HEARTBEAT_OK replies
feat(update): add uuid and userId query params to update check requests
- Add getPortalLoginUrl() helper function in endpoints service
- Update fetchLoginUrl() to fallback to Portal login page when overmind fetch fails
- Replace empty string fallback with explicit Portal login URL

This ensures users are always directed to a valid login page even when the overmind service is unavailable, improving the authentication flow reliability.
MCP bridge 的 callbackUrl 和 tools 在启动时序竞态下未能同步到
OpenClaw gateway,导致部分用户 MCP 功能不可用。gateway 启动时
pin 住 config snapshot,后续 hot-reload 无法更新 mcp-bridge
插件配置。

新增 mcpBridgeConfigChanged 检测,当 callbackUrl 或 tools 变化时
强制触发 gateway hard restart,不依赖 restartGatewayIfRunning 标志。
.
fix(mcp): force gateway restart when mcp-bridge config changes
@liuzhq1986 liuzhq1986 merged commit 3ba676b into main Apr 17, 2026
10 of 11 checks passed
mvanhorn added a commit to mvanhorn/LobsterAI that referenced this pull request Apr 18, 2026
Add LM Studio support as a local OpenAI-compatible model provider,
following the same pattern as Ollama. LM Studio runs at
http://localhost:1234/v1 by default and does not require an API key.

Re-implementation on top of the post-netease-youdao#1709 provider registry refactor:
the original PR (b622c4e) was written against the pre-refactor 542-line
config.ts and could not be mechanically rebased.

Changes:
- Register lmstudio in shared/providers (ProviderName, OpenClawProviderId,
  PROVIDER_DEFINITIONS, idsForEnLocale tail)
- Add LMStudioIcon and wire it into providers/uiRegistry
- Extend providerRequiresApiKey (renderer + main) to skip LM Studio
- Reuse the Ollama-style model-name-only form in Settings for LM Studio,
  with dedicated lmstudio* i18n keys (zh + en)
- Detect lmstudio / port :1234 base URLs when migrating from legacy
  config.api.baseUrl
- Register LM Studio in openclawConfigSync as OpenAI-completions

Closes netease-youdao#365
@btc69m979y-dotcom btc69m979y-dotcom deleted the feature/upgrade-openclaw branch April 20, 2026 02:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants