Repository navigation
Conversation
…factPlan
A squad's membersOverrides.artifactPlan.structuredOutputIds was sent to the API as written, so a name there failed the push with a 400 ("each value in structuredOutputIds must be a UUID"), while the same name works in an assistant's artifactPlan.
Push now resolves those names like an assistant's artifactPlan, pull writes them back as names, extractReferencedIds counts them (so validate, delete protection and squad dependency creation see them), and pushing a squad creates a missing structured output it names first.
Fixes VapiAI#8
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.
Fixes #8.
A squad's
membersOverrides.artifactPlan.structuredOutputIdswas sent to the API exactly as written, so naming a structured output there (the way an assistant'sartifactPlanallows) failed the push witheach value in structuredOutputIds must be a UUID. Using the UUID works, but then the squad can't be promoted to another org.Changes:
resolveReferences(push) resolves those names to UUIDs, same as an assistant'sartifactPlan.resolveReferencesToResourceIds(pull and the drift hash basis) maps the UUIDs back to names, so a pull writes names and a push of that file sends the same UUIDs.extractReferencedIdscounts them, sovalidatereports a misspelled name as a dangling reference, delete protection sees them, and pushing a squad creates a missing structured output it names first (next to the existing assistant step).validate-refs.tscomment and the improvements.md docs: document orphan-YAML gate + --allow-new-files in README and AGENTS #31 "still open" note, which listed this field as unchecked.One thing to be aware of: a squad file that already holds UUIDs in that field (what pull writes today) will show as
dashboard-aheadonce, because the platform side now canonicalizes to names.npm run pullrewrites it to names and it's clean after that.Testing: added
tests/members-overrides-refs.test.ts(push resolution, pull round trip, reference extraction, and a squad without the field is unchanged). Three of the four fail on main and all pass here.npm run buildpasses.npm test: 581 of 583 pass; the 2 failures are invapi-checks-workflow.test.tsand fail identically on main in my environment (the spawned step can't resolvetsxfrom its temp dir), so they look unrelated.AI-assisted; tested locally with
npm run buildandnpm test.