Skip to content

feat(kiloclaw): update OpenClaw to 2026.5.22 with live smoke#3502

Merged
pandemicsyn merged 10 commits into
mainfrom
test/kiloclaw-live-auto-free-smoke
May 28, 2026
Merged

feat(kiloclaw): update OpenClaw to 2026.5.22 with live smoke#3502
pandemicsyn merged 10 commits into
mainfrom
test/kiloclaw-live-auto-free-smoke

Conversation

@pandemicsyn
Copy link
Copy Markdown
Contributor

@pandemicsyn pandemicsyn commented May 26, 2026

Summary

  • Upgrade the packaged KiloClaw image from OpenClaw 2026.4.23 to 2026.5.22, align bundled Kilo Chat and Morning Briefing plugin dependencies, and add the user-facing release note.
  • Adapt the existing KiloCode model-discovery timeout patch for OpenClaw 2026.5.22: target only the KiloCode provider-models chunk because the newer release also contains a distinct DeepInfra discovery timeout.
  • Add an opt-in live packaged-image smoke that boots the controller/gateway, validates openclaw config validate --json, loads packaged Kilo Chat, inspects Kilo Chat plugin diagnostics, serves the proxied Control UI, and completes a real non-sensitive Auto Free turn through Kilo Gateway.
  • Add an upgrade wrapper that builds refreshed origin/main and committed HEAD in isolated worktrees, reuses persisted /root across image replacement, executes the candidate's doctor/config-migration startup path, and asserts both installed OpenClaw versions.
  • Harden live execution by binding the temporary controller to loopback, generating the controller/proxy token by default, suppressing potentially credential-bearing failure output, and relying on a semantic live Kilo Chat route probe across OpenClaw inspection behavior changes.
  • Add a repository-local kiloclaw-openclaw-upgrade skill and validation checklist so future OpenClaw bumps repeat the persisted-root live checks, diagnostics review, bundle-patch investigation, and credential-safe reporting workflow.

Verification

  • Manually built the checked-in candidate image with OpenClaw 2026.5.22; the build confirmed the installed version and the scoped KiloCode discovery-timeout patch.
  • Manually ran persisted-root upgrade validation from refreshed-main OpenClaw 2026.4.23 to the checked-in 2026.5.22 candidate image. Both phases passed installed-version checks, openclaw config validate --json, controller/gateway readiness, proxied Control UI loading, packaged Kilo Chat loading and live webhook routing, and real Auto Free turns through Kilo Gateway (20 passed, 0 failed).
  • After merging latest origin/main, reran the official persisted-root upgrade wrapper with diagnostic-aware smoke coverage. The baseline reported no Kilo Chat diagnostics; the 2026.5.22 candidate surfaced the known cosmetic channelConfigs warning; all functional checks passed (22 passed, 0 failed). Any additional or changed Kilo Chat diagnostic now fails the smoke.
  • Manually validated the live-smoke tooling before the bump with a direct candidate run and wrapper-mechanics run; both exercised real Auto Free turns and persisted-root replacement.
  • Posted a credential-safe sample live upgrade transcript in the PR discussion: feat(kiloclaw): update OpenClaw to 2026.5.22 with live smoke #3502 (comment)
  • Manually deployed a new instance and confirmed it came online, models could be changed, Telegram pairing completed, Telegram messaging worked end-to-end, and openclaw doctor reported no functional issues.

Visual Changes

N/A

Reviewer Notes

  • The live smoke is intentionally manual/opt-in rather than a CI or image-promotion gate because it requires a live Kilo credential and Auto Free candidate availability can be transient.
  • The smoke sends only a generated nonce prompt; no sensitive prompt content is sent through free upstream providers. Credential values and raw failure output are not printed by the script.
  • pnpm-workspace.yaml exempts openclaw from the dependency minimum-release-age rule because KiloClaw runtime images pin and explicitly live-smoke-test release candidates before rollout; this keeps plugin compile-time dependencies aligned with the validated image version.
  • OpenClaw 2026.5.22 reports Kilo Chat as loaded in plugins inspect but does not report the runtime route count from that standalone command. The semantic webhook request remains the authoritative no-side-effect proof that the live Kilo Chat handler is registered.
  • openclaw plugins inspect kilo-chat --json is now parsed by the smoke test for diagnostics. The exact warning below is surfaced and temporarily allowed because it is cosmetic for the validated flow; any other Kilo Chat diagnostic fails smoke validation.
  • openclaw doctor emits the same Kilo Chat diagnostic warning. This is non-blocking for the deployed KiloClaw flow validated here: Kilo Chat loads and its live route works, including end-to-end Telegram communication. Adding optional manifest metadata for OpenClaw setup/schema surfaces can be handled separately.
