v0.21.0
What's Changed
Other Changes
- refactor(spec): decouple spec generation from the Azure Functions SDK by @yeongseon in #329
- refactor(discovery): funnel Azure Functions SDK access through an adapter by @yeongseon in #330
- feat(cli): discover endpoint-metadata routes via module:variable by @yeongseon in #331
- test(sdk): pin adapter-boundary SDK compatibility contract and guards by @yeongseon in #332
- test(bridge): cover additive endpoint 422 response independently of producers by @yeongseon in #333
- fix(adapter): skip unbuildable functions during discovery by @yeongseon in #338
- docs(bridge): drop canonical/shared-contract framing in endpoint terminology by @yeongseon in #340
- docs(readme): sync translated READMEs with CLI --app discovery and SDK Compatibility by @yeongseon in #341
- docs(extending): add endpoint metadata producer guide by @yeongseon in #342
- fix(discovery): preserve all-method semantics when HTTP methods are unspecified by @yeongseon in #339
- feat(spec): surface structured spec warnings + --fail-on-warnings exit code by @yeongseon in #343
- fix(spec): isolate report warnings to injected registry by @yeongseon in #348
- fix(cli): fail --fail-on-warnings before writing output by @yeongseon in #349
- fix(spec): scope all-method expansion to routes with binding evidence by @yeongseon in #350
- feat(warnings): surface skipped unbuildable functions as a discovery warning by @yeongseon in #351
- fix(warnings): carry reason, dedupe, and harden discovery-skipped warning by @yeongseon in #355
- fix(cli): move --fail-on-warnings gate after empty-paths hint by @yeongseon in #356
- fix(spec): expand all-methods for @openapi below @app.route in recommended order by @yeongseon in #357
- fix(discovery): reconcile HTTP method for @openapi below @app.route by @yeongseon in #359
- fix(bridge): preserve binding route when exploding @openapi below @app.route by @yeongseon in #365
- fix(bridge): infer route+method for plain @openapi and flag binding mismatch by @yeongseon in #366
- fix(bridge): resolve one-to-many _function_id per method on re-scan by @yeongseon in #369
- fix(bridge): flag method/binding mismatch for validation-carrying handlers by @yeongseon in #370
- refactor(bridge): binding-first invariant resolution model for discovery by @yeongseon in #372
- fix(discovery): unwrap FunctionApp-wrapping containers and warn on empty scans by @yeongseon in #376
- feat(spec): opt-in hoisting of flat schemas into components (#375) by @yeongseon in #377
- fix(api): propagate flat-schema hoisting option across spec output APIs by @yeongseon in #382
- fix(schema): make hoisted component names JSON-Pointer safe and hash strictly by @yeongseon in #383
- fix(warnings): scope empty-discovery reason to the selected application object by @yeongseon in #384
- fix(warnings): emit DUPLICATE_OPERATION as a structured warning by @yeongseon in #387
- refactor: opt-in app-scoped registry isolation (#381) by @yeongseon in #388
- fix(bridge): make isolated re-scan idempotent by seeding on function id by @yeongseon in #390
- fix(api): export OpenAPIRegistry and correct _validate_method docstring by @yeongseon in #398
- fix(schema): make component names OpenAPI-name-safe by @yeongseon in #399
- fix(warnings): scope registry diagnostics to the current generation by @yeongseon in #400
- fix(registry): distinguish dynamically-created handlers with identical qualnames by @yeongseon in #401
- docs(decorator): document last-writer-wins for register_openapi_metadata by @yeongseon in #402
- fix(cli): fail closed when --isolate-app cannot be honored by @yeongseon in #403
- fix(warnings): correct clear_diagnostics docstring on diagnostic lifecycle by @yeongseon in #405
Full Changelog: v0.20.0...v0.21.0