Commit Graph
3 Commits
Author SHA1 Message Date
renato97 6dc29f358b fix(proxy): filtra chunks SSE sin id y corta en [DONE]
Grok Build siempre usa streaming. El upstream (OpenCode Zen)
envía chunks no-estándar (inference-cost sin id, cost tras
[DONE]) que rompen el deserializador serde de Rust con
'missing field id'. streamResponse ahora filtra eventos SSE
que no tengan campo id y deja de forwardear después de [DONE].
2026-07-29 00:51:59 -03:00
renato97 46127431a3 feat(proxy): auto-discovery de modelos + backend Kimchi
- Nueva interfaz Discoverer con Refresh() por backend
- Kilo: full auto (isFree + metadata completa del upstream)
- OpenCode: heurística -free para descubrir nuevos free
- Kimchi: agrega todos los IDs no-curados del upstream
- discoveryLoop cada 10 min en el Proxy
- Backends stateful (mutex + catálogo dinámico)
- CREDENCIALES.md y KIMCHI_ANALISIS.md documentan el setup
2026-07-12 19:58:30 -03:00
Renato 05a52d29e2 feat: multi-backend proxy with auto rate-limit jailing
Refactor from monolithic proxy to multi-backend architecture
(Backend interface: OpenCode Zen + Kilo gateway).

- Add auto rate-limit jailing: models returning HTTP 429 are
  hidden from /v1/models immediately and re-probed every 30 min
- Backend interface supports model aliases, custom headers, and
  per-backend routing
- Full Anthropic Messages API support with OpenAI format conversion
- 9 free models across two backends with Claude name aliases
2026-06-26 19:08:01 +02:00