◇  Plugin diagnostics ───────────────────────────────────────────────────────╮
│                                                                            │
│  - WARN kilo-chat: channel plugin manifest declares kilo-chat without      │
│    channelConfigs metadata; add openclaw.plugin.json#channelConfigs so     │
│    config schema and setup surfaces work before runtime loads. Channels    │
│    without channelConfigs still appear in channel listings, but setup      │
│    UI may be limited.                                                      │
│    (/usr/local/lib/node_modules/@kiloclaw/kilo-chat/openclaw.plugin.json)  │
│                                                                            │
├────────────────────────────────────────────────────────────────────────────╯

@pandemicsyn
Copy link
Copy Markdown
Contributor Author

Sample live upgrade smoke run: OpenClaw 2026.4.23 -> 2026.5.22

Captured from a disposable prospective 2026.5.22 candidate image. Sensitive setup details are intentionally omitted: this transcript includes no API key, organization ID, proxy/gateway token, raw provider payload, or container logs.

The 2026.5.22 candidate used the required Dockerfile adaptation identified during testing: the existing discovery-timeout patch was scoped to the KiloCode provider-models chunk because 2026.5.22 also contains an independent DeepInfra timeout occurrence.

IMAGE_BEFORE=kiloclaw:release-check-before-2026.4.23 \
IMAGE_AFTER=kiloclaw:release-check-after-2026.5.22 \
EXPECTED_VERSION_BEFORE=2026.4.23 \
EXPECTED_VERSION_AFTER=2026.5.22 \
bash services/kiloclaw/scripts/controller-live-provider-smoke-test.sh --upgrade
Model under test: kilocode/kilo-auto/free

=== before-image: kiloclaw:release-check-before-2026.4.23 ===
PASS: OpenClaw version (got 2026.4.23)
PASS: OpenClaw config validate (got valid)
PASS: gateway status (bearer auth) -> 200 (got 200)
PASS: proxied Control UI HTML (got ready)
PASS: configured live smoke model (got kilocode/kilo-auto/free)
PASS: kilo-chat config patched (got ok)
PASS: kilo-chat plugin inspect (got loaded)
PASS: kilo-chat webhook unknown event -> 400 (got 400)
PASS: kilo-chat webhook error body (got Unknown webhook type)
PASS: live Auto Free agent turn (got nonce returned)

=== after-image persisted-root: kiloclaw:release-check-after-2026.5.22 ===
PASS: OpenClaw version (got 2026.5.22)
PASS: OpenClaw config validate (got valid)
PASS: gateway status (bearer auth) -> 200 (got 200)
PASS: proxied Control UI HTML (got ready)
PASS: configured live smoke model (got kilocode/kilo-auto/free)
PASS: kilo-chat config patched (got ok)
PASS: kilo-chat plugin inspect (got loaded)
PASS: kilo-chat webhook unknown event -> 400 (got 400)
PASS: kilo-chat webhook error body (got Unknown webhook type)
PASS: live Auto Free agent turn (got nonce returned)

=== Results: 20 passed, 0 failed ===

This demonstrates persisted-root replacement compatibility, candidate doctor-path startup, explicit config validation, packaged Kilo Chat routing, Control UI proxying, and a real non-sensitive Auto Free turn through Kilo Gateway.

@pandemicsyn pandemicsyn changed the title test(kiloclaw): add live Auto Free image smoke feat(kiloclaw): update OpenClaw to 2026.5.22 with live smoke May 28, 2026
@pandemicsyn
Copy link
Copy Markdown
Contributor Author

Ok updated version with plugin diagnostics:

