Reauthor the kin-openapi parse layer against current specverb (supersedes feat/specverb-kin-parse-layer) #138

Closed
opened 2026-06-12 05:12:43 +00:00 by coilysiren · 0 comments
Owner

The local branch feat/specverb-kin-parse-layer (tip 97c9757, June 8) replaces the hand-rolled Swagger 2.0 reader in http/specverb/swagger.go with kin-openapi: 2.0 converts to 3.x via openapi2conv, $refs resolve up front, and the engine reads an inlined IR. It also accepts native 3.x documents.

main has since moved past it (query params, array bodies, multipart formData, fixed bodies, spec-lock pruning, multi-guardfile merge), so the branch no longer rebases - it reauthors:

  • The branch IR only carries scalar object bodies. It now needs query params, arrays, formData/multipart, and the one-hop $ref semantics main's reader gained.
  • openapi2conv moves formData parameters into requestBody, so the multipart promotion in request.go reads a different shape after conversion.
  • prune.go prunes the committed spec lock by manipulating the raw Swagger 2.0 JSON. A kin-based parse layer either keeps the lock in 2.0 and prunes pre-conversion, or moves the lock format to 3.x and reauthors pruning against it.
  • The SSO-retry fix that rode on the branch already landed separately on main (#137). The remaining unique content is the parse layer itself.

The branch stays parked as the reference for the original approach. Original milestone framing: M1 in #75.

The local branch `feat/specverb-kin-parse-layer` (tip `97c9757`, June 8) replaces the hand-rolled Swagger 2.0 reader in `http/specverb/swagger.go` with kin-openapi: 2.0 converts to 3.x via `openapi2conv`, `$ref`s resolve up front, and the engine reads an inlined IR. It also accepts native 3.x documents. `main` has since moved past it (query params, array bodies, multipart formData, fixed bodies, spec-lock pruning, multi-guardfile merge), so the branch no longer rebases - it reauthors: * The branch IR only carries scalar object bodies. It now needs query params, arrays, formData/multipart, and the one-hop `$ref` semantics `main`'s reader gained. * `openapi2conv` moves formData parameters into `requestBody`, so the multipart promotion in `request.go` reads a different shape after conversion. * `prune.go` prunes the committed spec lock by manipulating the raw Swagger 2.0 JSON. A kin-based parse layer either keeps the lock in 2.0 and prunes pre-conversion, or moves the lock format to 3.x and reauthors pruning against it. * The SSO-retry fix that rode on the branch already landed separately on `main` (#137). The remaining unique content is the parse layer itself. The branch stays parked as the reference for the original approach. Original milestone framing: M1 in #75.
coilysiren added
P3
and removed
P2
labels 2026-06-17 08:39:33 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilyco-flight-deck/cli-guard#138
No description provided.