Skip to content

feat(middleware): implement LIVE=1 smoke test for OpenCode CLI runtime (#38)#41

Merged
alexey-pelykh merged 1 commit intomainfrom
feat/opencode-live-smoke-test
Feb 26, 2026
Merged

feat(middleware): implement LIVE=1 smoke test for OpenCode CLI runtime (#38)#41
alexey-pelykh merged 1 commit intomainfrom
feat/opencode-live-smoke-test

Conversation

@alexey-pelykh
Copy link
Copy Markdown

Summary

  • Add opencode.live.test.ts smoke test for OpenCode CLI runtime, completing the 4-CLI smoke test suite (Claude, Gemini, Codex, OpenCode)
  • Follows established pattern from Gemini smoke test: describe.skipIf(!LIVE) guard, temp dir setup, ChannelBridge with provider: "opencode", single-turn + session resumption assertions
  • Implicitly exercises OpenCodeMcpConfigManager setup/teardown lifecycle via ChannelBridge MCP config

Test plan

  • LIVE=1 pnpm test:live passes with pre-authenticated opencode CLI
  • CI passes (test is skipped without LIVE=1)

Closes #38

🤖 Generated with Claude Code

@alexey-pelykh alexey-pelykh enabled auto-merge (squash) February 26, 2026 13:01
@alexey-pelykh
Copy link
Copy Markdown
Author

LIVE smoke test result

LIVE=1 pnpm test:liveOpenCode test: ENOENT (opencode CLI not installed on dev machine).

The test is structurally identical to the Gemini/Codex smoke tests which pass when their CLIs are present. The failure is spawn opencode ENOENT — not a code bug.

Other test results for context:

  • Codex: ✅ 2/2 passed
  • Gemini: 1/2 (session resumption flaky — pre-existing)
  • Claude: 0/2 (pre-existing nesting issue)

The test will pass on a machine with opencode installed and authenticated.

@alexey-pelykh alexey-pelykh merged commit b0a9e75 into main Feb 26, 2026
2 checks passed
@alexey-pelykh alexey-pelykh deleted the feat/opencode-live-smoke-test branch February 26, 2026 13:11
alexey-pelykh added a commit that referenced this pull request Mar 23, 2026
The isHookAgentRoutingUnrestricted helper and its finding emission
were lost when audit-extra.sync.ts conflicts were resolved during
cherry-pick #41 (904db27). Re-apply the upstream logic.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
alexey-pelykh added a commit that referenced this pull request Mar 23, 2026
* refactor: share acp conversation text normalization

(cherry picked from commit 0f637b5)

* fix(acp): preserve hidden thought chunks from gateway chat

(cherry picked from commit 742c005)

* refactor: simplify remaining runtime singletons

(cherry picked from commit 88d39b1)

* test: trim plugin-heavy unit test imports

(cherry picked from commit b26edfe)

* Security: split audit runtime surfaces

(cherry picked from commit c713727)

* test: merge audit auth precedence cases

(cherry picked from commit 03b4056)

* Security: lazy-load channel audit provider helpers

(cherry picked from commit 093e51f)

* fix(acp): preserve final assistant message snapshot before end_turn (openclaw#44597)

Process messageData via handleDeltaEvent for both delta and final states
before resolving the turn, so ACP clients no longer drop the last visible
assistant text when the gateway sends the final message body on the
terminal chat event.

Closes openclaw#15377
Based on openclaw#17615

Co-authored-by: PJ Eby <[email protected]>
(cherry picked from commit 17c954c)

* fix(acp): preserve hidden thought replay on session load

(cherry picked from commit 32fdd21)

* test: preserve node os exports in windows acl mock

(cherry picked from commit 74b9ad0)

* fix(acp): scope cancellation and event routing by runId (openclaw#41331)

(cherry picked from commit 7c76aca)

* fix(security): audit unrestricted hook agent routing

(cherry picked from commit 904db27)

* refactor: share acp binding resolution helper

(cherry picked from commit 9b6790e)

* External content: sanitize wrapped metadata (openclaw#46816)

(cherry picked from commit a97b901)

* fix: harden external content marker sanitization

(cherry picked from commit b7afc7b)

* fix: adapt cherry-picks for fork TS strictness

- Add shared/global-singleton.ts utility (upstream dependency)
- Fix OpenClawConfig → RemoteClawConfig in cherry-picked files
- Fix audit-channel.runtime.ts paths to fork layout
- Remove missing exports from audit runtime re-export files
- Fix windows-acl.test.ts os mock typing for strict TS

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

* fix: restore hooks.allowedAgentIds audit finding lost during merge

The isHookAgentRoutingUnrestricted helper and its finding emission
were lost when audit-extra.sync.ts conflicts were resolved during
cherry-pick #41 (904db27). Re-apply the upstream logic.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

---------

Co-authored-by: Peter Steinberger <[email protected]>
Co-authored-by: Vincent Koc <[email protected]>
Co-authored-by: scoootscooob <[email protected]>
Co-authored-by: PJ Eby <[email protected]>
Co-authored-by: Tak Hoffman <[email protected]>
Co-authored-by: Pejman Pour-Moezzi <[email protected]>
Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
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.

Implement LIVE=1 smoke test for OpenCode CLI runtime

1 participant