Caricamento in corso...
Caricamento in corso...
Last synced: Today, 22:00
Technical reference for the OpenClaw framework. Real-time synchronization with the official documentation engine.
Use this file to discover all available pages before exploring further.
This is the dedicated checklist for update and plugin validation. The goal is simple: prove the installable package can update real user state, repair stale legacy state through
doctorFor the broader test runner map, see Testing. For live provider keys and network-touching suites, see Testing live.
Update and plugin tests protect these contracts:
dist/postinstall-inventory.jsonopenclaw doctor --fix --non-interactiveStart narrow:
bashpnpm changed:lanes --json pnpm check:changed pnpm test:changed
For plugin install, uninstall, dependency, or package-inventory changes, also run the focused tests that cover the edited seam:
bashpnpm test src/plugins/uninstall.test.ts src/infra/package-dist-inventory.test.ts test/scripts/package-acceptance-workflow.test.ts
Before any package Docker lane consumes a tarball, prove the package artifact:
bashpnpm release:check
release:checknpm pack --dry-runThe Docker lanes are the product-level proof. They install or update a real package inside Linux containers and assert behavior through CLI commands, Gateway startup, HTTP probes, RPC status, and filesystem state.
Use focused lanes while iterating:
bashpnpm test:docker:plugins pnpm test:docker:plugin-update pnpm test:docker:upgrade-survivor pnpm test:docker:published-upgrade-survivor pnpm test:docker:update-migration
Important lanes:
test:docker:pluginsfile:OPENCLAW_PLUGINS_E2E_CLAWHUB=0test:docker:plugin-updateopenclaw plugins updatetest:docker:upgrade-survivortest:docker:published-upgrade-survivoropenclaw config set/healthz/readyztest:docker:update-migrationUseful published-upgrade survivor variants:
bashOPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC=openclaw@2026.4.23 \ OPENCLAW_UPGRADE_SURVIVOR_SCENARIO=versioned-runtime-deps \ pnpm test:docker:published-upgrade-survivor OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC=openclaw@latest \ OPENCLAW_UPGRADE_SURVIVOR_SCENARIO=bootstrap-persona \ pnpm test:docker:published-upgrade-survivor
Available scenarios are
basefeishu-channelbootstrap-personaplugin-deps-cleanuptilde-log-pathversioned-runtime-depsOPENCLAW_UPGRADE_SURVIVOR_SCENARIOS=reported-issuesFull update migration is intentionally separate from Full Release CI. Use the manual
Update Migrationbashgh workflow run update-migration.yml \ --ref main \ -f workflow_ref=main \ -f package_ref=main \ -f baselines=all-since-2026.4.23 \ -f scenarios=plugin-deps-cleanup
Package Acceptance is the GitHub-native package gate. It resolves one candidate package into a
package-under-testCandidate sources:
source=npmopenclaw@betaopenclaw@latestsource=refsource=urlpackage_sha256source=artifactRelease checks call Package Acceptance with the package/update/plugin set:
textdoctor-switch update-channel-switch upgrade-survivor published-upgrade-survivor plugins-offline plugin-update
They also pass:
textpublished_upgrade_survivor_baselines=release-history published_upgrade_survivor_scenarios=reported-issues telegram_mode=mock-openai
This keeps package migration, update channel switching, stale plugin dependency cleanup, offline plugin coverage, plugin update behavior, and Telegram package QA on the same resolved artifact.
release-history2026.4.23all-since-2026.4.23Run a package profile manually when validating a candidate before release:
bashgh workflow run package-acceptance.yml \ --ref main \ -f workflow_ref=main \ -f source=npm \ -f package_spec=openclaw@beta \ -f suite_profile=package \ -f published_upgrade_survivor_baselines=release-history \ -f published_upgrade_survivor_scenarios=reported-issues \ -f telegram_mode=mock-openai
Use
suite_profile=productsuite_profile=fullFor release candidates, the default proof stack is:
pnpm check:changedpnpm test:changedpnpm release:checkpackageOn maintainer machines, broad gates and Docker/package product proof should run in Testbox unless explicitly doing local proof.
Compatibility leniency is narrow and time boxed:
2026.4.252026.4.25-beta.*2026.4.26Do not add new startup migrations for these old shapes. Add or extend a doctor repair, then prove it with
upgrade-survivorpublished-upgrade-survivorWhen changing update or plugin behavior, add coverage at the lowest layer that can fail for the right reason:
package-dist-inventorypublished-upgrade-survivortest:docker:pluginsnode_modulesKeep new Docker fixtures hermetic by default. Use local fixture registries and fake packages unless the point of the test is live registry behavior.
Start with the artifact identity:
resolve_package.artifacts/docker-tests/**/summary.jsonfailures.json.artifacts/upgrade-survivor/summary.jsonPrefer rerunning the failed exact lane with the same package artifact over rerunning the whole release umbrella.
© 2024 TaskFlow Mirror
Powered by TaskFlow Sync Engine