Repository navigation
Version: 1.1.2 fix(client): normalize repeated SOAP responses - #210
Merged
Merged
Conversation
This was referenced Oct 8, 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.
Summary
A valid singleton SOAP response can remain an object even when a wrapping sequence makes its generated type an array. That mismatch caused affected REST gateway responses to fail with HTTP 500. Generated clients now derive repeated-property metadata from the existing catalog and normalize singleton responses before gateway serialization, covering direct client consumers as well.
Real SOAP transport regressions cover singleton and multiple complex/primitive values, optional request omission, repeated request XML, and both wrapper-flattening modes. The installed-package smoke also executes the generated client against that transport. Existing null handling, scalar properties, and compiler compositor boundaries are preserved.
This PR contains the complete 1.1.2 release candidate, including versions, changelog, release notes, regenerated examples, and explicit maintainer-only publication instructions. The rejected v1.1.1 draft was retired through the abandonment workflow; its immutable tag and marker remain. This follows PR #145 and issue #141, preserving BCsabaEngine's original contribution in history.
Checklist
How to test
The singleton regressions failed before the fix and pass afterward. Focused tests, gateway conformance, scoped TypeScript checks, documentation validation, and IDE error inspections passed. Snapshot changes were reviewed.
Release preflight passed with 661 tests in 52 files, full conformance, pipeline smoke, installed-package smoke, and skill ZIP/checksum packaging. Its only warning is the expected feature-branch location. No gates were skipped. Validated Git tree:
c99bd30605a486dedf595ebd15bce4992fe7b5bc.After CI and merge, tag the merged main commit only if its tree matches the validated tree. Agent delivery stops after the draft workflow and artifacts are verified and task-owned cleanup is complete. The maintainer publishes manually.