# Windows shim ACP discovery comparison

Environment: Windows Server 2025, native Grok 1.0.77, Chromium headless, dark theme, 1440 x 1000 viewport. Captures crop the same provider panel to 850 x 740 to omit machine identity. Recordings omit initial page loading; the refresh itself is retained.

Base: 1a12c4afae998925b4a29417f2dc436c0ccd0969
Head: 412a4490cc3f1492052180c078082c6f1ea25a96

The attached scripts are portable copies of the executed drivers, with private checkout and artifact paths parameterized.

1. Install dependencies in separate worktrees at these commits with `vp i`.
2. Install native Grok 1.0.77 and provide its authenticated API-key configuration externally. No credentials are included here.
3. Set `PROOF_GROK_EXE` to the native executable. Copy shim.cmd to a shim directory as grok.cmd, and put that directory first on the server PATH. The shim forwards all arguments to the native executable.
4. Copy web-driver.mjs to the chosen artifact directory as web.mjs. Run setup-driver.ps1 with Side (base or head), Root (that checkout), and ProofDir (the artifact directory). Run it in a Windows process scope that remains alive. It writes matching fresh settings enabling Grok with its default binary path, starts the real server and Vite, and records owned child PIDs. Never reuse a live T3 home.
5. Add the same small empty git project to each server through `node apps/server/src/bin.ts project add --base-dir <test-home> --title "Shim proof" <project-directory>`.
6. Open each startup pairing URL in Chromium once. Save browser storage to `<PROOF_DIR>/<side>-auth.json`. Do not publish those files or pairing URLs.
7. Set PROOF_DIR and T3_CHECKOUT, then run `node capture-driver.cjs base` and `node capture-driver.cjs head`. The driver opens Settings / Providers, selects Grok, refreshes status, waits for refresh completion, and saves a still only after two screenshots 500 ms apart match. Its raw recordings have the original 1440 x 1000 viewport; crop videos to x=416, y=175, width=850, height=740 before publishing.
8. Base reports ACP initialize failed. Head reports Authenticated and richer discovered model metadata.

A marker request was also attempted through each real server with Grok model grok-4.7-build-fast: "Reply with exactly WINDOWS_SHIM_OK. Do not use tools." Head initialization succeeded, but opening the provider session failed because Grok advertises only grok.com auth while T3 configures xai.api_key. Native Grok 1.0.52 was separately checked and advertises the same auth method. No successful marker reply is claimed.

Console-window behavior and graceful owned-process cleanup were not proven. The servers ran outside the interactive desktop. Teardown used captured server process trees, which cannot establish graceful provider cleanup.
