From b31dd35d926c3ddcdd627f2eace266863f99fe3f Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 24 Oct 2026 06:59:30 +0000 Subject: [PATCH 1/2] docs(downgrader): note Kiota typing the `"null"` branch as a string Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01ABAx6Ud1HPRYdomPGUkrKG --- packages/downgrader/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/downgrader/README.md b/packages/downgrader/README.md index a193e67..a1bd658 100644 --- a/packages/downgrader/README.md +++ b/packages/downgrader/README.md @@ -246,6 +246,7 @@ Accepts the default OAS dialect, which adds `discriminator`, `xml`, `externalDoc - `patternProperties` that matches every name, as TypeBox emits for a record, is removed with its value schema rather than turned into `additionalProperties`. - An untyped schema that gains a `format` from `contentEncoding` or `contentMediaType` also gains `type: "string"`, as 3.0 binary strings need, so it rejects non-string values it accepted. 3.0 tools find file uploads only by `type: "string"` with `format: "binary"`. - OpenAPI Generator merges the `"null"` branch beside a `$ref` to a string enum into a new enum, so the reference is lost. Pass `--openapi-normalizer SIMPLIFY_ONEOF_ANYOF_ENUM=false` to keep it. +- Kiota reads the `"null"` branch's `type: "string"` as a real type, so array items that may be null, and a union of several types with null, come out as strings. Kiota reads 3.1 too, which types them correctly. ## Performance From f6628b40d91afb04f0842cf549aac149f3d2bd24 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 24 Oct 2026 07:06:44 +0000 Subject: [PATCH 2/2] docs(downgrader): say 3.1 keeps the types, not item nullability, for Kiota Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01ABAx6Ud1HPRYdomPGUkrKG --- packages/downgrader/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/downgrader/README.md b/packages/downgrader/README.md index a1bd658..68a871d 100644 --- a/packages/downgrader/README.md +++ b/packages/downgrader/README.md @@ -246,7 +246,7 @@ Accepts the default OAS dialect, which adds `discriminator`, `xml`, `externalDoc - `patternProperties` that matches every name, as TypeBox emits for a record, is removed with its value schema rather than turned into `additionalProperties`. - An untyped schema that gains a `format` from `contentEncoding` or `contentMediaType` also gains `type: "string"`, as 3.0 binary strings need, so it rejects non-string values it accepted. 3.0 tools find file uploads only by `type: "string"` with `format: "binary"`. - OpenAPI Generator merges the `"null"` branch beside a `$ref` to a string enum into a new enum, so the reference is lost. Pass `--openapi-normalizer SIMPLIFY_ONEOF_ANYOF_ENUM=false` to keep it. -- Kiota reads the `"null"` branch's `type: "string"` as a real type, so array items that may be null, and a union of several types with null, come out as strings. Kiota reads 3.1 too, which types them correctly. +- Kiota reads the `"null"` branch's `type: "string"` as a real type, so array items that may be null, and a union of several types with null, come out as strings. Kiota reads 3.1 too, which keeps their types. ## Performance