ci(spec-sync): read the V2 spec from aide's S3 publish, not the gateway - #172
Merged
Merged
Conversation
aide is narrowing each gateway's public /openapi.json to the documented subset (no aliases, no undocumented routes such as v2 workflow and v2 build-schema). The SDK tracks the full customer surface, which aide's publish-openapi.yml already uploads from release/staging to public S3. Byte-identical to aide.staging.landing.ai/openapi.json today, so this switch draws no drift on its own. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
V2 still treats an S3 404 as a successful skip, allowing drift detection to stop without an alert.
Review effort: Balanced
Findings: 1
Open (1)
What changed in this PR
Switches V2 spec synchronization to aide’s S3-published spec before gateways narrow their OpenAPI output.
Changes:
- Points V2 drift detection at the staging S3 artifact; leaves V1 unchanged.
- Updates comments and contributor documentation to explain the source.
| File | Description |
|---|---|
| CONTRIBUTING.md | Documents the V2 S3 source. |
| .github/workflows/spec-sync.yml | Changes V2_SPEC_URL and explains source selection. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
The exit-20 no-op exists because an unbooked staging cluster 404s. The V2 source is now a published S3 artifact that does not go away with staging, so a 404 there means a broken publish, and skipping it silently would stop V2 drift detection. V1 keeps its skip. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Why
aide is about to narrow each gateway's public
/openapi.jsonto the documented subset — the documented spellings only, no aliases, and no undocumented routes such as/v2/workflow,/v2/extract/build-schemaor/v1/classify/jobs.specs/v2-aide.jsontracks the full customer surface (the SDK already ships a v2build_schemaresource), so reading the gateway after that change would report those routes as removed.What
V2_SPEC_URL→https://ade-specs.s3.amazonaws.com/v2/staging/openapi.json, which aide'spublish-openapi.ymlgenerates offline fromrelease/staging(dump_openapi.py --mode explicit) and uploads on every staging push. The header comment there already names the SDK spec-sync as its consumer.Checked today: the S3 object and
aide.staging.landing.ai/openapi.jsonare identical afterjq -S, so this switch draws no drift by itself. Side effect: the V2 loop no longer depends on staging being booked. V1 is untouched.Must merge before the aide change that narrows the gateway spec.
🤖 Generated with Claude Code