git log --author=686f6c61 --external
Contribuciones Open Source
- ossHermes Agent
Problema: En la app de escritorio, al reanudar una sesión a mitad de turno el dump inflight se pintaba como texto plano y duplicaba las filas estructuradas (reasoning y tool-call).
Solucion: Corregido el bug por el que el gateway proyectaba inflight.assistant como texto plano junto a las partes estructuradas del turno, duplicándolo al cambiar de sesión. El fix deja de proyectar el dump plano cuando el tail del turno ya tiene estructura, acota la supresión al live-tail tras el último mensaje del usuario y exige una fila con estructura para el carry same-turn, con tests de regresión. La PR original (#76744) se cerró sin fusionar y el mismo trabajo aterrizó en main vía #77713 (salvage con autoría en los tres commits del fix). Publicado en «The Herald Release» (Hermes Agent v0.20.0 / v2026.8.3), en cuyos créditos de contribuidores figuro.
TypeScript · Desktop · LLM
- ossHermes Agent
Problema: El ajuste prompt_caching.cache_ttl=off se ignoraba en las rutas de Mixture of Agents (MoA) y en los stubs de fallback, que seguían aplicando caché de prompts.
Solucion: Corregido el bug por el que la desactivación de la caché de prompts (prompt_caching.cache_ttl=off) no se respetaba en las rutas de Mixture of Agents ni en los stubs de fallback. El fix propaga la desactivación a esas rutas. La PR original (#76113) se cerró y el mismo trabajo aterrizó en main vía #76622 (salvage con la autoría), dentro del ciclo de la v0.20.0.
Python · LLM · Prompt Caching
- ossHermes Agent
Problema: Chore de atribución: añade el mapeo de email del contributor (github@00b.tech → 686f6c61) para que la auditoría de atribución pase cuando los commits cherry-picked de los salvages llegan a main.
Solucion: Chore de infraestructura de atribución en el repo de Hermes Agent: se añade el archivo contributors/emails/github@00b.tech con el mapeo a 686f6c61, preparándolo antes del salvage de la PR #76113 (cache_ttl=off / stubs de MoA) para que la auditoría de atribución de contribuidores pase cuando los commits cherry-picked aterrizan en main. Sin ese mapeo, los audits que comprueban que los commits del salvage pertenecen a un contributor registrado podrían no reconocer la autoría de los fix.
Infra · GitHub · Attribution · OSS
- ossHermes Agent
Problema: Bug de entrega fragmentada en el gateway: en respuestas largas sin payload, el envío final se duplicaba o se tragaba. Diagnóstico independiente acreditado en la corrección que entró en main.
Solucion: En el gateway, la entrega fragmentada de respuestas largas sin payload duplicaba o se tragaba el envío final. Abrí la PR #78556 corrigiendo el mismo problema de forma independiente. La corrección que entró en main (#79669, mergeada) cierra mi PR y me acredita de forma explícita por el diagnóstico independiente del bug; el código fusionado fue el de otro contribuidor, con mi diagnóstico reconocido en los créditos.
Python · Gateway · LLM
- ossHermes Agent
Problema: La rotación por rate-limit ponía en cuarentena la clave equivocada: baneaba durante días una credencial de fallback sana en vez de la realmente agotada, porque el pool entry id del agente quedaba obsoleto tras refrescar credenciales del entorno.
Solucion: Corregido el bug por el que, al adoptar una credencial del entorno a mitad de ejecución, `_try_refresh_env_client_credentials` no llamaba a `sync_credential_pool_entry_id()` y el agente seguía apuntando al pool entry anterior; ante un 429, `mark_exhausted_and_rotate` resolvía por `credential_id` (ignorando el `api_key_hint` discrepante) y ponía en cuarentena la clave sana durante días mientras la agotada seguía viva. El fix actúa en tres capas: rebind del pool entry id justo tras adoptar la credencial del entorno (run_agent.py), preferir el `api_key_hint` cuando discrepa del `credential_id` (agent/credential_pool.py) y tests de regresión en ambas capas (79/79 en verde). La PR original (#79180) se cerró sin fusionar y el mismo trabajo aterrizó en main vía #82149 (salvage cherry-picked con la autoría preservada). Fixes #79156.
Python · Credential Pool · Rate Limiting · LLM
- ossHermes Agent
Problema: El rewrite automático de endpoint en las llamadas auxiliares reescribía /anthropic → /v1 también para pasarelas solo-Anthropic (Bailian) y para rutas con api.minimax, rompiendo compresión y visión con 404. Salvage de mi PR #83782 sobre main, con la autoría preservada.
Solucion: El rewrite automático del endpoint en `_to_openai_base_url` reescribía `/anthropic` → `/v1` para cualquier host, lo que rompía las pasarelas Anthropic-only como Bailian (`/apps/anthropic` pasaba a `/apps/v1` → 404) y producía falsos positivos cuando `api.minimax` aparecía en la ruta. La política se invierte a una allowlist de hosts dual-surface (familia MiniMax; se conserva el mapeo ZAI `/paas/v4`): las pasarelas Anthropic-only mantienen su ruta. El fixup de esta PR ancla el marcador al host vía urlparse (coincidencia exacta o sufijo de subdominio). Es la completación a nivel de clase del fix puntual #85466: alcanza los call sites de iteración auxiliar y la rama de API-key donde no hay `api_mode` en scope, algo que los guards por sitio no podían. La PR original (#83782) se cerró sin fusionar y el mismo trabajo aterrizó en main vía #85532 (salvage con la autoría preservada en el commit del fix). Fixes #83642. Tests: 20/20, 3 verificados contra sabotaje.
Python · Gateway · Endpoint Rewrite · LLM
- ossHermes Agent
Problema: Diagnóstico de los dos defectos del spool de transcript en la recuperación tras reinicio (orden de reproducción y fidelidad de campos), acreditado en la PR que los corrige: la reproducción en orden de nombre de archivo rompía la adyacencia tool-call/respuesta y se perdían campos estructurados.
Solucion: Mi PR #78323 (fix(state): verify FTS rebuild write path; spool pending-cap overflow) detectó y diagnosticó correctamente los dos defectos del spool de transcript: el bug de orden (la recuperación recorre sorted(glob("*.json")) y los nombres uuid4 se reinsertan fuera de orden tras una ráfaga de spools por pending-cap) y el bug de fidelidad (su bucle append_kwargs es el intento directo del bug de fidelidad). La PR #84785, abierta por otro contribuidor como supersede de #78323, acredita explícitamente ese diagnóstico ("found both of these defects first, and diagnosed both correctly") y explica que no es un rebase mecánico sino trabajo sobre el código actual: el commit de0f20ff05b aterrizó el spool runtime de forma independiente y reescribió las regiones que tocaba mi PR, dejando ambos defectos aún vivos en main. La corrección ordena por (ts, seq, filename) espejando drain_transcript_spool, preserva los campos estructurados y para la reproducción de la sesión tras el primer fallo (10 tests nuevos). No es un merge propio: es crédito de issue/diagnóstico.
Python · Gateway · Spool · Diagnóstico
- ossHermes Studio
Problema: El estimador de tokens del dashboard no contaba reasoning_content al comprobar el umbral de compresión de contexto, infravalorando el uso por cientos de miles de tokens con payloads thinking de DeepSeek/Kimi.
Solucion: Hermes Studio (el dashboard web de Hermes Agent) infravaloraba el uso de contexto porque su estimador de tokens solo contaba content y tool_calls, ignorando reasoning_content y reasoning. Con payloads de modo thinking (DeepSeek/Kimi), que se devuelven en turnos posteriores, el contexto real se subestimaba por cientos de miles de tokens y la compresión no se disparaba hasta que el upstream fallaba con un HTTP 400. El fix incluye ese contenido en la estimación y añade un test unitario. Mergeado directamente en main.
TypeScript · LLM · Context
- ossllama.cpp
Problema: Anthropic API no soportaba thinking blocks ni signatures para modelos de razonamiento.
Solucion: Añadido soporte para thinking content blocks en la API de Anthropic Messages. Corregidos campos de signature faltantes y eventos duplicados de content_block_start en streaming. Probado con DeepSeek-R1 y Qwen3-Thinking.
C++ · Anthropic API · Streaming
- ossLangChain
Problema: Tool call chunks sin índice no se fusionaban correctamente en streaming, causando errores 422.
Solucion: Corregido bug donde tool_call_chunks sin índice válido no se fusionaban correctamente en streaming con stream_mode="messages". Modificada función merge_lists() para fusionar chunks por id compartido o secuencialmente. Añadidos tests unitarios.
Python · LLM · Streaming
- ossllama.cpp
Problema: Chat templates crasheaban al aplicar filtro |length sobre tipo Undefined en el motor minja.
Solucion: Trazado completo del flujo en el motor minja: claves inexistentes devuelven Undefined (no None), por lo que `is not none` evalúa True y `|length` falla sobre Undefined. Auditados todos los templates en models/templates/, identificados 4 vulnerables (Apriel, DeepSeek-R1-Distill-Qwen-32B, DeepSeek-R1-Distill-Llama-8B, llama-cpp-deepseek-r1) y 8 frágiles. Propuesta corrección en templates (guardia `is defined`) y en engine (registrar length en value_undefined_t).
C++ · Jinja · Minja
- ossMicrosoft Calculator
Problema: Funciones hiperbólicas inversas (sinh^-1, cosh^-1) daban error con valores > 10^100 por validación incorrecta.
Solucion: Análisis del bug donde IsCurrentTooBigForTrig() aplicaba el límite 10^100 indiscriminadamente a todas las funciones trigonométricas e hiperbólicas. Las hiperbólicas inversas son logaritmos disfrazados (sinh^-1(x) = ln(x + sqrt(x^2 + 1))), sin problemas de periodicidad. Propuesta corrección: verificar el flag m_bInv antes de rechazar valores grandes para eximir las inversas hiperbólicas.
C++ · Windows · Math
- ossnuclei-templates
Problema: CVE-2026-26335: RCE en Calero VeraSMART por claves ASP.NET machine keys hardcodeadas.
Solucion: Solicitud de template para detectar CVE-2026-26335 (CVSS 9.8) en Calero VeraSMART (pre-2022 R1). Claves criptograficas ASP.NET compartidas entre instalaciones permiten forjar ViewState malicioso y ejecutar codigo remoto sin autenticacion via deserializacion.
YAML · Security · CVE
- ossOpenRouter SDK
Problema: Sourcemaps faltantes causaban errores en herramientas de build como SWC.
Solucion: Identificado que .npmignore excluía archivos .map a pesar de que tsconfig.json los generaba. OpenAI incluye 844 y Anthropic 296 sourcemaps en sus SDKs. Propuesta solución para incluir los 652 archivos .map.
TypeScript · npm · Build Tools
- ossnuclei-templates
Problema: Plantilla xinclude-injection generaba falsos positivos por regex demasiado permisiva.
Solucion: La regex `root:.*?:[0-9]*:[0-9]*:` matcheaba contenido JavaScript minificado como `PEAM_root:config:123:456:`. Corregida a `root:[^:]*:\d+:\d+:` para restringir a caracteres no-colon y exigir al menos un dígito en UID/GID.
YAML · Regex · Security
- ossLlamaIndex
Problema: DocumentBlock convertía incorrectamente strings vacíos a None en campos opcionales.
Solucion: Corregido bug donde la clase DocumentBlock convertía strings vacíos a None usando evaluación de veracidad de Python. Cambiada lógica `or` por verificaciones explícitas `is None` en campos document_mimetype y title. Añadidos tests unitarios.
Python · LLM · Pydantic
- ossllama.cpp
Problema: Docker Vulkan no detectaba GPUs por falta de librerías libglvnd.
Solucion: Mesa Vulkan ICD no podía inicializar correctamente y vkEnumeratePhysicalDevices() devolvía lista vacía. Añadidas librerías libglvnd0, libgl1, libglx0, libegl1 y libgles2 al Dockerfile.
Docker · Vulkan · Mesa
- osstheHarvester
Problema: Faltaba integración con THC (ip.thc.org) para enumeración de subdominios.
Solucion: Nuevo módulo que integra THC para enumeración de subdominios. API gratuita sin límites de tasa ni clave API. Incluye 24 tests y documentación completa.
Python · OSINT · Security
- ossnuclei-templates
Problema: CVE-2025-34291: Vulnerabilidad CORS en Langflow AI que permite robo de tokens.
Solucion: Template para detectar CVE-2025-34291 en Langflow AI (≤1.6.9). CORS mal configurado refleja cualquier origen con credentials permitidos, encadenado con RCE via /api/v1/validate/code.
YAML · Security · CVE