fix(ci): oasdiff has no version subcommand — the breaking-change gate has been dead since Aug 19 - #61
Conversation
…te has been dead since Aug 19 Closes #60. `foundation-gate / breaking-change` is a REQUIRED check on main and it has failed on EVERY PR since 2026-08-19 — not on the API diff, but on the line that verifies the install: oasdiff_1.28.0_linux_amd64.tar.gz: OK Error: unknown command "version" for "oasdiff" ##[error]Process completed with exit code 100. The download and checksum both pass; the job then exits 100 before diffing a single spec. WHY THAT IS WORSE THAN THE GATE BEING OFF. It is not finding a breaking change and it is not clearing one either — it dies during setup while showing RED on every PR, which reads as "this PR breaks the API". Nobody currently knows whether the API surface drifted in the four-day window, because nothing has compared two specs since Aug 19. VERIFIED, NOT GUESSED. Downloaded the real v1.28.0 binary and ran the candidates rather than assuming which one cobra exposes: oasdiff version -> exit 100 (reproduces the CI failure exactly) oasdiff --version -> exit 0 ("oasdiff version 1.28.0") oasdiff --help -> exit 0 Exit 100 matching the CI code is what makes this a reproduction rather than a plausible story. `--version` is kept over `--help` because it still proves the binary RUNS and reports the expected version — an install check that only proves a file exists is the weaker one. A first attempt to probe this measured nothing and looked like an answer: the darwin asset is named `darwin_all`, not `darwin_arm64`, so the download 404'd and every candidate returned exit 127 uniformly. A broken probe returning the same result for every input is not evidence. PRE-EXISTING, and this PR does not depend on it. Run history, most recent first: failure 2026-08-23T22:39 ci/adopt-inline-pr-agent failure 2026-08-23T04:00 renovate/redocly-cli-2.x failure 2026-08-19T20:30 renovate/redocly-cli-2.x success 2026-08-19T20:29 main <- last green failure 2026-08-19T17:07 feat/identity-resolve Three unrelated branches including a Renovate bot PR. THE FIRST GREEN RUN IS THE RECEIPT, not this diff — the gate has not compared two specs in four days, so its next pass is also the first real statement about the API surface since then. Unblocks #59 (the wave-pen#388 pr-agent fan-out) without needing an admin override on a required check. Closes #60 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
🤖 CodeAnt AI — Review Status
|
Reviewer's guide (collapsed on small PRs)Reviewer's GuideFixes the Sequence diagram for the repaired breaking-change CI gatesequenceDiagram
participant CI as foundation-gate
participant Binary as oasdiff v1.28.0
participant Specs as OpenAPI specs
CI->>Binary: --version
Binary-->>CI: exit 0
CI->>Binary: breaking --fail-on ERR
Binary->>Specs: Compare base and PR specs
Specs-->>Binary: API differences
Binary-->>CI: Breaking-change result
File-Level Changes
Assessment against linked issues
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_59a91f94-f4f3-4410-8287-c127b53155b0) |
|
Warning Review limit reachedNext included review available in 4 minutes. View limit detailsLimit details: You’ve used the included review currently available. Your 91 included PR review attempts over the past 7 days set your current allowance at 1 review per hour. Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Comment |
ApprovabilityVerdict: Would Approve Macroscope's review found this PR approvable — This is a one-line, self-contained CI fix that replaces an unsupported oasdiff command with the supported version flag. It restores the existing breaking-change check without changing production code, API schemas, deployment behavior, or security-sensitive logic. Not approved because:
Review your spending limits in Billing settings. You can add or adjust custom eligibility rules. Learn more. |
|
Note Automatic reviews are paused because your team has used its included automatic processing for this billing period (headroom scales with your seat count). You can still comment "Gitar review" to run one anytime, and automatic reviews resume on their own by September 1. Add seats for more headroom. Code Review ✅ ApprovedReplaces the invalid oasdiff version subcommand with OptionsDisplay: compact → Showing less information. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |
PR Summary by QodoFix foundation-gate by probing oasdiff with --version (no version subcommand)
AI Description
Diagram
High-Level Assessment
Files changed (1)
|
Code Review by Qodo🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)
Great, no issues found!Qodo reviewed your code and found no material issues that require reviewTip of the day💡 Did you know, you can switch off images and animations for a plain-text comment |
Qodo FixerNo findings are available for this PR yet. Findings appear here once Qodo has reviewed the PR. |
User description
Closes #60.
foundation-gate / breaking-changeis a required check onmain, and it has failed on every PR since 2026-08-19 — not on the API diff, but on the line that verifies the install:Download and checksum both pass. The job then exits 100 before diffing a single spec.
Why that is worse than the gate being off
It is not finding a breaking change and not clearing one either — it dies during setup while showing red on every PR, which reads as "this PR breaks the API". And nobody currently knows whether the API surface drifted in the four-day window, because nothing has compared two specs since Aug 19.
Verified, not guessed
Downloaded the real v1.28.0 binary and ran the candidates rather than assuming which one cobra exposes:
oasdiff versionoasdiff --versionoasdiff version 1.28.0oasdiff --helpExit 100 matching the CI code is what makes this a reproduction rather than a plausible story.
--versionis kept over--helpbecause it still proves the binary runs and reports the expected version. An install check that only proves a file exists is the weaker one.One honest note on the probe
My first attempt measured nothing and looked like an answer: the darwin asset is named
darwin_all, notdarwin_arm64, so the download 404'd and every candidate returned exit 127 uniformly. A probe returning the same result for every input is not evidence — worth stating, since the table above is the whole basis for the fix.Pre-existing, and this PR does not depend on it
Three unrelated branches, including a Renovate bot PR.
The receipt is the first green run, not this diff
The gate has not compared two specs in four days, so its next pass is also the first real statement about the API surface since then. Read it as such.
Unblocks #59 (the wave-av/wave-pen#388 pr-agent fan-out) without needing an admin override on a required check — which is why this is worth fixing rather than forcing past.
Closes #60
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Note
Low Risk
One-line CI smoke-check change; no spec, auth, or runtime behavior is modified. The next green run is the first real API-diff result since the gate has been stuck on install.
Overview
Fixes the required
breaking-changejob, which has been failing on every PR during install becauseoasdiff versionis not a valid subcommand in v1.28.0 (exit 100). The install smoke check now usesoasdiff --version, so the job can actually compare specs instead of dying before the diff.Reviewed by Cursor Bugbot for commit b0d0381. Bugbot is set up for automated code reviews on this repo. Configure here.
Summary by Sourcery
Restore the breaking-change CI gate by replacing the invalid oasdiff version subcommand with a supported version check.
Bug Fixes:
CI:
CodeAnt-AI Description
Restore the API breaking-change check in pull requests
What Changed
oasdiffinstallation using its supported version option.Impact
✅ API compatibility checks run again✅ Fewer false-red pull requests✅ Breaking API changes are detected before merge💡 Usage Guide
Checking Your Pull Request
Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.
Talking to CodeAnt AI
Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:
This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.
Example
Preserve Org Learnings with CodeAnt
You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:
This helps CodeAnt AI learn and adapt to your team's coding style and standards.
Example
Retrigger review
Ask CodeAnt AI to review the PR again, by typing:
Check Your Repository Health
To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.