Skip to content

Fix OpenClaw 10.2 installation and unify live model selection - #238

Merged
Suzhen Zheng (benniao85) merged 3 commits into
mainfrom
suzhen-microsoft-microclaw-skills
Oct 19, 2026
Merged

Suzhen Zheng (benniao85) merged 3 commits into
mainfrom
suzhen-microsoft-microclaw-skills

Conversation

@benniao85

Copy link
Copy Markdown
Collaborator

Description

Fix OpenClaw 2026.10.2 installation compatibility and unify model configuration and selection across MicroClaw. Provider forms, default-model selection, and conversation-model selection share authenticated live catalogs instead of mixing static presets with saved-model subsets. Model-only changes no longer unconditionally restart the Gateway.

Includes the earlier installation fixes and is merged with main at f605761, retaining both model-startup assertions and upstream MXC lifecycle guards.

Related Issue

Related to #101 (closed): addresses remaining hardcoded model-list behavior and consistency across the three model selectors, rather than expanding the provider-family menu.

Changes

  • Support OpenClaw 10.2 SQLite workers and captured local-model provider modules while retaining pinned identity/source checks and scoped sandbox access.
  • Pin the compatible search plugin, preserve quoted Node paths, validate actual sandbox access, and avoid unnecessary database migration during same-version updates.
  • Share bounded, authenticated, read-only provider discovery across all three model selectors. Isolate draft credentials and surface discovery errors without static fallback lists.
  • Register newly selected models with revision-guarded Gateway updates and verify application before switching, preserving credentials, policies, defaults and conversation overrides.
  • Keep known non-chat model families visible but disabled with explanations and enforce restrictions in the main process. Distinguish access rejection from invalid credentials and incompatible requests.
  • Simplify provider cards with chevrons, adjacent API-key/refresh actions, key-before-model field order, no duplicate saved-model rows or headings, and independently persisted form selections.
  • Use standard button activation and accessible, named real Element Plus popovers. Add opt-in non-activating startup/update behavior and distinguish installer captions from the desktop.
  • Add regression and opt-in real-provider E2E tests and update English/Chinese documentation.

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • CI/CD or build configuration change
  • Refactoring (no functional changes)

Testing

  • Tests pass locally (cd desktop && npm run test)
  • Renderer tests pass locally (cd desktop/renderer && npm run test)
  • Build succeeds (cd desktop && npm run build)
  • Manual testing performed (describe below)

Validation after merging main:

Command Result
cd desktop; npm test -- --reporter=dot Passed: 1,614 Vitest tests; 14 environment-dependent skips; 5 WeChat staging tests passed
cd desktop\renderer; npm run test -- --reporter=dot Passed: 535 tests
cd desktop; npm run build Passed: TypeScript, Vue type checks and Vite build
python -m unittest discover -s tests -p test_windows_setup_upgrade.py -q Passed: 132 tests; files unchanged by the main merge
python -m unittest discover -s tests -p test_webview_bridge.py -q Passed: 37 tests; files unchanged by the main merge
git diff --check / git diff --cached --check Passed

Existing Vite large-chunk warnings and renderer shallow-stub warnings remain.

Additional feature-build validation on 0e89412, before merging main:

  • powershell -ExecutionPolicy Bypass -File .\build.ps1 — passed; generated desktop, portable ZIP, installer ZIP and full Setup EXE.
  • cd desktop; npx vitest run src\provider-model-registration.integration.test.ts --reporter=verbose, with MICROCLAW_TEST_OPENCLAW_ENTRY set — passed against isolated OpenClaw 10.2; no inference or Gateway restart during registration/selection.
  • cd desktop; npx vitest run src\provider-model-live.integration.test.ts --reporter=verbose, with MICROCLAW_TEST_OPENCLAW_ENTRY and MICROCLAW_TEST_LIVE_QWEN_CONFIG explicitly set — passed with real Qwen Max/Flash replies, preserved default/session scope, unchanged source configuration and no restart. This optional test may consume quota and is skipped by default.
  • Real Windows transactional installation committed; installed archive matched the package; HTTP health and authenticated configuration RPC checks passed.
  • Actual installed-client E2E covered matching 176-ID catalogs, Max/Flash replies, access-denied recovery, incompatible-model rejection, credential gating, refresh states, model-only Save, reopening and persistence across restart.
  • Verified default changes preserve existing session overrides; restored original default/form preferences, retained AppContainer, and did not change billing settings.
  • Verified one desktop main process, non-activating update/startup and cleanup of debugging listeners. Final background verification used app-local actions without keyboard/mouse takeover.

These checks do not certify every returned model's account entitlement or all input/tool capabilities. MiniMax inference was not exercised without an authorized MiniMax credential. Local installer artifacts are unsigned.

Checklist

  • My code follows the coding guidelines of this project
  • I have performed a self-review of my code
  • I have commented my code where necessary
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or my feature works
  • New and existing unit tests pass locally with my changes

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Share authenticated catalogs across provider, default and conversation controls; hot-register selected models without unnecessary Gateway restarts; preserve saved form choices and reject incompatible model APIs. Add non-activating startup/update behavior and real-provider E2E coverage.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Preserve the model startup assertions together with the upstream MXC lifecycle guards.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@benniao85
Suzhen Zheng (benniao85) merged commit 5141d95 into main Oct 19, 2026
2 of 4 checks passed
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.

2 participants