Repository navigation
fix(runtime): repair OneCLI-backed OpenCode qualification - #838
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
.gitkeepplaceholders that the builder always strips, while retaining real runtime files.Regression cause
After a PTY host restarted, it published output on a new stream ID tied to that host boot. The supervisor inventory still carried the stable launch stream ID. Recovery reconciliation overwrote the live pane's new stream ID with the stale inventory value, so the browser reattached to the wrong output stream. The merge now preserves the live stream for the same terminal; transport attach/change messages remain authoritative, and a different terminal still adopts its projected stream ID.
Additional CI failures fixed
The first Electron build failed on all three operating systems because electron-builder omits
mcp/node_modules/undici/lib/llhttp/.gitkeep, but Freshell's staging receipt incorrectly required that empty dependency placeholder. The runtime stager now skips that name only inside deployed dependency trees. Its regression test confirms the placeholder is absent from the receipt and the realllhttp-wasm.jsfile remains included.The first Rust CI run exposed a parallel-test race: test homes used PID plus wall-clock time as their IDs, so tests could collide and one could remove another test's config before it was read. The IDs now include a monotonic per-process sequence, and the failing test passes both in the full server suite and pre-push checks.
Verification
GCLOUD_ROBOT_REQUIRE=1 FRESHELL_TEST_SUMMARY='OneCLI runtime stream recovery regression' pnpm run verify— passed, including all four Cloud Run Vitest shards, Rust, and Electron.FRESHELL_RUNTIME_OPENCODE_QUALIFICATION_LIVE=1 pnpm run test:e2e:chromium test/e2e-browser/specs/runtime-opencode-provider-qualification-rust.spec.ts— passed against the live managed runtime using the private OneCLI grant files. This qualification is intentionally run on the local live lane because the Cloud Run E2E job does not receive those private files or managed-runtime Docker access.pnpm run test:vitest run test/unit/electron/prepare-electron-runtime.test.ts --config config/vitest/vitest.electron.config.ts— passed (17 tests).pnpm run prepare:electron-runtime,pnpm exec electron-builder --config config/electron-builder.yml, andpnpm run verify:electron-artifact— passed for Linux; artifact receipt/hash validation succeeded and real Undici llhttp runtime files were present.GCLOUD_ROBOT_REQUIRE=1 FRESHELL_TEST_SUMMARY='Rust test fixture isolation' pnpm run test:server— passed (1,175 unit tests, zero failures, plus Rust integration tests).