fix(onboarding): OpenAI setup installs mismatched Codex plugin (#129195)

* fix(onboarding): align Codex plugin with core release

Amp-Thread-ID: https://ampcode.com/threads/T-01a037b4-f621-7144-bfdf-a68df795dd57

* test(onboarding): reject unpinned Codex candidates

Amp-Thread-ID: https://ampcode.com/threads/T-01a037b4-f621-7144-bfdf-a68df795dd57

* fix(onboarding): match stable correction release plugin cohorts

Co-authored-by: 許元豪 <146086744+edenfunf@users.noreply.github.com>

* test: isolate plugin metadata and register startup retry coverage

* test: adopt upstream startup retry ownership pattern

* test: keep plugin metadata readers process-stable

* test: isolate terminal session recovery cases

* test: drop speculative gateway isolation change

* test(gateway): mock terminal transcript lifecycle decision

* fix(plugins): align correction cohorts across stable tracks

---------

Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: 許元豪 <146086744+edenfunf@users.noreply.github.com>
Co-authored-by: Dallin Romney <dallinromney@gmail.com>
This commit is contained in:
Peter Steinberger
2026-08-25 17:03:39 -07:00
committed by GitHub
parent 827433c6fe
commit 85d5df1d87
19 changed files with 238 additions and 23 deletions
+18
View File
@@ -3878,6 +3878,24 @@ grep -Fxq preserved "$TMPDIR/caller-fd"
);
});
it("serves the version-matched Codex candidate during package onboarding", () => {
const runner = readFileSync(CODEX_ON_DEMAND_DOCKER_E2E_PATH, "utf8");
expectTextToIncludeAll(runner, [
"OPENCLAW_DOCKER_ALL_LANES=codex-on-demand",
"OPENCLAW_PREPUBLISH_PLUGIN_REGISTRY_DIR=/tmp/openclaw-prepublish-plugin-registry",
"node scripts/e2e/lib/plugins/npm-registry-server.mjs",
'OPENCLAW_NPM_REGISTRY_DIST_TAGS="latest=0.0.0,beta=$package_version"',
"OPENCLAW_NPM_REGISTRY_UPSTREAM=https://registry.npmjs.org",
]);
expect(runner.indexOf("openclaw_e2e_install_package")).toBeLessThan(
runner.indexOf("\nconfigure_plugin_registry\n"),
);
expect(runner.indexOf("\nconfigure_plugin_registry\n")).toBeLessThan(
runner.indexOf("\nopenclaw onboard --non-interactive"),
);
});
it("cleans package-backed onboarding and plugin Docker artifacts on every exit path", () => {
for (const path of [
CODEX_ON_DEMAND_DOCKER_E2E_PATH,
+2
View File
@@ -1463,6 +1463,8 @@ describe("scripts/lib/docker-e2e-plan", () => {
expect(lane.timeoutMs).toBe(1_800_000);
expect(plan.needs.bareImage).toBe(true);
expect(plan.needs.package).toBe(true);
expect(plan.requiredPrepublishPluginPackages).toEqual(["@openclaw/codex"]);
expect(plan.needs.prepublishPluginRegistry).toBe(true);
});
it("plans the plugin binding command escape lane as source Docker proof", () => {