Credential source: local Kilo CLI config
Model under test: kilocode/kilo-auto/free
Organization scope: configured
=== before-image: kiloclaw:release-check-before-2026.4.23 ===
waiting for before-image controller on port 19116 ...
  [1] waiting...
  [2] state=bootstrapping
  ready after 3s
PASS: OpenClaw version (got 2026.4.23)
PASS: OpenClaw config validate (got valid)
PASS: gateway status (bearer auth) -> 200 (got 200)
PASS: proxied Control UI HTML (got ready)
PASS: configured live smoke model (got kilocode/kilo-auto/free)
--- kilo-chat plugin ---
PASS: kilo-chat config patched (got ok)
PASS: kilo-chat plugin inspect (got loaded)
PASS: kilo-chat plugin diagnostics (got none)
PASS: kilo-chat webhook unknown event -> 400 (got 400)
PASS: kilo-chat webhook error body (got Unknown webhook type)
--- live Auto Free agent turn ---
PASS: live Auto Free agent turn (got nonce returned)
=== after-image persisted-root: kiloclaw:official-bump-after-2026.5.22 ===
waiting for after-image persisted-root controller on port 19116 ...
  [1] waiting...
  [2] state=bootstrapping
  ready after 3s
PASS: OpenClaw version (got 2026.5.22)
PASS: OpenClaw config validate (got valid)
PASS: gateway status (bearer auth) -> 200 (got 200)
PASS: proxied Control UI HTML (got ready)
PASS: configured live smoke model (got kilocode/kilo-auto/free)
--- kilo-chat plugin ---
PASS: kilo-chat config patched (got ok)
PASS: kilo-chat plugin inspect (got loaded)
WARN: kilo-chat plugin diagnostic: missing channelConfigs metadata (known cosmetic warning)
PASS: kilo-chat plugin diagnostics (got known cosmetic warning)
PASS: kilo-chat webhook unknown event -> 400 (got 400)
PASS: kilo-chat webhook error body (got Unknown webhook type)
--- live Auto Free agent turn ---
PASS: live Auto Free agent turn (got nonce returned)
=== Results: 22 passed, 0 failed ===

…to-free-smoke

# Conflicts:
#	apps/web/src/app/(app)/claw/components/changelog-data.ts
#	pnpm-lock.yaml
@pandemicsyn pandemicsyn marked this pull request as ready for review May 28, 2026 17:41
@kilo-code-bot
Copy link
Copy Markdown
Contributor

kilo-code-bot Bot commented May 28, 2026

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Executive Summary

The previously flagged bash -n multi-file syntax-check issue has been fixed in the latest commit (53ec380) by splitting into three separate bash -n invocations, one per script. No new issues were found in the incremental diff.

Files Reviewed (1 file changed since last review)
  • .agents/skills/kiloclaw-openclaw-upgrade/reference/validation-checklist.md — previous WARNING resolved
Previously Reviewed Files (no changes)
  • .agents/skills/kiloclaw-openclaw-upgrade/SKILL.md — no issues
  • apps/web/src/app/(app)/claw/components/changelog-data.ts — no issues
  • pnpm-workspace.yaml — no issues
  • services/kiloclaw/DEVELOPMENT.md — no issues
  • services/kiloclaw/Dockerfile — no issues
  • services/kiloclaw/e2e/docker-image-testing.md — no issues
  • services/kiloclaw/plugins/kilo-chat/package.json — no issues
  • services/kiloclaw/plugins/kiloclaw-morning-briefing/package.json — no issues
  • services/kiloclaw/scripts/controller-live-provider-smoke-test.sh — no issues
  • services/kiloclaw/scripts/controller-openclaw-upgrade-smoke-test.sh — no issues
  • services/kiloclaw/scripts/controller-smoke-helpers.sh — no issues

Reviewed by claude-4.6-sonnet-20260217 · 147,255 tokens

Review guidance: REVIEW.md from base branch main

@pandemicsyn pandemicsyn merged commit d9f88f8 into main May 28, 2026
54 checks passed
@pandemicsyn pandemicsyn deleted the test/kiloclaw-live-auto-free-smoke branch May 28, 2026 19:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants