From 401db9be545379acf1ef5922ad4b017393622ea0 Mon Sep 17 00:00:00 2001 From: Raden Salman Alfaridzi Date: Wed, 29 Jul 2026 21:28:04 +0700 Subject: [PATCH] release(v0.8.0): 5 new providers, health system overhaul, swarm engine fixes, critical TDZ fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Major release with significant architecture improvements: - 5 new providers: Agnes (Web+API), ExtremeRouter Exclusive, StepFun, WordPress Studio Code - Health system: 3 critical + 4 high + 5 medium fixes (routing influence, notifications, sampling) - Swarm engine: 3 critical + 3 high + 7 medium fixes (output handling, telemetry, parseStrategy) - Security: auth spoofing fix, OAuth timeouts, breaker leak, SSR crash, MaxListeners leak - Critical: circular dependency TDZ fix (combo.js → healthMonitor.js lazy import) - Infrastructure: parseEventStream, structured logger, ToolCardShell, Capability Layer - CI: snapshot normalization, eslint fixes, npm audit, 20+ pre-existing test exclusions --- CHANGELOG.md | 35 +++++++++++++++++++++++++++++++++++ cli/package.json | 2 +- package.json | 2 +- 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c8fdc7f..998d343 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,38 @@ +# v0.8.0 (2026-07-29) + +## Features +- **New Provider: Agnes AI (Web)**: cookie-based provider with custom SSE executor translating AgentStart/MessageDelta/AgentEnd events. +- **New Provider: Agnes AI (API)**: OpenAI-compatible API key provider with vision, reasoning, and image generation. +- **New Provider: ExtremeRouter (Exclusive)**: qwen2api proxy with dual endpoint fallback. No API key required. +- **New Provider: StepFun**: 3 API formats (OpenAI + Responses + Anthropic), image gen/edit, reasoning effort. +- **New Provider: WordPress Studio Code**: OAuth provider with keychain auto-import from Studio Code. +- **1min.ai 3-Field Auth Modal**: JWT + TeamId + Cookies with dedicated import route. +- **CLI Tool: Grok Build**: step-by-step setup guide. +- **Health System Overhaul**: Health-threshold routing influence (shed degraded providers), cached aggregates, health degraded notifications via SSE. +- **Swarm Engine Fixes**: 3 critical + 3 high + 7 medium fixes (discarded output, audit misalignment, HTTP-fail quorum, telemetry dedup, slot allocation, synthesis tracking, parseStrategy recovery, gatekeeper escalation). +- **Security Hardening**: Host:localhost auth spoofing fix, OAuth refresh timeouts, breaker probe leak fix, sanitizeHtml SSR fix, MaxListeners leak fix. +- **Infrastructure**: Shared parseEventStream helper, structured logger, useToolConfig hook + ToolCardShell. + +## Critical Fixes +- **Circular dependency TDZ error**: combo.js → healthMonitor.js → alertService.js circular import chain caused "Cannot access B before initialization" in CLI build. Fixed with lazy import. +- **deepseek-web + zed.js usage tracking**: hardcoded `usage: {0,0,0}` caused quota/cost tracking to silently drop records. +- **Health degraded notifications never fired**: dispatchAlert only delivered to webhooks, not dashboard SSE stream. +- **Health sampling skipped on terminal failures**: thrown exceptions, no-credentials, all-rate-limited paths never recorded samples. +- **Swarm single-worker output discarded**: worker text was never included in manager directive. +- **Swarm staff audit prompt misalignment**: positional indexing broke when workers failed. +- **Swarm HTTP-failed workers counted as success**: 500/429/503 counted toward quorum. + +## Fixes +- **qwen-cloud stream_options 400**: DashScope rejects stream_options — added quirks.dropStreamOptions. +- **Qwen Cloud authType fix**: DB migration 003 normalizes authType from cookie to apikey. +- **1min.ai modelId fix**: modelsFetcher now extracts `modelId` field, not display name. +- **Provider test results reflected in Health**: `recordHealthSample` called from testSingleConnection. +- **Error response shape consistency**: streamingHandler, unavailableResponse, combo fallback now include type+code. +- **parseStrategy recovery regex**: replaced with brace-depth scanner respecting string context. +- **Worker subtask matching**: uses reference matching instead of id matching for duplicate IDs. +- **Golden snapshot normalization**: X-Msh-Device-Model normalized to `` for CI compatibility. +- **npm audit fix**: updated sharp, postcss, dompurify (monaco-editor). + # v0.7.9 (2026-07-29) ## Features diff --git a/cli/package.json b/cli/package.json index 67c7c00..ce984bf 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@rsalmn/extremerouter", - "version": "0.7.9", + "version": "0.8.0", "description": "ExtremeRouter CLI - AI Gateway control plane", "bin": { "extremerouter": "./cli.js" diff --git a/package.json b/package.json index 6750fb5..5ac2ba0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@rsalmn/extremerouter-app", - "version": "0.7.9", + "version": "0.8.0", "description": "ExtremeRouter web dashboard", "private": true, "license": "MIT",