fix: remove produces extension from latest canonical spec - #110
Merged
Conversation
ChiragAgg5k
marked this pull request as ready for review
September 8, 2026 11:07
Greptile SummaryThis PR corrects the canonical latest OpenAPI document by removing misleading JSON response metadata from bodyless operations.
Confidence Score: 5/5The PR appears safe to merge because the canonical specification remains structurally valid and the removals consistently align response metadata with bodyless 204 responses. Parsed comparison found exactly the 49 intended property removals and no unrelated value changes; each affected operation has no response content, and no actionable correctness, security, or quality issue remains. Important Files Changed
Reviews (1): Last reviewed commit: "fix: remove produces extension from late..." | Re-trigger Greptile |
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.
Summary
Publish the genuine
latestcanonical document withoutx-appwrite.produces, following Appwrite #13524 (merged75535982188c586d404cddc3e748a56d60089bd6). Tracks CLO-4377.Targets
main. Does not duplicate the pending 2.0.x examples/spec update in #108.Draft gate: Cloud's Composer lock promotion to the merged Appwrite revision is prepared locally but not yet accepted upstream. Accept that producer promotion before merging these artifacts. The SDK generator consumer #1888 remains release-gated on publication of both canonical documents.
Actual emitted spec change
Excerpt for
accountDeleteBillingAddress:"responses": { "204": {"description": "No content"} }, "x-appwrite": { - "produces": ["application/json"], ... }Exactly 49 extension removals, with required trailing-comma adjustments only. No response body is invented. All other parsed values are identical: 1,020 operations, 77 aliases, 16 security schemes, including platform availability, aliases, auth, model schemas, runtime enums and explicit response media. Invoice binary response declarations remain intact.
Generated SDK effect
Actual Rust console output from this new canonical document using #1888:
The previous generator inferred
Result<serde_json::Value>from the removed extension.Result<()>is an intentional breaking Rust API correction; SDK release notes/versioning must account for it. Explicit response media remains authoritative; JSON is the negotiation fallback when responses declare no content.Validation
php app/cli.php specs --version=latest --mode=normal --git=no, in an isolated linux/amd64, network-disabled container matching the publisher's architecture, before and after the Composer-installed dependency promotion. Whole emitter output copied without JSON editing.Generation architecture
The earlier apparent legacy Deno enum drift was local ARM64 filtering, not an API change. Regeneration on the publisher's x86 architecture retains those enums. No unrelated runtime removal is included.
Testing screenshot below captures actual command output (not UI e2e).