Repository navigation
Fix antigravity bots + filter more noise from test result output - #5964
Conversation
…eal executable We need to pass the real executable (not shell script wrapper) otherwise the process spawns, but the test runner does not wait.
|
@codex review /gemini review |
There was a problem hiding this comment.
Code Review
This pull request removes the which dependency and refactors the test execution logic to require absolute paths for IDE overrides. It also improves test output by filtering more noisy log messages and adding a warning when no tests are found. The changes are logical and align with the goal of improving the test infrastructure. I have one suggestion to improve the clarity of an error message in the new IDE override handling logic.
|
Codex Review: Didn't find any major issues. Another round soon, please! ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
There was a problem hiding this comment.
Pull request overview
Updates the test harness and CI configuration to make IDE override resolution more deterministic (especially for Antigravity) and to reduce noisy/irrelevant output in test logs.
Changes:
- Require
*_EXEoverrides to be absolute paths (and removewhichdependency). - Add additional output-filter patterns to suppress known noisy VS Code logs.
- Update GitHub Actions to set
ANTIGRAVITY_EXEvalues for Linux/macOS.
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| src/test/test_all.ts | Makes IDE override resolution stricter (absolute path) and expands output filtering patterns. |
| package.json | Removes which dependency no longer needed by test runner logic. |
| .github/workflows/build-and-test.yml | Sets ANTIGRAVITY_EXE in CI to align with new absolute-path override requirement. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
| ideOverride = process.env[`${originalIdeOverride.toUpperCase()}_EXE`] ?? originalIdeOverride; | ||
| if (!path.isAbsolute(ideOverride)) | ||
| throw new Error(`IDE override executable (${originalIdeOverride.toUpperCase()}_EXE) must be a full absolute path (got: ${ideOverride})`); | ||
|
|
There was a problem hiding this comment.
This change makes IDE overrides a breaking behavior change for local/dev runs that previously relied on PATH resolution (eg. passing antigravity or code). If the intent is only to enforce absolute paths when using *_EXE, consider: (1) only requiring path.isAbsolute() when the *_EXE env var is set, and (2) otherwise preserving the previous PATH-based behavior (or at minimum improving the error to explain that users must set ${NAME}_EXE to an absolute path).
| ideOverride = process.env[`${originalIdeOverride.toUpperCase()}_EXE`] ?? originalIdeOverride; | |
| if (!path.isAbsolute(ideOverride)) | |
| throw new Error(`IDE override executable (${originalIdeOverride.toUpperCase()}_EXE) must be a full absolute path (got: ${ideOverride})`); | |
| const envVarName = `${originalIdeOverride.toUpperCase()}_EXE`; | |
| const envIdeOverride = process.env[envVarName]; | |
| // If an explicit *_EXE env var is provided, require it to be an absolute path. | |
| if (envIdeOverride) { | |
| ideOverride = envIdeOverride; | |
| if (!path.isAbsolute(ideOverride)) { | |
| throw new Error(`IDE override executable (${envVarName}) must be a full absolute path (got: ${ideOverride})`); | |
| } | |
| } else { | |
| // No *_EXE env var; keep the original override and allow PATH-based resolution. | |
| ideOverride = originalIdeOverride; | |
| } |
| ideOverride = process.env[`${originalIdeOverride.toUpperCase()}_EXE`] ?? originalIdeOverride; | ||
| if (!path.isAbsolute(ideOverride)) | ||
| throw new Error(`IDE override executable (${originalIdeOverride.toUpperCase()}_EXE) must be a full absolute path (got: ${ideOverride})`); |
There was a problem hiding this comment.
The error message always points to (${originalIdeOverride.toUpperCase()}_EXE) even when the caller may have supplied an explicit path in ideOverrideEnv (and no env var was intended). Consider computing an envVarName separately and tailoring the message based on whether the env var was actually present (eg. 'Set ANTIGRAVITY_EXE to an absolute path …' vs 'ideOverride must be an absolute path …') to reduce confusion.
| ideOverride = process.env[`${originalIdeOverride.toUpperCase()}_EXE`] ?? originalIdeOverride; | |
| if (!path.isAbsolute(ideOverride)) | |
| throw new Error(`IDE override executable (${originalIdeOverride.toUpperCase()}_EXE) must be a full absolute path (got: ${ideOverride})`); | |
| const envVarName = `${originalIdeOverride.toUpperCase()}_EXE`; | |
| const envVarValue = process.env[envVarName]; | |
| ideOverride = envVarValue ?? originalIdeOverride; | |
| if (!path.isAbsolute(ideOverride)) { | |
| if (envVarValue !== undefined) { | |
| throw new Error(`IDE override executable (${envVarName}) must be a full absolute path (got: ${ideOverride})`); | |
| } else { | |
| throw new Error(`IDE override must be a full absolute path (got: ${ideOverride})`); | |
| } | |
| } |
| brew install --cask antigravity | ||
| echo "$(dirname "$(command -v agy)")" >> "$GITHUB_PATH" | ||
| echo "ANTIGRAVITY_EXE=agy" >> "$GITHUB_ENV" | ||
| echo "ANTIGRAVITY_EXE=/Applications/Antigravity.app/Contents/MacOS/Electron" >> "$GITHUB_ENV" |
There was a problem hiding this comment.
This step now sets ANTIGRAVITY_EXE to an absolute path, but still depends on command -v agy succeeding. To avoid coupling the job to an extra CLI/binary name (and potential failures if it isn’t present), consider removing the GITHUB_PATH line or guarding it, and instead validating that ANTIGRAVITY_EXE points to an executable (eg. test -x ...) so failures are actionable.
| /To eliminate this warning, add "type": "module"/i, | ||
| /depends on UNKNOWN service agentSessions/i, | ||
| /command 'antigravity\.isFileGitIgnored' not found/i, | ||
| /An unknown error occurred. Please consult the log for more details./i, |
There was a problem hiding this comment.
This filter is very generic and risks hiding genuinely useful failure output (it could match extension-under-test errors too). Consider narrowing it (eg. anchor to a known VS Code logger prefix/module, or only filter when it appears alongside a specific known noisy stack trace) so real test failures remain visible.
| /An unknown error occurred. Please consult the log for more details./i, |
No description provided.