Conversation
… via $ref - Drop `xml.name` beside `nodeType` `text`, `cdata`, or `none`, which 3.2 ignores but an older version would use to name an element. - Treat an explicit `element` on a `$ref` to an array as `wrapped: true`, looking the type up along the `$ref` chain, since 3.2 defaults a `$ref` to `none` as it does an array. - When 3.1 → 3.0 splits a type union into `anyOf`, move `xml.wrapped` into the array branch, the only place 3.0 applies it. The rest of `xml` stays. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CfwrBWKobQGsT53QRjUbBm
- Hand the array branch the already-fresh `xml` instead of copying it twice. - Fold the dropped-`name` checks into the existing text/cdata/none rows and share the `$ref` fixtures between input and expected output. - Move the whole-document `$ref` case to spec/components.test.ts, where it uses `convertSpec`, and drop comments repeated across files. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CfwrBWKobQGsT53QRjUbBm
|
your Pullfrog Router balance is empty, and this repo has no provider key to fall back on, so the agent never ran. To fix, any one of: add a payment method or top up your Router balance · add a provider API key (GitHub Actions secret or Pullfrog secret) · switch this repo to a free model. Top up Router → · Model settings → · Setup docs → · Ask in Discord → |
…ll-hhi73l # Conflicts: # packages/downgrader/README.md
Since $refs inside a schema with an $id resolve against that $id, look up whether an `element` node's $ref targets an array from the rebased $ref, as inlineSchema does, rather than from the document root. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CfwrBWKobQGsT53QRjUbBm
|
your Pullfrog Router balance is empty, and this repo has no provider key to fall back on, so the agent never ran. To fix, any one of: add a payment method or top up your Router balance · add a provider API key (GitHub Actions secret or Pullfrog secret) · switch this repo to a free model. Top up Router → · Model settings → · Setup docs → · Ask in Discord → |
Matches how the converters now test for a key, treating one that holds undefined as missing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CfwrBWKobQGsT53QRjUbBm
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
your Pullfrog Router balance is empty, and this repo has no provider key to fall back on, so the agent never ran. To fix, any one of: add a payment method or top up your Router balance · add a provider API key (GitHub Actions secret or Pullfrog secret) · switch this repo to a free model. Top up Router → · Model settings → · Setup docs → · Ask in Discord → |
…ll-hhi73l # Conflicts: # packages/downgrader/README.md
|
your Pullfrog Router balance is empty, and this repo has no provider key to fall back on, so the agent never ran. To fix, any one of: add a payment method or top up your Router balance · add a provider API key (GitHub Actions secret or Pullfrog secret) · switch this repo to a free model. Top up Router → · Model settings → · Setup docs → · Ask in Discord → |
|
your Pullfrog Router balance is empty, and this repo has no provider key to fall back on, so the agent never ran. To fix, any one of: add a payment method or top up your Router balance · add a provider API key (GitHub Actions secret or Pullfrog secret) · switch this repo to a free model. Top up Router → · Model settings → · Setup docs → · Ask in Discord → |
|
The failing Generated by Claude Code |

Summary
This PR improves the handling of OpenAPI 3.2's
xml.nodeTypefield during downgrade to 3.1 and 3.0, with better support for element nodes on schema references and proper removal of thenamefield when it becomes invalid.Key Changes
Enhanced
xml.nodeType: 'element'handling for$ref: The converter now follows$refchains to determine if a referenced schema describes an array, allowingwrapped: trueto be correctly applied when an element node wraps a referenced array. This includes handling of schema aliases and loop detection.Proper
namefield removal: Whenxml.nodeTypeis'text','cdata', or'none'(which have no 3.1 equivalent), thenamefield is now also removed, since 3.2 ignores it in these contexts while 3.1 would interpret it as an element name.Type union handling in 3.1→3.0 conversion: When converting type unions that include arrays,
xml.wrappedis now correctly moved into the array branch of the resultinganyOf, matching the behavior ofitemswhich only applies besidetype: array.Updated documentation: README clarifications about how
elementnodes on$refand type unions are handled, and thatnameis removed alongside unsupported node types.Implementation Details
describesArray()helper to resolve$refchains and determine if they target arrays, with proper handling of aliases and cyclesconvertXml()to use the new helper and removenamefor unsupported node typestakeArrayFields()helper in v3.1→3.0 conversion to extract array-specific fields (items,xml.wrapped) into the array branch of type unions$refchains, aliases, and type unionshttps://claude.ai/code/session_01CfwrBWKobQGsT53QRjUbBm