Skip to content

fix(kiota): empty-as-null and never-returned read semantics — run #8's two inconsistencies - #112

Merged
ShocOne merged 1 commit into
mainfrom
feat/kiota-alerts-dashboards-wave
Aug 5, 2026
Merged

fix(kiota): empty-as-null and never-returned read semantics — run #8's two inconsistencies#112
ShocOne merged 1 commit into
mainfrom
feat/kiota-alerts-dashboards-wave

Conversation

@ShocOne

@ShocOne ShocOne commented Aug 5, 2026

Copy link
Copy Markdown
Member

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 → "") and tests_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's EnumToFramework nulls it. The port had mapped those sites to PtrStringToFramework, which keeps the "". New PtrEnumToFramework (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 value false, 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

  • 1125/1125 bindings check; probe verify exit 0; both pilots 0 drift; all suites 0 failures.
  • Waiting on the next 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

…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>
@ShocOne
ShocOne merged commit 55229a8 into main Aug 5, 2026
9 of 12 checks passed
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.

1 participant