Skip to content

v0.4.5

@ejfkdev ejfkdev tagged this 07 Oct 02:33
Patch release after v0.4.4.

1. Rich openapi.json (spec §11.3)
   - Fixed: fields with no explicit http: location were dropped from the
     generated parameters (the generator skipped Location=="" while the binder
     treats it as query). Every path/query/header field is now emitted with its
     wire name, location, required (path params always), description (the
     field's desc) and a rich schema (type + enum/default/format/items, reused
     from the same InputSchema the MCP tools use) instead of a bare type.
   - Operations carry a description (the command description) alongside the
     summary; one operation per registered method; requestBody for
     POST/PUT/PATCH; info.title/version come from the application identity
     (X-App-Name/X-App-Version) instead of the hardcoded "example service"/"1".

2. GET + POST by default (spec §11.1)
   - A command with an HTTP path and no method registers BOTH GET and POST
     (GET binds query, POST binds body+query, same handler). Method accepts a
     single method or a comma-separated list ("GET,POST,PUT"). Routing
     condition relaxed from "Method && Path" to "Path".

3. Enriched MCP tool metadata (spec §12.4)
   - MCPHints gains Title (→ annotations.title), Description (overrides the
     summary+description merge) and Meta (per-tool _meta); MCPFieldHint gains
     Description (per-field inputSchema description override, applied via
     effectiveDescription). Everything still defaults from the shared tags, so
     the common case stays zero-config and each piece is independently
     overridable.

Tests: httpapi/openapi (rich params/description/info, GET+POST default, method
list), mcp/tool (enrichment + overrides + defaults). Full suite green;
nocli/nohttp/nomcp + all-trim variants build; vet clean.
Assets 2
Loading