First Agent Smoke
Human verified
A human reviewed this page, but it may be out of date. Later edits may not have been reviewed.
Overview
First Agent Smoke installs the Kubernetes platform from images built from the checkout and exercises embedded OpenClaw and dedicated Codex Agents. It uses a simulated model provider, so it tests deployment, chat, logs, and stop/start without proving access to a real model service.
Trigger
This is a job in the CI workflow, selected when CI Impact chooses full mode.
Documentation-only and recognized test-only changes skip it. CI also runs on
main pushes, merge groups, and manual dispatch.
In hosted CI, the job reuses the same verified runtime artifact as the four ordinary image lanes. It adds test trust to the runtime and pushes that image and the controller to its existing local registry. The simulated provider uses the pinned Node base, copies the WebSocket package from the verified runtime, and loads into the job's Docker engine. All installation, chat and lifecycle checks still run. See shared runtime images for artifact verification and rerun behavior.
The job is outside CI Required, so its failure does not fail that merge gate.
A failed main-push CI workflow can still block container and CLI publication,
which require successful CI for their source.
Scenarios
The smoke script owns these checks; it does not use a suite manifest.
| Setup and action | Expected outcome | Source |
|---|---|---|
| Build the checkout images and run Kubernetes-only Local Setup. | Installation becomes available with the selected images. | Smoke script: buildImages and startLocalSetup. |
| Create an embedded OpenClaw Agent and a dedicated Codex Agent; send chat requests. | Both Agents return the expected simulated-provider response. | First-Agent helper and smoke script: chatTurn. |
| Read gateway logs and dedicated Agent logs through the CLI. | occ agent logs returns nonempty logs for the selected sources. |
Smoke script: readLogs. |
| Withdraw public Git reader access and deploy a revision without that access. | The old workload and policy are removed and open connections close. The retired revision and the successor without reader access make no further reads; the control Agent retains access. | Smoke script: proveRetirement. |
| Stop and start both Agents, then chat again. | Stopped Pods terminate, starting the Agents creates new revisions, and both chat turns succeed. | Smoke script: stopAgent, deployAgent, and chatTurn. |
Execution
Use the CI job on a code/configuration change for a hosted run. For local reproduction, use a disposable host with the workflow's Docker, Kubernetes, Helm, Go, and Node tooling. The script uses named containers, a local registry, and a disposable cluster; select a distinct smoke slot and directories before concurrent runs. It needs no real model credentials.
From the repository root:
pnpm cli:buildnode scripts/ci/first-agent-smoke.mjs imagesnode scripts/ci/first-agent-smoke.mjs runThe second command builds images; run requires those build results. Do not
substitute a production cluster for the script's disposable installation.
Cold runtime source builds have a 180-minute command budget, matching native runtime assembly. Node compilation alone has exceeded the former 40-minute limit. The protected prepared-Git job allows 240 minutes for image builds and its installed proof. Controller-only builds and artifact-backed bake calls retain 40 minutes; the ordinary artifact-backed smoke job also stays at 40 minutes. These are cancellation bounds, not predicted durations or an explanation for runner losses.
Local isolation
Keep the same directory and slot for images and run. Only a distinct slot
isolates host-wide names; changing the directory alone does not.
| Setting | Default | Purpose |
|---|---|---|
OCC_FIRST_AGENT_SMOKE_DIRECTORY |
$RUNNER_TEMP/first-agent-smoke, or /tmp/first-agent-smoke |
Images, certificates, and Local Setup state. |
OCC_FIRST_AGENT_SMOKE_SLOT |
0 |
0–31; selects distinct cluster, registry, and model names, port, and subnet. Also vary development ports. |
Results and limits
Inspect the Build checkout images and Install, deploy, chat, stop and start steps. The script prints named stages, timing, assertions, and failure diagnostics. An image build alone is not a passing lifecycle check. Verify that the run completes, including cleanup, before reporting success.
For tests with real model providers and browser interaction, use QA Matrix Advisory. A skipped job does not verify the installed Agent workflow.
Files
- CI workflow: job eligibility, runner, tools, and execution steps.
- Smoke script: installation, lifecycle, reader isolation, diagnostics, and cleanup.
- First-Agent helper: embedded Agent workflow.
- Local Setup: installation entry point used by the CLI.
