You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
README.md: Documentación completa de LM Studio, Ollama, OpenCode Servers, y OpenCode Cloud
[3.2.5] - 2026-06-11
Added
Tests reales con datos del servidor: 30 tests pasando validados contra respuestas reales.
test/OpenCodeServerProvider.test.ts — 15 tests: extracción de texto/reasoning/tokens de parts[], manejo de errores, respuestas vacías, tool calls, validación de estructura JSON, simulación de orden de eventos streaming
test/OpenCodeServerProvider.streaming.test.ts — 9 tests: orden reasoning→texto, concatenación de múltiples text parts, cancelación de token, manejo de tool calls, respuesta vacía
test/opencode-server.integration.test.ts — 6 tests de integración REAL con servidor opencode + LMStudio:
Verifica health del servidor, crea sesión, envía mensajes
Tarea pesada: genera 900+ chars con 28K tokens en 22s
Verifica reasoning en respuesta compleja (matemáticas)
Valida estructura JSON: step-start → reasoning → text → step-finish
test/provider-behavior.test.ts — 4 tests HONESTOS del comportamiento REAL:
Documenta que el servidor opencode devuelve JSON completo (NO SSE/streaming)
El provider acumula parts[] y emite al final con yield al event loop
100 parts se procesan en ~165ms (si fuera streaming real tardaría 10-20s)
Valida estructura JSON real del servidor: step-start → reasoning → text → step-finish
Documenta la diferencia: opencode (JSON completo) vs LMStudio (SSE real)
Framework: node:test + tsx (sin jest/mocha)
Fixed
Chat se queda "working" infinitamente: Simplificado OpenCodeServerProvider para procesar la respuesta JSON del servidor de forma directa y limpia. Ahora: fetch() → await response.json() → acumular parts[] → emitir progress.report() con yield al event loop entre cada chunk para que VS Code actualice el UI.
Eliminada simulación por delays: Removido todo el código de parsing multi-formato con delays artificiales de 50ms (readAllStreamData, processAnyFormatResponse, parseSSE, parseNDJSON, processParsedEvents, inferEventType, safeParseJson).
Eliminada dependencia @opencode-ai/sdk: El intento de usar el SDK para SSE streaming no funcionó porque el servidor no emite eventos de contenido en tiempo real vía /global/event. El SDK fue removido del bundle (tree-shaking). Bundle bajó de 177KB a 105KB.
Manejo de respuesta limpio: Acumula reasoning, tool calls y texto por separado, luego los emite en orden (reasoning → tools → text) con await new Promise(r => setTimeout(r, 0)) entre cada uno para ceder al event loop.
Manejo de errores: Verificación de messageData.error a nivel top-level antes de procesar parts[].
[3.2.4] - 2026-06-11
Changed
Intento de integración con SDK @opencode-ai/sdk para SSE streaming. Descartado — el servidor no emite eventos de contenido en tiempo real. Solución final en v3.2.5.
[3.2.3] - 2026-06-11
Fixed
Parsing multi-formato de respuestas del servidor (SSE, NDJSON, JSON parts[], OpenAI delta). Obsoleto en v3.2.5 — reemplazado por SDK nativo. Ver v3.2.4 para contexto.
[3.2.2] - 2026-06-11
Fixed
11 TypeScript compilation errors que rompían tsc --noEmit en CI. Ver release v3.2.2 para el listado completo de archivos corregidos.
[3.2.1] - 2026-06-11
Changed
Server launch: Reemplazado exec() con spawn() para lanzar servidores locales como proceso background sin ventana cmd.exe emergente
Launch UX: El usuario puede elegir entre lanzar servidor en terminal VS Code o como proceso background invisible
Activation: Ya no se auto-lanzan servidores locales al activar la extensión
Added
SSE streaming inicial: Server provider lee respuestas como text/event-stream con progreso incremental
Server launch command: Interfaz interactiva con showQuickPick para elegir modo de lanzamiento
[3.2.0] - 2026-06-02
Added
Subagent tool (opencode_subagent): Registered via vscode.lm.registerTool(), delegates to first available OpenCode provider
Thinking blocks: Server provider and BaseOpenCodeProvider now use LanguageModelThinkingPart for collapsible reasoning content
Fixed
Tool registration in package.json — requires modelDescription, displayName, and inputSchema fields
[3.1.0] - 2026-06-02
Fixed
Server provider session API: Correct request format for OpenCode server (model como { providerID, modelID }, solo model y parts en el body)
[3.0.0] - 2026-06-02
BREAKING CHANGES
models.dev API integration: Model capabilities fetched live from https://models.dev/api.json
Server provider rewrite: Usa session-based API (POST /session + POST /session/:id/message)
Single server provider: All connected servers register under one opencode-server vendor
Added
Live model registry: 40+ Zen models + 16 Go models con context sizes, pricing, y capabilities reales