Skip to content

Commit f523620

Browse files
committed
ci: use gpt-5.4 for cross-os release smoke
1 parent 0f16edf commit f523620

7 files changed

Lines changed: 11 additions & 11 deletions

File tree

.github/workflows/openclaw-cross-os-release-checks-reusable.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ env:
176176
PNPM_VERSION: "10.32.1"
177177
OPENCLAW_REPOSITORY: openclaw/openclaw
178178
TSX_VERSION: "4.21.0"
179-
OPENCLAW_CROSS_OS_OPENAI_MODEL: ${{ inputs.openai_model || vars.OPENCLAW_CROSS_OS_OPENAI_MODEL || 'openai/gpt-5.5' }}
179+
OPENCLAW_CROSS_OS_OPENAI_MODEL: ${{ inputs.openai_model || vars.OPENCLAW_CROSS_OS_OPENAI_MODEL || 'openai/gpt-5.4' }}
180180

181181
jobs:
182182
prepare:

.github/workflows/openclaw-release-checks.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ jobs:
333333
candidate_file_name: openclaw-current.tgz
334334
candidate_version: ${{ needs.prepare_release_package.outputs.package_version }}
335335
candidate_source_sha: ${{ needs.prepare_release_package.outputs.source_sha }}
336-
openai_model: openai/gpt-5.5
336+
openai_model: openai/gpt-5.4
337337
secrets:
338338
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
339339
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ Telegraph style. Root rules only. Read scoped `AGENTS.md` before subtree work.
126126

127127
## Tests
128128

129-
- Vitest. Colocated `*.test.ts`; e2e `*.e2e.test.ts`; example models `sonnet-4.6`, `gpt-5.5`; test GPT with 5.5 preferred, 5.4 ok, no GPT-4.x agent-smoke defaults.
129+
- Vitest. Colocated `*.test.ts`; e2e `*.e2e.test.ts`; example models `sonnet-4.6`, `gpt-5.5`; test GPT with 5.5 preferred, 5.4 ok; no GPT-4.x agent-smoke defaults.
130130
- Avoid brittle tests that grep workflow/docs strings for operator policy. Prefer executable behavior, parsed config/schema checks, or live run proof; put release/CI policy reminders in AGENTS/docs instead.
131131
- Clean timers/env/globals/mocks/sockets/temp dirs/module state; `--isolate=false` safe.
132132
- Hot tests: avoid per-test `vi.resetModules()` + heavy imports. Measure with `pnpm test:perf:imports <file>` / `pnpm test:perf:hotspots --limit N`.

docs/ci.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ For the dedicated update and plugin testing policy, including local commands,
239239
Docker lanes, Package Acceptance inputs, release defaults, and failure triage,
240240
see [Testing updates and plugins](/help/testing-updates-plugins).
241241

242-
Release checks call Package Acceptance with `source=artifact`, the prepared release package artifact, `suite_profile=custom`, `docker_lanes='doctor-switch update-channel-switch upgrade-survivor published-upgrade-survivor plugins-offline plugin-update'`, `published_upgrade_survivor_baselines=release-history`, `published_upgrade_survivor_scenarios=reported-issues`, and `telegram_mode=mock-openai`. This keeps package migration, update, stale-plugin-dependency cleanup, offline plugin, plugin-update, and Telegram proof on the same resolved package tarball. Cross-OS release checks still cover OS-specific onboarding, installer, and platform behavior; package/update product validation should start with Package Acceptance. The `published-upgrade-survivor` Docker lane validates one published package baseline per run. In Package Acceptance, the resolved `package-under-test` tarball is always the candidate and `published_upgrade_survivor_baseline` selects the fallback published baseline, defaulting to `openclaw@latest`; failed-lane rerun commands preserve that baseline. Set `published_upgrade_survivor_baselines=release-history` to expand the lane across a deduped history matrix: the latest six stable releases, `2026.4.23`, and the latest stable release before `2026-03-15`. Set `published_upgrade_survivor_scenarios=reported-issues` to expand the same baselines across issue-shaped fixtures for Feishu config, preserved bootstrap/persona files, tilde log paths, and stale legacy plugin dependency roots. The separate `Update Migration` workflow uses the `update-migration` Docker lane with `all-since-2026.4.23` and `plugin-deps-cleanup` when the question is exhaustive published update cleanup, not normal Full Release CI breadth. Local aggregate runs can pass exact package specs with `OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPECS`, keep a single lane with `OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC` such as `openclaw@2026.4.15`, or set `OPENCLAW_UPGRADE_SURVIVOR_SCENARIOS` for the scenario matrix. The published lane configures the baseline with a baked `openclaw config set` command recipe, records recipe steps in `summary.json`, and probes `/healthz`, `/readyz`, plus RPC status after Gateway start. The Windows packaged and installer fresh lanes also verify that an installed package can import a browser-control override from a raw absolute Windows path. The OpenAI cross-OS agent-turn smoke defaults to `OPENCLAW_CROSS_OS_OPENAI_MODEL` when set, otherwise `openai/gpt-5.5`, so the install and gateway proof stays on the preferred GPT-5 test model.
242+
Release checks call Package Acceptance with `source=artifact`, the prepared release package artifact, `suite_profile=custom`, `docker_lanes='doctor-switch update-channel-switch upgrade-survivor published-upgrade-survivor plugins-offline plugin-update'`, `published_upgrade_survivor_baselines=release-history`, `published_upgrade_survivor_scenarios=reported-issues`, and `telegram_mode=mock-openai`. This keeps package migration, update, stale-plugin-dependency cleanup, offline plugin, plugin-update, and Telegram proof on the same resolved package tarball. Cross-OS release checks still cover OS-specific onboarding, installer, and platform behavior; package/update product validation should start with Package Acceptance. The `published-upgrade-survivor` Docker lane validates one published package baseline per run. In Package Acceptance, the resolved `package-under-test` tarball is always the candidate and `published_upgrade_survivor_baseline` selects the fallback published baseline, defaulting to `openclaw@latest`; failed-lane rerun commands preserve that baseline. Set `published_upgrade_survivor_baselines=release-history` to expand the lane across a deduped history matrix: the latest six stable releases, `2026.4.23`, and the latest stable release before `2026-03-15`. Set `published_upgrade_survivor_scenarios=reported-issues` to expand the same baselines across issue-shaped fixtures for Feishu config, preserved bootstrap/persona files, tilde log paths, and stale legacy plugin dependency roots. The separate `Update Migration` workflow uses the `update-migration` Docker lane with `all-since-2026.4.23` and `plugin-deps-cleanup` when the question is exhaustive published update cleanup, not normal Full Release CI breadth. Local aggregate runs can pass exact package specs with `OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPECS`, keep a single lane with `OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC` such as `openclaw@2026.4.15`, or set `OPENCLAW_UPGRADE_SURVIVOR_SCENARIOS` for the scenario matrix. The published lane configures the baseline with a baked `openclaw config set` command recipe, records recipe steps in `summary.json`, and probes `/healthz`, `/readyz`, plus RPC status after Gateway start. The Windows packaged and installer fresh lanes also verify that an installed package can import a browser-control override from a raw absolute Windows path. The OpenAI cross-OS agent-turn smoke defaults to `OPENCLAW_CROSS_OS_OPENAI_MODEL` when set, otherwise `openai/gpt-5.4`, so the install and gateway proof stays on a GPT-5 test model while avoiding GPT-4.x defaults.
243243

