diff --git a/CHANGELOG.md b/CHANGELOG.md index 99b402dc8e..393d819e2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,23 @@ --- +## [2.8.9] — 2026-03-20 + +> Sprint: Merge community PRs, fix KIRO MITM card, dependency updates. + +### Merged PRs + +- **PR #498** (@Sajid11194): Fix Windows machine ID crash (`undefined\REG.exe`). Replaces `node-machine-id` with native OS registry queries. **Closes #486.** +- **PR #497** (@zhangqiang8vip): Fix dev-mode HMR resource leaks — 485 leaked DB connections → 1, memory 2.4GB → 195MB. `globalThis` singletons, Edge Runtime warning fix, Windows test stability. (+1168/-338 across 22 files) +- **PRs #499-503** (Dependabot): GitHub Actions updates — `docker/build-push-action@7`, `actions/checkout@6`, `peter-evans/dockerhub-description@5`, `docker/setup-qemu-action@4`, `docker/login-action@4`. + +### Bug Fixes + +- **#505** — KIRO MITM card now displays tool-specific instructions (`api.anthropic.com`) instead of Antigravity-specific text. +- **#504** — Responded with UX clarification (MITM "Inactive" is expected behavior when proxy is not running). + +--- + ## [2.8.8] — 2026-03-20 > Sprint: Fix OAuth batch test crash, add "Test All" button to individual provider pages. diff --git a/docs/openapi.yaml b/docs/openapi.yaml index 14e28dbf5a..f3ae86c2e6 100644 --- a/docs/openapi.yaml +++ b/docs/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: title: OmniRoute API - version: 2.8.8 + version: 2.8.9 description: | OmniRoute is a local-first AI API proxy router. It provides an OpenAI-compatible endpoint that routes requests to multiple AI providers with load balancing, diff --git a/package-lock.json b/package-lock.json index e39b528dc8..72c2ad6ecc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "omniroute", - "version": "2.8.8", + "version": "2.8.9", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "omniroute", - "version": "2.8.8", + "version": "2.8.9", "hasInstallScript": true, "license": "MIT", "workspaces": [ diff --git a/package.json b/package.json index 81864bbd65..9136519c25 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "omniroute", - "version": "2.8.8", + "version": "2.8.9", "description": "Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.", "type": "module", "bin": { diff --git a/src/app/(dashboard)/dashboard/cli-tools/components/AntigravityToolCard.tsx b/src/app/(dashboard)/dashboard/cli-tools/components/AntigravityToolCard.tsx index 50ecb8b53e..03a21cb241 100644 --- a/src/app/(dashboard)/dashboard/cli-tools/components/AntigravityToolCard.tsx +++ b/src/app/(dashboard)/dashboard/cli-tools/components/AntigravityToolCard.tsx @@ -355,25 +355,33 @@ export default function AntigravityToolCard({ )} {/* When stopped: how it works */} - {!isRunning && ( -
-

- {t("howItWorks")}{" "} - {t("antigravityHowWorksDesc")} -

-
- {t("antigravityStep1")} - - {t("antigravityStep2Prefix")}{" "} - - daily-cloudcode-pa.googleapis.com - {" "} - {t("antigravityStep2Suffix")} - - {t("antigravityStep3")} -
-
- )} + {!isRunning && + (() => { + // Dynamic MITM instructions per tool (#505) + const mitmDomains: Record = { + antigravity: "daily-cloudcode-pa.googleapis.com", + kiro: "api.anthropic.com", + }; + const toolName = tool.name || tool.id; + const domain = mitmDomains[tool.id] || mitmDomains.antigravity; + return ( +
+

+ {t("howItWorks")}{" "} + {t("mitmHowWorksDesc", { toolName })} +

+
+ {t("mitmStep1")} + + {t("mitmStep2Prefix")}{" "} + {domain}{" "} + {t("mitmStep2Suffix")} + + {t("mitmStep3", { toolName })} +
+
+ ); + })()} )} diff --git a/src/i18n/messages/en.json b/src/i18n/messages/en.json index c10b509a06..bfd7d14c56 100644 --- a/src/i18n/messages/en.json +++ b/src/i18n/messages/en.json @@ -437,6 +437,11 @@ "antigravityStep2Prefix": "2. Add", "antigravityStep2Suffix": "to your hosts file as 127.0.0.1.", "antigravityStep3": "3. Open Antigravity and requests will be proxied.", + "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.", + "mitmStep1": "1. Start MITM to route requests through OmniRoute.", + "mitmStep2Prefix": "2. Add", + "mitmStep2Suffix": "to your hosts file as 127.0.0.1.", + "mitmStep3": "3. Open {toolName} and requests will be proxied.", "sudoPasswordRequiredTitle": "Sudo Password Required", "sudoPasswordHint": "Administrator password is required to modify hosts file and system proxy settings.", "enterSudoPassword": "Enter sudo password",