fix(kiota): empty-as-null and never-returned read semantics — run #8's two inconsistencies - #112
Merged
Merged
Conversation
…cs -- run #8's two inconsistencies Two converter semantics the port had silently changed, both surfaced by the first full-parity live run. resty's EnumToFramework nulls the empty string, because the API echoes an unset open-enum field as "" -- and the port had mapped those sites to PtrStringToFramework, which keeps it. A practitioner who never wrote blockDomains then watched state say "" where the plan said null. PtrEnumToFramework is the kiota twin with the resty semantic, and every ported site regains it: 69 flatten sites across 17 resources, of which run #8 happened to trip exactly one. page_load's collectProxyNetworkData is accepted and never returned -- absent from every recorded response -- which resty's value-typed bool flatten papered over by fabricating the zero value. The kiota pilot says so honestly instead: the wire skips flatten, so state keeps what was planned and a refresh cannot blank it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Why
Run #8 (first full-parity live run, post-#111) was two failures short of green, both "inconsistent result after apply":
tests_web_transaction .block_domains(null →"") andtests_page_load .collect_proxy_network_data(false → null). Both are converter semantics the port silently changed relative to resty.What
Empty-as-null (
block_domains) — the API echoes an unset open-enum string as"", and resty'sEnumToFrameworknulls it. The port had mapped those sites toPtrStringToFramework, which keeps the"". NewPtrEnumToFramework(nil or""→ null) restores the resty semantic, and a sweep re-wired every ported site: 69 flattens across 17 resources — run #8 tripped exactly one of them; the rest were latent. The port tool now performs this mapping itself.Never-returned (
collect_proxy_network_data) — page_load's field is accepted and never returned (absent from every recorded response). Resty's value-typed bool flatten fabricated the zero valuefalse, which coincided with the config. The kiota blueprint now says it honestly:skipFlatten, so state keeps the planned value and a refresh can't blank it. (http_server and web_transaction do return the field — families differ — so only page_load changes.)Verification
bindings check; probe verify exit 0; both pilots 0 drift; all suites 0 failures.go | Acceptance tests (kiota)dispatch for live confirmation — this is expected to be the first fully green run at complete parity.🤖 Generated with Claude Code