Virgil
1ec5bf4062
feat(api): attach request meta to error envelopes
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 17:43:37 +00:00
Virgil
c48effb6b7
feat(api): normalise OpenAPI server metadata
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 17:31:45 +00:00
Virgil
5b59a1dd10
feat(api): prefer absolute OpenAPI servers
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 17:24:36 +00:00
Virgil
da9bb918f7
fix(api): tighten public path auth bypass matching
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 16:56:09 +00:00
Virgil
c6034031a3
feat(bridge): enforce additional schema constraints
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 16:50:29 +00:00
Virgil
bfa80e3a27
feat(api): support repeated query parameters in openapi client
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 16:42:09 +00:00
Virgil
b9f91811d8
feat(api): support HEAD request bodies in OpenAPI client
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 16:37:13 +00:00
Virgil
19838779ef
feat(api): normalize CLI list arguments
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 16:31:22 +00:00
Virgil
1cc0f2fd48
feat(api): standardise panic responses
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 16:25:45 +00:00
Virgil
ac59d284b1
feat(api): document rate limit headers on all responses
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 16:18:10 +00:00
Virgil
3b92eda93a
feat(api): add shared response envelope schema
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 16:12:50 +00:00
Virgil
90600aa434
feat(api): expose swagger server metadata
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 16:07:16 +00:00
Virgil
e713fb9f56
feat(api): emit rate limit headers on success and reject
...
Adds X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset to successful responses and 429 rejections, and documents the headers in OpenAPI.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 16:01:09 +00:00
Virgil
28f9540fa8
fix(bridge): enforce tool schema enum validation
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 15:54:32 +00:00
Virgil
ac21992623
feat(api): enforce tool schema enums
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 15:46:35 +00:00
Virgil
4420651fcf
feat(api): document request ID response headers
...
Add X-Request-ID to the generated OpenAPI response headers so the spec matches the runtime contract for request ID propagation.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 15:39:38 +00:00
Virgil
1bb2f68b3f
feat(api): document rate limit response headers
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 15:32:01 +00:00
Virgil
fd09309ce9
feat(api): document rate limit and timeout responses
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 15:26:17 +00:00
Virgil
726938f04a
feat(api): add auth responses to openapi
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 15:18:25 +00:00
Virgil
321ced1a36
feat(api): add OpenAPI server metadata
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 15:13:39 +00:00
Virgil
4bc132f101
feat(api): fall back to group tags in openapi
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 14:46:15 +00:00
Virgil
b58de8f8f0
feat(provider): expose registry spec files
...
Add stable registry helpers for enumerating provider OpenAPI spec files, plus iterator coverage. This gives discovery consumers a direct way to aggregate provider docs without changing routing behaviour.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 14:38:45 +00:00
Virgil
90e237ae31
feat(api): include HEAD request bodies in OpenAPI
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 14:29:30 +00:00
Virgil
684a37cd84
fix(api): return listen errors immediately
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 14:20:30 +00:00
Virgil
926a723d9c
feat(api): add runtime OpenAPI client
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 14:16:10 +00:00
Virgil
fb6812df09
feat(api): emit request bodies for non-GET operations
...
Keep OpenAPI requestBody generation aligned with the RouteDescription contract by allowing non-GET operations, including DELETE, to declare JSON bodies.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 14:04:04 +00:00
Virgil
c4cbd018ac
feat(api): auto-attach request metadata
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 14:00:04 +00:00
Virgil
37b7fd21ae
feat(cache): refresh request meta on cache hits
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 13:53:37 +00:00
Virgil
00a59947b4
feat(api): attach request metadata to responses
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 13:48:53 +00:00
Virgil
4efa435a47
feat(api): add MCP resource listing endpoint
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 13:42:29 +00:00
Virgil
2d8bb12311
fix(api): preserve request id on cache hits
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 13:37:38 +00:00
Virgil
825b61c113
feat(api): add request ID accessor helper
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 13:31:19 +00:00
Virgil
c9cf407530
feat(api): add Stoplight docs renderer
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 13:26:55 +00:00
Virgil
5d5ca8aa51
feat(api): validate ToolBridge output schemas
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 13:18:10 +00:00
Virgil
9aa7c644ef
fix(api): disable non-positive timeouts
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 13:12:51 +00:00
Virgil
65ae0fca6d
feat(api): drain SSE clients on shutdown
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 09:45:30 +00:00
Virgil
837a910148
feat(cache): add LRU eviction limit
...
Add an optional maxEntries cap to WithCache so the in-memory cache can evict old entries instead of growing without bound.\n\nCo-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 09:27:22 +00:00
Virgil
9afaed4d7c
feat(api): document bearer auth in openapi
...
Add a bearerAuth security scheme to the generated OpenAPI document and mark non-public operations as secured, while keeping /health explicitly public.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 09:08:34 +00:00
Virgil
f030665566
feat(api): preserve path params in operationId
2026-04-01 08:11:33 +00:00
Virgil
16abc45efa
feat(api): add stable openapi operation ids
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 07:36:35 +00:00
Virgil
491c9a1c69
fix(i18n): preserve matched locale tags
2026-04-01 07:22:25 +00:00
Virgil
5eaaa8a01e
feat(api): add seo analysis endpoint
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 07:18:01 +00:00
Virgil
71eebc53aa
feat(provider): expose proxy metadata in registry info
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 07:08:19 +00:00
Virgil
1c9e4891e7
feat(api): add spec description flag
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 07:02:28 +00:00
Virgil
6fdd769212
feat(api): add per-IP rate limiting middleware
...
Adds a token-bucket WithRateLimit option that rejects excess requests with 429 Too Many Requests and a standard error envelope.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:54:58 +00:00
Virgil
797c5f9571
feat(api): add entitlements endpoint
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:47:28 +00:00
Virgil
db1efd502c
feat(api): add unified pixel tracking endpoint
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:41:54 +00:00
Virgil
3ead3fed2b
feat(api): implement MCP resource reads
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 06:33:11 +00:00
Virgil
6ef194754e
feat(bridge): validate tool request bodies
2026-04-01 06:23:58 +00:00
Virgil
10fc9559fa
fix(api): make SSE drain wait for clients
...
Drain() now signals SSE clients to disconnect, closes the event stream under the broker lock, and waits for handler goroutines to exit before returning. Added a regression test to verify that active clients disconnect and the broker reaches zero client count.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 05:13:44 +00:00