244244
### Legacy compatibility windows
245245

docs/reference/RELEASING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ ref once as `release-package-under-test` and reuses that artifact in both
316316
release-path Docker checks and Package Acceptance. This keeps all
317317
package-facing boxes on the same bytes and avoids repeated package builds.
318318
The cross-OS OpenAI install smoke uses `OPENCLAW_CROSS_OS_OPENAI_MODEL` when the
319-
repo/org variable is set, otherwise `openai/gpt-5.5`, because this lane is
319+
repo/org variable is set, otherwise `openai/gpt-5.4`, because this lane is
320320
proving package install, onboarding, gateway startup, and one live agent turn
321321
rather than benchmarking the slowest default model. The broader live provider
322322
matrix remains the place for model-specific coverage.

scripts/openclaw-cross-os-release-checks.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ const providerConfig = {
3939
extensionId: "openai",
4040
secretEnv: "OPENAI_API_KEY",
4141
authChoice: "openai-api-key",
42-
model: "openai/gpt-5.5",
42+
model: "openai/gpt-5.4",
4343
baseUrl: "https://api.openai.com/v1",
4444
timeoutSeconds: 600,
4545
},

test/scripts/openclaw-cross-os-release-checks.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -135,20 +135,20 @@ describe("scripts/openclaw-cross-os-release-checks", () => {
135135
OPENCLAW_CROSS_OS_MODEL: "openai/gpt-5.4-nano",
136136
})?.model,
137137
).toBe("openai/gpt-5.4-nano");
138-
expect(resolveProviderConfig("openai", {})?.model).toBe("openai/gpt-5.5");
138+
expect(resolveProviderConfig("openai", {})?.model).toBe("openai/gpt-5.4");
139139
});
140140

141-
it("keeps release cross-OS OpenAI smoke on GPT-5.5", () => {
141+
it("keeps release cross-OS OpenAI smoke on GPT-5.4", () => {
142142
const workflow = readFileSync(
143143
".github/workflows/openclaw-cross-os-release-checks-reusable.yml",
144144
"utf8",
145145
);
146146
const releaseChecks = readFileSync(".github/workflows/openclaw-release-checks.yml", "utf8");
147147

148148
expect(workflow).toContain(
149-
"OPENCLAW_CROSS_OS_OPENAI_MODEL: ${{ inputs.openai_model || vars.OPENCLAW_CROSS_OS_OPENAI_MODEL || 'openai/gpt-5.5' }}",
149+
"OPENCLAW_CROSS_OS_OPENAI_MODEL: ${{ inputs.openai_model || vars.OPENCLAW_CROSS_OS_OPENAI_MODEL || 'openai/gpt-5.4' }}",
150150
);
151-
expect(releaseChecks).toContain("openai_model: openai/gpt-5.5");
151+
expect(releaseChecks).toContain("openai_model: openai/gpt-5.4");
152152
});
153153

154154
it("keeps release smoke plugin allowlists focused on agent-turn essentials", () => {
@@ -161,7 +161,7 @@ describe("scripts/openclaw-cross-os-release-checks", () => {
161161
expect(allowlist).not.toContain("web-readability");
162162
});
163163

164-
it("keeps cross-OS live smoke agent turns on GPT-5.5-safe timeouts and minimal context", () => {
164+
it("keeps cross-OS live smoke agent turns on GPT-5-safe timeouts and minimal context", () => {
165165
const source = readFileSync("scripts/openclaw-cross-os-release-checks.ts", "utf8");
166166
const providerOverride = "models.providers.${params.providerConfig.extensionId}";
167167

0 commit comments

Comments
 (0)