Repository navigation
fix: correct CloudFlow headers, Ava errors, and guidance - #332
Merged
Merged
Conversation
adamgajzlerowicz
approved these changes
Oct 6, 2026
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.
CloudFlow connection creates failed because they omitted
Idempotency-Key, and updates failed because they omittedIf-Match. Creates now require a caller-ownedidempotencyKeythat survives retries; updates require the connection's observed ETag and reject wildcard preconditions. Header arguments are excluded from request bodies. Collaborator replacements must retain exactly one owner; empty, ownerless, and multiple-owner lists are rejected locally.Ava HTTP-200 error envelopes now return MCP errors with bounded, sanitized detail. CloudFlow descriptions and guidance cover JavaScript/Python runtime differences, real draft execution, build/refine results, triggering, replacement fields, pagination, idempotency and tenant scope. Customer-search and confirmation descriptions match current behavior. The existing schema parity and pagination wording remain intact.
Guidance now identifies two backend limitations: ETag checking is separate from writing, so simultaneous updates can still race; MCP tracking query parameters affect replay identity, so client/server version changes can conflict despite the same key/body. Callers should serialize updates, verify saved state, and avoid automatic retries when HTTP errors contain only generic text.
Before/after validation compared the isolated pre-change build (
15b6b1c) with the feature build (30b213b) against the same real development API:idempotency_key_required; missing headerprecondition_required; missing headerThe connection defects were reproduced and fixed in real dev calls. Ava's error-envelope comparison used a controlled response; the successful Ava calls were live compatibility checks. Cleanup deleted the disposable connection (204), verified absence (404), and left zero test resources. No workflows were executed or production resources modified.
Merged current
main(0d2f856) and resolved the generated-tool override conflict, preserving both upstream read-only lookup semantics and this PR's CloudFlow guidance. The combined tree passed the validation below. Live evidence refers to the builds recorded in the before/after table.Validation:
yarn check:dev,yarn check:ci, andyarn buildpass.Shared HTTP-error propagation and hosted top-level error preservation are handled by #325. Atomic version enforcement and telemetry exclusion from replay identity require backend changes. Arbitrary generated trigger-payload support remains a separate dependency.