mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-31 12:22:14 +03:00
dbef3ff752184d27dda71a8a67e3ae6e62f73685
9 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
6248699ce5 |
Release/v3.8.0 — full changelog with 660+ commits (#2419)
* fix(cli-tools): guard modelId type before calling indexOf E2E shakedown v3.8.0: cli-tools quebrava com TypeError quando dynamicModels continha entradas sem .id (objeto retornado diretamente em vez de string). * fix(offline): avoid SSR/CSR hydration mismatch on navigator.onLine Replace useState+lazy-initializer with useSyncExternalStore so the server snapshot (() => false) and client snapshot (() => navigator.onLine) are declared separately. React hydrates with the server value and switches to the real online status client-side without a mismatch. * chore(i18n): add missing en.json keys for translator, cli-tools, memory, onboarding Adds 58 missing keys identified by the new dashboard audit script: - cliTools: 18 custom CLI builder keys (CustomCliCard) - translator: 24 keys covering stream transformer, live monitor, test bench - memory: 12 health/pagination/dialog keys - onboarding.tier: 8 keys for the tier tour walkthrough Also adds scripts/i18n/audit-dashboard-pages.mjs which scans all dashboard pages, reports t() calls referencing missing en.json keys, and flags candidate hardcoded JSX/attribute strings. * chore(i18n): replace hardcoded UI text with t() calls across dashboard (round 1) Subagents refactored 8 high-impact dashboard pages, replacing 81 of the 407 hardcoded English/PT strings flagged by the audit with proper useTranslations() lookups. Added 73 corresponding keys to en.json across the home, apiManager, providers, settings, and usage namespaces. Pages affected: - BudgetTab (27 → 0) - HomePageClient (2 → 0) - RoutingTab (25 → 7) - ResilienceTab (38 → 18) - SystemStorageTab (42 → 21) - providers/[id] (17 → 15) - ApiManagerPageClient (14 → 13) - OneproxyTab (13 → 10) Also adds two helper scripts: - scripts/i18n/extract-keys-from-diff.mjs — extracts new keys from git diff - scripts/i18n/merge-keys.mjs — merges a pending-keys JSON into en.json Remaining hardcoded strings will be addressed in follow-up rounds. * chore(i18n): replace hardcoded UI text with t() calls across dashboard (round 2) Continues round 1 (commit |
||
|
|
54be51a664 |
chore(docs): remove all competitor references from branch
Remove every reference to the competing open-source project from docs, comparisons, i18n mirrors, comments, and source files so the branch history does not expose competitive intelligence. |
||
|
|
302ea853d5 |
docs/ux(release): tier marketing, onboarding tour, comparison, and v3.8.0 changelog
Task 8 — Tier 1/2/3 marketing & onboarding UX:
- README "Why OmniRoute?" enhanced with ASCII 3-tier fallback diagram
and comparison table vs 9router/LiteLLM/OpenRouter/Portkey
- docs/marketing/TIERS.md: user-facing tier guide with provider
classification, strategy notes, and common patterns
- images/tier-flow-{light,dark}.svg: SVG tier flow diagrams
- TierFlowDiagram.tsx: responsive SVG diagram (light/dark via next-themes)
- TierTour.tsx: onboarding step showing tier flow + 3 tier cards
- onboarding/page.tsx: inserts "How It Works" tier step after Welcome
- TierCoverageWidget.tsx: home dashboard card showing active provider
counts per tier with "Add" CTA for empty tiers
- HomePageClient.tsx: renders TierCoverageWidget before providers section
- en.json: onboarding.tier namespace (tier1/2/3 labels, subtitle, CTAs)
- docs/routing/AUTO-COMBO.md: tier weight table and override example
Task 9 — Docs, CHANGELOG, comparison page:
- CHANGELOG.md: [3.8.0] section documenting all Tasks 1-8
- docs/releases/v3.8.0.md: detailed release notes with migration guide
- docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md: 9router/LiteLLM/
OpenRouter/Portkey comparison matrix
- docs/architecture/REPOSITORY_MAP.md: new bin/cli/tray/, bin/cli/runtime/,
skills/ directories
- docs/ops/RELEASE_CHECKLIST.md: v3.8.0+ checks (tray, SQLite, MCP filter,
route guard)
|
||
|
|
8f915b18b0 |
feat(runtime): dynamic SQLite runtime installer with 5-step fallback chain
Adds bin/cli/runtime/sqliteRuntime.mjs that resolves better-sqlite3 from: (1) bundled optionalDependency, (2) ~/.omniroute/runtime/ install, (3) lazy npm install into runtime dir, (4) node:sqlite stdlib (Node >=22.5), (5) bundled sql.js WASM. Each native binary is validated against expected platform magic bytes (ELF/Mach-O/PE) before load. Adds bin/cli/runtime/magicBytes.mjs with validateBinaryMagic() helper (9 tests). Adds bin/cli/runtime/index.mjs as warmUpRuntimes() orchestrator. Adds scripts/postinstall.mjs warm-up hook (non-fatal, skipped in CI). Integrates it as the last step of scripts/build/postinstall.mjs. Extends src/lib/db/core.ts with ensureDbInitialized() (async, idempotent) and getDriverInfo() so the startup orchestrator can await the resolver before any DB access, enabling graceful degradation without crashing the process on missing better-sqlite3. Solves Windows EBUSY error on 'npm install -g omniroute@latest' while the previous version is still running, and works in environments without C++ build tools or with unreachable npm registry. Documents OMNIROUTE_SKIP_POSTINSTALL in .env.example and ENVIRONMENT.md. Ref: 9router/cli/hooks/sqliteRuntime.js (pattern origin). |
||
|
|
91b457a802 |
docs(release): add i18n / doc-links / env-doc checks to RELEASE_CHECKLIST
Wires the new platform-overhaul gates into the Detailed Checklist used by
the release-cut workflow:
Documentation block:
npm run check:docs-all (umbrella over sync, counts, env-doc, deprecated, doc-links)
npm run check:env-doc-sync (code ↔ .env.example ↔ ENVIRONMENT.md parity)
npm run check:doc-links (no broken internal markdown refs)
i18n block (replaces stale `scripts/i18n-check.mjs` mention):
npm run i18n:check (drift between source docs and .i18n-state.json)
npm run i18n:check-ui-coverage (every locale ≥ 80% UI key coverage)
npm run i18n:sync-ui:dry (0 missing keys across 40 locales)
Note about running npm run i18n:run when source English docs change.
These are the same checks newly enforced by the docs-sync-strict and
i18n-ui-coverage CI jobs added in commit
|
||
|
|
52f29f2347 |
fix(docs): rewrite 270 broken internal markdown links after subfolder restructure
The FASE 3 /docs restructure moved files into 8 subfolders (architecture,
guides, reference, frameworks, routing, security, compression, ops) but left
several link categories with stale relative paths. The new check:doc-links
gate (FASE 8) surfaced these and produced this exhaustive fix sweep.
Categories repaired (counts before → after, total broken: 270 → 0):
i18n-relative (241 → 0): docs in subfolders now reference translations
under docs/i18n/<locale>/docs/<subfolder>/<FILE>.md (one extra "../"
plus the docs/<subfolder>/ segment). Affects ARCHITECTURE, FEATURES,
USER_GUIDE, TROUBLESHOOTING, UNINSTALL, VM_DEPLOYMENT_GUIDE,
API_REFERENCE, and the I18N.md self-reference table.
parent-relative (14 → 0): refs like ../CLAUDE.md, ../CONTRIBUTING.md,
../AGENTS.md, ../Tuto_Qdrant.md, ../open-sse/..., ../electron/...,
../src/... promoted from one to two parent hops (../ → ../../) to
reach repo root from docs/<subfolder>/.
screenshots (9 → 0): FEATURES.md PNG refs rewritten to ../screenshots/
(assets live at docs/screenshots/ unchanged).
missing-rfc (2 → 0): RFC-AUTO-ASSESSMENT.md was deleted earlier in the
overhaul; replaced refs in EVALS.md with pointers to the live
AUTO-COMBO.md scoring doc plus an in-prose mention of
src/domain/assessment/.
other (4 → 0): ENVIRONMENT.md → ../../.env.example,
SETUP_GUIDE.md → ../../{open-sse/mcp-server,src/lib/a2a}/README.md,
PROVIDER_REFERENCE.md → ../../src/shared/... and ../../open-sse/...,
VM_DEPLOYMENT_GUIDE.md omnirouteCloud reference replaced with a
pointer to in-repo TUNNELS_GUIDE.md (omnirouteCloud lives in a
separate companion repo).
Validation:
npm run check:doc-links → PASS (501 internal links, 0 broken)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||
|
|
caa262a4c5 |
feat(docs): add YAML frontmatter to all docs (title/version/lastUpdated)
Every .md under docs/{architecture,guides,reference,frameworks,routing,
security,compression,ops,diagrams} plus docs/README.md now opens with:
---
title: "<inferred from first H1>"
version: 3.8.0
lastUpdated: 2026-05-13
---
46 files updated (no docs were skipped — none had pre-existing
frontmatter). [slug]/page.tsx already reads frontmatter.version and
frontmatter.lastUpdated via gray-matter and renders a "v3.8.0" pill
plus a "Last updated" caption, so the UI picks these up automatically.
Helper: scripts/docs/add-frontmatter.mjs — idempotent (skips files that
already start with `---`), falls back to a humanized basename when no
leading H1 exists. Excludes docs/i18n/, docs/screenshots/,
docs/superpowers/, docs/diagrams/exported/. Re-runnable safely.
Also regenerated src/app/docs/lib/docs-auto-generated.ts: 44 docs across
8 sections (Architecture / Guides / Reference / Frameworks / Routing /
Security / Compression / Ops), which now includes the 14 docs that were
missing from the v3.7 sidebar (Cloud Agents, Guardrails, Memory, Skills,
Webhooks, Evals, Authz, Agent Protocols, Repository Map, Provider
Reference, Reasoning Replay, Stealth Guide, Tunnels Guide, Electron
Guide).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||
|
|
afe2a67c76 |
Merge FASE 3: docs restructure into 8 subfolders
Reorganizes /docs into 8 subfolders (architecture, guides, reference, frameworks, routing, security, compression, ops). Resolves two conflicts: - scripts/docs/gen-provider-reference.ts: combined FASE 1's new __dirname-based ROOT (two levels up from scripts/docs/) with FASE 3's new output path (docs/reference/PROVIDER_REFERENCE.md). - scripts/check-env-doc-sync.mjs: deleted by FASE 1, modified by FASE 3; FASE 1's delete wins (file is at scripts/check/ now). The FASE 3 intent (point to docs/reference/ENVIRONMENT.md) was applied to the strict checker at the new path. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
b4665fc852 |
refactor(docs): create 8 subfolders + diagrams/, move 44 docs preserving history
Group docs into intent-based subfolders so the topic each file covers is visible from the directory layout: architecture/, guides/, reference/, frameworks/, routing/, security/, compression/, ops/. Adds an empty diagrams/ placeholder (populated in FASE 4) and a navigable docs/README.md index. Files were moved with git mv so history is preserved. Internal cross-doc links were rewritten to point at the new subfolder paths. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |