Skip to content

fix(squads): resolve structured output names in membersOverrides.artifactPlan - #91

Open
Mohith26 wants to merge 1 commit into
VapiAI:mainfrom
Mohith26:fix/squad-members-overrides-structured-outputs
Open

Mohith26 wants to merge 1 commit into
VapiAI:mainfrom
Mohith26:fix/squad-members-overrides-structured-outputs

Conversation

@Mohith26

@Mohith26 Mohith26 commented Nov 3, 2026

Copy link
Copy Markdown

Fixes #8.

A squad's membersOverrides.artifactPlan.structuredOutputIds was sent to the API exactly as written, so naming a structured output there (the way an assistant's artifactPlan allows) failed the push with each 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's artifactPlan.
  • 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.
  • extractReferencedIds counts them, so validate reports 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).
  • Updated the validate-refs.ts comment 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-ahead once, because the platform side now canonicalizes to names. npm run pull rewrites 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 build passes. npm test: 581 of 583 pass; the 2 failures are in vapi-checks-workflow.test.ts and fail identically on main in my environment (the spawned step can't resolve tsx from its temp dir), so they look unrelated.

AI-assisted; tested locally with npm run build and npm test.

…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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

membersOverrides.artifactPlan.structuredOutputIds is requiring UUID

1 participant