Committed operations artifact

OpenClaw 2026.7.1 recovery game-day evidence

This stable built route renders the committed, redacted evidence artifact verbatim. It is not a production claim, and the manual restore limitation remains part of the record.

# OpenClaw 2026.7.1 isolated recovery game-day

Status: PASS with one pinned-CLI limitation

Scope: disposable task-local sandbox only. No `~/.openclaw`, shared profiles, existing gateways, production, DNS, Cloudflare, real credentials, or outbound channel integrations were touched. The sandbox used fake token auth and Node 22.23.1 in Docker.

## Package identity

- Registry lookup: `openclaw@2026.7.1`
- Registry tarball: `https://registry.npmjs.org/openclaw/-/openclaw-2026.7.1.tgz`
- Registry integrity: `sha512-ge/Xss99CHAjPL/ikmH/UFoiOrjcxDB4sW3y9mhyCD+dYW3wzV7TKbAVdkrXFgAG2d2BjpJofP97zUZ+umxo8g==`
- Downloaded tarball SHA-512 (base64): `ge/Xss99CHAjPL/ikmH/UFoiOrjcxDB4sW3y9mhyCD+dYW3wzV7TKbAVdkrXFgAG2d2BjpJofP97zUZ+umxo8g==` — matches registry integrity.
- Real binary output: `OpenClaw 2026.7.1 (2d2ddc4)`
- Local install: `.recovery-gameday-final/runtime` (not global)

## Game-day results

1. Synthetic setup completed with local mode, loopback bind, port `19777`, fake token auth, workspace `/sandbox/home/workspace`, and no daemon/channels.
2. Known-good marker `KNOWN-GOOD-STATE-v1` created in the synthetic workspace.
3. Real CLI backup:
   - Archive: `.recovery-gameday-final/backups/known-good.tar.gz`
   - `openclaw backup create --output /sandbox/backups/known-good.tar.gz --verify --json`
   - Output: `verified: true`, `assetCount: 2`, `entryCount: 22`.
4. Bounded bad mutation:
   - Invalid JSON type rejected with rc `1`: `Config validation failed: gateway.port: Invalid input: expected number, received string`.
   - Valid mutation changed `gateway.port` to `19778` and wrote marker `BAD-STATE-RECOVERY-MARKER`.
   - `openclaw backup verify` still returned `ok: true`, runtimeVersion `2026.7.1`.
5. Restore semantics checked against the exact pinned binary:
   - `openclaw backup restore ... --yes --json` returned rc `1`: `OpenClaw does not know the command "restore".`
   - The bundled `docs/cli/backup.md` documents create/verify only; bundled refactor notes mention a restore command that is not registered by this published CLI.
   - Adapted rollback without fabrication: verified the archive first, extracted its manifest-declared `payload/posix/sandbox/home/{.openclaw,workspace}` into a staging directory, quarantined the mutated directories, and replaced them from the archive.
6. Post-restore proof:
   - Restored config gateway port: `19777`.
   - Restored marker: `KNOWN-GOOD-STATE-v1`.
   - Restored config byte-compared equal to the archive payload (`config_archive_cmp=0`).
   - `config validate --json`: `{"valid":true,...,"warnings":[]}`.
   - `backup verify --json`: `ok: true`, runtimeVersion `2026.7.1`, `assetCount: 2`, `entryCount: 22`.
   - Gateway health: `ok: true`; loaded 8 plugins; plugin errors `[]`; config reload `active`.
   - `doctor --lint --json --all --severity-min error`: `ok: true`, `checksRun: 51`, `findings: []`.
   - `security audit --json`: `critical: 0`, `warn: 1` (expected loopback deployment warning: no trusted proxy list), `secretDiagnostics: []`.
7. Disposable gateway container removed; final port check showed no listener on `19777` or `19778`.

## Receipts

The raw command receipts, gateway log, verified archive, and staging/quarantine directories were kept under `.recovery-gameday-final/` during execution and removed after verification because they were disposable and contained synthetic state. This committed document is the durable redacted evidence artifact; its package integrity, command results, rollback comparison, and health results above are the retained receipt.

Limitation: exact `2026.7.1` package exposes no `backup restore` subcommand despite bundled refactor prose describing one. The fallback used only the verified archive manifest/layout and was exercised entirely against disposable paths.