Skip to content

test: validate OpenCode on Windows Docker (DO NOT MERGE) - #2072

Draft
yuezengwu wants to merge 5 commits into
mainfrom
test/opencode-windows-docker-e2e
Draft

test: validate OpenCode on Windows Docker (DO NOT MERGE)#2072
yuezengwu wants to merge 5 commits into
mainfrom
test/opencode-windows-docker-e2e

Conversation

@yuezengwu

@yuezengwu yuezengwu commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Caution

DO NOT MERGE. This is a one-time candidate/evidence PR. It does not authorize a product rollout, change the accepted drain authority, or add a First Tree OpenCode handler.

Outcome

The scoped candidate harness has a technical Windows Docker E2E PASS on exact commit 098221915d2a85452572f52302ba9a686693d86a:

  • GitHub Actions run 30448192602, attempt 1, job 90563618313, completed successfully on Windows Server 2022 with a Windows Docker engine and process isolation.
  • Artifact 8722414068 (opencode-windows-docker-evidence-30448192602-1) contains the allowlisted, redacted machine receipts. Its zip SHA-256 is 3a5d0790728730f4110ef01701503ce7a66503223d324c59740a02558a8a3431.
  • Independent QA downloaded that artifact directly from Actions and passed 223/223 content assertions plus three outer invariants covering exact artifact linkage/digest, exact-head run/steps, and exact-head PR checks.
  • PR CI run 30448193749 is green, including Lint & Type Check, CLI/Server/Client/Web tests, Portable CLI Smoke, migrations, legacy-name guard, CLA, and CodeQL.

Formal First Tree acceptance remains BLOCKED. The current Context Tree requires environment-attributed OS process-tree observation as provider-drain authority and fails closed when that attribution is unreadable. This run proves supervisor-owned Windows Job Object containment and drain, but it does not promote Job membership alone to accepted product authority.

Scope

This PR changes no product source. It adds exactly 15 files under:

  • .github/qa/opencode-windows-docker-e2e/**

and one branch-only workflow:

  • .github/workflows/opencode-windows-docker-e2e.yml

The workflow is intentionally one-time and read-only (contents: read).

What the harness proves

  • Pinned Windows Server Core LTSC 2022 image, Node 24.18.0, and opencode-ai@1.18.7 artifacts.
  • Job-admitted runtime version probe and serial default-database readiness gate.
  • Two concurrent new sessions in distinct workdirs with 6,349 ms process overlap, followed by concurrent explicit session resume with 4,860 ms overlap.
  • Real local OpenAI-compatible provider traffic: eight requests, explicit agent/model, and exactly two arrivals plus two releases for each new/resume barrier.
  • Stdin-only prompts and a real bash tool call that completed with exit 0.
  • Nested launch wrappers admitted to a kill-on-close Windows Job before release.
  • A detached background child remains in the Job after the OpenCode root and wrapper exit, with stable PID/start-time identity.
  • TerminateJobObject, followed by two empty Job scans 542 ms apart.
  • Empty final Job residue and observed local-provider exit.
  • Host and Actions cleanup receipts both PASS: no scoped containers, networks, service image ID, or service image reference remain; the pinned base cache is preserved.
  • Both runner identity receipts are present. The artifact contains exactly eight allowlisted files; provider request bodies and raw evidence are not uploaded.

Attempt history

  • Run 30445128165: image-side static input packaging defect; failed closed and fixed.
  • Run 30445502103 attempt 1: hosted-runner Docker daemon unavailable; environment BLOCKED.
  • Run 30445502103 attempt 2: image build passed; pre-container Compose image lookup defect; failed closed and fixed.
  • Run 30446169336: real runtime reached; process-observer statement-boundary and evidence-lifecycle defects; fail-closed Job/Docker cleanup passed and the defects were fixed.
  • Run 30446820867: complete technical E2E PASS on the pre-formatting parent.
  • Run 30448192602: complete technical E2E PASS on the final exact head after the scoped Biome-only follow-up.

Boundaries

The executed platform is Windows Server 2022 x64 build 20348.5386, Docker 29.1.5, Windows process isolation, with a synthetic local provider. Hyper-V isolation was configuration-rendered only. Windows arm64 and a First Tree product OpenCode handler E2E are outside this result.

Keep this PR in draft and do not merge, release, or enable an OpenCode Windows feature gate. Any production acceptance must either satisfy the existing environment-attributed process-tree rule or change that durable decision through its owner-reviewed Context Tree workflow.

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.

1 participant