[Bug]: Custom Antigravity binary fails with wrapper scripts (.cmd/.bat) due to rigid localharness_external sibling check
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 23k
- Forks
- 5.9k
- Avg merge
- 11h 14m
- Merged PRs (30d)
- 357
Description
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/desktop
Steps to reproduce
- Create a custom wrapper script on Windows (e.g.,
agy-wrapper.cmdor a proxy executable) to wrapagy_acp_server.exe(e.g., to set custom environment variables or isolate temp directories). - Point Antigravity's custom binary path (
binaryPath) to this wrapper. - Observe health check failure:
The custom Antigravity executable or its localharness_external sibling is missing or not executable. - If a placeholder
localharness_external.cmdor copy is placed alongside it, the health check fails or hangs with:
Unavailable · Antigravity could not complete its local health check.
Expected behavior
- T3 Code should allow custom binaries/wrappers without strictly requiring
localharness_external.exeto reside in the exact same directory (e.g., fall back to the managed tool directory forlocalharness_external). - Windows process spawning for ACP should reliably handle standard I/O pipes (stdin/stdout) when invoking
.cmdor proxy executables.
Actual behavior
resolveSiblingExternalBinary checks path.join(path.dirname(binaryPath), "localharness_external" + ext). If missing, it immediately rejects the binary. If present, standard I/O pipe inheritance through Windows cmd.exe /c breaks the ACP JSON-RPC handshake.
Impact
Minor bug or occasional failure
Version or commit
0.0.42 (and main)
Environment
Windows 11 x64, T3 Code Desktop 0.0.42
Logs or stack traces
Not found: The custom Antigravity executable or its localharness_external sibling is missing or not executable.
# Or:
Unavailable: Antigravity could not complete its local health check.
Workaround
Must invoke the raw unpacked agy_acp_server.exe directly from its directory with localharness_external.exe present alongside it; cannot use wrappers or intermediate launchers.
Suggested Fix
- Make
localharness_externalresolution check the bundled/managed tool directory as a fallback whenbinaryPathis a custom path without its ownlocalharness_external. - Ensure stdio options and process spawning on Windows correctly pipe stdio when
binaryPathhas a.cmdor.batextension.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at resolveSiblingExternalBinary and the Windows ACP process-spawning path; trace the custom binary health check with a .cmd/.bat wrapper and the managed tool directory fallback. Done means custom wrappers can locate localharness_external through the fallback and ACP JSON-RPC completes reliably through standard I/O pipes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100