- fix Global security fallback: endpoints without explicit security now inherit top-level spec.security instead of showing "None required"
- fix Dynamic auth scheme detection: security labels now read actual securitySchemes definitions, supporting any scheme name, OAuth2, and HTTP auth variants
- fix First 2xx response: llms.txt now outputs the actual success status code (201, 202, etc.) instead of hardcoding 200
- fix oneOf/anyOf depth tracking in compactSchema and prettySchema to prevent infinite recursion on nested union types
- fix Fastify adapter: OpenAPI spec is now cached on first request instead of re-fetching on every call to /openapi.json
- fix Koa adapter: /openapi.json response now includes charset=utf-8 in Content-Type header
Changelog
Alle bemerkenswerten Änderungen an SWAGENT sind hier dokumentiert.
- feat Content negotiation on landing route. Send Accept: text/markdown to GET / and receive llms.txt directly
- feat New estimateTokens utility in @swagent/core for token budget estimation
- feat x-markdown-tokens response header. Check token cost with a HEAD request before downloading
- feat Vary: accept header on all landing routes for proper CDN caching of HTML and markdown variants
- ci Integration tests for content negotiation across all 7 framework adapters (56 new tests, 293 total)
- feat New framework adapters: @swagent/elysia, @swagent/koa, @swagent/h3 (Nitro/Nuxt), @swagent/nestjs
- feat YAML spec support in CLI. Process .yaml and .yml OpenAPI files
- feat Watch mode (--watch). Live regeneration on spec file changes
- feat OpenAPI $ref resolution. Resolve $ref, allOf, oneOf, anyOf references
- feat ETag and Cache-Control headers across all framework adapters
- fix Consistent error handling across all adapters