Commit graph

28 commits

Author SHA1 Message Date
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
Virgil
6fc1767d31 fix(api): normalize remaining MCP and rate-limit error envelopes 2026-03-30 06:14:22 +00:00
Virgil
ee3fba1e7a feat(api): standardize agent-facing response envelopes 2026-03-30 05:52:06 +00:00
Claude
ca9b495884
chore: migrate to dappco.re vanity import path
Change module path from forge.lthn.ai/core/api to dappco.re/go/core/api.
Update all Go imports accordingly:
- forge.lthn.ai/core/api -> dappco.re/go/core/api
- forge.lthn.ai/core/go-io -> dappco.re/go/core/io
- forge.lthn.ai/core/go-log -> dappco.re/go/core/log

forge.lthn.ai/core/cli left as-is (not yet migrated).
Local replace directives added for dappco.re paths until vanity
URL server is configured.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 23:50:37 +00:00
Snider
39588489e3 chore: sync dependencies for v0.1.6
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 17:54:45 +00:00
Snider
1a4ef9fc1f chore: sync dependencies for v0.1.5
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 17:47:24 +00:00
Snider
8f8199cf3c chore: sync dependencies for v0.1.4
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 22:20:35 +00:00
Snider
d510af404d refactor(api): replace fmt.Errorf and os.* with coreerr.E and coreio.Local
Replace all fmt.Errorf/errors.New in production code with coreerr.E() from
go-log. Replace os.MkdirAll with coreio.Local.EnsureDir and os.Remove with
coreio.Local.Delete. Promote go-io and go-log to direct dependencies in go.mod.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 21:49:02 +00:00
Snider
5c1f438a48 chore: sync go.mod dependencies
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-15 15:36:47 +00:00
Snider
ac452b6924 chore: add .core/ and .idea/ to .gitignore 2026-03-15 10:17:49 +00:00
Snider
b2a8a9b389 fix: update stale import paths and dependency versions from extraction
Resolve stale forge.lthn.ai/core/cli v0.1.0 references (tag never existed,
earliest is v0.0.1) and regenerate go.sum via workspace-aware go mod tidy.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-14 13:38:58 +00:00
Snider
675079caf5 feat(provider): implement ProxyProvider reverse proxy
Replace the Phase 3 stub with a working ProxyProvider that reverse-proxies
requests to upstream provider binaries via httputil.ReverseProxy. Implements
Provider + Renderable interfaces. Includes 9 tests covering proxy routing,
health passthrough, element spec, and invalid upstream handling.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-14 12:22:27 +00:00
Snider
753812ad57 feat(api): merge go-api + php-api into polyglot repo
Go source at root level (Option B), PHP under src/php/.
Module path: forge.lthn.ai/core/api
Package name: lthn/api

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-14 10:03:29 +00:00