mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-28 05:16:23 -06:00
bbd66c475e
* fix(plugins): fail closed when plugin runtime is unavailable Core fabricated an empty object as `PluginRuntime` for the `cli-metadata` and `setup-only` registration passes, so any plugin touching `api.runtime` during `register()` died with an opaque `TypeError: Cannot read properties of undefined (reading 'openSyncKeyedStore')` that named neither the contract nor the mode. Replace those fabrications with one shared fail-closed runtime that throws a named, actionable error identifying the plugin and registration mode. Symbol reads stay inert so inspection and reflection cannot trigger the guard. Also resolve the lightweight `cli-metadata` entry beside the resolved plugin entry, not only at the package root. Published plugin packages emit it at `dist/cli-metadata.js`, so the probe always missed and the loader fell back to executing the full heavy entry for CLI metadata collection. Documents which registration modes expose a live `api.runtime`; the SDK reference previously claimed it was injected into every plugin. * fix(ui): restore sidebar lazy import boundaries Remove the redundant viewer-facepile dynamic import: sidebar consumers already register that element through the static graph. Import pet data and sprite helpers from their owning leaf modules, delete the registration module's re-export barrel, and make the element itself the lobster-pet.runtime.ts lazy boundary. Keep shared sprite styles with the look renderer so standalone pages do not need element registration. Regenerate the measured boot inventory with the canonical browser probe. Use Lit's typed lifecycle map to remove the obsolete assertion baseline entry and keep the now-private facepile variant type local. The full build has no INEFFECTIVE_DYNAMIC_IMPORT warnings. Relevant UI coverage passes (503 tests plus 5 Chromium E2E tests); the unchanged plugin runtime regression suites pass all 58 tests. The broad plugin suite still reports schema-version, doctor-closure, hook-process, and catalog failures.