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 acf6b93d.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The FASE 7 frontmatter sync touched docs/architecture/ARCHITECTURE.md but
.i18n-state.json was not refreshed, so npm run i18n:check reported
source-changed drift on every subsequent run.
Resolution: re-ran the hash-based translator end-to-end (npm run i18n:run
-- --locale=pt-BR --files=docs/architecture/ARCHITECTURE.md) which:
- retranslated the source through the production backend (14 chunks,
75 KB pt-BR output);
- persisted the new source/target SHA-256 pair in .i18n-state.json
(target_hash now matches the regenerated translation);
- left every other source/locale pair untouched.
After the run:
npm run i18n:check → PASS - all sources and targets match recorded hashes.
The pre-commit i18n drift advisory will no longer warn for this file.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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>
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>
- ARCHITECTURE.md and CODEBASE_DOCUMENTATION.md: 179 → 177 registered
providers (canonical from src/shared/constants/providers.ts).
- FEATURES.md and en.json wizard step: 13 → 14 routing strategies; lists
all 14 explicitly including reset-aware (the missing one).
- llm.txt root: combo strategy count corrected in 3 places (UI tree,
dashboard summary, fallback semantics).
- MCP-SERVER.md: 37 tool count was already correct; added a "Related
Frameworks (v3.8.0)" section pointing to Cloud Agents
(docs/frameworks/CLOUD_AGENT.md) and Guardrails
(docs/security/GUARDRAILS.md), both sibling frameworks intentionally
outside the MCP tool catalog.
- scripts/i18n/sync-llm-mirrors.mjs (new): idempotent helper to push
root llm.txt body into the 40 docs/i18n/<locale>/llm.txt mirrors
while preserving each locale's heading + language bar prefix; ran
it to refresh all 40 mirrors so `check:docs-sync` is green.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds OMNIROUTE_TRANSLATION_API_URL, OMNIROUTE_TRANSLATION_API_KEY,
OMNIROUTE_TRANSLATION_MODEL, OMNIROUTE_TRANSLATION_TIMEOUT_MS, and
OMNIROUTE_TRANSLATION_CONCURRENCY to both .env.example (commented placeholders)
and docs/reference/ENVIRONMENT.md (new 'Docs translation pipeline' subsection).
Restores the env-doc-sync contract reported by the strict checker added in
FASE 2 — these vars are now referenced by scripts/i18n/run-translation.mjs
introduced in this branch.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Updates docs/guides/I18N.md with a 'Translation pipeline (recommended)' section
documenting the npm run i18n:run / :check / :run:dry flow, required env vars,
state file semantics, and the legacy-script deprecation notice. The legacy
Quick-Reference row for the Python translator is replaced with the new npm
script entry.
Re-translates two sources end-to-end through the new pipeline:
- CLAUDE.md (1 chunk, 23k chars)
- docs/architecture/ARCHITECTURE.md (14 chunks, 74k chars, one timeout retry)
Both translations now have a fresh language bar regenerated from
config/i18n.json (41 locales), an H1 heading with the native language tag,
and prose translated into Brazilian Portuguese while preserving markdown
syntax, code blocks, command names, env var identifiers, and version
numbers verbatim.
.i18n-state.json records the SHA-256 hash for each source and target. A
second invocation with no source changes correctly reports
'work units: 0 (skipped up-to-date: 2 of 2)' and `npm run i18n:check`
exits 0 — confirming the hash-based incremental + drift detection paths
both work as designed.
- Elapsed: ~10 min total at concurrency=4
- Cost: ~75k chars output through the configured backend
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Resolves two conflicts:
- docs/diagrams/README.md: FASE 3 created a placeholder, FASE 4 created the
canonical content. Adopts FASE 4 content and updates the doc paths to the
FASE 3 subfolder layout (architecture/, frameworks/, routing/, guides/).
- package.json: combined FASE 1's new scripts/build/ and scripts/check/ paths
with FASE 4's new docs:render-diagrams script.
Post-merge fixes:
- Rewrites diagram link paths in the 7 subfolder docs from ./diagrams/X to
../diagrams/X (FASE 4 added flat-layout links before FASE 3's subfolder move).
- Adds the i18n-flow diagram link to docs/guides/I18N.md (auto-merge missed it).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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>
Resolves conflict in scripts/check/check-env-doc-sync.mjs (FASE 1 moved it from scripts/ to scripts/check/, FASE 2 modified it at the old path). Applies FASE 2's strict checker version at the new path, fixes __dirname-based REPO_ROOT to traverse two levels up, and updates the unit test import to the new path.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add scripts/docs/render-diagrams.mjs as a thin wrapper around
@mermaid-js/mermaid-cli (mmdc):
- Renders every docs/diagrams/*.mmd into docs/diagrams/exported/*.svg
- Writes a Puppeteer config with --no-sandbox for Ubuntu 23.10+/WSL
- Exits non-zero on first failure so CI can gate on rendering
Expose it as `npm run docs:render-diagrams` and commit the initial
8 rendered SVGs so reviewers see the diagrams without having to install
the renderer locally.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
For all 40 locales, move docs/i18n/<lang>/docs/<DOC>.md into the matching
subfolder (architecture/, guides/, reference/, ...). Mirror references in
docs/i18n/<lang>/{llm.txt,CHANGELOG.md,CONTRIBUTING.md,README.md} are also
rewritten to the new paths so the i18n llm.txt mirror check stays byte-equal
to the root llm.txt body.
These are mechanical moves only — actual translations remain unchanged and
will be regenerated incrementally in FASE 5 (hash-based pipeline).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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>
Rewrites scripts/check-env-doc-sync.mjs so the default mode is strict
(non-zero exit on drift between code references, .env.example, and
docs/ENVIRONMENT.md). The previous "report-only" behavior is still
available via --lenient for ad-hoc local diagnostics.
Highlights:
- Strict mode fails when any of these three sets is non-empty:
1. process.env vars referenced in src/, open-sse/, bin/, scripts/,
electron/main.js, electron/preload.js but missing from
.env.example.
2. .env.example vars missing from docs/ENVIRONMENT.md.
3. docs/ENVIRONMENT.md vars missing from .env.example.
- Allowlists are explicit and curated:
* `IGNORE_FROM_CODE` — system vars (NODE_ENV, PATH, ...), Next.js
internals, CI runner injections, doctor placeholders, and aliases
handled by fallback ordering.
* `DOC_ONLY_ALLOWLIST` — vars intentionally documented in
ENVIRONMENT.md but absent from .env.example (Audit section,
legacy aliases, future-supported hooks, `CHANGEME` default value).
* `ENV_ONLY_ALLOWLIST` — reserved for future use; currently empty.
- The checker now exposes a programmatic `runEnvDocSync({ envExampleText,
envDocText, codeVars, ignore, docOnlyAllowlist, envOnlyAllowlist })`
entry point that other Node tests can import without touching disk.
Helpers `parseEnvExampleVars` and `parseEnvDocVars` are exported so
fixtures can validate the regex contract.
Test coverage in tests/unit/check-env-doc-sync.test.ts (13 cases):
- Parses env.example assignments (commented and uncommented), rejects
prose, and rejects backtick literals that aren't SHOUTY env names.
- Drives runEnvDocSync against in-memory fixtures for every drift
direction (code-missing-env, env-missing-doc, doc-missing-env) and
asserts the allowlists / ignore set behave as expected.
- Calls runEnvDocSync() with no overrides to assert the live
.env.example, docs/ENVIRONMENT.md and source-code references stay in
sync. This is the same check that runs in pre-commit / CI, so the
unit-test failure surfaces drift before reviewers do.
.env.example: documents `AWS_REGION` and `AWS_DEFAULT_REGION` so
Bedrock/Kiro/audio-speech callers stay in the contract.
docs/ENVIRONMENT.md: adds rows for AWS_REGION / AWS_DEFAULT_REGION
inside §20 Provider-Specific Settings.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Brings docs/ENVIRONMENT.md in line with the cleaned-up .env.example. Every
variable present in .env.example now has a row in ENVIRONMENT.md, and the
formatting convention used by the doc tables matches the regex used by
scripts/check-env-doc-sync.mjs.
Notable additions, per section:
- §3 Network & Ports — HOST, HOSTNAME bind overrides.
- §6 Tool & Routing Policies — OMNIROUTE_PAYLOAD_RULES_PATH,
OMNIROUTE_PAYLOAD_RULES_RELOAD_MS.
- §7 URLs & Cloud Sync — KIE_CALLBACK_URL, OMNIROUTE_KIE_CALLBACK_URL,
OMNIROUTE_PUBLIC_URL, plus the three new quota endpoint overrides
(OMNIROUTE_CROF_USAGE_URL, OMNIROUTE_GEMINI_CLI_USAGE_URL,
OMNIROUTE_CODEWHISPERER_BASE_URL).
- §9 CLI Tool Integration — CLI_QWEN_BIN.
- §10 Internal Agent & MCP — MCP description compression toggles,
background-task and healthcheck overrides, RTK trust flag, Redis auth
cache toggle, ANTIGRAVITY_CREDITS.
- §11 OAuth — GitLab legacy fallback variables (`GITLAB_BASE_URL`,
`GITLAB_OAUTH_CLIENT_ID`, `GITLAB_OAUTH_CLIENT_SECRET`).
- §13 CLI Fingerprint — Kimi identity overrides + CLI_COMPAT_* table
reshaped so the variable names appear in their own backticks (matches
the env-doc sync regex). Removed the orphaned CLI_COMPAT_KIRO row.
- §14 API Key Providers — pruned the stub rows for providers whose
static *_API_KEY is no longer consumed at runtime. Added an audit
note pointing to the bottom of the doc.
- §15 Timeout Settings — OMNIROUTE_DEFAULT_FETCH_TIMEOUT_MS,
OMNIROUTE_CHATGPT_TLS_TIMEOUT_MS/GRACE_MS, and the
OMNIROUTE_CIRCUIT_BREAKER_* table.
- §16 Logging — APP_LOG_ROTATION_CHECK_INTERVAL_MS and the
CHAT_LOG_* / CHAT_DEBUG_FILE knobs.
- §21 Proxy Health — RATE_LIMIT_AUTO_ENABLE force-on/off documentation,
HEALTHCHECK_STAGGER_MS.
- §22 Debugging — Cursor executor toggles (CURSOR_DEBUG /
CURSOR_STREAM_DEBUG / CURSOR_DUMP_FILE / CURSOR_STREAM_TIMEOUT_MS /
CURSOR_STATE_DB_PATH / CURSOR_TOKEN), OMNIROUTE_LOG_REQUEST_SHAPE.
Removed CURSOR_PROTOBUF_DEBUG (orphan).
- §23 GitHub — generic GITHUB_TOKEN fallback.
- New §25 — Provider quotas, tunnels, backups & misc runtime, covering
Alibaba Bailian overrides, model alias compatibility, context reserve,
MITM debug proxy, the 1Proxy egress pool, Tailscale binaries, ngrok,
DB backups, and OMNIROUTE_TLS_PROXY_URL. Also documents REDIS_URL,
which previously lived only in .env.example.
- New §26 — Test & E2E harness: OMNIROUTE_E2E_BOOTSTRAP_MODE,
OMNIROUTE_E2E_PASSWORD, healthcheck disablers, Playwright skip-build,
uninstall-hook skip, ecosystem wait timeout, all ELECTRON_SMOKE_*
variables, CLI_DEVIN_BIN.
The Audit section is updated with the v3.8.0 removals (provider API key
stubs, CURSOR_PROTOBUF_DEBUG, CLI_COMPAT_KIRO, QIANFAN_API_KEY) and a
prominent note at the top of the doc explains the sync contract.
.env.example: documents OUTBOUND_SSRF_GUARD_ENABLED (legacy SSRF guard
flag actually consumed by src/shared/network/outboundUrlGuard.ts) and
CODEX_CLIENT_VERSION override.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
REPOSITORY_MAP.md (new, ~26 KB) documents every directory and root file
with one-line descriptions so newcomers can navigate the tree without
opening files. Covers src/, open-sse/, electron/, bin/, scripts/, docs/,
tests/, .github/, .husky/, .claude/, .agents/, and the underscore-prefixed
out-of-tree directories.
README.md (was ~100 KB / 1876 lines) is rewritten as a sales-focused
landing of ~22 KB / 482 lines:
- Updated SEO/JSON-LD/FAQ to v3.8.0 (was 3.7.8) with correct counts
(177 providers, 14 strategies, 37 MCP tools, 14 OAuth, 9-factor Auto-Combo).
- Trimmed long FAQ/Troubleshooting/Compression Math/Docker prose
in favor of links to the dedicated docs.
- Added "What's new in v3.8.0" section + competitive comparison table.
- Added a categorized Documentation index covering all 44 docs in docs/.
- Kept screenshots, quick start, providers summary, compatibility tables,
multi-platform install table, use-cases at a glance, i18n strip,
community + security blocks.
The CHANGELOG, deep technical guides, and per-area references stay where
they belong — under docs/. The README is now a marketing page that
points to them.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds three automated drift-detection scripts under scripts/, plus npm
helpers to run them, and applies small follow-ups to TERMUX, I18N, and
CODEBASE docs flagged by the docs audit.
New scripts (scripts/):
- check-env-doc-sync.mjs — cross-checks process.env.X in code vs
.env.example vs docs/ENVIRONMENT.md. Soft-fails by default; --strict
exits 1 on drift.
- check-docs-counts-sync.mjs — validates counts (executors, routing
strategies, OAuth providers, A2A skills, cloud agents) match between
code and docs.
- check-deprecated-versions.mjs — flags hardcoded stale versions and
"Last updated" dates older than 60 days. Uses hardcoded regexes to
satisfy semgrep ReDoS guidance.
package.json:
- New scripts: check:env-doc-sync, check:docs-counts,
check:deprecated-versions, check:docs-all (umbrella).
Doc refinements:
- TERMUX_GUIDE: spell out the Node version range required by package.json.
- I18N: note that docs/i18n/in/ tree is an orphan duplicate of hi/ that
the generator no longer writes to; replace hard-coded
UNTRANSLATABLE_KEYS count with "varies per release".
- CODEBASE_DOCUMENTATION: minor wording.
Pre-commit hook is unchanged — the new checks are heuristic and ship as
on-demand npm scripts to avoid false-positive blocks.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Refresh the documentation set for v3.8.0 with new guides covering
authz, agent protocols, cloud agents, compliance, electron, evals,
guardrails, memory, skills, stealth, tunnels, webhooks, and more.
Add an auto-generated provider reference plus a
`gen:provider-reference` script to keep provider catalog docs aligned
with `src/shared/constants/providers.ts`.
Refresh the v3.8.0 documentation set across API, setup, Docker,
environment, Fly.io, VM deployment, and troubleshooting guides.
Document the updated budget payload, management-auth requirements,
WebSocket bridge secret, Compose profiles, production deployment
details, and expanded Node support. Also update the OpenAPI catalog,
raise coverage thresholds to match the current baseline, and align
cloud-agent task route typing and schemas with the stricter runtime
behavior.
Integrated into release/v3.8.0 after syncing the contributor branch, removing unrelated workflow/docker/package-lock changes, and validating provider-scoped models coverage locally.
The export-json API now excludes usage_history, domain_cost_history, and
domain_budgets tables by default. These tables grow indefinitely and inflate
config backups to many MBs. Users can opt-in to including them via
?includeHistory=true query param.
Closes#2125
Refresh the compression docs and README to describe the default
stacked pipeline in terms of eligible-context savings instead of the
older generic token-saving range.
Add upstream RTK and Caveman benchmark references, explain the
multiplicative savings math behind the stacked default, and update
feature summaries plus package metadata to match the revised
positioning.
Update the seeded default compression combo to use the RTK then
Caveman pipeline in both fresh installs and upgraded databases.
Add a targeted migration and runtime guard that only rewrites the
legacy seeded record when its original metadata and single-step
pipeline still match, preserving user-customized default combos.
Refresh docs and tests to reflect the stacked default and expanded
RTK filter catalog.
Compress MCP registry and list metadata descriptions for tools, prompts,
resources, and resource templates while keeping tool-response bodies
unchanged. Expose those savings in compression status as
`mcp_metadata_estimate` metadata rather than provider usage.
Add Caveman rule-pack support for custom regex flags and match-specific
replacement maps, update English rules for upstream parity, and tighten
article and pleasantry handling. Also process RTK multipart text blocks
independently so mixed media content compresses safely without
duplicating output.
* chore(rtk): initialize compression roadmap branch
* feat(compression): add RTK engine and compression combos
Introduce RTK command-aware tool-output compression alongside
stacked RTK -> Caveman pipelines for mixed prompt contexts.
Add engine registration, declarative RTK filter packs, language-aware
Caveman rule loading, compression combo persistence and assignments,
analytics grouped by engine/combo, and new MCP/API endpoints for
configuration, previews, filters, and combo management.
Expose the new capabilities in the dashboard with dedicated Context &
Cache pages for Caveman, RTK, and compression combos, and update docs,
i18n strings, migrations, and tests to cover the expanded compression
surface.
* feat(compression): expand RTK DSL, filter catalog, and recovery APIs
Add RTK parity features across the compression pipeline, dashboard,
and management APIs. This expands the built-in filter catalog, adds
trust-gated custom filter loading, inline filter verification, code
stripping, smarter detection, and optional redacted raw-output
retention for authenticated recovery.
Also extend Caveman with file-based multilingual rule packs, localized
output-mode instructions, stricter preview/config schemas, engine
registry metadata, analytics fields, and broad unit test coverage for
RTK, rule loading, and stacked compression behavior.
* fix(auth): protect oauth routes and health reset operations
Require authenticated dashboard access for OAuth endpoints that can
create or import provider connections when login enforcement is
enabled.
Move `/api/monitoring/health` to the readonly public route list so
safe methods remain public while DELETE now returns 401 for anonymous
requests.
Also update Next.js native `.node` handling to avoid webpack parse
failures from external packages such as ngrok and keytar, and add
coverage for the new auth behavior.
* build(compression): ship RTK rule and filter assets with app bundles
Include compression JSON assets in Next output tracing, prepublish copies,
and pack artifact policy checks so standalone and packaged builds can
load RTK filters and caveman rule packs at runtime.
Also harden compression runtime behavior by resolving alternate asset
directories, scoping rule cache entries by source path, carrying RTK raw
output pointers through stacked runs, degrading oversized preview diffs,
and applying combo language/output mode defaults during chat routing.
Add coverage for packaging rules, provider-scoped model parsing, smart
truncate edge cases, raw output retention, and combo-driven compression
behavior.
* docs(workflows): update local repo paths to OmniRoute
Replace outdated `/home/diegosouzapw/dev/proxys/9router` references
with the current `OmniRoute` directory across deploy, release, and
version bump workflow guides so local command examples match the
renamed repository layout
* feat(compression): complete RTK parity coverage
* test(build): align next config assertions
---------
Co-authored-by: diegosouzapw <diego.souza.pw@gmail.com>
Break out long-form README content into focused documentation pages for
core onboarding and operations topics.
Refresh the README navigation to point readers to the new guides while
keeping high-level product sections easier to scan.
Expand the documentation set with standalone guides for free-tier
providers, proxy configuration, and PWA installation while refreshing
the README badge layout and navigation structure.
Remove the docs ignore allowlist so the full documentation tree can be
tracked directly, and drop the outdated context-relay feature page.
* feat(api-keys): add rename support in permissions modal
Add an editable key name field at the top of the permissions modal,
allowing users to rename API keys alongside existing permission settings.
The backend already supported name updates via PATCH /api/keys/:id — this
wires the UI to send the name field and refreshes the key list on success.
Changes:
- Add keyName state and text input to PermissionsModal
- Update handleUpdatePermissions to validate and send name in PATCH body
- Add integration test for rename via PATCH (valid, empty, too-long names)
- Update E2E mock to handle PATCH requests
* chore(release): bump version to 3.7.6
* chore(release): v3.7.6 — merge API key rename feature and sync docs
* chore(release): expand contributor credits to 155 PRs across full project history
- Expanded acknowledgment table from 29 to 53 contributors
- Added 100+ previously uncredited PRs from project inception through v3.7.5
- Moved contributor credits section to v3.7.6 (current release)
- Synced llm.txt version to 3.7.6
* fix: resolve security ReDoS in codex and bugs #1797#1789
* feat(dashboard): implement remaining v3.7.6 dashboard features and fixes
* fix(xiaomi-mimo): update models to V2.5, fix Token Plan validation and default region (#1823)
Integrated into release/v3.7.6
* fix(dashboard): correct loadPresets ReferenceError in CostOverviewTab
* fix(codex): omit compact client metadata (#1822)
Integrated into release/v3.7.6
* feat(chatgpt-web): support thinking_effort (Standard/Extended) for thinking-capable models (#1821)
Integrated into release/v3.7.6
* Fix endpoint visibility, A2A status, and API catalog (#1806)
Integrated into release/v3.7.6
* fix(analytics): use pure SQL aggregations — no history rows loaded (#1802)
Integrated into release/v3.7.6
* fix(stability): resolve codex input validation, enable combo circuit breaker, and fix broken unit tests
* docs(changelog): update for stability bug fixes#1804#1805
* fix: clear active requests and recover providers (#1824)
Integrated into release/v3.7.6
* feat: inject fallback tool names to prevent upstream 400 errors (#1775)
* feat: auto-restore probe-failed database to prevent data loss (#1810)
* fix: safely cast inputs to strings before calling trim() to avoid crashes on numeric fields in proxy modal (#1825)
* chore(release): v3.7.6 — final stability patches for production
* test: update expected db probe-failure error message for auto-restore feature
* chore(workflow): mandate implementation plan generation in resolve-issues
* docs(changelog): rewrite v3.7.6 with complete commit-accurate entries
* feat(analytics): add cost-based usage insights and activity streaks
Expand usage analytics to report total cost, per-series cost totals,
API key counts, and current activity streaks using pricing-aware token
calculations.
Also make probe-failed database recovery choose the newest backup by
its embedded timestamp instead of filesystem mtime so auto-restore
selects the intended snapshot reliably.
* fix(mitm): enforce transparent interception on port 443 only
Reject non-443 MITM port updates in the settings API and normalize
stored configuration back to the required transparent interception
port.
Lock the dashboard port field to 443, update the validation copy, and
add integration coverage to prevent stale custom ports from being
accepted or surfaced.
* docs(changelog): update for analytics and mitm features
---------
Co-authored-by: Andrew Munsell <andrew@wizardapps.net>
Co-authored-by: Antigravity Assistant <bot@antigravity.local>
Co-authored-by: Gi99lin <74502520+Gi99lin@users.noreply.github.com>
Co-authored-by: Sergey Morozov <tr0st@bk.ru>
Co-authored-by: payne <baboialex95@gmail.com>
Co-authored-by: Randi <55005611+rdself@users.noreply.github.com>
Co-authored-by: Paijo <14921983+oyi77@users.noreply.github.com>
Co-authored-by: ipanghu <bypanghu@163.com>