openclaw/scripts/e2e
Peter Steinberger 99babf2725
feat(update): adopt immutable installations and prepare sealed generations without activating them (#163799)
* feat(update): adopt immutable installations and prepare sealed generations without activating them

* fix(update): repair immutable preparation dependency boundaries

Register the packaged immutable launcher as a Knip executable entry and retain
the immutable SQLite read worker closure in the PR wrapper inventory.

Extract startup installation facts and package activation runtime types at their
leaf contracts. Migrate all consumers and remove the broad reverse dependencies
that made both static import cycles lane-caused. Keep lazy initialization and
cancellation with the Gateway lifecycle owner.

* fix(update): use typed immutable record size predicates

Express the existing 64-KiB JSON byte bounds through Kysely expression builders.
Preserve BLOB casts, bound values, and null filtering at the immutable record owner.

The real SQLite store tests, full architecture command, staged changed-file gate,
and independent review pass. The schema and durability contract are unchanged.

* fix(state): stop polling pinned SQLite handles

Publish idleness from the common borrower release owner, including maintenance
ownership transferred to an independent reader. Remove the read-only adapter's
separate scheduling policy and consolidate asynchronous completion/cancellation.
Keep authority checks after WAL shutdown and preserve failed cleanup for retry.

Idle expiry now waits for pinned readers instead of rearming. The existing
30-minute window, transaction retries, explicit disposal and durable state stay
unchanged. Regression coverage proves zero timers after close, late release,
transferred maintenance ownership, and ownership lost during awaited cleanup.

The original timer and incomplete release handoff each fail their regression;
the final candidate passes the real SQLite, borrower, cleanup, status and CLI/UI
proof on Blacksmith Testbox. Native staged checks run on the isolated Linux rig.

Related: #163799

* test(e2e): preserve relabeled candidate content inventory

Use the existing fixture version-stamping owner when the published-driver
candidate is older than the driver. Refresh the authored build-info hash while
preserving opaque build identity and detection of unrelated package corruption.
Remove the duplicate stamping loop and unpersisted relabeledFrom expectation;
the relabel receipt already records the original and target versions.

The original published-driver cell installed the candidate but correctly
rejected its stale content inventory. Focused fixture tests and native changed
checks pass on Blacksmith Testbox; independent review found no actionable issues.

Related: #163799

* test(browser): preserve the MCP module between pooled test files

Read the harness's registered Chrome MCP mock through a normal dynamic import.
Vitest importMock also populates the real module ID with empty-body metadata;
pooled cleanup can preserve that body and leave a later real import without its
exports. No extra mock loader or cache policy is needed for this assertion.

The ordered server.agent-contract-core -> server-context.list-profiles replay
reproduces all three CI failures before this change and passes all 59 tests
afterward. The full four-group CI bundle passes 1,937 tests with 66 skipped on
Blacksmith Testbox. Existing assertions, production code and scheduling remain
unchanged.

Related: #163799
2026-10-03 09:14:17 +00:00
..
lib feat(update): adopt immutable installations and prepare sealed generations without activating them (#163799) 2026-10-03 09:14:17 +00:00
parallels refactor(scripts): deslop update parsing and provider routing (#163098) 2026-10-01 23:44:34 +00:00
agent-bundle-mcp-tools-docker.sh
agents-delete-shared-workspace-docker.sh
anthropic-cache-live-docker.sh
anthropic-cache-live.mts
browser-cdp-snapshot-docker.sh
browser-plugin-profiles-docker.sh
build-image.sh
bun-global-install-smoke.sh
bun-only-runtime-smoke.sh
bundled-plugin-install-uninstall-docker.sh
cli-backend-oauth-mcp-live.mjs
cli-installer-distribution-docker.sh refactor(installer): share standalone shell installer policy (#162652) 2026-10-01 13:01:25 -07:00
codex-media-path-docker.sh
codex-npm-plugin-live-docker.sh refactor(scripts): deslop shared tooling flows (#162824) 2026-10-01 21:30:19 +00:00
codex-on-demand-docker.sh refactor(scripts): deslop shared tooling flows (#162824) 2026-10-01 21:30:19 +00:00
compose-setup.sh
config-reload-source-docker.sh
container-image-upgrade-docker.sh
cron-cli-docker.sh
cron-mcp-cleanup-docker-client.ts
cron-mcp-cleanup-docker.sh
cron-mcp-cleanup-seed.ts
docker-openai-seed.ts
docker-package-install.sh
docker-selected-plugins.sh
Dockerfile
Dockerfile.qr-import
doctor-install-switch-docker.sh refactor(scripts): deslop shared tooling flows (#162824) 2026-10-01 21:30:19 +00:00
fleet-cache-docker.sh fix(ci): allow Fleet test runtime installation on npm 12 (#163290) 2026-10-02 01:34:35 -05:00
gateway-concurrency-docker.sh
gateway-network-docker.sh
kitchen-sink-plugin-docker.sh
kitchen-sink-rpc-docker.sh
kitchen-sink-rpc-walk.mjs
kitchen-sink-rpc-walk.mts refactor(e2e): share gateway CLI payload resolution (#163506) 2026-10-02 20:43:14 +08:00
live-plugin-tool-docker.sh refactor(scripts): deslop shared tooling flows (#162824) 2026-10-01 21:30:19 +00:00
mcp-app-conformance-server.mjs
mcp-channel-limits.ts
mcp-channels-docker.sh
mcp-channels-seed.ts
mcp-code-mode-gateway-client.ts
mcp-code-mode-gateway-docker.sh
mcp-code-mode-gateway-live-docker.sh
mcp-code-mode-gateway-seed.ts
mock-openai-server.mjs fix(gateway): release completed runs and obsolete cache state (main-thread heap retention) (#163834) 2026-10-02 23:53:12 +00:00
multi-node-update-docker.sh refactor(scripts): deslop shared tooling flows (#162824) 2026-10-01 21:30:19 +00:00
npm-onboard-channel-agent-docker.sh refactor(scripts): deslop shared tooling flows (#162824) 2026-10-01 21:30:19 +00:00
npm-telegram-live-docker.sh
npm-telegram-live-runner.ts
onboard-docker.sh
openai-chat-tools-docker.sh
openai-image-auth-docker.sh
openai-web-search-minimal-docker.sh
openwebui-docker.sh
openwebui-probe.mjs
parallels-linux-smoke.sh
parallels-macos-smoke.sh
parallels-npm-update-smoke.sh
parallels-windows-prepare.sh
parallels-windows-smoke.sh
plugin-binding-command-escape-docker.sh
plugin-binding-command-escape.Dockerfile
plugin-lifecycle-matrix-docker.sh refactor(scripts): deslop shared tooling flows (#162824) 2026-10-01 21:30:19 +00:00
plugin-update-unchanged-docker.sh refactor(scripts): deslop shared tooling flows (#162824) 2026-10-01 21:30:19 +00:00
plugins-docker.sh
published-driver-lifecycle-docker.mjs fix: preserve databases on rollback and capture failed update status (#162726) 2026-10-01 11:47:07 -06:00
published-driver-update-docker.sh fix(update): enable incremental SQLite reclamation during maintenance (#163105) 2026-10-02 02:11:09 +00:00
qa-cli-onboarding.mjs
qa-plugin-install-sources.mjs
qr-import-docker.sh
release-media-memory-docker.sh refactor(scripts): deslop shared tooling flows (#162824) 2026-10-01 21:30:19 +00:00
release-plugin-marketplace-docker.sh refactor(scripts): deslop shared tooling flows (#162824) 2026-10-01 21:30:19 +00:00
release-typed-onboarding-docker.sh refactor(scripts): deslop shared tooling flows (#162824) 2026-10-01 21:30:19 +00:00
release-upgrade-user-journey-docker.sh refactor(scripts): deslop shared tooling flows (#162824) 2026-10-01 21:30:19 +00:00
release-user-journey-docker.sh refactor(scripts): deslop shared tooling flows (#162824) 2026-10-01 21:30:19 +00:00
sandbox-browser-sidecar-docker.sh
session-runtime-context-docker-client.ts
session-runtime-context-docker.sh
skill-install-docker.sh refactor(scripts): deslop shared tooling flows (#162824) 2026-10-01 21:30:19 +00:00
system-agent-first-run-docker.sh
system-agent-first-run-spec.json
system-agent-rescue-docker-client.ts
system-agent-rescue-docker.sh
systemd-sealed-service-definition.sh
update-channel-switch-docker.sh refactor(scripts): deslop shared tooling flows (#162824) 2026-10-01 21:30:19 +00:00
update-corrupt-plugin-docker.sh refactor(scripts): deslop shared tooling flows (#162824) 2026-10-01 21:30:19 +00:00
update-first-hop-compat-docker.sh improve(ci): run first-hop post-convergence proof once (#163631) 2026-10-02 10:12:15 -07:00
upgrade-survivor-docker.sh refactor(doctor): retire pre-July delivery queue files (#163167) 2026-10-02 18:48:57 -07:00