From 4bfdc7115180586ea4ae5c52bd471a5e82a7549d Mon Sep 17 00:00:00 2001
From: KiaroSama
Date: Tue, 13 Oct 2026 11:27:02 +0330
Subject: [PATCH 01/25] feat: manage proxy cores
---
.github/workflows/managed-proxy-cores.yml | 48 ++
.gitignore | 19 +
config/quality/eslint-suppressions.json | 5 -
docs/frameworks/EMBEDDED-SERVICES.md | 57 +-
scripts/test/check-managed-proxy-native.ts | 75 +++
.../settings/components/ProxyTab.tsx | 11 +-
.../components/proxy/ManagedProxyTab.tsx | 205 +++++++
src/app/api/services/managed-proxy/route.ts | 106 ++++
.../settings/proxies/batch-delete/route.ts | 4 +-
src/lib/api/managedProxyRegistry.ts | 58 ++
src/lib/api/proxyRegistryRouteHandlers.ts | 6 +-
src/lib/db/proxies/managedRegistry.ts | 41 ++
src/lib/services/ServiceSupervisor.ts | 82 ++-
src/lib/services/bootstrap.ts | 2 +
src/lib/services/healthCheck.ts | 10 +-
src/lib/services/managedProxy/config.ts | 554 ++++++++++++++++++
src/lib/services/managedProxy/install.ts | 185 ++++++
src/lib/services/managedProxy/manager.ts | 293 +++++++++
src/lib/services/managedProxy/releases.ts | 52 ++
src/lib/services/managedProxy/remove.ts | 72 +++
src/lib/services/managedProxy/runtime.ts | 159 +++++
src/lib/services/types.ts | 4 +
src/shared/components/ProxyConfigModal.tsx | 199 ++-----
src/shared/components/ProxyCustomFields.tsx | 160 +++++
src/shared/components/managedProxySave.ts | 36 ++
.../components/proxyConfigPersistence.ts | 53 ++
tests/unit/managedProxyArchive.test.ts | 35 ++
tests/unit/managedProxyConfig.test.ts | 74 +++
tests/unit/managedProxyManager.test.ts | 154 +++++
.../components/ProxyConfigModal.test.tsx | 37 +-
30 files changed, 2598 insertions(+), 198 deletions(-)
create mode 100644 .github/workflows/managed-proxy-cores.yml
create mode 100644 scripts/test/check-managed-proxy-native.ts
create mode 100644 src/app/(dashboard)/dashboard/settings/components/proxy/ManagedProxyTab.tsx
create mode 100644 src/app/api/services/managed-proxy/route.ts
create mode 100644 src/lib/api/managedProxyRegistry.ts
create mode 100644 src/lib/db/proxies/managedRegistry.ts
create mode 100644 src/lib/services/managedProxy/config.ts
create mode 100644 src/lib/services/managedProxy/install.ts
create mode 100644 src/lib/services/managedProxy/manager.ts
create mode 100644 src/lib/services/managedProxy/releases.ts
create mode 100644 src/lib/services/managedProxy/remove.ts
create mode 100644 src/lib/services/managedProxy/runtime.ts
create mode 100644 src/shared/components/ProxyCustomFields.tsx
create mode 100644 src/shared/components/managedProxySave.ts
create mode 100644 src/shared/components/proxyConfigPersistence.ts
create mode 100644 tests/unit/managedProxyArchive.test.ts
create mode 100644 tests/unit/managedProxyConfig.test.ts
create mode 100644 tests/unit/managedProxyManager.test.ts
diff --git a/.github/workflows/managed-proxy-cores.yml b/.github/workflows/managed-proxy-cores.yml
new file mode 100644
index 000000000000..44f1c07949d6
--- /dev/null
+++ b/.github/workflows/managed-proxy-cores.yml
@@ -0,0 +1,48 @@
+name: Managed proxy cores
+
+on:
+ pull_request:
+ paths:
+ - "src/lib/services/managedProxy/**"
+ - "src/lib/services/ServiceSupervisor.ts"
+ - "src/lib/services/healthCheck.ts"
+ - "src/lib/services/types.ts"
+ - "src/app/api/services/managed-proxy/**"
+ - "src/shared/components/ProxyCustomFields.tsx"
+ - "tests/unit/managedProxy*.test.ts"
+ - "scripts/test/check-managed-proxy-native.ts"
+ - ".github/workflows/managed-proxy-cores.yml"
+ workflow_dispatch:
+
+permissions:
+ contents: read
+
+jobs:
+ native-config:
+ timeout-minutes: 12
+ strategy:
+ fail-fast: false
+ max-parallel: 2
+ matrix:
+ os: [ubuntu-latest, windows-latest]
+ runs-on: ${{ matrix.os }}
+ steps:
+ - uses: actions/checkout@v7
+ with:
+ persist-credentials: false
+ - uses: actions/setup-node@v7
+ with:
+ node-version: "24"
+ cache: npm
+ - run: npm ci
+ - name: Check official core configuration fixtures
+ run: node --import tsx/esm scripts/test/check-managed-proxy-native.ts
+ env:
+ CI: "true"
+ NODE_ENV: test
+ DATA_DIR: ${{ runner.temp }}/managed-core-data
+ HOME: ${{ runner.temp }}/managed-core-home
+ USERPROFILE: ${{ runner.temp }}/managed-core-home
+ APPDATA: ${{ runner.temp }}/managed-core-home
+ LOCALAPPDATA: ${{ runner.temp }}/managed-core-home
+ HOOKMAKER_MAX_TEST_WORKERS: "1"
diff --git a/.gitignore b/.gitignore
index b4fffd360bd4..8dbb50b3cd9c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -289,6 +289,25 @@ docker-compose.yml.bak
# e impede que um git add -A recapture o symlink (incidente 2026-08-08).
/_tasks
+# Local development protection
+/.ai/
+/.specify/
+/specs/
+/secrets.md
+/explain-AI.md
+/reference.md
+/CLAUDE.md
+/AGENTS.md
+/.kiro/
+/.codex/
+/.cursor/
+/.cline/
+/graphify-out/
+/.codebase-memory/
+/plans/
+.ignoreme
+**/.ignoreme
+
# CLI local cache/state
.playwright-cli
diff --git a/config/quality/eslint-suppressions.json b/config/quality/eslint-suppressions.json
index 8cbc6474a0c3..03a1bd6da494 100644
--- a/config/quality/eslint-suppressions.json
+++ b/config/quality/eslint-suppressions.json
@@ -1509,11 +1509,6 @@
"count": 1
}
},
- "src/lib/services/ServiceSupervisor.ts": {
- "@typescript-eslint/no-unused-vars": {
- "count": 1
- }
- },
"src/lib/skills/a2a.ts": {
"@typescript-eslint/no-unused-vars": {
"count": 2
diff --git a/docs/frameworks/EMBEDDED-SERVICES.md b/docs/frameworks/EMBEDDED-SERVICES.md
index acdf5c3ac539..507a5a96b106 100644
--- a/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/frameworks/EMBEDDED-SERVICES.md
@@ -34,14 +34,14 @@ via API keys), embedded services run on the same machine as OmniRoute and commun
Seven services are embedded:
-| Service | npm package | Default port | Purpose |
-| --------------- | ---------------------------------- | :----------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **9Router** | `9router` | 20130 | AI router that OmniRoute can use as a sub-provider. Models exposed as `9router/{sub}/{model}` |
-| **CLIProxyAPI** | GitHub release binary (`cliproxy`) | 8317 | Local proxy adapter for Anthropic CLI auth flows. Provides fallback routing when OAuth tokens expire |
-| **Mux** | `mux` (headless `mux server`) | 8322 | Local agent-orchestration daemon (coder/mux). Lifecycle-managed only — not a routing target (no LLM proxying). |
-| **Bifrost** | `@maximhq/bifrost` | 8080 | Go AI-gateway relay backend. When running, auto-selected by the relay route (`/v1/relay/`) |
-| **Dario** | `@askalf/dario` | 3456 | Claude-subscription proxy — alternative/failover to CLIProxyAPI for Claude-Code-shaped traffic; the injected key becomes `DARIO_ADMIN_TOKEN` gating its `/admin/*` OAuth control plane |
-| **open-wa** | `@open-wa/wa-automate` | 8323 | WhatsApp Web automation (headless Chromium via Puppeteer). Lifecycle-managed only — not a routing target. |
+| Service | npm package | Default port | Purpose |
+| --------------- | ---------------------------------- | :----------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **9Router** | `9router` | 20130 | AI router that OmniRoute can use as a sub-provider. Models exposed as `9router/{sub}/{model}` |
+| **CLIProxyAPI** | GitHub release binary (`cliproxy`) | 8317 | Local proxy adapter for Anthropic CLI auth flows. Provides fallback routing when OAuth tokens expire |
+| **Mux** | `mux` (headless `mux server`) | 8322 | Local agent-orchestration daemon (coder/mux). Lifecycle-managed only — not a routing target (no LLM proxying). |
+| **Bifrost** | `@maximhq/bifrost` | 8080 | Go AI-gateway relay backend. When running, auto-selected by the relay route (`/v1/relay/`) |
+| **Dario** | `@askalf/dario` | 3456 | Claude-subscription proxy — alternative/failover to CLIProxyAPI for Claude-Code-shaped traffic; the injected key becomes `DARIO_ADMIN_TOKEN` gating its `/admin/*` OAuth control plane |
+| **open-wa** | `@open-wa/wa-automate` | 8323 | WhatsApp Web automation (headless Chromium via Puppeteer). Lifecycle-managed only — not a routing target. |
| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Prompt-compression sidecar — real LLMLingua-2 ONNX model (JS/TS port of Microsoft's algorithm). `open-sse/services/compression/engines/llmlingua/index.ts` dispatches `/compress` over HTTP to it, falling back to the in-process worker-thread backend when the sidecar is down. Lifecycle-managed only — not a routing target. |
All seven follow the same supervisory model:
@@ -51,6 +51,45 @@ All seven follow the same supervisory model:
- OmniRoute injects an ephemeral API key into the child's environment and rotates it without downtime (where applicable)
- All management routes (`/api/services/*`) are **LOCAL_ONLY** — accessible only from loopback (hard rule #17)
+### Managed proxy cores
+
+The Custom proxy host field also accepts a V2Ray source link. Select **sing-box** or **Xray**
+explicitly, then click Save. Typing never downloads or starts a core. Save verifies the official
+release archive, validates native configuration, starts a distinct localhost SOCKS listener, and
+only then writes the proxy registry assignment. Failed activation restores the previous managed
+configuration and process. `STORAGE_ENCRYPTION_KEY` is required; source links are encrypted.
+
+Managed files live under `DATA_DIR/services/managed-proxy/`, separate from TPROXY. There is one
+owned process per selected core, up to 100 listeners. No autostart or global routing default is
+changed. Successful Save remembers activation for this managed core only; application startup
+restores enabled saved cores using the already verified binary, never a boot-time download.
+Explicit Stop clears that activation flag. A missing or damaged binary requires re-saving a source.
+Registry deletion removes the source and listener locally; ordinary endpoint edits are rejected for
+managed rows so the saved source cannot silently drift from its routed listener.
+
+| Source format | sing-box | Xray |
+| ------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | Supported conversion | Supported conversion |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Supported conversion | Rejected; use a compatible core |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Supported for VLESS/VMess/Trojan | Supported for VLESS/VMess/Trojan |
+| XHTTP URI transport | Rejected | Supported conversion |
+| Native outbound JSON | Selected core's allowed proxy protocols/options, checked natively | Selected core's allowed proxy protocols/options, checked natively |
+
+Unknown wire options, insecure TLS flags, external plugins, local file-path options and unsupported
+combinations are rejected rather than silently discarded. Native objects are outbound definitions,
+not whole-core configurations; control/direct/bypass outbounds are not accepted. WireGuard on
+sing-box 1.14 uses endpoints, so it is not accepted as a native outbound. This is not an all-format
+converter; SSR, legacy whole-base64 Shadowsocks links, arbitrary Clash objects and transport
+variants absent from the table need a separately supported source format.
+
+`/api/services/managed-proxy` is authenticated and loopback-only: GET lists redacted metadata,
+POST saves `{core,name,sourceLink,id?,assignment?}`, PATCH accepts `{core,action:"start"|"stop"}`.
+The host's trusted peer-stamp pipeline must be present. Native core diagnostics are suppressed
+because they can contain credentials; lifecycle events use the existing structured application
+file logger without source links or upstream payloads. Attach only sanitized application logs for
+support. Official versions are pinned to sing-box 1.14.3 and Xray 26.3.27 with release-asset
+SHA-256 manifests; future updates require changing the version and all verified digests together.
+
### Key decisions (from design plan)
| Decision | Value |
@@ -154,7 +193,7 @@ All seven follow the same supervisory model:
| `src/lib/services/installers/cliproxy.ts` | npm install/update/uninstall for CLIProxyAPI |
| `src/lib/services/installers/mux.ts` | npm install/update/uninstall for Mux |
| `src/lib/services/installers/openwa.ts` | npm install/update/uninstall for open-wa |
-| `src/lib/services/installers/llmlingua.ts` | npm install/update/uninstall for LLMLingua |
+| `src/lib/services/installers/llmlingua.ts` | npm install/update/uninstall for LLMLingua |
| `src/app/api/services/9router/_lib.ts` | `getOrInitSupervisor()` helper |
| `src/app/api/services/[name]/logs/route.ts` | Shared SSE logs endpoint |
| `open-sse/executors/ninerouter.ts` | Provider executor (Layer 4) |
diff --git a/scripts/test/check-managed-proxy-native.ts b/scripts/test/check-managed-proxy-native.ts
new file mode 100644
index 000000000000..f6cf714fb08f
--- /dev/null
+++ b/scripts/test/check-managed-proxy-native.ts
@@ -0,0 +1,75 @@
+import assert from "node:assert/strict";
+import fs from "node:fs";
+import path from "node:path";
+import os from "node:os";
+import { execFileSync } from "node:child_process";
+import {
+ sourceOutbound,
+ renderManagedConfig,
+ nativeCheckArgs,
+ type ManagedCore,
+} from "../../src/lib/services/managedProxy/config.ts";
+import { installManagedCore } from "../../src/lib/services/managedProxy/install.ts";
+
+// CI-only official binary check; never serves an upstream or starts a core listener.
+if (process.env.CI !== "true") throw new Error("Native managed-core verification runs only in CI");
+const root = fs.mkdtempSync(path.join(os.tmpdir(), "managed-core-native-"));
+const UUID = "11111111-1111-4111-8111-111111111111";
+const vmess =
+ "vmess://" +
+ Buffer.from(
+ JSON.stringify({
+ v: "2",
+ ps: "synthetic",
+ add: "127.0.0.1",
+ port: 9,
+ id: UUID,
+ aid: 0,
+ scy: "auto",
+ net: "tcp",
+ type: "none",
+ tls: false,
+ })
+ ).toString("base64");
+const shared = [
+ `vless://${UUID}@127.0.0.1:9?security=none`,
+ `vless://${UUID}@127.0.0.1:9?security=tls&type=ws&path=%2Fchat&sni=example.invalid`,
+ `trojan://synthetic-password@127.0.0.1:9?sni=example.invalid`,
+ "ss://YWVzLTEyOC1nY206c3ludGhldGljLXBhc3N3b3Jk@127.0.0.1:9",
+ vmess,
+];
+try {
+ for (const core of ["singbox", "xray"] as ManagedCore[]) {
+ const executable = await installManagedCore(core, root);
+ const sources =
+ core === "singbox"
+ ? [
+ ...shared,
+ "hy2://synthetic-password@127.0.0.1:9?sni=example.invalid",
+ `tuic://${UUID}:synthetic-password@127.0.0.1:9?sni=example.invalid`,
+ "anytls://synthetic-password@127.0.0.1:9?sni=example.invalid",
+ ]
+ : shared;
+ for (let i = 0; i < sources.length; i++) {
+ const outbound = sourceOutbound(core, sources[i]);
+ const config = renderManagedConfig(core, [{ id: "synthetic", port: 24001, outbound }]);
+ const file = path.join(root, `${core}-${i}.json`);
+ fs.writeFileSync(file, JSON.stringify(config), { encoding: "utf8", mode: 0o600 });
+ const env: NodeJS.ProcessEnv = {};
+ for (const key of ["SystemRoot", "WINDIR", "PATH", "TEMP", "TMP"])
+ if (process.env[key]) env[key] = process.env[key];
+ const output = execFileSync(executable, nativeCheckArgs(core, file), {
+ cwd: root,
+ env,
+ timeout: 15000,
+ maxBuffer: 65536,
+ windowsHide: true,
+ encoding: "utf8",
+ });
+ if (core === "xray") assert.ok(output.includes("Configuration OK"));
+ console.log(`Native ${core} fixture ${i + 1}/${sources.length} accepted`);
+ }
+ }
+} finally {
+ fs.rmSync(root, { recursive: true, force: true });
+}
diff --git a/src/app/(dashboard)/dashboard/settings/components/ProxyTab.tsx b/src/app/(dashboard)/dashboard/settings/components/ProxyTab.tsx
index 01b308edd153..2dd863e982f7 100644
--- a/src/app/(dashboard)/dashboard/settings/components/ProxyTab.tsx
+++ b/src/app/(dashboard)/dashboard/settings/components/ProxyTab.tsx
@@ -7,8 +7,15 @@ import ProxyPoolTab from "./proxy/ProxyPoolTab";
import FreePoolTab from "./proxy/FreePoolTab";
import DocumentationTab from "./proxy/DocumentationTab";
import SubscriptionTab from "./proxy/SubscriptionTab";
+import ManagedProxyTab from "./proxy/ManagedProxyTab";
-type TabId = "global-config" | "proxy-pool" | "free-pool" | "documentation" | "subscriptions";
+type TabId =
+ | "global-config"
+ | "proxy-pool"
+ | "free-pool"
+ | "documentation"
+ | "subscriptions"
+ | "managed-cores";
const TABS: Array<{ id: TabId; labelKey: string; fallback: string }> = [
{ id: "global-config", labelKey: "proxyGlobalConfigTab", fallback: "Global config" },
@@ -16,6 +23,7 @@ const TABS: Array<{ id: TabId; labelKey: string; fallback: string }> = [
{ id: "free-pool", labelKey: "freePoolTab", fallback: "Free pool" },
{ id: "documentation", labelKey: "proxyDocumentationTab", fallback: "Documentation" },
{ id: "subscriptions", labelKey: "proxySubscriptionsTab", fallback: "Subscriptions" },
+ { id: "managed-cores", labelKey: "proxyManagedCoresTab", fallback: "Managed cores" },
];
export default function ProxyTab() {
@@ -67,6 +75,7 @@ export default function ProxyTab() {
{activeTab === "free-pool" && }
{activeTab === "documentation" && }
{activeTab === "subscriptions" && }
+ {activeTab === "managed-cores" && }
);
diff --git a/src/app/(dashboard)/dashboard/settings/components/proxy/ManagedProxyTab.tsx b/src/app/(dashboard)/dashboard/settings/components/proxy/ManagedProxyTab.tsx
new file mode 100644
index 000000000000..1a2791839847
--- /dev/null
+++ b/src/app/(dashboard)/dashboard/settings/components/proxy/ManagedProxyTab.tsx
@@ -0,0 +1,205 @@
+"use client";
+
+import { useState, useEffect } from "react";
+import Button from "@/shared/components/Button";
+
+type Core = "singbox" | "xray";
+type CoreState = {
+ core: Core;
+ state: string;
+ entries: Array<{ id: string; name: string; port: number }>;
+};
+const inputClass =
+ "w-full px-3 py-2.5 rounded-lg bg-bg-subtle border border-border text-sm text-text-primary focus:outline-none focus:border-primary";
+
+async function loadCoreMetadata(): Promise {
+ const response = await fetch("/api/services/managed-proxy");
+ const payload = await response.json();
+ if (!response.ok) throw new Error(payload.error?.message || "Unable to load managed cores");
+ return payload.cores || [];
+}
+
+export default function ManagedProxyTab() {
+ const [cores, setCores] = useState([]);
+ const [core, setCore] = useState("");
+ const [name, setName] = useState("");
+ const [sourceLink, setSourceLink] = useState("");
+ const [error, setError] = useState("");
+ const [busy, setBusy] = useState(false);
+ async function load() {
+ setCores(await loadCoreMetadata());
+ }
+ useEffect(() => {
+ const controller = new AbortController();
+ fetch("/api/services/managed-proxy", { signal: controller.signal })
+ .then(async (response) => {
+ const payload = await response.json();
+ if (!response.ok) throw new Error(payload.error?.message || "Unable to load managed cores");
+ if (!controller.signal.aborted) setCores(payload.cores || []);
+ })
+ .catch((failure: Error) => {
+ if (!controller.signal.aborted) setError(failure.message);
+ });
+ return () => controller.abort();
+ }, []);
+ async function operation(method: "POST" | "PATCH", body: unknown) {
+ setBusy(true);
+ setError("");
+ try {
+ const response = await fetch("/api/services/managed-proxy", {
+ method,
+ headers: { "Content-Type": "application/json" },
+ body: JSON.stringify(body),
+ });
+ const payload = await response.json();
+ if (!response.ok) throw new Error(payload.error?.message || "Managed core operation failed");
+ if (method === "POST") setSourceLink("");
+ await load();
+ } catch (failure) {
+ setError(failure instanceof Error ? failure.message : "Managed core operation failed");
+ } finally {
+ setBusy(false);
+ }
+ }
+ return (
+
+
Managed proxy cores
+
+ Paste a tunnel link in the Custom proxy host field to save and assign it. Here you can also
+ save a native outbound JSON definition without changing any assignment.
+
+
+
+
+ Save verifies the official core if needed and checks native configuration before activation.
+ Sources require encryption. No preview installation, autostart or transparent-proxy changes.
+
}
{showLegend && {series.map((item, index) => {item.icon && {item.icon}}{item.label})}}
From 1d73d2e036f880b28e8d07649709ff2985db945a Mon Sep 17 00:00:00 2001
From: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>
Date: Tue, 3 Nov 2026 19:29:54 -0300
Subject: [PATCH 18/25] test(antigravity): configure two base URLs for the
silent-body failover case
#18706 keeps default Antigravity generation on the daily endpoint only, so the executor has a single base URL. The #13125 silent-body failover test still relied on the old two-URL default: with one URL the pre-response timeout has nowhere to fail over to and the test fails on the release tip (Unit Tests 8/8 on every PR). It now configures both runtime base URLs explicitly, the same way the #18706 tests exercise the multi-URL path, and keeps every assertion.
---
tests/unit/antigravity-silent-body-failover.test.ts | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tests/unit/antigravity-silent-body-failover.test.ts b/tests/unit/antigravity-silent-body-failover.test.ts
index 34346d4e4bf1..01676ee2dfe5 100644
--- a/tests/unit/antigravity-silent-body-failover.test.ts
+++ b/tests/unit/antigravity-silent-body-failover.test.ts
@@ -10,6 +10,7 @@ import {
clearAntigravityVersionCaches,
} from "../../open-sse/services/antigravityVersion.ts";
import { AntigravityExecutor } from "../../open-sse/executors/antigravity.ts";
+import { ANTIGRAVITY_RUNTIME_BASE_URLS } from "../../open-sse/config/antigravityUpstream.ts";
describe("Part D - Antigravity silent-body watchdog and failover", () => {
it("peekFirstAntigravitySseEvent throws AntigravityPreResponseTimeoutError on silent body", async () => {
@@ -74,6 +75,9 @@ describe("Part D - Antigravity silent-body watchdog and failover", () => {
seedAntigravityCliVersionCache("1.11.5");
const executor = new AntigravityExecutor({ streamReadinessTimeoutMs: 50 });
+ // Default generation now stays on the daily endpoint only (#18706), so the failover
+ // path needs a second base URL configured explicitly to be exercised.
+ executor.config = { ...executor.config, baseUrls: [...ANTIGRAVITY_RUNTIME_BASE_URLS] };
const encoder = new TextEncoder();
let streamGenAttempt = 0;
From b08a016a671f2cea3607d942293d04db421d8f5a Mon Sep 17 00:00:00 2001
From: Kiaro Sama
Date: Tue, 3 Nov 2026 23:22:12 +0000
Subject: [PATCH 19/25] docs(i18n): refresh remaining release documentation
drift
---
.i18n-state.json | 1093 ++++++++---------
changelog.d/fixes/ci-contribution-fixtures.md | 1 +
.../am/docs/architecture/RESILIENCE_GUIDE.md | 45 +-
docs/i18n/am/docs/guides/USER_GUIDE.md | 44 +-
.../ar/docs/architecture/RESILIENCE_GUIDE.md | 99 +-
docs/i18n/ar/docs/guides/USER_GUIDE.md | 48 +-
.../az/docs/architecture/RESILIENCE_GUIDE.md | 100 +-
docs/i18n/az/docs/guides/USER_GUIDE.md | 36 +-
.../bg/docs/architecture/RESILIENCE_GUIDE.md | 99 +-
docs/i18n/bg/docs/guides/USER_GUIDE.md | 38 +-
.../bn/docs/architecture/RESILIENCE_GUIDE.md | 99 +-
docs/i18n/bn/docs/guides/USER_GUIDE.md | 34 +-
.../bs/docs/architecture/RESILIENCE_GUIDE.md | 104 +-
docs/i18n/bs/docs/guides/USER_GUIDE.md | 38 +-
.../cs/docs/architecture/RESILIENCE_GUIDE.md | 99 +-
docs/i18n/cs/docs/guides/USER_GUIDE.md | 40 +-
.../da/docs/architecture/RESILIENCE_GUIDE.md | 104 +-
docs/i18n/da/docs/guides/USER_GUIDE.md | 36 +-
.../de/docs/architecture/RESILIENCE_GUIDE.md | 108 +-
docs/i18n/de/docs/guides/USER_GUIDE.md | 32 +-
.../el/docs/architecture/RESILIENCE_GUIDE.md | 108 +-
docs/i18n/el/docs/guides/USER_GUIDE.md | 44 +-
.../es/docs/architecture/RESILIENCE_GUIDE.md | 96 +-
docs/i18n/es/docs/guides/USER_GUIDE.md | 36 +-
.../et/docs/architecture/RESILIENCE_GUIDE.md | 38 +-
docs/i18n/et/docs/guides/USER_GUIDE.md | 44 +-
.../fa/docs/architecture/RESILIENCE_GUIDE.md | 100 +-
docs/i18n/fa/docs/guides/USER_GUIDE.md | 46 +-
.../fi/docs/architecture/RESILIENCE_GUIDE.md | 106 +-
docs/i18n/fi/docs/guides/USER_GUIDE.md | 42 +-
.../fr/docs/architecture/RESILIENCE_GUIDE.md | 104 +-
docs/i18n/fr/docs/guides/USER_GUIDE.md | 52 +-
.../ga/docs/architecture/RESILIENCE_GUIDE.md | 38 +-
docs/i18n/ga/docs/guides/USER_GUIDE.md | 42 +-
.../gu/docs/architecture/RESILIENCE_GUIDE.md | 98 +-
docs/i18n/gu/docs/guides/USER_GUIDE.md | 36 +-
.../ha/docs/architecture/RESILIENCE_GUIDE.md | 38 +-
docs/i18n/ha/docs/guides/USER_GUIDE.md | 40 +-
.../he/docs/architecture/RESILIENCE_GUIDE.md | 38 +-
docs/i18n/he/docs/guides/USER_GUIDE.md | 42 +-
.../hi/docs/architecture/RESILIENCE_GUIDE.md | 104 +-
docs/i18n/hi/docs/guides/USER_GUIDE.md | 36 +-
.../hr/docs/architecture/RESILIENCE_GUIDE.md | 103 +-
docs/i18n/hr/docs/guides/USER_GUIDE.md | 42 +-
.../hu/docs/architecture/RESILIENCE_GUIDE.md | 97 +-
docs/i18n/hu/docs/guides/USER_GUIDE.md | 42 +-
.../hy/docs/architecture/RESILIENCE_GUIDE.md | 38 +-
docs/i18n/hy/docs/guides/USER_GUIDE.md | 46 +-
.../id/docs/architecture/RESILIENCE_GUIDE.md | 100 +-
docs/i18n/id/docs/guides/USER_GUIDE.md | 34 +-
.../ig/docs/architecture/RESILIENCE_GUIDE.md | 38 +-
docs/i18n/ig/docs/guides/USER_GUIDE.md | 46 +-
.../it/docs/architecture/RESILIENCE_GUIDE.md | 100 +-
docs/i18n/it/docs/guides/USER_GUIDE.md | 36 +-
.../ja/docs/architecture/RESILIENCE_GUIDE.md | 99 +-
docs/i18n/ja/docs/guides/USER_GUIDE.md | 54 +-
.../ka/docs/architecture/RESILIENCE_GUIDE.md | 105 +-
docs/i18n/ka/docs/guides/USER_GUIDE.md | 40 +-
.../km/docs/architecture/RESILIENCE_GUIDE.md | 38 +-
docs/i18n/km/docs/guides/USER_GUIDE.md | 44 +-
.../kn/docs/architecture/RESILIENCE_GUIDE.md | 110 +-
docs/i18n/kn/docs/guides/USER_GUIDE.md | 38 +-
.../ko/docs/architecture/RESILIENCE_GUIDE.md | 46 +-
docs/i18n/ko/docs/guides/USER_GUIDE.md | 32 +-
.../lt/docs/architecture/RESILIENCE_GUIDE.md | 97 +-
docs/i18n/lt/docs/guides/USER_GUIDE.md | 44 +-
.../lv/docs/architecture/RESILIENCE_GUIDE.md | 108 +-
docs/i18n/lv/docs/guides/USER_GUIDE.md | 40 +-
.../ml/docs/architecture/RESILIENCE_GUIDE.md | 106 +-
docs/i18n/ml/docs/guides/USER_GUIDE.md | 38 +-
.../mr/docs/architecture/RESILIENCE_GUIDE.md | 102 +-
docs/i18n/mr/docs/guides/USER_GUIDE.md | 42 +-
.../ms/docs/architecture/RESILIENCE_GUIDE.md | 107 +-
docs/i18n/ms/docs/guides/USER_GUIDE.md | 36 +-
.../mt/docs/architecture/RESILIENCE_GUIDE.md | 101 +-
docs/i18n/mt/docs/guides/USER_GUIDE.md | 40 +-
.../my/docs/architecture/RESILIENCE_GUIDE.md | 38 +-
docs/i18n/my/docs/guides/USER_GUIDE.md | 46 +-
.../ne/docs/architecture/RESILIENCE_GUIDE.md | 103 +-
docs/i18n/ne/docs/guides/USER_GUIDE.md | 34 +-
.../nl/docs/architecture/RESILIENCE_GUIDE.md | 104 +-
docs/i18n/nl/docs/guides/USER_GUIDE.md | 36 +-
.../no/docs/architecture/RESILIENCE_GUIDE.md | 100 +-
docs/i18n/no/docs/guides/USER_GUIDE.md | 32 +-
.../or/docs/architecture/RESILIENCE_GUIDE.md | 105 +-
docs/i18n/or/docs/guides/USER_GUIDE.md | 44 +-
.../pa/docs/architecture/RESILIENCE_GUIDE.md | 36 +-
docs/i18n/pa/docs/guides/USER_GUIDE.md | 40 +-
.../phi/docs/architecture/RESILIENCE_GUIDE.md | 38 +-
docs/i18n/phi/docs/guides/USER_GUIDE.md | 34 +-
.../pl/docs/architecture/RESILIENCE_GUIDE.md | 97 +-
docs/i18n/pl/docs/guides/USER_GUIDE.md | 42 +-
.../docs/architecture/RESILIENCE_GUIDE.md | 106 +-
docs/i18n/pt-BR/docs/guides/USER_GUIDE.md | 36 +-
.../pt/docs/architecture/RESILIENCE_GUIDE.md | 101 +-
docs/i18n/pt/docs/guides/USER_GUIDE.md | 36 +-
.../ro/docs/architecture/RESILIENCE_GUIDE.md | 107 +-
docs/i18n/ro/docs/guides/USER_GUIDE.md | 32 +-
.../ru/docs/architecture/RESILIENCE_GUIDE.md | 110 +-
docs/i18n/ru/docs/guides/USER_GUIDE.md | 42 +-
.../si/docs/architecture/RESILIENCE_GUIDE.md | 105 +-
docs/i18n/si/docs/guides/USER_GUIDE.md | 42 +-
.../sk/docs/architecture/RESILIENCE_GUIDE.md | 106 +-
docs/i18n/sk/docs/guides/USER_GUIDE.md | 36 +-
.../sl/docs/architecture/RESILIENCE_GUIDE.md | 104 +-
docs/i18n/sl/docs/guides/USER_GUIDE.md | 42 +-
.../sr/docs/architecture/RESILIENCE_GUIDE.md | 98 +-
docs/i18n/sr/docs/guides/USER_GUIDE.md | 48 +-
.../sv/docs/architecture/RESILIENCE_GUIDE.md | 100 +-
docs/i18n/sv/docs/guides/USER_GUIDE.md | 40 +-
.../sw/docs/architecture/RESILIENCE_GUIDE.md | 97 +-
docs/i18n/sw/docs/guides/USER_GUIDE.md | 42 +-
.../ta/docs/architecture/RESILIENCE_GUIDE.md | 102 +-
docs/i18n/ta/docs/guides/USER_GUIDE.md | 40 +-
.../te/docs/architecture/RESILIENCE_GUIDE.md | 98 +-
docs/i18n/te/docs/guides/USER_GUIDE.md | 40 +-
.../th/docs/architecture/RESILIENCE_GUIDE.md | 50 +-
docs/i18n/th/docs/guides/USER_GUIDE.md | 48 +-
.../tr/docs/architecture/RESILIENCE_GUIDE.md | 94 +-
docs/i18n/tr/docs/guides/USER_GUIDE.md | 32 +-
.../docs/architecture/RESILIENCE_GUIDE.md | 98 +-
docs/i18n/uk-UA/docs/guides/USER_GUIDE.md | 40 +-
.../ur/docs/architecture/RESILIENCE_GUIDE.md | 99 +-
docs/i18n/ur/docs/guides/USER_GUIDE.md | 40 +-
.../uz/docs/architecture/RESILIENCE_GUIDE.md | 103 +-
docs/i18n/uz/docs/guides/USER_GUIDE.md | 44 +-
.../vi/docs/architecture/RESILIENCE_GUIDE.md | 106 +-
docs/i18n/vi/docs/guides/USER_GUIDE.md | 40 +-
.../yo/docs/architecture/RESILIENCE_GUIDE.md | 109 +-
docs/i18n/yo/docs/guides/USER_GUIDE.md | 46 +-
.../docs/architecture/RESILIENCE_GUIDE.md | 34 +-
docs/i18n/zh-CN/docs/guides/USER_GUIDE.md | 54 +-
.../docs/architecture/RESILIENCE_GUIDE.md | 34 +-
docs/i18n/zh-TW/docs/guides/USER_GUIDE.md | 54 +-
134 files changed, 3480 insertions(+), 6098 deletions(-)
diff --git a/.i18n-state.json b/.i18n-state.json
index 5edb32984e2d..ff4e74e08dbc 100644
--- a/.i18n-state.json
+++ b/.i18n-state.json
@@ -4806,37 +4806,8 @@
},
"uz": {
"source_hash": "1d9c5a57306b0a8b8b53cc99ef7291ce1fd2bb10f851441611532bd6fa98c731",
- "target_hash": "7adc008dc7fa266f580f5fa3b87e3c71ed05f364fde1a1a55d462194f21fe1c6",
- "section_hashes": [
- "1144af3aba4c",
- "c57d1139c36a",
- "b32da9ce2c2c",
- "34ce47f95c74",
- "2ffdb0473906",
- "201ccdd6c7f1",
- "25aa2299bade",
- "483413678349",
- "1042c61cb3bf",
- "a13895047756",
- "1d20f063a3bc",
- "a823e77fb96f",
- "1c156070e92a",
- "051b700b37ca",
- "8777b70d1fc1",
- "2bfc8293afce",
- "b5c0c351d2e8",
- "e59a91084e83",
- "b8921857d5a6",
- "e739ff41df42",
- "f35730023199",
- "1f63cf6a31cf",
- "d55f8bfbc8f3",
- "42ad24d52818",
- "b9545d32f9f4",
- "fea6772f6209",
- "7f97a255a55e"
- ],
- "updated_at": "2026-11-03T14:23:31.234Z"
+ "target_hash": "3ec4bc7a21e67c7ee318abad85f063f6e310e90c97749d74e1c18adfe55ee1a9",
+ "updated_at": "2026-11-03T23:20:13.942Z"
},
"ka": {
"source_hash": "1d9c5a57306b0a8b8b53cc99ef7291ce1fd2bb10f851441611532bd6fa98c731",
@@ -19406,17 +19377,17 @@
}
},
"docs/architecture/RESILIENCE_GUIDE.md": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
"locales": {
"pl": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "b8ea18989616c400c3e3ea9927e551b48c7e24010ac6d7b1d67ef8eeebd0f320",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "1a69109bf97d2cb743ed8148d4c0ec7080377d82cdae7f9a015c2c09a3f32e5f",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19427,17 +19398,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:04:08.424Z"
+ "updated_at": "2026-11-03T23:19:21.488Z"
},
"ar": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "0699bebe9578ea673db70a9e5d7352ee41d2670505aff314a906b3adfb728873",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "ffad5a83ed1fd6016f646179de72fad4f2a3567f806be0d93c81b9cbb32dfb11",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19448,17 +19419,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T17:59:32.589Z"
+ "updated_at": "2026-11-03T23:19:10.519Z"
},
"cs": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "9da2163f7a78884361f515d22ee024eab37ce3b4940c02d302150a2ac11c6ee0",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "b2e7b59219646730435453da2a83806e89f41c3d78fc7397989b388bbb25d94e",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19469,17 +19440,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T17:59:32.529Z"
+ "updated_at": "2026-11-03T23:19:12.147Z"
},
"bg": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "36b59fde6987b9acaa757a0a25fac779735343015680936a222e31a9fa9a88ac",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "271b5b02e1c311a86e69fff23206fa15f08448b5c17040d3be0f4df78609beb6",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19490,17 +19461,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-03T05:44:21.540Z"
+ "updated_at": "2026-11-03T23:19:11.219Z"
},
"bn": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "369300396f95e299a92c4ded004b38b2a8cdb307ebd17910b8bbf1546a4f82e7",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "1a898e7f27d186d9f9b0e89262d4b6ab34b88bf07c9d0ebd022136f3bdf56fa0",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19511,17 +19482,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T17:59:44.215Z"
+ "updated_at": "2026-11-03T23:19:11.489Z"
},
"az": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "61fb006470611f408d485f3010946a9c5eaafb2a2918bcc9aa91314d1a119e05",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "7144150ab3294185f87efa5d6dfdfc5da6d8a1b411a77321e9513263a26e6223",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19532,17 +19503,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T17:59:32.594Z"
+ "updated_at": "2026-11-03T23:19:10.811Z"
},
"da": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "7c3029b5125d4f1e118ec3d668279f2dca1b046b3a6c6332498ad6a5b518b2f4",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "b372d8e758301c8b442d120cead9930567ff5ebf3641331fc07d76a22e4eaff8",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19553,17 +19524,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T17:59:37.714Z"
+ "updated_at": "2026-11-03T23:19:12.324Z"
},
"de": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "1a490d53afb3de670a4eb0849681d5a3ed48aa755c85b62f22f7fefb4000da87",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "41c433739b45c8a37288d0b6da32b7224f39b00e67162e52421bc119056e669b",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19574,17 +19545,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T17:59:32.607Z"
+ "updated_at": "2026-11-03T23:19:12.671Z"
},
"es": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "6292e2723a5ebd87b5bec54c843d534e5b05707896dc336d4ed6ecf4eb0868ba",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "5ee8398062f381308b085f46f6d1a12af0c5f58c269efdebdc11d2d426458071",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19595,17 +19566,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T17:59:32.612Z"
+ "updated_at": "2026-11-03T23:19:13.115Z"
},
"et": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "0d1d75cd1b7203c064bff8661583a7c00032dd6edfd83080e2feedc82fdf0a3e",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "80ba7e86940b9b7a4990ed4445b505e897ab41c4505b5d1a1a1effdfcbf1cb0b",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19616,17 +19587,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T17:59:32.619Z"
+ "updated_at": "2026-11-03T23:19:13.362Z"
},
"el": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "d4df63dc64f34d8119166733bbf334832320f9c8a982071d8352a332d1718365",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "7eba3b593c7e57d841ce455d53f745971a626c2dff02d1e2c56f00796ca681b3",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19637,17 +19608,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T17:59:32.627Z"
+ "updated_at": "2026-11-03T23:19:12.971Z"
},
"am": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "2e7b4525df3e36e79c972a2e230f0cbc738f1dce6c554ac888a38e4c664bd4c9",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "4ac7518337fd2fe0d2577748242072efc5c2948831de3770caa780a9e09e3988",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19658,17 +19629,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T17:59:32.537Z"
+ "updated_at": "2026-11-03T23:19:10.340Z"
},
"fr": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "f688ddc072b0747a9558bdb2abf7c6650d496e6bcf19c77e8a279c7662addd84",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "7115ec41262d42dd8d564f735984aac2cd055782c19c84e5ceed6cbf92faa297",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19679,17 +19650,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:00:06.313Z"
+ "updated_at": "2026-11-03T23:19:14.041Z"
},
"fa": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "9ae14025cd9abe54fcdb7312e8b5b7416123818e2fd9b6fe99bc32556b88b341",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "f3db722083ed78120593b7452fd5f9dd55dc9834ad07cfd4a6bafc503884c479",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19700,17 +19671,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T17:59:42.434Z"
+ "updated_at": "2026-11-03T23:19:13.562Z"
},
"fi": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "7ca8abecbd9eff67569c479b2258497ec69a7d89369569daad2fc87105b10090",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "14e3c38875578fe53d975f1da1fd6bacb469a93943301366c5e33b4fe00c117d",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19721,17 +19692,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T17:59:44.491Z"
+ "updated_at": "2026-11-03T23:19:13.772Z"
},
"ga": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "9842c9f05607dbe74b08a78a8ea37a12395b58235035e92e8851ba23d101d21c",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "3e5995388a6c2274e66d59de38f353c59a267958a0908a72646260f3bf780b9d",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19742,17 +19713,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:00:06.226Z"
+ "updated_at": "2026-11-03T23:19:14.208Z"
},
"gu": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "cb57fa578314022e1e6cfccfe3c4c8ce3c3c23a336974d4123eae9d4b13a32fa",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "8c35f97f90db8b0f2627252a92219f1949568e3591ab1efa6e33904cff861d7c",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19763,17 +19734,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:00:18.219Z"
+ "updated_at": "2026-11-03T23:19:14.487Z"
},
"ha": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "28fa473e1a6ef7bcca73ee44467b56cc13faf87f3147a213b419b894f453799f",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "2c713ff02dfce258f2753d5599835ca6964487efdb5076904d5227af6d89fb8d",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19784,17 +19755,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T17:59:32.699Z"
+ "updated_at": "2026-11-03T23:19:14.655Z"
},
"he": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "f86a54cbe613a018962a245905a5f08433bcf0c7aecb1f4d4811ae9ffc16572e",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "c533f286a1babf3a3acd495f89f98cec3f057198cd9fb52e28dc5fff14a65b06",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19805,17 +19776,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:00:18.791Z"
+ "updated_at": "2026-11-03T23:19:15.459Z"
},
"hi": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "27d2e31e51936f1453b6af7c53be45abf48592c7e3a00c8845a1a747fc25bd29",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "c3466207d4917d0d01d6ec5267afdba837155b2eb9b48066139a3a40dfcdfc26",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19826,17 +19797,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:00:06.495Z"
+ "updated_at": "2026-11-03T23:19:15.111Z"
},
"hr": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "71da767da2ac3b251eba67cc1212d744a3cebe2ea060d78cf7b3eb213d7ea7b9",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "282d0868fb715da07730dae052471d975c27b592020c9d77ceaa5b7aea5ff9fd",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19847,17 +19818,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:00:59.808Z"
+ "updated_at": "2026-11-03T23:19:15.591Z"
},
"hu": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "77ed6b223a15cc12fa54ab676fdb7e5887366e3f6a7e58fabcfdda6797baf967",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "7fa2d9497ddcfbbe708301dce4f0b552d73c470f7e4da079c48160582cf2dadd",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19868,17 +19839,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-03T05:44:24.235Z"
+ "updated_at": "2026-11-03T23:19:15.947Z"
},
"hy": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "8ced220940105d5e1970b596283650eeafa0c344fe84a921e004c1db5e575640",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "72163513b0c3cb151f69c78b9e3c60afafd56196f18988c72dea5b5f93206dd0",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19889,17 +19860,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:11:01.242Z"
+ "updated_at": "2026-11-03T23:19:16.068Z"
},
"id": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "a385e2ad49615410ce0f897bb407275f9ad9e133007cd101c4f6f6f1f56f073d",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "464fbd2ef12dd65d5455c385c46036f964d2d357726f0115fb2b7bbfdf03689e",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19910,17 +19881,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:01:57.520Z"
+ "updated_at": "2026-11-03T23:19:16.549Z"
},
"it": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "84b8feb5439164275366ec1154d521ea9b333964cd1a2352efebba6c311f352e",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "441b16cb7829892e056e37171440ab5546b582d5de6951aba66e3453f779ad86",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19931,17 +19902,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:01:20.410Z"
+ "updated_at": "2026-11-03T23:19:17.101Z"
},
"ig": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "bd18745b3cfea346823da01b16c8f81a001b49befbe06694a1edc5fc494a38a9",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "0d5d8afa9a8fe4bd86355c2c5f0922c2129e737b1a97cb588f3405b7a78aab80",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19952,17 +19923,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:01:12.991Z"
+ "updated_at": "2026-11-03T23:19:16.717Z"
},
"ja": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "f32f1ec1b1cae85656175d0828a7c6a5e66bdbdbffde959e3fe76396698490c3",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "61c181045adf581a37090f348c124b5860f85d494513a6877162389d88cbad42",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19973,17 +19944,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:01:44.693Z"
+ "updated_at": "2026-11-03T23:19:17.801Z"
},
"ka": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "958c675428e789eebcfe983db0b53b54a1e3d0ff50ca8442c9042ab0f4781c79",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "6d1c5c2f60a5d882d1e31cf5c0fb31cb1696ccfdac7c07a4f6fd6b0431b5cf4c",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -19994,17 +19965,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:01:57.422Z"
+ "updated_at": "2026-11-03T23:19:17.557Z"
},
"ko": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "a54a625b72c59cbf42ddce79dd85c88490ebc3e9706ab9d92bdc0172ea5cbc59",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "3b3c3771f6e8fb53ffbd36d8b9c8b08515673837f5414fb6866040c7dcd7ce54",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20015,17 +19986,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:02:34.217Z"
+ "updated_at": "2026-11-03T23:19:18.430Z"
},
"kn": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "0b4c2dbcc07f82e4fab35e9c5ea3ac21911ec143a5a7c5f1a5f07dcf227ffca8",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "921bfb9289a2e4d27796c7cea4c61e1af2ab8b84373f23e13b69a915a849193a",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20036,17 +20007,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:01:28.013Z"
+ "updated_at": "2026-11-03T23:19:18.191Z"
},
"km": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "956fa2f19b848f25070f3b598b88bc740a5c69435332460cd921fb290f6c2cdf",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "bbf45489cce4735e47c1848658e3ed9662a68bc6a9d770cd4e38f192a1847627",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20057,17 +20028,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:02:03.826Z"
+ "updated_at": "2026-11-03T23:19:17.928Z"
},
"lt": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "9d973df0d787127bc56bdc06403eb760c9eb8e15da862fb16d2791f8041aaafe",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "fb285e71adaec0efd24106b876feb804c1609fd4d3213c97521ea16ad591bd53",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20078,17 +20049,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:02:34.312Z"
+ "updated_at": "2026-11-03T23:19:18.582Z"
},
"lv": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "24c1000853f2d426c37e317630a0c4f10dc5d8b7c94a3318b19847e59eadff19",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "b085a52940427d00c20bde4c2424fe30e13d3d0164c0bc91893d16b541b7968f",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20099,17 +20070,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:02:14.392Z"
+ "updated_at": "2026-11-03T23:19:18.878Z"
},
"ml": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "c5ec2b76bf9c164a578928590a73769b5199747c31acefed486b1482fa841c1d",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "4e96e01b20ec9d548477375f3e49b3c17687ade2a706d819d62ff3e5335d16a5",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20120,17 +20091,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:03:20.499Z"
+ "updated_at": "2026-11-03T23:19:19.037Z"
},
"ms": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "d6de196a364fb9e4ecea5c4864ee24fbd0b4c2c0af3263139b3acfa65a198b92",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "b436243a0c1dcf5350bc6bb6107f67c8862d548d158f54d0058e031bfbd1e59d",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20141,17 +20112,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:02:57.688Z"
+ "updated_at": "2026-11-03T23:19:19.483Z"
},
"mr": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "ad3d206aa52d08e0d1a71b3aeac56fcb004b77f8ee0028504d4df97c1260b1cc",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "592969e9a275e6621ead297e05925f517a0efbd65c0f6f174b032f6f017c408c",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20162,17 +20133,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:02:57.826Z"
+ "updated_at": "2026-11-03T23:19:19.294Z"
},
"mt": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "283e02f599b1d9296ee3ad2d1fc643a9ef96f7989fa15a05c58c5f59a2b971fe",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "38c63840de76a2a0be6454cdfd2ffb0683e9adeb437cebb761e07e99826bc74f",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20183,17 +20154,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:03:38.204Z"
+ "updated_at": "2026-11-03T23:19:19.742Z"
},
"ne": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "0bddf563a52bf3a1d13e5072d93a41530fbecadca9f47b497d226d1e77a119d3",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "02c537d8796a1c41ea238327fb60863e24a019848e34fc7658f77afc882689c7",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20204,17 +20175,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:03:20.621Z"
+ "updated_at": "2026-11-03T23:19:20.161Z"
},
"my": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "462c7f755b8d388ad3a9260727509d50ade01891e7ebd81a3ba1a1943274f90a",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "2c5e9e11c25a1a37989a365d43b350fcd45bb0ebbbbafc0aec2e08f02de34813",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20225,17 +20196,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:03:46.105Z"
+ "updated_at": "2026-11-03T23:19:19.890Z"
},
"nl": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "4e8abc00a44f8f84e155a96526b786236e23b254f3b76cdf73fea2ef3bd94572",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "723b166e7eb4e8af74402814685b08ce9db0c67900e517df73e83cff27fa0653",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20246,17 +20217,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:03:38.220Z"
+ "updated_at": "2026-11-03T23:19:20.327Z"
},
"no": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "fa4738f5b9d3f4f4b45544ca0a50b73e072fd2ded3829392d8f86dd462a3fa3b",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "8d3283f0ce0f30b923976eb2a0a0ffc36a1982fbad2d752c445c5c712df74079",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20267,17 +20238,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:03:20.517Z"
+ "updated_at": "2026-11-03T23:19:20.587Z"
},
"phi": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "ac22ed7e8cdc1895734768fe9dc2a8b6d9f85d84cb926cc4f899ede381a06273",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "4c7e5f4e75f030c921c7123d0df10e5ccd3eae6c302901976e0b85027ce8ce97",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20288,17 +20259,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:04:33.129Z"
+ "updated_at": "2026-11-03T23:19:21.202Z"
},
"pt-BR": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "9c315d3a5fc99968868004f921f5449dabb06d87a3fe1bdbeeb2ddfbc6c3a5c6",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "7d75efc1932ec81a9b1a59d6aa750b7ed7241f746bc3dad7542d0adc75bbd6a7",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20309,17 +20280,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:04:32.294Z"
+ "updated_at": "2026-11-03T23:19:21.934Z"
},
"pt": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "b59a201b89ad1cc8eaa750ad9449f766985974a53af6e37ae387c5045a9f3c3e",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "ba0f7ce4ff1f940e482153813088163a9af163a7d4cc3309757fd70d971a1f06",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20330,17 +20301,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-03T05:45:06.516Z"
+ "updated_at": "2026-11-03T23:19:21.783Z"
},
"pa": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "6d1d23f7cb27dcef514c05362156decfd152738da1dabaaa2efd960a1d0d6c37",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "b057f9365d0cb253d76a15ff359aaa4fd5fc9f1c1f4a4e1ab87bf0b74b9449de",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20351,17 +20322,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:03:58.003Z"
+ "updated_at": "2026-11-03T23:19:21.050Z"
},
"ro": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "6a930f9ff3fcc6b08f9bf67ce9fbab1e2a50d2cd6b508ed24641863285eb4c26",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "e50ccaa586daa01ed435e2c5a8eccc3057fd217124adc62f14d3dfd605eeb49d",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20372,17 +20343,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:04:14.205Z"
+ "updated_at": "2026-11-03T23:19:22.203Z"
},
"or": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "ddc117645ea98ca28d90599dcda5e73c4c07ed659b9b90bc315519ea49079105",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "26259e27ff98aa08b1add320fdc34cddd6cd5c1978c3372161c5862f7c55d0e9",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20393,17 +20364,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:03:28.011Z"
+ "updated_at": "2026-11-03T23:19:20.740Z"
},
"ru": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "7ef2ce6c289120410d7216900146c45b685114ae025e14965deeafee41e6eb29",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "2ddf4d9fbe16121b5b825274e67670c47b75138316a383ae742f216a4ded408a",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20414,17 +20385,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:04:48.101Z"
+ "updated_at": "2026-11-03T23:19:22.384Z"
},
"sk": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "fc18dacebdd6bcf93eaf142a9e22c9ff313de9bd7eb330cc01976c85005c4292",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "d393afcbae73404b2652c80f657302ca4eedb869143b3a5b5fd03d188632275b",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20435,17 +20406,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:04:33.291Z"
+ "updated_at": "2026-11-03T23:19:22.806Z"
},
"si": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "f21a95bd4c24776f80f585a80e3d134e0b55645d6ba2ec23c017b27e76e4fab3",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "4ec46f3be3e7b2921fd2a7832721d869ac1e3206a9e90c467d2391777ff77b0a",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20456,17 +20427,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:04:37.735Z"
+ "updated_at": "2026-11-03T23:19:22.615Z"
},
"sl": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "14fbec4856c7551d36e2638cfffe568372b0771683568e9e76caad52cf436a08",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "08c2dd49e69900a11c8e604a0b6f5540ef8726e300f718983d1c54e03960014f",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20477,17 +20448,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:04:55.409Z"
+ "updated_at": "2026-11-03T23:19:23.073Z"
},
"sv": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "02c5972329baf69db73df717a1d50a5671127b831bd38a7ab3d0377116a91adf",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "1eb0591dfdb11e5378d74bb9755d0b09642fab0744d549f9092fe438bb232832",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20498,17 +20469,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:05:06.006Z"
+ "updated_at": "2026-11-03T23:19:23.490Z"
},
"sr": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "fd6daaa0cde6daed1e68a7730500e48f6751659f5eeb51355da58dfdc0bd2e7e",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "ecd41da9f37869f0f96bd83007189b4dadf0a2ed86216ad16ba1765202f8113d",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20519,17 +20490,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:04:40.410Z"
+ "updated_at": "2026-11-03T23:19:23.207Z"
},
"sw": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "24d8348ebd71d4db0225071381d5363163ffb063222eca3a1bb7013724350c90",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "11f8947867d6cf7b349cc228a8d0385c0397db3c04d64c9964b71cbf4982f228",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20540,17 +20511,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:05:04.500Z"
+ "updated_at": "2026-11-03T23:19:23.635Z"
},
"ta": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "4df01ea90fdecbe2a67f76920021514d520fb29e53e6d23c0cf8208fa30247fb",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "4dd96f0696b498ff0cfe06631e27844e3a71d37e1082f9aee5cb802934ba724f",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20561,17 +20532,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:04:58.790Z"
+ "updated_at": "2026-11-03T23:19:23.902Z"
},
"te": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "aeb4f0a08ec6bf9004d57e8db3df9b90365da963a5c6d1e57f1722241210252b",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "57bc21223cda941158e8ca333e215ff7835937c044f52a68942acdc279610f0d",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20582,17 +20553,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:04:58.830Z"
+ "updated_at": "2026-11-03T23:19:24.021Z"
},
"th": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "2aac03653fc763b4ca88dc8707d13ebab3e61a170929849ae642315d5b1d36c7",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "6a437b7076cc48ef99ab9631d1b21da36e1907fb83ff6767ea04368962db2c51",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20603,17 +20574,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:05:06.019Z"
+ "updated_at": "2026-11-03T23:19:24.298Z"
},
"tr": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "937cba94595089e245bdb68b22d19f9898fb80b2b4995ee42f19e73bf89b2a84",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "fc9b87f5023b0afe7d29ee8d9e246daf463edfa7ad15fb9eda1a3baac2aaa057",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20624,17 +20595,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:05:08.410Z"
+ "updated_at": "2026-11-03T23:19:24.454Z"
},
"uk-UA": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "760e9984e524066f7db14623d21acb636af51947ff450e936aa8a3b3a7b35bbd",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "248e071b57b340f31f6015a787cb17467f40cf56f82ffade4ab9254e7832558a",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20645,17 +20616,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:05:12.798Z"
+ "updated_at": "2026-11-03T23:19:24.788Z"
},
"ur": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "1a8ad179b2666d0726b40439f371f5973b233efef00fa96f0aff8a56ce108ef1",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "40f9b3689ea152209828b902e194314dd85d8f5abaa1a982d254cf7cfb959f95",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20666,17 +20637,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:05:12.821Z"
+ "updated_at": "2026-11-03T23:19:24.943Z"
},
"vi": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "eca7219fb8bb43361033771ed8cc8582768ed6c3e399a3f8f7b07e4484e63a6b",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "0da6d251675676eed55096987689708894d406aaea3b30acbea2ff7fe3fb09b8",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20687,17 +20658,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-03T05:45:09.612Z"
+ "updated_at": "2026-11-03T23:19:25.426Z"
},
"zh-CN": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "ebd0789b65d290d560e603e546afa0bb689e24d61bab472d641a432092c5d3b0",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "05e727c33beac3d05560b04657a388c2fb7deb886265ef6e3cfee6e69755f795",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20708,17 +20679,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:05:20.506Z"
+ "updated_at": "2026-11-03T23:19:25.826Z"
},
"uz": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "42b2efff64dd829d07e4a0b19bce7008f9fed757c8b2d4a6a5cf3fc7c281c95a",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "d3cb6b0f465868b85b91e11c96109445b7833cbbc042be0f1bb16d078cfc3673",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20729,17 +20700,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:05:15.929Z"
+ "updated_at": "2026-11-03T23:19:25.242Z"
},
"zh-TW": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "d31bd2ac966ae7c7b55204ecdb9eac45be080960c4df27f79792a36e5509ef35",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "0b7a17c5e3bc702fbb7147ae11ce7eb815c563b776bdd66d79e06ddae39087e9",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20750,17 +20721,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:05:22.629Z"
+ "updated_at": "2026-11-03T23:19:26.212Z"
},
"yo": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "bc1f0e8eb3e40e12896bc52e4d680ddeaffc59de86c3199828aa1f082c9e8d60",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "202b3600449f7ad256648d10feae5c932440f9eb888bc4ee411f57fdd624b191",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20771,17 +20742,17 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T18:05:18.410Z"
+ "updated_at": "2026-11-03T23:19:25.659Z"
},
"bs": {
- "source_hash": "af965687b4894cb7a8229497fe447aa60f454b56838523182f1146243b03c2ec",
- "target_hash": "e0bbcb5635ff71861753b5a8ec6f2f0292e7464e32508b3befdd488a0e61ff8f",
+ "source_hash": "fbb2ad046413f2f2218453f91b552481c61e539d4f2e300c5ac068c40d496241",
+ "target_hash": "0391e111371f3f882e7fef26222750ed1f88b9b1cf6e19eeb9b9a5b566e9d771",
"section_hashes": [
"a769560c6004",
"27236811beee",
"797a0b50f3ca",
"b09583b83908",
- "4a7f9bbd59d3",
+ "d34833e3f38c",
"a440ff844b87",
"2f39f72e97b2",
"d93e65560fc4",
@@ -20792,7 +20763,7 @@
"07e2d767adb6",
"c710e1078ad5"
],
- "updated_at": "2026-11-02T17:59:32.601Z"
+ "updated_at": "2026-11-03T23:19:11.641Z"
}
}
},
@@ -67850,11 +67821,11 @@
}
},
"docs/guides/USER_GUIDE.md": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
"locales": {
"ar": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "991b9aaa4febc30a30358cf4c1100cecbf1d229bbba5bd7afa4dda7f4ac4d435",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "4e8fd50a648e75e7ce63ee8d114119e886bf8e356d7a67604e938e5141baf5a6",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -67864,7 +67835,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -67876,11 +67847,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:40.956Z"
+ "updated_at": "2026-11-03T23:19:26.798Z"
},
"az": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "e75b59a5c7210f8a8dc287322752335ad45c88da13dbcc2d39719a32bd180d56",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "7f8c39f80de198460cc0c7130094ef8d8e739939a8f6de315238543452d4124b",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -67890,7 +67861,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -67902,11 +67873,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:40.966Z"
+ "updated_at": "2026-11-03T23:19:26.992Z"
},
"bg": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "0280f9da0cd92831dede0655cddd736c09b7e19f1efb724bb31db638e0e014ce",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "68f067fb1255e21247bd9be09b1c39e56b96ab93270812edb2d3686664c67eac",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -67916,7 +67887,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -67928,11 +67899,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:41.014Z"
+ "updated_at": "2026-11-03T23:19:27.265Z"
},
"bn": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "56b4e8722ab14e509f401eff9dbf81ebd77ed9c92978c96724878a26bf83b7ae",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "2a6bc6072eb789668d272bd3a011198b11979d88ba6f42cb919268fffff17c1f",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -67942,7 +67913,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -67954,11 +67925,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:40.992Z"
+ "updated_at": "2026-11-03T23:19:27.507Z"
},
"cs": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "c6dc48ea0f9df85d7645dc582c0ad761eb1a7b22f59fa652558362df3aedb5f9",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "4c0036c6df29807da33e7b795e8559b207a04057731e5f7cdce636fab6b12049",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -67968,7 +67939,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -67980,11 +67951,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:40.973Z"
+ "updated_at": "2026-11-03T23:19:27.942Z"
},
"da": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "4c34b090bee42692af474fb99be691b1b4285e561e5539b6f20ebb5702a07193",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "251aef3db7d3d9f6eca044bfe43bcba0262ed7416651cc480e959c53c45330f2",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -67994,7 +67965,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68006,11 +67977,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:41.020Z"
+ "updated_at": "2026-11-03T23:19:28.063Z"
},
"de": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "639da592ade5c058c4c93712980151ce2824964453e58f8c64eb9caac89cfd90",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "657bab4c58d07833cc89645985f804bd947671e548f5aab8baaacaf2e91e8098",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68020,7 +67991,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68032,11 +68003,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:45.632Z"
+ "updated_at": "2026-11-03T23:19:28.320Z"
},
"es": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "2775d1105fd2afc8183402f8c54bc4ed5691007f22e23189f6054983892a196a",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "4cb682545033fd3a2b556f91e0fb31eef9f2fcbed88fe7e9087f9353ea277a49",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68046,7 +68017,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68058,11 +68029,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:46.943Z"
+ "updated_at": "2026-11-03T23:19:28.767Z"
},
"fa": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "45cbe66de11faf192b62aafce153d30dadb478bb1a01cef254131bc1b5571272",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "6028b1756c764fcca42be8a25af4035931154bcda115387a8abbd110a4c21901",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68072,7 +68043,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68084,11 +68055,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:46.951Z"
+ "updated_at": "2026-11-03T23:19:29.204Z"
},
"fi": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "d11764781fa09ebdffe1025b2a4c2f865decd6e34cb8a9b4bff45cdc5180a738",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "b5f87a7270d3bc466636fd3551dc91983d5b375b257daa8c8d39f357c04b4587",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68098,7 +68069,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68110,11 +68081,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:49.928Z"
+ "updated_at": "2026-11-03T23:19:29.467Z"
},
"fr": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "cb3ef54b9168e61171fbd1dafd5424d13110fe1e4aa41f1bde9cf06a9adbff9e",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "7225a2179281fa88a6755a65b170149c7b724dddfd146c9ab6dcbceefa92b0b3",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68124,7 +68095,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68136,11 +68107,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:50.619Z"
+ "updated_at": "2026-11-03T23:19:29.621Z"
},
"gu": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "e105e558a110c46a144462d7a3602b583a8b06f18677440e2f35a5a8f1b5164c",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "562c3190f25f2f81b5a2ff8e691e7420628b4fc59f9e7777f654a1d51c341a64",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68150,7 +68121,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68162,11 +68133,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:53.230Z"
+ "updated_at": "2026-11-03T23:19:30.051Z"
},
"he": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "46e47dfc3b0587bb2dfbea97e579e80a1594007a3347eaea7784b60ba6da7ead",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "c26880caf7edab2011f807c2a3b16371dc149f0c00f33f3b56cbdb3b71b7bf7d",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68176,7 +68147,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68188,11 +68159,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:53.825Z"
+ "updated_at": "2026-11-03T23:19:30.750Z"
},
"hi": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "fd518194cea6868d083a8ba7182b971b3a4f9532fda9e9d9eaf4ef0e9cc3faa4",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "7985c9b7784f147f762487685f7686c0754eb1818ee57191de6cb6a65305a859",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68202,7 +68173,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68214,11 +68185,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:55.456Z"
+ "updated_at": "2026-11-03T23:19:31.006Z"
},
"hu": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "3536d83299d102041c3f547a4ff1bdb85479e2c3ee05de324d2a0247932a7cdf",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "cbd57e9b7aea8075a764dbab3619c71835a7be1668a3652c8e3bb4405f518446",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68228,7 +68199,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68240,11 +68211,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:56.144Z"
+ "updated_at": "2026-11-03T23:19:32.342Z"
},
"id": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "86964cbeea179e711c3bdd100eccbdf021fcf22dd596f94e4670bc3dd9482d01",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "ca2d74e85ef5065684d296e7dd78c93f12344b742183104b4b29fc753023d79d",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68254,7 +68225,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68266,11 +68237,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:57.644Z"
+ "updated_at": "2026-11-03T23:19:32.221Z"
},
"it": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "5d88a929dd207c41ffa4cd0fe0e0f832905b1c0104bc68709bf38d7d383df0bd",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "9b0b4032d8d7b69bfdf87798358e3b38134048b9368b4dabe829280c4b1f3679",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68280,7 +68251,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68292,11 +68263,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:01.621Z"
+ "updated_at": "2026-11-03T23:19:32.836Z"
},
"ja": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "5c8d495ae757240e93be1d7d5bffa677be377ab879d4c46617b442a7ef5b0157",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "f8e0c6129dad65a6a6a497ac90429a492b3d44cf7acdb586b4b4afc2c784afb7",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68306,7 +68277,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68318,11 +68289,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:03.940Z"
+ "updated_at": "2026-11-03T23:19:33.394Z"
},
"ko": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "b09a90badf1729f6c9009a1a46976e839d6d9dde4bf5761f4030654f0f252c1d",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "27905796dcf01e229b194400955aca0f5463c821425b4fdda76c83b5febc2031",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68332,7 +68303,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68344,11 +68315,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:05.766Z"
+ "updated_at": "2026-11-03T23:19:34.313Z"
},
"mr": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "3cbee4be3f64d76e43dc7b7185d1cd2a0a74e71671e5f33bbd9a0517ca20793f",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "ee0004405d87547aac87f562c5702fff3fe7d33d8169de56ff97eb0361c9a4ba",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68358,7 +68329,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68370,11 +68341,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:08.396Z"
+ "updated_at": "2026-11-03T23:19:34.955Z"
},
"ms": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "903336c19230364ade718ea509f1a9b9010dfadf4a511461f2d583b58854d33e",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "247af09ded4cb90c78f651869628c858511d295754843992fce135a4c84ef65b",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68384,7 +68355,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68396,11 +68367,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:09.277Z"
+ "updated_at": "2026-11-03T23:19:35.115Z"
},
"nl": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "06c54ec675a0cc657630111c978dcda07859badfafb8348cfac008b1bd6ec0f7",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "0fc69e83d71ec3c71c5589bc248ebfe2907aa5b64b1ca89dffaae1c3df80d3d4",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68410,7 +68381,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68422,11 +68393,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:10.974Z"
+ "updated_at": "2026-11-03T23:19:36.038Z"
},
"no": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "a6d15af855cff770b53c218ad499d4c3b8ad1827746865cc8de76f76af866883",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "cbee6dc580759cba945a68346987f0cc2ffa1cc0cb1d9eb3a4bcbedde24e8e37",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68436,7 +68407,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68448,11 +68419,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:12.362Z"
+ "updated_at": "2026-11-03T23:19:36.227Z"
},
"phi": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "159f5638f91b48cdf886a49aa41999e4b5ad839c5fbab0076afabff2a8eea1fa",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "eaa4501c48f3d2bf84b107cd8c142e39aaa772d04976830f545850ac03df0740",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68462,7 +68433,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68474,11 +68445,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:13.600Z"
+ "updated_at": "2026-11-03T23:19:36.920Z"
},
"pl": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "3a9f67c8d9580b84024ddb6e4821b762b894edd69e142011f26550f2f048c656",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "a3ed730170be3e69cc9fd20f1206ee9d2f8ae960a23e4b24b21e08d4cdd304de",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68488,7 +68459,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68500,11 +68471,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:14.889Z"
+ "updated_at": "2026-11-03T23:19:37.073Z"
},
"pt": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "7257e4e088e83219e4c5cfac5c7dbe40a2a2e0e284af5cd68aab5be9aa98260b",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "064a2397e9c48327a257e5271ed17efba39e70bc897002b3bf4c24160ce293b2",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68514,7 +68485,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68526,11 +68497,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:16.336Z"
+ "updated_at": "2026-11-03T23:19:39.633Z"
},
"pt-BR": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "741933f094ba7856c1072f7421384903328d841b39bba2c8ced033758955a18e",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "cf3914853fdb25dbf9cc086ab1f2e093bb2caef0b174f40324177c4f81df2a9f",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68540,7 +68511,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68552,11 +68523,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:15.529Z"
+ "updated_at": "2026-11-03T23:19:37.429Z"
},
"ro": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "86700345f23309be780771639ddc1a8f54da61e2811328cc0caaa3e22f6a066c",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "61aa46e9a88d8282ee0333f379f00760ca0ffa3321f9a707a2f03ec28f531ac0",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68566,7 +68537,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68578,11 +68549,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:15.953Z"
+ "updated_at": "2026-11-03T23:19:37.837Z"
},
"ru": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "1398f539b00d66148542f1e7687c100146f2c87cba401b1fff570db8214b4ff2",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "2122201779c074143d8dc3fcca09d829fb3a0d90e82c8875cb07fdd1ae6a6db3",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68592,7 +68563,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68604,11 +68575,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:17.788Z"
+ "updated_at": "2026-11-03T23:19:38.276Z"
},
"sk": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "e7e37809febdc6fa982dad69925d8c9f8208d9aebacdd812a1a8fec546861df4",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "1274a237f92630cc8f8419e48cdd7d73bf862ff72e8e3665a9f8505842c1ac81",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68618,7 +68589,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68630,11 +68601,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:18.938Z"
+ "updated_at": "2026-11-03T23:19:39.033Z"
},
"sv": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "4490005e44912e9f4b92239c1ab9943b7fce911075071fbae62577b870d2d8fc",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "85d9dc4082b687a866388e839cfd24aa17d36a260661edccf87d8259395fdeaf",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68644,7 +68615,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68656,11 +68627,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:20.387Z"
+ "updated_at": "2026-11-03T23:19:40.034Z"
},
"sw": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "9c7e6af5c4daeb49ea9dbdb7dde06844ee82e86ab05526fb949eee90b6ba7215",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "0582bea7094c366f90a23375a352f7ae14001b627cfce26cc562f9a90ec622d9",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68670,7 +68641,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68682,11 +68653,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:26.443Z"
+ "updated_at": "2026-11-03T23:19:40.234Z"
},
"ta": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "00810cd7903ce4f83b0eeb79cc0ebc1c17162703d55e35e605e0ffc9d3795328",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "2cb22b466cdd69923919fc3874310d3672d17a4b0b9ba7bd7cc66e7a86d993dc",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68696,7 +68667,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68708,11 +68679,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:26.438Z"
+ "updated_at": "2026-11-03T23:19:40.421Z"
},
"te": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "33ef614c78d240ee61d3279067027a3c97a68c8c5a921bf44bd032fe4cb88f89",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "2ce7cedab073cee71e732a20945dc732ff94a055632c514cdee3106953708cdb",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68722,7 +68693,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68734,11 +68705,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:28.883Z"
+ "updated_at": "2026-11-03T23:19:40.629Z"
},
"th": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "d2334ba86a3e3d86f47fbce05fb2736a3b2995fd08b17325046a0adbbdf16d6d",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "871a693a35d985286989a1532976c3cffbd6ce56aa1d88d4c40ce6eb69a29b69",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68748,7 +68719,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68760,11 +68731,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:28.878Z"
+ "updated_at": "2026-11-03T23:19:40.827Z"
},
"tr": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "cb113b98a15ee5fb26258fd8a944065c7e1f70920a09e2fec05d1a650ddc4672",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "6ee38a15ee86661a19be2564b4a9a69698ba085ba7dae26b0a87991dbe84e863",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68774,7 +68745,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68786,11 +68757,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:29.614Z"
+ "updated_at": "2026-11-03T23:19:41.070Z"
},
"uk-UA": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "8f5028e793414db9e07f0b42a4b39f7c17c2fd2528a8aa2c163e1a525cc50e37",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "ddf684404b490bbd8cbff9a4c4cedd6f0ba6ed43bdf9496301b1b37d4b56687d",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68800,7 +68771,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68812,11 +68783,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:31.521Z"
+ "updated_at": "2026-11-03T23:19:41.252Z"
},
"ur": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "70efc6948a82626c5bfc580f977cc18d7dbd452cff628b021adeca9bdaddf17f",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "41ad93096516c9983106a3640537ef4586cb8dec8c4b15460ee39d7335b4fa4a",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68826,7 +68797,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68838,11 +68809,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:30.119Z"
+ "updated_at": "2026-11-03T23:19:41.484Z"
},
"vi": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "efa9e86134df6ad4ccb28c89a1c6a8c0b57a299aa27f96dae7f29da2973c7d80",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "71b8b548b4269c045fb8f02a145e3310fc5289cf56bb58e0657cc8537e6ea949",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68852,7 +68823,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68864,11 +68835,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:31.949Z"
+ "updated_at": "2026-11-03T23:19:41.958Z"
},
"zh-CN": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "74262876b2ba220c9fd27b0b1001f4c3b2dea74a743389a1bb64e474edd6e8c9",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "58f20df6357991255983a7e60b4bd475ae8e05c9e16462793dc9f9f2fceb8ee7",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68878,7 +68849,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68890,11 +68861,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:32.931Z"
+ "updated_at": "2026-11-03T23:19:42.563Z"
},
"zh-TW": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "08f38290e63ad3104a7bba286e4accb26eac16e3a35ad7f3d6c0d563aa22866b",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "c3ee0f0a3eeb0bc28cb39985a90336bf6aab527f77cc71bdb4eb7757cbf83fd6",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68904,7 +68875,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68916,11 +68887,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:33.483Z"
+ "updated_at": "2026-11-03T23:19:42.940Z"
},
"el": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "3ee97cc949aa67f6c1728ab9ed2d51b864dd853c42c8634b2148b1702ffd194e",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "fbc83bc11dd2377212711cf4e81b8ca98faed6f0108e79da80797f53653bae69",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68930,7 +68901,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68942,11 +68913,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:48.551Z"
+ "updated_at": "2026-11-03T23:19:28.634Z"
},
"hr": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "6905590400a3ec46d8357cd1cb1a7a48668ca5bbc036301b60c5c1b840b8fb37",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "d0de75b995f2b267542ff26975d75cbcac728df66cd5935c9f1eb78e05beb504",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68956,7 +68927,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68968,11 +68939,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:55.448Z"
+ "updated_at": "2026-11-03T23:19:31.431Z"
},
"sr": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "93982ff60cd8f27efda37aa0b88b36a7ece3fcdf5634e33d91c599f95c486a77",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "2f2b38d6ab1d4932fbd754f969e749a97e12d2503711207756bf01de9a73e4fe",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -68982,7 +68953,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -68994,11 +68965,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:19.713Z"
+ "updated_at": "2026-11-03T23:19:39.852Z"
},
"lt": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "457e54b564315b2ffcd78e589af9e313f6be166643dd289f65582933307607cd",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "93a33a14f97b375ffd64cf162058ceeeac5dd34158e6440c5b1aa733b063a209",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69008,7 +68979,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69020,11 +68991,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:04.773Z"
+ "updated_at": "2026-11-03T23:19:34.179Z"
},
"et": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "2c14599a992b2edf10daed9bf583e70de586ff27ed70d5d4ad4e7daccf06054c",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "bf3dcba71856e94c84b4655eb42abcc9099fdb12bfacb9e20d762a80b9d20fd4",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69034,7 +69005,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69046,11 +69017,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:48.557Z"
+ "updated_at": "2026-11-03T23:19:29.065Z"
},
"lv": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "79aa9ed42134876ea91fc652b903639a02855f83364647df5dcaa13fa4fcf5a7",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "08f470da3de1ca167ad333e64f135834aa6435f9789f7dbc722229966d872bbc",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69060,7 +69031,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69072,11 +69043,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:07.226Z"
+ "updated_at": "2026-11-03T23:19:34.564Z"
},
"sl": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "1110d6e0cb7e0e1fa8e70b856cde8265e9ba98af2762ae85cbb6e2d2a5ed2a90",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "943f3e90313be475801ea87c189e462f35bf0e09bce8dc99dad7f394f65c2095",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69086,7 +69057,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69098,11 +69069,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:19.730Z"
+ "updated_at": "2026-11-03T23:19:39.433Z"
},
"mt": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "7ffb48de1e2a20f4dd43a7c52426250a025d4f044a8025a73495a6f468c8c482",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "8eef181bda9afe7d1dab1624a8d0223a239131f2d28860e306983fa34b41d2b4",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69112,7 +69083,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69124,11 +69095,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:08.885Z"
+ "updated_at": "2026-11-03T23:19:35.431Z"
},
"ga": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "d97e95765f86d00ba2a8dc7b33d36048ca844093f450bad6d334a2f189fdc569",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "7c682a611b608426a22336ee64d3b13eb9cf029c83d829b1a434fb062924fca2",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69138,7 +69109,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69150,11 +69121,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:49.935Z"
+ "updated_at": "2026-11-03T23:19:30.362Z"
},
"kn": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "9ce5a6a15a26fca404fc8387a14f49dae0f4ec298ef7cbc377341b2a598e0106",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "e2dd63528b975a69ef01a7aae15ffdd6de9bf0d4bd91caa9d24a426dee7f00a7",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69164,7 +69135,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69176,11 +69147,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:04.802Z"
+ "updated_at": "2026-11-03T23:19:33.797Z"
},
"ml": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "a90dc113795fd5d6f6bbc89e93e2eab0720a38d1add8237310df29945501c1ab",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "a8ffd3e28fbb5073e3c07816d26e1d42fdefd88ceb3bf9e473697cc45a8b53aa",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69190,7 +69161,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69202,11 +69173,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:07.882Z"
+ "updated_at": "2026-11-03T23:19:34.700Z"
},
"or": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "7fda38867b892eb788b574287aa0f9ef952e52a67746916f16fb8552df86bfb0",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "d02cbd81b547a08de6bbe18125dbfee155b8a3d750bad5d804fbb6e2d15f9470",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69216,7 +69187,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69228,11 +69199,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:12.924Z"
+ "updated_at": "2026-11-03T23:19:36.470Z"
},
"pa": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "a9fcfbbf53bf3038c643ca6e6535dbf449c47cf0f919a869dfa6654bff970c21",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "c9db5eba1a1124c43bce0314072759c18a9701414e26002933024a746d163ef5",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69242,7 +69213,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69254,11 +69225,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:14.485Z"
+ "updated_at": "2026-11-03T23:19:36.648Z"
},
"ne": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "4b94605787394e3a547a0d32c2470374ac6f628aa8e3b65716662d2505964984",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "1e9299739c4f0d712b8623d5380266a2cee0eac3a14842c6e14aee7f797003dd",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69268,7 +69239,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69280,11 +69251,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:10.455Z"
+ "updated_at": "2026-11-03T23:19:35.823Z"
},
"si": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "d50f288a53c6b00e0f29dad96b3349113ea9790a31284b37cb673e7a17bcb9f7",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "2cdc094b627df82e93b178ef3c6ff3f18438ceb66dbd8d859f18a652d99e6069",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69294,7 +69265,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69306,11 +69277,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:18.267Z"
+ "updated_at": "2026-11-03T23:19:38.655Z"
},
"my": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "dfa2221b683772e12b6f8e1dd72ea24ce62822dcc81a15ee8895236d9352fcd1",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "7c6bd4fc1095d2865b3a06134c0c4c84e59176e8d6eb2d9287142c7fba5686cb",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69320,7 +69291,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69332,11 +69303,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:09.681Z"
+ "updated_at": "2026-11-03T23:19:35.545Z"
},
"km": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "460f19fd0b05b90955a95d78db4069abb252faa60695ac2dc33e274c1fc0d5d8",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "29131281fa52b50c23d01f527ccef22382a7e3164720dc3e93b6ee93659e9e8c",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69346,7 +69317,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69358,11 +69329,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:03.936Z"
+ "updated_at": "2026-11-03T23:19:33.648Z"
},
"ha": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "bc2d39c0765ba2c956e417cefb46ca1782f752d910bee351b9e11f6da336b7b5",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "7388498054bf7365175f0d427388b55beaebfa8e165940d5a33ae0af8a045bb1",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69372,7 +69343,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69384,11 +69355,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:54.452Z"
+ "updated_at": "2026-11-03T23:19:30.476Z"
},
"yo": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "08e7fb604edba75a1144a13e54ceae4de73b1b978a0d13968deaeb7db3a509cd",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "88f9231ef587384e94aafae6720b1a119208358df32eeae1e288d346f994df6b",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69398,7 +69369,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69410,11 +69381,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:31.515Z"
+ "updated_at": "2026-11-03T23:19:42.084Z"
},
"ig": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "876279596f4744034051f65f535c77b00062fe8744c42d44a59bf4b725b60f11",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "9b933851de861d87ecbdd92434c6733be0a621f70684f12afa26b436b68a12fc",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69424,7 +69395,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69436,11 +69407,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:00.419Z"
+ "updated_at": "2026-11-03T23:19:32.655Z"
},
"am": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "a1e0e2fe6ea63e486e5be834bbd85d2bb50ddb5603a45895fbf6e306eb0f9dd6",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "851226aa7521e4376bd49ef636603a9b6ceb2605d45be7720b8767e368b31253",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69450,7 +69421,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69462,11 +69433,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:40.980Z"
+ "updated_at": "2026-11-03T23:19:26.342Z"
},
"uz": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "50efbf83af2d7258328385f44613240abd7990f28baef5b850aad3ac3d9e7d94",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "6fe8a10dee68280909e6d11c48751ba47ea703db1a1ebf8ec24748bf0a817d1b",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69476,7 +69447,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69488,11 +69459,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:30.710Z"
+ "updated_at": "2026-11-03T23:19:41.643Z"
},
"ka": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "5f00c239ca6a2dbb4b50e46ae02c488d32b041d97a46775a85e970006b29b1ec",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "2d91d36e7588bfdcfea54fbc83338aed3056f82ded518400d4260caf32fbb00c",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69502,7 +69473,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69514,11 +69485,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:20:03.932Z"
+ "updated_at": "2026-11-03T23:19:33.226Z"
},
"hy": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "294c3552033f6f548bbac8eb3c740f177d0553b8b3cda782916309457c17d52f",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "2ffee491b5e5d3ba29de59e2226042ec301331a9f3e95ea79479255e8470e392",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69528,7 +69499,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69540,11 +69511,11 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:56.546Z"
+ "updated_at": "2026-11-03T23:19:31.812Z"
},
"bs": {
- "source_hash": "29d6c52441dc1c9bb8eb3afaa92dc61c2801aaaf83b85668b260ac0475b7f002",
- "target_hash": "0d6b0126465e43ded0b06b9e42c47579be6bc99131af8891bdd13352d921d5f4",
+ "source_hash": "3de749f80c23200e58b8991c8ec55074d95738d4db8017d73c0485b64d8f9f06",
+ "target_hash": "d5606686281ab6489038a1ac591d576c751ee6d71f9131e9661e6b3469471339",
"section_hashes": [
"982aace73f0a",
"431f9efe3d07",
@@ -69554,7 +69525,7 @@
"de182ba3d06c",
"8e57e7c4f63e",
"39e6a56b4917",
- "df062e76cf09",
+ "ac0619b4999a",
"ff74d46353f7",
"2b4f8c92b3fc",
"1cb9e0977f46",
@@ -69566,7 +69537,7 @@
"0fe355b3aaaa",
"8af1252b116a"
],
- "updated_at": "2026-10-28T12:19:40.986Z"
+ "updated_at": "2026-11-03T23:19:27.678Z"
}
}
},
diff --git a/changelog.d/fixes/ci-contribution-fixtures.md b/changelog.d/fixes/ci-contribution-fixtures.md
index b7f96fe5a150..b376f21c5143 100644
--- a/changelog.d/fixes/ci-contribution-fixtures.md
+++ b/changelog.d/fixes/ci-contribution-fixtures.md
@@ -1 +1,2 @@
- Stabilize the Codex usage throttle and credential-health regression fixtures with controlled timing and explicit background-probe readiness. Keep Codex fingerprint coverage aligned with optional native Responses fields and select the exact model in the provider-page browser test.
+- Refresh the translated cooldown-wait documentation and remove the retired Mistral model from the translated user guides so strict documentation drift checks match the current release.
diff --git a/docs/i18n/am/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/am/docs/architecture/RESILIENCE_GUIDE.md
index d90bcd5122e8..71abfc3ba6d1 100644
--- a/docs/i18n/am/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/am/docs/architecture/RESILIENCE_GUIDE.md
@@ -259,19 +259,17 @@ UI: ክትትል → የማቀዝቀዣ አስተዳዳሪ (`src/app/(dashboard)
---
-## 4. የኮታ-ካፍል ማመሳሰል ቁጥጥር (v3.8.36)
+## 4. የኮታ-ማጋራት የመለዋወጫ መቆጣጠሪያ (v3.8.36)
-የደንበኝነት ምዝገባ መለያዎች (GLM፣ MiniMax ወዘተ.) ብዙውን ጊዜ ~1–3 ብቻ በአንድ ጊዜ የሚከናወኑ ጥያቄዎችን ይቀበላሉ; ይህንን ማለፍ 429 ስህተቶችን እና ማቀዝቀዣዎችን ያስከትላል። ይህ ችግር በ**ኮታ-ካፍል** (`qtSd/…`) ኮምቦዎች ሥር በጣም ከባድ ነው፣ በዚያም ብዙ የAPI ቁልፎች አንድ የላይኛው ጅረት መለያ ይጋራሉ። ሦስት ሽፋኖች የጋራ መለያ ከጎርፍ ጋር እንዳይገጥም ይከላከላሉ።
+የደንበኝነት ምዝገባ መለያዎች (GLM፣ MiniMax፣ ወዘተ.) ብዙ ጊዜ ~ 1-3 ተመሳሳይ ጥያቄዎችን ብቻ ይቀበላሉ፤ ከዚያ በላይ 429 ዎች እና ማቀዝቀዣዎችን ያስነሳል። ይህ ሥር የሰደደ ነው።** ኮታ-ማጋራት** (`qtSd/…`) ጥንብሮች፣ በርካታ API ቁልፎች አንድ የወራጅ መለያ የሚጋሩበት። ሶስት እርከኖች የጋራ መለያ እንዳይጥለቀለቅ ያደርጋሉ።
-### የእያንዳንዱ ግንኙነት የማመሳሰል ገደብ (`max_concurrent`)
+### በግንኙነት የተመጣጠነ ካፕ (`max_concurrent`)
-እያንዳንዱ የአቅራቢ ግንኙነት የ`max_concurrent` ከፍተኛ ገደብ ማውጣት ይችላል
-(`provider_connections.max_concurrent`፣ በግንኙነት ሞዳል / API / DB ውስጥ የሚዘጋጅ)።
-ገደብ ከሌለ ባዶ ይተዉት። ይህ ከታች ያለውን የተከታታይነት ሽፋን የሚያንቀሳቅስ ብቸኛው መቆጣጠሪያ ነው — ወደ መለያው እውነተኛ ማመሳሰል ያስቀምጡት (ለምሳሌ GLM ~1፣ MiniMax ~2)።
+እያንዳንዱ የአቅራቢዎች ግንኙነት የ `max_concurrent` ጣሪያ (`provider_connections.max_concurrent`, በግንኙነት ሞዳል ውስጥ የተቀመጠ / API / DB) ማወጅ ይችላል. ያለ ገደብ ባዶውን ይተዉት። ይህ — በታች ያለውን ተከታታይነት ያለው ንብርብር የሚያንቀሳቅሰው ነጠላ ቁልፍ ነው ወደ መለያው እውነተኛ መመሳሰል (ለምሳሌ GLM ~ 1፣ MiniMax ~ 2)።
-### የእያንዳንዱ ሞዴል የማመሳሰል ገደቦች (`modelConcurrency`)
+### በአንድ ሞዴል የተመጣጣኝ ካፕ (`modelConcurrency`)
-ግንኙነቱ በተጨማሪም በ`rateLimitOverrides` ካርታው ውስጥ ትክክለኛ የእያንዳንዱ ሞዴል የማመሳሰል ገደቦችን ማውጣት ይችላል፦
+ግንኙነት በተጨማሪም በ `rateLimitOverrides` ካርታው ውስጥ ትክክለኛ የአንድ ሞዴል ተጓዳኝ ጣሪያዎችን ማወጅ ይችላል።
```json
{
@@ -282,35 +280,32 @@ UI: ክትትል → የማቀዝቀዣ አስተዳዳሪ (`src/app/(dashboard)
}
```
-በግንኙነት ሞዳል ውስጥ ያስቀምጡት (**የፍጥነት ገደብ ሽፋኖች → የእያንዳንዱ ሞዴል የማመሳሰል ገደቦች**፣ በእያንዳንዱ መስመር አንድ `model=cap`) ወይም በ`PATCH /api/providers/[id]` በተመሳሳይ JSON ቅርጽ። ዋና ትርጉሞች፦
+በግንኙነት ሞዳል ውስጥ ያዋቅሩት (** የዋጋ ገደብ → Per-model concurrency capsን ይሽራል።** , አንድ `model=cap` በአንድ መስመር) ወይም በ `PATCH /api/providers/[id]` ተመሳሳይ JSON ቅርጽ. ቁልፍ ትርጉም፡
-- **በግንኙነት ደረጃ vs በሞዴል ደረጃ፦** `maxConcurrent` የጋራ የግንኙነት-አቀፍ ከፍተኛ ገደብ ሆኖ ይቀጥላል። ሁለቱም ሲተገብሩ፣ ሁለቱም በርዎች በአንድ ውህድ በር ውስጥ በአቶሚክ ሁኔታ ይገኛሉ
- (`global → provider → account → model`); ውጤታማው ባህሪ ከሚተገበሩት መካከል ጥብቁ ገደብ ነው።
-- **ትክክለኛ የሞዴል-ቁልፍ ይዛመዳል፦** ቁልፉ ከመስወገጃ ፍታህ በኋላ ወደ አስፈጻሚው የሚተላለፍ የሞዴል ሕብረቁምፊ ነው — በተለምዶ ቀላሉ የላይኛው ጅረት የሞዴል መታወቂያ
- (`glm-5`)፣ ሳይሆን የደንበኛ-ጎን `provider/model` ምህዳር (`zai/glm-5` ከ`glm-5` ጋር አይዛመድም)። እሴቶቹ አዎንታዊ-ኢንቲጀር የተዛማጅ-ጥያቄ ገደቦች ናቸው።
-- **አካባቢያዊ ተራ መጠበቅ፣ ምንም ግኝት የለም፦** ተጨባጭ ጥያቄዎች በአካባቢው በአሁኑ ተራ/ጊዜ-ማብቂያ ትርጉሞች በተራ ይጠብቃሉ (የተለዩ `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL` የመግቢያ ስህተቶች)። OmniRoute የላይኛው ጅረት ፖሊሲ አያገኝም ወይም አይገምትም — ኦፔሬተሩ ያዘጋጀውን ትክክለኛ ገደብ ብቻ ያስከብራል። የሞላ የሞዴል በር አቅራቢውን ፈጽሞ አያሰናክልም እና ቋሚ የሞዴል መዝጊያ ፈጽሞ አይፈጥርም; የላይኛው ጅረት 429/ማቀዝቀዣ/fallback ባህሪ የስህተት መጨረሻ ድጋፍ ሆኖ ይቀጥላል።
-- **በእያንዳንዱ ግንኙነት፣ በእያንዳንዱ ሂደት መስፈሪያ፦** ገደቦች በእያንዳንዱ የዳታቤዝ ግንኙነት የተከፋፈሉ ናቸው እና በማህደረ ትውስታ ውስጥ ይዘዋል፣ ስለዚህ ተመሳሳይ የላይኛው ጅረት የAPI ቁልፍ እንደገና የሚጠቀሙ ሁለት ግንኙነቶች እርስ በርስ አይቀናጁም።
-- **ያልተዋቀረ ማለት ያልተለወጠ ማለት ነው፦** ካርታውን ማስተዋል (ወይም የዳሽቦርዱን መስክ ባዶ መተው) ምንም የሞዴል በር አይጨምርም። ምንም አጠቃላይ የአቅራቢ ገደብ ሳይገልጽ የምሳሌ ውቅረት፦
+- **ግንኙነት-ሰፊ እና ሞዴል-ተኮር፡-** `maxConcurrent` የጋራ ግንኙነት-ሰፊ ጣሪያ ሆኖ ይቆያል። ሁለቱም ሲተገበሩ ሁለቱም በሮች በአቶሚክ የተገኙት በተመሳሳይ ድብልቅ በር (`global → provider → account → model`) ውስጥ ነው; ውጤታማ ባህሪ በጣም ጥብቅ የሚተገበር ገደብ ነው.
+- **ትክክለኛው የሞዴል-ቁልፍ ግጥሚያ፡-** ቁልፉ ጥራት — ን ካስኬደ በኋላ ወደ ፈጻሚው የተላለፈው የሞዴል ሕብረቁምፊ በመደበኛነት ባዶ የላይኛው ሞዴል መታወቂያ (`glm-5`) እንጂ ደንበኛ-ጎን `provider/model` ተለዋጭ ስም አይደለም (`zai/glm-5` `glm-5` ጋር አይዛመድም)። እሴቶች አዎንታዊ-ኢንቲጀር በአንድ ጊዜ የሚጠየቁ ጣሪያዎች ናቸው።
+- **የአካባቢ ወረፋ፣ ምንም ግኝት የለም፡** ከመጠን በላይ የጥያቄዎች ወረፋ ከነባሩ queue/timeout ትርጉም ጋር (የተተየቡ `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` የመግቢያ ስህተቶች)። OmniRoute የላይኛውን ተፋሰስ ፖሊሲ አያገኝም ወይም አይገምተውም — ኦፕሬተሩ ያዋቀራቸውን ትክክለኛ ጣሪያዎች ያስፈጽማል። የተሞላ የሞዴል በር አቅራቢውን ፈጽሞ አያሰናክልም እና ቋሚ የሞዴል መቆለፊያን ፈጽሞ አይፈጥርም; ወደላይ 429/cooldown/fallback ባህሪ ስህተቱ የኋላ ማቆሚያ ሆኖ ይቀራል።
+- **በግንኙነት፣ በሂደት ወሰን፡** ካፕዎች በእያንዳንዱ የውሂብ ጎታ ግንኙነት እና በማህደረ ትውስታ ውስጥ የተያዙ ናቸው፣ ስለዚህ ሁለት ግንኙነቶች ተመሳሳይ የላይኛው API ቁልፍን እንደገና የሚጠቀሙት እርስ በርሳቸው አይጣመሩም።
+- **ያልተዋቀረ ማለት ያልተለወጠ ማለት ነው፡-** ካርታውን መተው (ወይም የዳሽቦርድ መስኩን ባዶ መተው) ምንም የሞዴል በር አይጨምርም። የምሳሌ ውቅር ምንም አይነት ሁለንተናዊ አቅራቢ ገደብ ሳያረጋግጥ፡-
```text
glm-5=1
glm-4.7=3
```
-### የኮታ-ካፍል ጥያቄ ተከታታይነት
+### የኮታ-ማጋራት ጥያቄ ተከታታይነት
-የኮታ-ካፍል መላኪያ አዎንታዊ `max_concurrent` የገለጸ ግንኙነትን ሲያግብር፣ ወደዚያ **መለያ** የሚሄዱ ተዛማጅ ጥያቄዎች በእያንዳንዱ ግንኙነት ሴማፎር (ቁልፍ `qsconn:`) በኩል ተከታታይ ይሆናሉ፦ ተጨባጭ ጥያቄዎች መለያውን ከማራገፍ ይልቅ **በተራ ውስጥ ይጠብቃሉ**። ይህ **fail-open** ነው — የሞላ ተራ ወይም ጊዜ-ማብቂያ ሊላክ የሚገባ ጥያቄን ከመካድ ይልቅ ያለ ቦታ ይቀጥላል። በ**ቅንብሮች → ጽናት → የኮታ-ካፍል የእያንዳንዱ ግንኙነት ማመሳሰል** ውስጥ ያብሩ/ያጥፉ
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`፣ ነባሪ በርቷል)። የ`max_concurrent` ገደብ ከሌለ ባህሪው አይለወጥም።
+የኮታ-ማጋራት መላኪያ አወንታዊ `max_concurrent` የሚያውጅ ግንኙነትን ሲያነጣጥረው ለዚያም በተመሳሳይ ጊዜ ይጠይቃል።** መለያ** ተከታታይ በሆነ የግንኙነት ሴማፎር (ቁልፍ `qsconn:`): ከመጠን በላይ ጥያቄዎች** ወረፋው ላይ ይጠብቁ** ሂሳቡን ከማጥለቅለቅ ይልቅ. ነው።** አልተሳካም-ክፍት** — የተሞላ ወረፋ ወይም ጊዜው ያለፈበት የሚላክ ጥያቄን ከመቼውም ጊዜ በላይ ያለ ማስገቢያ ይቀጥላል። ግባ** ቅንጅቶች → የመቋቋም ችሎታ → ኮታ-ማጋራት በግንኙነት ኮንፈረንስ** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`፣ ነባሪ በርቷል)። ያለ `max_concurrent` ካፕ ባህሪው አልተለወጠም።
-> የኮታ-ካፍል መስወገጃ በር (`selectQuotaShareTarget`፣ DRR + P2C) ራሱ
-> fail-open ነው እና ወደ ገደቡ የደረሰ ግንኙነትን _ቅድሚያ መስጠትን_ ብቻ ያቆማል — በነጠላ-ግንኙነት ገንዳ ጥብቅ ገደብ ማድረግ አይችልም፣ ስለዚህ ጎርፉን በእውነት የሚያጠቃው ይህ ሴማፎር ነው።
+> የኮታ መጋራት ማዞሪያ በር (`selectQuotaShareTarget`፣ DRR + P2C) በራሱ አልተሳካም እና የ at-cap ግንኙነት — ባለአንድ ማገናኛ ገንዳ ብቻ ሊገድበው አይችልም፣ስለዚህ ይህ ሴማፎር በትክክል ጎርፉን የያዘው ነው።
-### ኮምቦ ማቀዝቀዣ-አዋቂ እንደገና ሙከራ
+### ጥምር ማቀዝቀዝ-በማወቅ ድጋሚ ይሞክሩ
-ለእያንዳንዱ የኮምቦ ስትራቴጂ (ሲነቃ)፣ ለአጭር ጊዜያዊ ማቀዝቀዣ 429 የሚያወጣ ጥያቄ 429 ከመመለስ ይልቅ ማቀዝቀዣውን ይጠብቃል እና እንደገና ይልካል — ይህ በባለ-ብዙ-ሞዴል ኮምቦዎች ላይ የGemini-ደረጃ TPM/RPM መስኮቶችን (~60ሰከንድ retry-after) ይሸፍናል፣ ለምሳሌ የ2-ሞዴል ኮምቦ ሁለቱም ዒላማዎች በእያንዳንዱ ሞዴል የፍጥነት ገደብ ሲመቱ። በ**ቅንብሮች → ጽናት** ውስጥ በ`comboCooldownWait` (`enabled`፣ `maxWaitMs`፣ `maxAttempts`፣ `budgetMs`) የሚወሰን። በ`quota_exhausted` (እስከ እኩለ ሌሊት ተቆልፏል) ወይም በማረጋገጫ/አልተገኘም ምክንያቶች ፈጽሞ አይጠብቅም።
+ለእያንዳንዱ ጥምር ስትራተጂ ~ ሲነቃ) 429 SHORT TPM/RPM ማቀዝቀዣ የሚሆን ጥያቄ ይጠብቀዋል እና 429 — ከመመለስ ይልቅ በድጋሚ ይልካል። በ `comboCooldownWait` (`enabled`፣ `maxWaitMs`፣ `maxAttempts`፣ `budgetMs`) ውስጥ የታሰረ** ቅንብሮች → የመቋቋም** . በ `quota_exhausted` (እስከ እኩለ ሌሊት ተቆልፏል) ወይም auth/not-found ምክንያቶች ፈጽሞ አይጠብቅም.
-ተመሳሳዩ በር ከመላክ በፊት ያለውን ሁኔታ (#16319) ይሸፍናል፦ የኮምቦው እያንዳንዱ ዒላማ ማንኛውም ሙከራ ከመድረጉ በፊት ሞዴሉ በአጭር ጊዜያዊ መቆለፊያ ውስጥ ስለሚቀመጥ ሲዝለል፣ የዜሮ-ሙከራ መንገዱ ቆለፉን በተመሳሳይ ገደቦች ሥር ይጠብቃል እና እንደገና ይልካል፣ ምልክት-አልባ `503 ALL_TARGETS_SKIPPED` ከመመለስ ይልቅ። መጠበቅ ሳይፈቀድ ሲቀር (ገደብ፣ ሙከራ ወይም በጀት ሲያልቅ፣ ወይም ባህሪው ሲጠፋ)፣ የመጨረሻው ምላሽ ወደ `429 rate_limit_error` ይሻረዋል ከቀዳሚው ጊዜያዊ ቆለፍ ማብቂያ `retry_after` / `reset_at` ጋር; የኮታ፣ የማረጋገጫ እና አልተገኘም ቆለፎች ምልክት-አልባውን 503 ያዝናሉ።
+ጥምር በ `config.comboCooldownWaitEnabled: false` መርጦ መውጣት ይችላል። ቀጥተኛ `false` ብቻ እነዚህን የጋራ ጥምር ጥበቃዎች (ከድህረ መላኪያ ማቀዝቀዝ እና የቅድመ መላኪያ circuit-open/model-lock ይጠብቃል) እና የጥበቃ-በጀት ጊዜ ማብቂያ-ወለል ቅጥያቸውን ያሰናክላል። የጠፋ ወይም `true` ዓለም አቀፍ ፖሊሲን ይጠብቃል; `true` በአለምአቀፍ ደረጃ የአካል ጉዳተኛ መጠበቅን ማንቃት አይችልም። ግልጽ `targetTimeoutMs` አሁንም ያሸንፋል። ይህ መርጦ መውጣት የተለየውን ቤተኛ-ኮዴክስ ተራ-ፒን ቅድመ መላኪያ መጠበቅን አይለውጠውም።
+
+ተመሳሳዩ በር የቅድመ መላኪያ መያዣን (#16319) ይሸፍናል፡ የትኛውም ሙከራ ከመደረጉ በፊት እያንዳንዱ የኮምቦ ኢላማ ሲዘለል ሞዴሉ በአጭር ጊዜያዊ መቆለፊያ ውስጥ ተቀምጧል፣ የዜሮ ሙከራ መንገዱ ፍንጭ የሌለው `503 ALL_TARGETS_SKIPPED` ከመመለስ ይልቅ በዛው ጣሪያ ስር መቆለፊያውን ይጠብቃል እና እንደገና ይልካል። ምንም መጠበቅ በማይፈቀድበት ጊዜ (ጣሪያ፣ ሙከራ ወይም በጀት ተሟጦ፣ ወይም ባህሪው ጠፍቷል)፣ የተርሚናል ምላሽ ከመጀመሪያ ጊዜ የመሸጋገሪያ መቆለፊያ ጊዜ ጀምሮ `retry_after` / `reset_at` ን ወደ `429 rate_limit_error` ያሻሽላል። ኮታ፣ ኦውት እና ያልተገኙ መቆለፊያዎች ፍንጭ-ያነሰ 503 ያስቀምጣሉ።
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/am/docs/guides/USER_GUIDE.md b/docs/i18n/am/docs/guides/USER_GUIDE.md
index 8986601a033c..f2df70426d7c 100644
--- a/docs/i18n/am/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/am/docs/guides/USER_GUIDE.md
@@ -612,57 +612,57 @@ post_install() {
## 📊 የሚገኙ ሞዴሎች
-ሁሉንም የሚገኙ ሞዴሎች ይመልከቱ
+ሁሉንም የሚገኙትን ሞዴሎች ይመልከቱ
-> ከዚህ በታች ያለው ዝርዝር ለ v3.8.0 ከ `open-sse/config/providerRegistry.ts` የተሰበሰበ ነው። የደመና ካታሎጎች (Gemini, OpenRouter, ወዘተ.) በተለዋዋጭ ሁኔታ ይመሳሰላሉ — ሙሉውን ሕያው ካታሎግ ለማየት **ዳሽቦርድ → አቅራቢዎች → [አቅራቢ] → የሚገኙ ሞዴሎች** ይክፈቱ ወይም `GET /api/models/catalog` ይጠሩ።
+> ከታች ያለው ዝርዝር ለv3.8.0 ከ `open-sse/config/providerRegistry.ts` ተመርጧል። የክላውድ ካታሎጎች (Gemini፣ OpenRouter፣ ወዘተ.) ሙሉ የቀጥታ ካታሎግ ክፍት እንዲሆን በተለዋዋጭ — ተመሳስለዋል።** ዳሽቦርድ → አቅራቢዎች → [አቅራቢ] → የሚገኙ ሞዴሎች** ወይም `GET /api/models/catalog` ይደውሉ .
>
-> የአንድ አቅራቢ ውስጣዊ ዝርዝር ከእውነተኛው ሁኔታ ከወጣ፣ በዚያ ገጽ ላይ **ከ /models አስመጣ** ይጠቀሙ (ወይም **ራስ-ሰር ማመሳሰል** ያንቁ) ሕያውን የኋለኛ (upstream) ካታሎግ ለመጎተት። ይህ በ v3.8.50 ለ LLM7.io (`gemini-3.1-flash-lite`) እና UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) ተረጋግጧል; የ Pollinations ስም-አልባ መዳሰሻ በተመሳሳይ የሙከራ ዙር ውስጥ በኋለኛው ገደብ ተገድቦ ቆይቷል።
+> የአቅራቢው አብሮገነብ ዝርዝር ከተዘዋወረ ይጠቀሙ** ከ/ሞዴሎች አስመጣ** በዚያ ገጽ ላይ (ወይም አንቃ** ራስ-አመሳስል** ) ቀጥታ ወደ ላይ ያለውን ካታሎግ ለመሳብ። ይህ በ v3.8.50 ለ LLM7.io (`gemini-3.1-flash-lite`) እና UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) ተረጋግጧል። በተመሳሳይ የፍተሻ ማለፊያ ጊዜ የአበባ ዘር ስርጭት ስም-አልባ መዳረሻ ወደላይ-የተገደበ ቆየ።
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude ኮድ (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ የጥረት ደረጃዎች: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ ጥረት ደረጃዎች: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`) `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — ነጻ OAuth: **ዳሽቦርድ → አቅራቢዎች → Kiro → የሚገኙ ሞዴሎች** ስር የታየውን ሕያው ካታሎግ ይጠቀሙ። ተገኝነቱ በመለያው እና በዕቅዱ ላይ ይወሰናል።
+**Kiro (`kr/`)** — FREE OAuth: ከስር የሚታየውን የቀጥታ ካታሎግ ተጠቀም** ዳሽቦርድ → አቅራቢዎች → Kiro → የሚገኙ ሞዴሎች** . ተገኝነት በሂሳቡ እና በእቅዱ ላይ የተመሰረተ ነው.
-**Qoder (`if/`)** — ነጻ OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/ወር ቋሚ ወይም በአጠቃቀም መሰረት: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo ጠፍጣፋ ወይም በጥቅም ላይ: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — API ቁልፍ: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — ከፍተኛ ፍጥነት: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — እጅግ በጣም ፈጣን `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok ቤተኛ: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok ቤተኛ `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — በአውሮፓ ህብረት የሚስተናገድ: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — በአውሮፓ ህብረት የተስተናገደ `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — ፍለጋ-የተጠናከረ: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**ግራ መጋባት (`pplx/`)** — ፍለጋ-የተጨመረ `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — ክፍት-ምንጭ: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ነጻ), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — ክፍት ምንጭ `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ነጻ)፣ `together/meta-llama/Llama-Vision-Free`፣ `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`፣ `together/deepseek-ai/DeepSeek-R1`፣ `together/Qwen/Qwen3-235B-A22B`፣ `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — ፈጣን ኢንፈረንስ: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — ፈጣን መግለጫ `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — ዌፈር-መጠን: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — ዋፈር-ልኬት `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — በ RAG ላይ ያተኮረ: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG ላይ ያተኮረ `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — ድርጅት-ደረጃ: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — ኢንተርፕራይዝ `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama ደመና (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: ከ Google በ API ቁልፍ በቀጥታ ይመሳሰላል — ቋሚ ዝርዝር የለም። **ዳሽቦርድ → አቅራቢዎች** ውስጥ ቁልፍ ያገናኙ ከዚያም ወቅታዊውን ካታሎግ ለማስመጣት **የሚገኙ ሞዴሎች** ይጠቀሙ (ለምሳሌ `gemini/gemini-3-pro`, `gemini/gemini-3-flash`)።
+**Gemini (Google ደመና `gemini/`)** በቀጥታ የተመሳሰለ በ API ቁልፍ ከ Google — ምንም የማይንቀሳቀስ ዝርዝር የለም። የመግቢያ ቁልፍ ያገናኙ** ዳሽቦርድ → አቅራቢዎች** ከዚያም ተጠቀም** የሚገኙ ሞዴሎች** የአሁኑን ካታሎግ ለማስመጣት (ለምሳሌ `gemini/gemini-3-pro`፣ `gemini/gemini-3-flash`)።
-**ሌሎች ተኳሃኝ አቅራቢዎች** (የተመረጡ): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (በ `aws-bedrock`), `azure-ai`, `openrouter` (የሚያልፍ ካታሎግ), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. እያንዳንዱ የራሱን የሞዴል ዝርዝር በ `providerRegistry.ts` ውስጥ ይይዛል እና አቅራቢው `/models` ኢንድፖይንት ሲያቀርብ በራስ-ሰር ሊመሳሰል ይችላል።
+**ሌሎች ተስማሚ አቅራቢዎች** (የተመረጡት): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` `nous-research` `friendliai` `aws-bedrock` `volcengine` `ai21`, `azure-ai`, `openrouter` `reka` passthrough ካታሎግ) `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai` `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink` `gigachat` እያንዳንዱ የራሱን የሞዴል ዝርዝር በ `providerRegistry.ts` ይይዛል እና አቅራቢው የ `/models` የመጨረሻ ነጥብ ሲያጋልጥ በራስ ሰር ሊመሳሰል ይችላል።
-**ስለ ሞዴል መታወቂያዎች ማስታወሻ:** OmniRoute የአቅራቢ-ቤተኛ መታወቂያዎችን ይጠቀማል (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`)። አንዳንድ መታወቂያዎች ነጥብ ያላቸው ስሪቶችን ያካትታሉ ምክንያቱም የኋለኛው API እንደዚህ ስለሚጠብቃቸው። አንድ ሞዴል ከላይ ካልተዘረዘረ፣ `omniroute models --search ` ያሂዱ ወይም `GET /api/models/catalog` ይጠቀሙ ተገኝነቱን ለማረጋገጥ።
+**በሞዴል IDs ላይ ማስታወሻ:** OmniRoute አቅራቢ-ቤተኛ IDs (`claude-opus-4-8`፣ `gpt-5.5`፣ `glm-5.1`፣ `MiniMax-M2.7`፣ `kimi-k2.5`፣ `grok-4.20-0309-reasoning`) ይጠቀማል። አንዳንድ IDs ነጠብጣብ ያላቸውን ስሪቶች ያካትታሉ ምክንያቱም የላይኛው API የሚጠብቃቸው በዚህ መንገድ ነው። አንድ ሞዴል ከላይ ካልተዘረዘረ `omniroute models --search ` ያሂዱ ወይም መገኘቱን ለማረጋገጥ `GET /api/models/catalog` ይምቱ።
diff --git a/docs/i18n/ar/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/ar/docs/architecture/RESILIENCE_GUIDE.md
index d878b843691b..df77976a1c6e 100644
--- a/docs/i18n/ar/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/ar/docs/architecture/RESILIENCE_GUIDE.md
@@ -282,24 +282,17 @@ _حالة_ القفل النشطة فهي مؤقتة زائلة.
---
-## 4. التحكم في التزامن للحصة المشتركة (Quota-Share) (v3.8.36)
+## 4. التحكم في تزامن حصة الحصص (الإصدار 3.8.36)
-غالبًا ما تقبل حسابات الاشتراك (GLM وMiniMax وغيرها) حوالي 1–3 طلبات
-متزامنة فقط؛ وتجاوز ذلك يؤدي إلى أخطاء 429 وفترات تهدئة. وتكون هذه المشكلة حادة في
-تركيبات **مشاركة الحصة** (`qtSd/…`)، حيث تتشارك عدة مفاتيح API حسابًا واحدًا
-في الطرف البعث (upstream). ثلاث طبقات تمنع إغراق الحساب المشترك.
+غالبًا ما تقبل حسابات الاشتراك (GLM و MiniMax وما إلى ذلك) طلبات متزامنة من ~ 1–3 فقط؛ يؤدي تجاوز ذلك إلى تشغيل 429s وفترات التهدئة. هذا حاد تحت** حصة الحصص** مجموعات (`qtSd/…`) حيث تشترك عدة مفاتيح API في حساب رئيسي واحد. ثلاث طبقات تحمي الحساب المشترك من الغمر.
-### حد التزامن لكل اتصال (`max_concurrent`)
+### الحد الأقصى للتزامن لكل اتصال (`max_concurrent`)
-يمكن لكل اتصال مزوّد أن يعلن عن سقف تزامن `max_concurrent`
-(`provider_connections.max_concurrent`، يُضبط في نافذة الاتصال / API / قاعدة البيانات).
-اتركه فارغًا لعدم وجود حد. هذا هو المفتاح الوحيد الذي يقود طبقة التسلسل
-أدناه — اضبطه على التزامن الحقيقي للحساب (مثل GLM ~1، وMiniMax ~2).
+يمكن لكل اتصال مزود أن يعلن عن سقف `max_concurrent` (`provider_connections.max_concurrent`، تم تعيينه في الاتصال modal / API / DB). اتركها فارغة بلا حدود. هذا هو المقبض الوحيد الذي يحرك طبقة التسلسل أسفل — ويضبطها على التزامن الحقيقي للحساب (على سبيل المثال GLM ~ 1، MiniMax ~ 2).
-### حدود التزامن لكل نموذج (`modelConcurrency`)
+### الحدود القصوى للتزامن لكل نموذج (`modelConcurrency`)
-يمكن للاتصال أن يعلن إضافيًا عن سقوف تزامن دقيقة لكل نموذج
-داخل خريطة `rateLimitOverrides` الخاصة به:
+يمكن أن يعلن الاتصال بالإضافة إلى ذلك عن أسقف التزامن الدقيقة لكل نموذج داخل خريطة `rateLimitOverrides` الخاصة به:
```json
{
@@ -310,72 +303,32 @@ _حالة_ القفل النشطة فهي مؤقتة زائلة.
}
```
-اضبطه في نافذة الاتصال (**Rate limit overrides → Per-model
-concurrency caps**، سطر واحد بصيغة `model=cap` لكل نموذج) أو عبر
-`PATCH /api/providers/[id]` بنفس بنية JSON. الدلالات الأساسية:
-
-- **على مستوى الاتصال مقابل خاص بالنموذج:** يبقى `maxConcurrent` هو السقف
- المشترك على مستوى الاتصال بأكمله. عندما ينطبق كلاهما، يتم الحصول على كلا البوابتين
- بشكل ذري في نفس البوابة المركّبة
- (`global → provider → account → model`)؛ والسلوك الفعلي هو
- الحد الأكثر صرامة المنطبق.
-- **مطابقة دقيقة لمفتاح النموذج:** المفتاح هو سلسلة النموذج الممررة إلى
- المنفّذ بعد تحليل التوجيه — عادةً معرّف النموذج البعث المجرد
- (`glm-5`)، وليس اسمًا مستعارًا من جانب العميل بصيغة `provider/model` (فـ`zai/glm-5` لا
- يطابق `glm-5`). القيم هي سقوف أعداد صحيحة موجبة للطلبات المتزامنة.
-- **طابور محلي، دون اكتشاف:** تنتظر الطلبات الزائدة في طابور محلي وفق
- دلالات الطابور/المهلة الحالية (أخطاء قبول مُنمّطة `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL`). لا يكتشف OmniRoute سياسة الطرف البعث ولا
- يستنتجها — بل يفرض السقوف الدقيقة التي ضبطها المشغّل
- بالضبط. بوابة النموذج المشبعة لا تعطّل المزوّد أبدًا ولا
- تنشئ حظرًا دائمًا للنموذج؛ يبقى سلوك 429/التهدئة/الرجوع الاحتياطي (fallback) في الطرف البعث هو
- خط الدفاع الأخير للأخطاء.
-- **نطاق لكل اتصال، لكل عملية:** السقوف محددة لكل اتصال في قاعدة البيانات
- ومحفوظة في الذاكرة، لذا فإن اتصالين يعيدان استخدام نفس مفتاح API البعث
- لا ينسّقان فيما بينهما.
-- **غير المضبوط يعني لا تغيير:** حذف الخريطة (أو ترك حقل
- لوحة التحكم فارغًا) لا يضيف أي بوابة نموذج. مثال على إعداد دون
- افتراض أي حد عام للمزوّد:
+قم بتعيينه في اتصال مشروط (** يتجاوز حد المعدل → الحدود القصوى للتزامن لكل نموذج** ، `model=cap` واحد لكل سطر) أو عبر `PATCH /api/providers/[id]` بنفس شكل JSON. الدلالات الرئيسية:
+
+- **على مستوى الاتصال مقابل الطراز المحدد:** يظل `maxConcurrent` هو السقف المشترك على مستوى الاتصال. عندما ينطبق كلاهما، يتم الحصول على كلا البوابتين ذريًا في نفس البوابة المركبة (`global → provider → account → model`)؛ السلوك الفعال هو الحد الأكثر صرامة المطبق.
+- **التطابق التام بين مفتاح النموذج:** المفتاح هو سلسلة النموذج التي تم تمريرها إلى المنفذ بعد توجيه القرار — عادةً معرف النموذج الأولي المجرد (`glm-5`)، وليس الاسم المستعار `provider/model` من جانب العميل (`zai/glm-5` لا يتطابق مع `glm-5`). القيم هي أسقف الطلب المتزامن ذات الأعداد الصحيحة الموجبة.
+- **قائمة الانتظار المحلية، لا يوجد اكتشاف:** يتم وضع الطلبات الزائدة في قائمة الانتظار محليًا باستخدام دلالات queue/timeout الموجودة (أخطاء قبول `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` المكتوبة). لا تكتشف OmniRoute أو تستنتج سياسة المنبع — فهي تفرض الحدود القصوى التي قام المشغل بتكوينها بالضبط. لا تعمل بوابة النموذج المشبع أبدًا على تعطيل الموفر ولا تنشئ أبدًا قفلًا دائمًا للنموذج؛ يظل سلوك 429/cooldown/fallback المنبع هو الخطأ المساند.
+- **لكل اتصال، نطاق لكل عملية:** الأحرف الاستهلالية تكون لكل اتصال بقاعدة بيانات ويتم الاحتفاظ بها في الذاكرة، لذلك لا يتم تنسيق الاتصالين اللذين يستخدمان نفس مفتاح API المنبع مع بعضهما البعض.
+- **غير مكون يعني أنه لم يتغير:** إن حذف الخريطة (أو ترك حقل لوحة المعلومات فارغًا) لا يضيف أي بوابة نموذجية. مثال للتكوين دون التأكيد على أي حد للموفر العالمي:
```text
glm-5=1
glm-4.7=3
```
-### تسلسل طلبات مشاركة الحصة
-
-عندما يستهدف إرسال مشاركة حصة اتصالًا يعلن عن قيمة موجبة
-لـ`max_concurrent`، تُسلسَل الطلبات المتزامنة إلى ذلك **الحساب** عبر
-إشارة (semaphore) لكل اتصال (مفتاح `qsconn:`): الطلبات الزائدة **تنتظر في
-الطابور** بدلاً من إغراق الحساب. وهو **متساهل عند الفشل (fail-open)** — فالطابور
-المشبع أو المهلة المنتهية يتابعان دون خانة بدلاً من رفض أي طلب قابل
-للإرسال. بدّله في **Settings → Resilience → Quota-share per-connection
-concurrency** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`، مفعّل
-افتراضيًا). بدون سقف `max_concurrent` يبقى السلوك دون تغيير.
-
-> بوابة توجيه مشاركة الحصة (`selectQuotaShareTarget`، DRR + P2C) هي نفسها
-> متساهلة عند الفشل وتقوم فقط _بتخفيض أولوية_ الاتصال الذي بلغ السقف — ومع
-> تجمع باتصال واحد لا يمكنها فرض حد صارم، لذا فإن هذه الإشارة هي ما
-> يحتوي الطوفان فعليًا.
-
-### إعادة المحاولة الواعية بالتهدئة للتركيبات
-
-لكل استراتيجية تركيبة (عند تفعيلها)، الطلب الذي كان سيُبلور خطأ 429
-لفترة تهدئة مؤقتة قصيرة ينتظر انقضاءها ويُعيد الإرسال بدلاً من
-إرجاع 429 — وهذا يغطي نوافذ TPM/RPM من فئة Gemini (مهلة إعادة المحاولة ~60 ثانية)
-على التركيبات متعددة النماذج، مثل بلوغ كلا هدفي تركيبة ثنائية النماذج حدًا للمعدل
-خاصًا بكل نموذج. مقيّد بـ`comboCooldownWait` (`enabled` و`maxWaitMs` و`maxAttempts`
-و`budgetMs`) في **Settings → Resilience**. لا ينتظر أبدًا عند `quota_exhausted`
-(مقفل حتى منتصف الليل) أو أسباب المصادقة/عدم الوجود.
-
-تغطي نفس البوابة حالة ما قبل الإرسال (#16319): عندما يتم تخطي كل أهداف
-التركيبة قبل أي محاولة لأن نموذجه يقع في قفل
-مؤقت قصير، ينتظر مسار المحاولات الصفري انقضاء القفل ضمن نفس
-السقوف ويُعيد الإرسال، بدلاً من الإجابة بـ
-`503 ALL_TARGETS_SKIPPED` بلا تلميحات. عندما لا يُسمح بأي انتظار (بلوغ السقف، أو استنفاد المحاولات
-أو الميزانية، أو الميزة معطّلة)، تتم ترقية الاستجابة النهائية إلى
-`429 rate_limit_error` حاملةً `retry_after` / `reset_at` من أقرب
-انتهاء لقفل مؤقت؛ أما أقفال الحصة والمصادقة وعدم الوجود فتبقي 503 بلا تلميحات.
+### تسلسل طلب حصة الحصص
+
+عندما يستهدف إرسال حصة الحصص اتصالاً يعلن عن وجود `max_concurrent` موجب، فإن الطلبات المتزامنة لذلك** حساب** يتم إجراء تسلسل لها من خلال إشارة لكل اتصال (مفتاح `qsconn:`): الطلبات الزائدة** انتظر في الطابور** بدلا من إغراق الحساب. إنها** فشل مفتوح** — تستمر قائمة الانتظار المشبعة أو المهلة بدون فترة زمنية بدلاً من رفض طلب قابل للتوزيع على الإطلاق. تبديل في** الإعدادات → Resilience → حصة الحصص المتزامنة لكل اتصال** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`، تشغيل افتراضي). بدون غطاء `max_concurrent` لا يتغير السلوك.
+
+> بوابة توجيه حصة الحصص (`selectQuotaShareTarget`, DRR + P2C) هي في حد ذاتها مفتوحة للفشل ولا تعطي الأولوية إلا لاتصال at-cap — مع تجمع اتصال واحد لا يمكن تقييده بشكل صارم، لذا فإن هذه الإشارة هي ما يحتوي بالفعل على الفيضان.
+
+### إعادة المحاولة مع مراعاة فترة التهدئة
+
+بالنسبة لكل استراتيجية تحرير وسرد (عند تمكينها)، فإن الطلب الذي من شأنه أن يبلور 429 لتهدئة مؤقتة SHORT ينتظرها ويعيد إرسالها بدلاً من إرجاع 429 — وهذا يغطي نوافذ TPM/RPM من فئة الجوزاء (إعادة المحاولة بعد 60 ثانية ~) على مجموعات متعددة النماذج، على سبيل المثال، كلا هدفي التحرير والسرد من نموذجين يصلان إلى حد معدل لكل نموذج. يحدها `comboCooldownWait` (`enabled`، `maxWaitMs`، `maxAttempts`، `budgetMs`) في** إعدادات مرونة →** . لا ينتظر أبدًا أسباب `quota_exhausted` ( auth/not-found حتى منتصف الليل).
+
+يمكن للتحرير والسرد إلغاء الاشتراك باستخدام `config.comboCooldownWaitEnabled: false`. يقوم `false` الحرفي فقط بتعطيل فترات انتظار التحرير والسرد المشتركة هذه (فترة التهدئة بعد الإرسال وانتظار circuit-open/model-lock قبل الإرسال) وامتداد مهلة انتظار الميزانية الخاصة بها. المفقود أو `true` يحافظ على السياسة العالمية؛ لا يمكن لـ `true` تمكين الانتظار المعطل عالميًا. لا يزال `targetTimeoutMs` الصريح يفوز. لا يؤدي إلغاء الاشتراك هذا إلى تغيير فترة انتظار الإرسال المسبق المنفصلة للمخطوطة الأصلية.
+
+تغطي البوابة نفسها حالة ما قبل الإرسال (#16319): عندما يتم تخطي كل هدف من مجموعة التحرير والسرد قبل إجراء أي محاولة لأن نموذجها يقع في قفل عابر قصير، فإن مسار المحاولة الصفرية ينتظر القفل تحت نفس السقف ويعيد الإرسال، بدلاً من الإجابة على `503 ALL_TARGETS_SKIPPED` بدون تلميح. عندما لا يُسمح بالانتظار (السقف، أو المحاولة، أو استنفاد الميزانية، أو إيقاف الميزة)، تتم ترقية الاستجابة الطرفية إلى `429 rate_limit_error` تحمل `retry_after` / `reset_at` من أول انتهاء صلاحية للقفل العابر؛ الحصة النسبية والمصادقة والأقفال غير الموجودة تحافظ على تلميح أقل 503.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/ar/docs/guides/USER_GUIDE.md b/docs/i18n/ar/docs/guides/USER_GUIDE.md
index a89c0eb3cfce..0e8cc86d08dd 100644
--- a/docs/i18n/ar/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/ar/docs/guides/USER_GUIDE.md
@@ -606,60 +606,60 @@ post_install() {
---
-## 📊 النماذج المتاحة
+## 📊 الموديلات المتوفرة
-عرض جميع النماذج المتاحة
+عرض جميع الموديلات المتوفرة
-> القائمة أدناه منتقاة من `open-sse/config/providerRegistry.ts` للإصدار v3.8.0. تتم مزامنة كتالوجات السحابة (Gemini وOpenRouter وغيرها) ديناميكيًا — للاطلاع على الكتالوج المباشر الكامل، افتح **لوحة التحكم → الموفرون → [provider] → النماذج المتاحة** أو نفّذ `GET /api/models/catalog`.
+> القائمة أدناه منسقة من `open-sse/config/providerRegistry.ts` للإصدار 3.8.0. تتم مزامنة الكتالوجات السحابية (Gemini و OpenRouter وما إلى ذلك) ديناميكيًا بواسطة — لفتح الكتالوج المباشر الكامل** لوحة المعلومات موفري → → [provider] → النماذج المتاحة** أو اتصل بـ `GET /api/models/catalog`.
>
-> إذا كانت القائمة المدمجة لأحد الموفرين قديمة، فاستخدم **الاستيراد من /models** في تلك الصفحة (أو فعّل **المزامنة التلقائية**) لسحب الكتالوج المباشر من المصدر. تم التحقق من ذلك في الإصدار v3.8.50 لكل من LLM7.io (`gemini-3.1-flash-lite`) وUncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`)؛ بينما ظل الوصول المجهول إلى Pollinations محدودًا من المصدر خلال جولة الاختبار نفسها.
+> إذا انحرفت القائمة المضمنة لدى الموفر، فاستخدم** الاستيراد من / النماذج** على تلك الصفحة (أو تمكين** المزامنة التلقائية** ) لسحب الكتالوج المنبع المباشر. تم التحقق من ذلك في الإصدار 3.8.50 لـ LLM7.io (`gemini-3.1-flash-lite`) و UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`)؛ ظل الوصول المجهول للتلقيح محدودًا عند المنبع خلال نفس الاختبار.
-**Claude Code (`cc/`)** — OAuth من نوع Pro/Max: `cc/claude-opus-4-8`، `cc/claude-opus-4-7`، `cc/claude-opus-4-6`، `cc/claude-opus-4-5-20251101`، `cc/claude-sonnet-4-6`، `cc/claude-sonnet-4-5-20250929`، `cc/claude-haiku-4-5-20251001`
+**كود Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`، `cc/claude-opus-4-7`، `cc/claude-opus-4-6`، `cc/claude-opus-4-5-20251101`، `cc/claude-sonnet-4-6`، `cc/claude-sonnet-4-5-20250929`، `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — OAuth من نوع Plus/Pro: `cx/gpt-5.5` (+ مستويات الجهد: `gpt-5.5-xhigh`، `gpt-5.5-high`، `gpt-5.5-medium`، `gpt-5.5-low`)، `cx/gpt-5.4`، `cx/gpt-5.4-mini`، `cx/gpt-5.3-codex`، `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort tiers: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
-**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`، `gh/gpt-5.4`، `gh/gpt-5.4-mini`، `gh/gpt-5-mini`، `gh/gpt-5.3-codex`، `gh/claude-opus-4.7`، `gh/claude-opus-4.6`، `gh/claude-opus-4-5-20251101`، `gh/claude-sonnet-4.6`، `gh/claude-sonnet-4.5`، `gh/claude-haiku-4.5`، `gh/gemini-3.1-pro-preview`، `gh/gemini-3-flash-preview`، `gh/oswe-vscode-prime`
+**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth مجاني: استخدم الكتالوج المباشر المعروض ضمن **لوحة التحكم → الموفرون → Kiro → النماذج المتاحة**. يعتمد التوفر على الحساب والخطة.
+**Kiro (`kr/`)** — FREE OAuth: استخدم الكتالوج المباشر الموضح أدناه** لوحة المعلومات موفري → → Kiro → النماذج المتوفرة** . يعتمد التوفر على الحساب والخطة.
-**Qoder (`if/`)** — OAuth مجاني: `if/qwen3.8-max-preview`، `if/qwen3.7-max`، `if/qwen3.7-plus`، `if/kimi-k3`، `if/kimi-k2.7-code`، `if/glm-5.2`، `if/deepseek-v4-pro`، `if/deepseek-v4-flash`، `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
-**GLM (`glm/`، `glm-cn/`، `zai/`، `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`، `glm/glm-5`، `glm/glm-5-turbo`، `glm/glm-4.7`، `glm/glm-4.7-flash`، `glm/glm-4.6`، `glm/glm-4.6v`، `glm/glm-4.5`، `glm/glm-4.5v`، `glm/glm-4.5-air`
+**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
-**MiniMax (`minimax/`، `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`، `minimax/MiniMax-M2.7-highspeed`، `minimax/MiniMax-M2.5`، `minimax/MiniMax-M2.5-highspeed`
+**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`، `kimi-coding/`، `kimi-coding-apikey/`)** — $9 شهريًا بسعر ثابت أو حسب الاستخدام: `kimi/kimi-k2.6`، `kimi/kimi-k2.5`
+**Kimi (`kimi/`، `kimi-coding/`، `kimi-coding-apikey/`)** — $9/mo مسطح أو لكل استخدام: `kimi/kimi-k2.6`، `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — مفتاح API: `ds/deepseek-v4-pro`، `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** مفتاح — API : `ds/deepseek-v4-pro`، `ds/deepseek-v4-flash`
**Groq (`groq/`)** — فائق السرعة: `groq/llama-3.3-70b-versatile`، `groq/meta-llama/llama-4-maverick-17b-128e-instruct`، `groq/qwen/qwen3-32b`، `groq/openai/gpt-oss-120b`
**xAI (`xai/`)** — Grok الأصلي: `xai/grok-4.3`، `xai/grok-4.20-multi-agent-0309`، `xai/grok-4.20-0309-reasoning`، `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — مُستضاف في الاتحاد الأوروبي: `mistral/mistral-large-latest`، `mistral/mistral-medium-3-5`، `mistral/mistral-small-latest`، `mistral/devstral-latest`، `mistral/codestral-latest`
+**Mistral (`mistral/`)** — مستضاف في الاتحاد الأوروبي: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — مدعوم بالبحث: `pplx/sonar-deep-research`، `pplx/sonar-reasoning-pro`، `pplx/sonar-pro`، `pplx/sonar`
+**الحيرة (`pplx/`)** — البحث المعزز: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
**Together AI (`together/`)** — مفتوح المصدر: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (مجاني)، `together/meta-llama/Llama-Vision-Free`، `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`، `together/deepseek-ai/DeepSeek-R1`، `together/Qwen/Qwen3-235B-A22B`، `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — استدلال سريع: `fireworks/accounts/fireworks/models/kimi-k2p6`، `fireworks/accounts/fireworks/models/minimax-m2p7`، `fireworks/accounts/fireworks/models/qwen3p6-plus`، `fireworks/accounts/fireworks/models/glm-5p1`، `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — الاستدلال السريع: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — بمقياس الرقاقة (Wafer-scale): `cerebras/zai-glm-4.7`، `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — مقياس الرقاقة: `cerebras/zai-glm-4.7`، `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — مركّز على RAG: `cohere/command-a-reasoning-08-2025`، `cohere/command-a-vision-07-2025`، `cohere/command-a-03-2025`، `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** تركز — RAG على: `cohere/command-a-reasoning-08-2025` و `cohere/command-a-vision-07-2025` و `cohere/command-a-03-2025` `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — للمؤسسات: `nvidia/z-ai/glm-5.1`، `nvidia/minimaxai/minimax-m2.7`، `nvidia/google/gemma-4-31b-it`، `nvidia/mistralai/mistral-small-4-119b-2603`، `nvidia/mistralai/mistral-large-3-675b-instruct-2512`، `nvidia/qwen/qwen3.5-397b-a17b`، `nvidia/deepseek-ai/deepseek-v4-pro`، `nvidia/openai/gpt-oss-120b`، `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — المؤسسة: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
-**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`، `qianfan/ernie-5.0-thinking-latest`، `qianfan/ernie-x1.1`
+**Baidu كيانفان (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`، `qianfan/ernie-5.0-thinking-latest`، `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`، `ollama-cloud/deepseek-v4-flash`، `ollama-cloud/kimi-k2.6`، `ollama-cloud/glm-5.1`، `ollama-cloud/minimax-m2.7`، `ollama-cloud/gemma4:31b`، `ollama-cloud/qwen3.5:397b`
+**سحابة Ollama (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`، `ollama-cloud/deepseek-v4-flash`، `ollama-cloud/kimi-k2.6`، `ollama-cloud/glm-5.1`، `ollama-cloud/minimax-m2.7`، `ollama-cloud/gemma4:31b`، `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: تتم مزامنته مباشرةً لكل مفتاح API من Google — لا توجد قائمة ثابتة. اربط مفتاحًا في **لوحة التحكم → الموفرون** ثم استخدم **النماذج المتاحة** لاستيراد الكتالوج الحالي (مثل `gemini/gemini-3-pro`، `gemini/gemini-3-flash`).
+**Gemini (Google `gemini/`)** : تمت المزامنة المباشرة لكل مفتاح API من Google — بدون قائمة ثابتة. قم بتوصيل المفتاح في** موفري لوحة القيادة →** ثم استخدم** النماذج المتاحة** لاستيراد الكتالوج الحالي (على سبيل المثال `gemini/gemini-3-pro`، `gemini/gemini-3-flash`).
-**موفرون متوافقون آخرون** (مختارون): `cohere`، `databricks`، `snowflake`، `together`، `vertex`، `alibaba`، `alibaba-cn`، `bedrock` (عبر `aws-bedrock`)، `azure-ai`، `openrouter` (كتالوج تمريري)، `siliconflow`، `hyperbolic`، `huggingface`، `featherless-ai`، `cloudflare-ai`، `scaleway`، `deepinfra`، `vercel-ai-gateway`، `bazaarlink`، `friendliai`، `nous-research`، `reka`، `volcengine`، `ai21`، `gigachat`. يحتفظ كل منهم بقائمة نماذجه الخاصة في `providerRegistry.ts` ويمكن مزامنتها تلقائيًا عندما يوفّر الموفر نقطة نهاية `/models`.
+**مقدمي الخدمة المتوافقين الآخرين** (محدد): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (عبر `aws-bedrock`), `azure-ai`, `openrouter` (كتالوج العبور)، `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`، `volcengine`، `ai21`، `gigachat`. يحتفظ كل منها بقائمة النماذج الخاصة به في `providerRegistry.ts` ويمكن مزامنتها تلقائيًا عندما يكشف الموفر عن نقطة نهاية `/models`.
-**ملاحظة حول معرّفات النماذج:** يستخدم OmniRoute معرّفات أصلية خاصة بكل موفر (`claude-opus-4-8`، `gpt-5.5`، `glm-5.1`، `MiniMax-M2.7`، `kimi-k2.5`، `grok-4.20-0309-reasoning`). تتضمن بعض المعرّفات إصدارات منقّطة لأن واجهة برمجة التطبيقات للمصدر تتوقعها بهذا الشكل. إذا لم يكن أحد النماذج مدرجًا أعلاه، فنفّذ `omniroute models --search ` أو اطلب `GET /api/models/catalog` للتأكد من التوفر.
+**ملاحظة على الموديل IDs:** يستخدم OmniRoute موفر IDs الأصلي (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). تتضمن بعض IDs نسخًا منقطة لأن هذه هي الطريقة التي يتوقعها بها API المنبع. إذا لم يكن النموذج مدرجًا أعلاه، فقم بتشغيل `omniroute models --search ` أو اضغط على `GET /api/models/catalog` لتأكيد التوفر.
diff --git a/docs/i18n/az/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/az/docs/architecture/RESILIENCE_GUIDE.md
index 694a4358d86f..9e5c6413ae82 100644
--- a/docs/i18n/az/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/az/docs/architecture/RESILIENCE_GUIDE.md
@@ -283,22 +283,17 @@ müvəqqətidir (efemerdir).
---
-## 4. Kvota-paylaşım Paralellik Nəzarəti (v3.8.36)
+## 4. Kvota-Paylaşma Paralelliyinə Nəzarət (v3.8.36)
-Abunə hesabları (GLM, MiniMax və s.) çox vaxt cəmi ~1–3 paralel sorğu qəbul edir; həddi aşmaq 429 xətalarına və cooldown-lara səbəb olur. Bu, bir neçə API açarının eyni upstream hesabını paylaşdığı **kvota-paylaşım** (`qtSd/…`) kombolarında xüsusilə kəskindir. Üç qat paylaşılan hesabın sorğu selinə tuş gəlməsinə mane olur.
+Abunə hesabları (GLM, MiniMax və s. ) çox vaxt yalnız ~ 1–3 paralel sorğuları qəbul edir; bunun aşılması 429 saniyə və soyuma müddətini tetikler. Bu altında kəskindir** kvota payı** (`qtSd/…`) kombinləri, burada bir neçə API düyməsi bir yuxarı hesab paylaşır. Üç qat paylaşılan hesabı su altında saxlamaqdan qoruyur.
-### Bağlantı üzrə paralellik limiti (`max_concurrent`)
+### Hər bağlantı üzrə paralellik həddi (`max_concurrent`)
-Hər provayder bağlantısı `max_concurrent` hüdudu elan edə bilər
-(`provider_connections.max_concurrent`, bağlantı modalında / API / DB-də təyin olunur).
-Limitsiz olması üçün boş buraxın. Bu, aşağıdakı seriyalaşdırma qatını idarə edən
-yeganə tənzimləyicidir — onu hesabın real paralelliyinə uyğun təyin edin
-(məs., GLM ~1, MiniMax ~2).
+Hər bir provayder bağlantısı `max_concurrent` tavanı elan edə bilər (`provider_connections.max_concurrent`, əlaqə modal / API / DB). Heç bir məhdudiyyət olmadan boş buraxın. Bu, — altındakı seriallaşdırma qatını idarə edən tək düymədir, onu hesabın real paralelliyinə təyin edir (məsələn, GLM ~ 1, MiniMax ~ 2).
-### Model üzrə paralellik limitləri (`modelConcurrency`)
+### Hər model üçün uyğunluq hədləri (`modelConcurrency`)
-Bağlantı əlavə olaraq `rateLimitOverrides` xəritəsində model üzrə dəqiq
-paralellik hüdudları elan edə bilər:
+Bağlantı əlavə olaraq öz `rateLimitOverrides` xəritəsində hər model üzrə dəqiq paralellik tavanlarını elan edə bilər:
```json
{
@@ -309,75 +304,32 @@ paralellik hüdudları elan edə bilər:
}
```
-Bunu bağlantı modalında təyin edin (**Rate limit əvəzləmələri → Model üzrə
-paralellik limitləri**, hər sətirdə bir `model=cap`) və ya eyni JSON forması ilə
-`PATCH /api/providers/[id]` vasitəsilə. Əsas semantika:
-
-- **Bağlantı səviyyəsində və model-spesifik:** `maxConcurrent` paylaşılan
- bağlantı səviyyəli hüdud olaraq qalır. Hər ikisi tətbiq olunanda, hər iki qapı
- eyni kompozit qapı daxilində atomik şəkildə alınır
- (`global → provider → account → model`); effektiv davranış tətbiq olunan
- daha sərt limit olur.
-- **Dəqiq model açarı uyğunluğu:** açar, marşrut həllindən sonra icraçıya
- ötürülən model sətiridir — adətən çılpaq upstream model ID-si
- (`glm-5`), müştəri tərəfindəki `provider/model` aliası deyil (`zai/glm-5`
- `glm-5` ilə uyğun gəlmir). Dəyərlər paralel sorğular üçün müsbət tam ədəd
- hüdudlardır.
-- **Lokal növbələmə, kəşf yoxdur:** artıq sorğular mövcud növbə/timeout
- semantikası ilə lokal olaraq növbəyə yerləşir (tipli `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL` qəbul xətaları). OmniRoute upstream siyasətini kəşf
- etmir və ya nəticə çıxarmır — operatorun konfiqurasiya etdiyi dəqiq
- hüdudları icra edir. Doymuş model qapısı heç vaxt provayderi deaktiv etmir
- və daimi model kilidlənməsi yaratmır; upstream 429/cooldown/fallback
- davranışı xəta ehtiyatı olaraq qalır.
-- **Bağlantı və proses üzrə əhatə dairəsi:** limitlər verilənlər bazası
- bağlantısı üzrədir və yaddaşda saxlanır, ona görə eyni upstream API açarını
- paylaşan iki bağlantı bir-biri ilə koordinasiya olunmur.
-- **Konfiqurasiya olunmayıbsa, dəyişiklik yoxdur:** xəritəni göstərməmək (və ya
- paneldəki sahəni boş saxlamaq) heç bir model qapısı əlavə etmir. Heç bir
- universal provayder limiti irəli sürməyən nümunə konfiqurasiya:
+Onu əlaqə modalında təyin edin (** Məzənnə limiti → Hər modelin paralellik hədlərini ləğv edir** , hər sətir üçün bir `model=cap` ) və ya eyni JSON forması ilə `PATCH /api/providers/[id]` vasitəsilə. Əsas semantika:
+
+- **Bağlantı miqyasında və modelə xas:** `maxConcurrent` paylaşılan əlaqə tavanı olaraq qalır. Hər ikisi tətbiq edildikdə, hər iki qapı eyni kompozit qapıda (`global → provider → account → model`) atomik şəkildə alınır; effektiv davranış daha sərt tətbiq olunan hədddir.
+- **Exact model-key match:** the key is the model string passed to the executor after routing resolution — normally the bare upstream model id (`glm-5`), not a client-side `provider/model` alias (`zai/glm-5` does not match `glm-5`). Values are positive-integer concurrent-request ceilings.
+- **Yerli növbə, aşkarlama yoxdur:** artıq sorğular mövcud queue/timeout semantikası ilə yerli növbəyə (yazılmış `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` qəbul xətaları) malikdir. OmniRoute yuxarı siyasəti aşkar etmir və ya nəticə çıxarmır — o, operatorun konfiqurasiya etdiyi dəqiq tavanları tətbiq edir. Doymuş model qapısı heç vaxt provayderi deaktiv etmir və heç vaxt daimi model blokirovkası yaratmır; upstream 429/cooldown/fallback davranışı səhv backstop olaraq qalır.
+- **Hər bir əlaqə, hər bir proses əhatəsi:** qapaqlar verilənlər bazası bağlantısı üzrədir və yaddaşda saxlanılır, buna görə də eyni yuxarı axın API düyməsini təkrar istifadə edən iki əlaqə bir-biri ilə əlaqələndirilmir.
+- **Konfiqurasiya edilməmiş, dəyişməmiş deməkdir:** xəritəni buraxmaq (və ya tablosunun sahəsini boş qoymaq) heç bir model qapısı əlavə etmir. Hər hansı universal provayder məhdudiyyəti qoymadan konfiqurasiya nümunəsi:
```text
glm-5=1
glm-4.7=3
```
-### Kvota-paylaşım sorğu seriyalaşdırması
-
-Kvota-paylaşım göndərməsi müsbət `max_concurrent` elan edən bağlantını hədəf
-aldıqda, həmin **hesaba** paralel sorğular bağlantı üzrə semafor vasitəsilə
-seriyalaşdırılır (açar `qsconn:`): artıq sorğular hesabı selə
-vermək əvəzinə **növbədə gözləyir**. O, **fail-open**-dir — dolu növbə və ya
-timeout yuva olmadan davam edir və heç vaxt göndərilə bilən sorğunu rədd etmir.
-**Parametrlər → Dayanıqlılıq → Kvota-paylaşım bağlantı üzrə paralellik**
-bölməsində dəyişdirilir (`resilienceSettings.quotaShareConcurrencyLimit.enabled`,
-defolt olaraq aktivdir). `max_concurrent` limiti olmadıqda davranış dəyişməz qalır.
-
-> Kvota-paylaşım marşrutlama qapısı (`selectQuotaShareTarget`, DRR + P2C) özü
-> fail-open-dir və limitə çatmış bağlantını yalnız _prioritetdən salır_ —
-> tək bağlantılı hovuzda sərt limit qoya bilmir, buna görə seli əslində məhz
-> bu semafor saxlayır.
-
-### Kombolarda cooldown-a həssas təkrar cəhd
-
-Hər bir kombo strategiyası üçün (aktiv olduqda), QISA müvəqqəti cooldown
-səbəbindən 429 ilə nəticələnəcək sorğu onun bitməsini gözləyir və 429 qaytarmaq
-əvəzinə yenidən göndərilir — bu, çoxmodelli kombolarda Gemini sinifli TPM/RPM
-pəncərələrini (~60s retry-after) əhatə edir, məs., 2 modelli kombonun hər iki
-hədəfinin model üzrə rate limitə düşməsi. **Parametrlər → Dayanıqlılıq**
-bölməsindəki `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`,
-`budgetMs`) ilə məhdudlaşdırılır. O, heç vaxt `quota_exhausted` (gecə yarısına
-qədər kilidli) və ya autentifikasiya/tapılmadı səbəblərinə görə gözləmir.
-
-Eyni qapı göndərmədən əvvəlki vəziyyəti də əhatə edir (#16319): kombonun hər
-hədəfi heç bir cəhd edilməzdən əvvəl atılır, çünki modeli qısa müvəqqəti
-kilidlənmədədir; bu halda cəhdsiz yol eyni hüdudlar altında kilidin bitməsini
-gözləyir və ipucusuz `503 ALL_TARGETS_SKIPPED` cavabı vermək əvəzinə yenidən
-göndərir. Gözləməyə icazə verilmədikdə (hüdud, cəhd və ya büdcə tükənib, ya da
-funksiya sönülüdür), son cavab ən erkən müvəqqəti kilidin bitmə vaxtından
-`retry_after` / `reset_at` dəyərlərini daşıyan `429 rate_limit_error`-a
-yüksəlir; kvota, autentifikasiya və tapılmadı kilidləri isə ipucusuz 503-ü
-saxlayır.
+### Kvota-paylaşma sorğusunun seriallaşdırılması
+
+Kvota payı göndərilməsi müsbət `max_concurrent` elan edən əlaqəni hədəflədikdə, ona paralel sorğular** hesab** hər bir əlaqə semaforu (açar `qsconn:`) vasitəsilə seriallaşdırılır: artıq sorğular** növbədə gözləyin** hesabı doldurmaq əvəzinə. bu** uğursuz-açıq** — doymuş növbə və ya vaxt aşımı göndərilə bilən sorğunu heç vaxt rədd etmək əvəzinə boşluq olmadan davam edir. Daxil edin** Parametrlər → Dayanıqlılıq → Kvota-paylaşma hər bağlantı üçün paralellik** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, defolt aktivdir). `max_concurrent` qapağı olmadan davranış dəyişməzdir.
+
+> Kvota payı yönləndirmə qapısının (`selectQuotaShareTarget`, DRR + P2C) özü uğursuzdur və yalnız bir bağlantı hovuzu olan — at-cap bağlantısını _deprioritizasiya edir, onu məhdudlaşdıra bilməz, ona görə də bu semafor əslində daşqını ehtiva edir.
+
+### Kombo soyutma müddətindən xəbərdar olan yenidən cəhd edin
+
+Hər bir kombinasiya strategiyası üçün (aktiv olduqda) SHORT müvəqqəti soyutma müddəti üçün 429-u kristallaşdıran sorğu onu gözləyir və 429 — qaytarmaq əvəzinə yenidən göndərilir, bu, Gemini sinif TPM/RPM pəncərələrini (~ 60-ların təkrar cəhdindən sonra) əhatə edir, hər iki kombo-model kombinasiyası, dərəcə həddi. `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) ilə məhdudlaşır** Parametrlər → Dayanıqlıq** . Heç vaxt `quota_exhausted` (gecə yarısına qədər kilidlənir) və ya auth/not-found səbəbləri ilə gözləmir.
+
+Kombo `config.comboCooldownWaitEnabled: false` ilə imtina edə bilər. Yalnız literal `false` bu paylaşılan kombinasiya gözləmələrini (göndərmədən sonrakı soyuma və göndərilmədən əvvəl circuit-open/model-lock gözləmələri) və onların gözləmə-büdcə müddətinin uzadılmasını deaktiv edir. Eksik və ya `true` qlobal siyasəti qoruyur; `true` qlobal olaraq deaktiv edilmiş gözləməni aktivləşdirə bilməz. Açıq `targetTimeoutMs` hələ də qalib gəlir. Bu imtina ayrı-ayrı yerli-Codex dönmə sancağı göndərilmədən əvvəl gözləmə müddətini dəyişmir.
+
+Eyni darvaza göndərilmə qabağı qutunu (#16319) əhatə edir: hər hansı bir cəhd edilməzdən əvvəl kombinasiyanın hər hədəfi atlandıqda, onun modeli qısa keçici blokada oturur, sıfır cəhd yolu eyni tavanlar altında kilidi gözləyir və işarəsiz `503 ALL_TARGETS_SKIPPED` a cavab vermək əvəzinə yenidən göndərilir. Heç bir gözləməyə icazə verilmədikdə (tavan, cəhd və ya büdcə tükəndikdə və ya funksiya sönür), terminal cavabı ən erkən keçid kilidinin bitməsindən etibarən `retry_after` / `reset_at` daşıyan `429 rate_limit_error` səviyyəsinə yüksəlir; kvota, auth və tapılmayan kilidlər işarəsiz 503-ü saxlayır.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/az/docs/guides/USER_GUIDE.md b/docs/i18n/az/docs/guides/USER_GUIDE.md
index 922b39d19def..787884ef1a50 100644
--- a/docs/i18n/az/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/az/docs/guides/USER_GUIDE.md
@@ -612,55 +612,55 @@ Mühit dəyişənlərinin tam siyahısı üçün [README](../README.md) faylına
Bütün mövcud modellərə baxın
-> Aşağıdakı siyahı v3.8.0 üçün `open-sse/config/providerRegistry.ts` faylından tərtib edilmişdir. Bulud kataloqları (Gemini, OpenRouter və s.) dinamik şəkildə sinxronlaşdırılır — tam canlı kataloq üçün **Panel → Provayderlər → [provayder] → Mövcud Modellər** bölməsini açın və ya `GET /api/models/catalog` çağırışını edin.
+> Aşağıdakı siyahı v3.8.0 üçün `open-sse/config/providerRegistry.ts` -dan hazırlanmışdır. Bulud kataloqları (Gemini, OpenRouter və s. ) tam canlı kataloqun açılması üçün dinamik olaraq — sinxronlaşdırılır** Dashboard → Provayderlər → [provayder] → Mövcud Modellər** və ya `GET /api/models/catalog` zəng edin.
>
-> Əgər provayderin daxili siyahısı köhnəlibsə, canlı upstream kataloqunu çəkmək üçün həmin səhifədə **/models-dən idxal et** seçimindən istifadə edin (və ya **Avto-Sinxronizasiya**-nı aktivləşdirin). Bu, v3.8.50-də LLM7.io (`gemini-3.1-flash-lite`) və UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) üçün yoxlanılıb; eyni test mərhələsində Pollinations-un anonim girişi upstream tərəfindən məhdud qaldı.
+> Əgər provayderin daxili siyahısı sürüşübsə, istifadə edin** /modellərdən idxal edin** həmin səhifədə (və ya aktivləşdirin** Avtomatik sinxronizasiya** ) canlı yuxarı kataloqu çəkmək üçün. Bu, LLM7.io (`gemini-3.1-flash-lite`) və UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) üçün v3.8.50-də təsdiq edilmişdir; Eyni sınaq keçidi zamanı tozlanmaların anonim girişi yuxarı axınla məhdud qaldı.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude Kodu (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ səy səviyyələri: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — PULSUZ OAuth: **Panel → Provayderlər → Kiro → Mövcud Modellər** bölməsində göstərilən canlı kataloqdan istifadə edin. Mövcudluq hesabdan və plandan asılıdır.
+**Kiro (`kr/`)** — FREE OAuth: aşağıda göstərilən canlı kataloqdan istifadə edin** Dashboard → Provayderlər → Kiro → Mövcud Modellər** . Mövcudluq hesabdan və plandan asılıdır.
-**Qoder (`if/`)** — PULSUZ OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/ay sabit qiymət və ya istifadəyə görə: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo düz və ya hər istifadə üçün: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — API açarı: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Ultra-sürətli: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Ultra sürətli: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Doğma Grok: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok yerli: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Aİ-də yerləşdirilmiş: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — AB-də: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Axtarışla gücləndirilmiş: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Çaşqınlıq (`pplx/`)** — Axtarış artırılmış: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
**Together AI (`together/`)** — Açıq mənbə: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (pulsuz), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Sürətli inferens: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Sürətli nəticə çıxarma: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Wafer-miqyaslı: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Gofret miqyası: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — RAG-yönümlü: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG fokuslu: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Korporativ: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Müəssisə: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Google-dan hər API açarı üzrə canlı sinxronlaşdırılır — statik siyahı yoxdur. **Panel → Provayderlər** bölməsində açar bağlayın, sonra cari kataloqu idxal etmək üçün **Mövcud Modellər** bölməsindən istifadə edin (məs. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : Statik siyahı olmadan Google — -dən API açarı üçün canlı sinxronizasiya. Açarı daxil edin** Dashboard → Provayderləri** sonra istifadə edin** Mövcud Modellər** cari kataloqu idxal etmək üçün (məsələn `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Digər uyğun provayderlər** (seçilmiş): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (`aws-bedrock` vasitəsilə), `azure-ai`, `openrouter` (birbaşa ötürmə kataloqu), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Hər biri `providerRegistry.ts` faylında öz model siyahısını saxlayır və provayder `/models` endpoint-i təqdim etdikdə avtomatik sinxronlaşdırıla bilər.
+**Digər uyğun provayderlər** (seçilmiş): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` ( `aws-bedrock` vasitəsilə), `azure-ai`, `openrouter` (keçid kataloqu), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, , `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink` `nous-research` `friendliai`, `reka`, `volcengine`, `ai21` `gigachat` Hər biri `providerRegistry.ts` -da öz model siyahısını saxlayır və provayder `/models` son nöqtəsini ifşa etdikdə avtomatik sinxronizasiya edilə bilər.
-**Model ID-ləri haqqında qeyd:** OmniRoute provayderə xas ID-lərdən istifadə edir (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Bəzi ID-lərə nöqtəli versiyalar daxildir, çünki upstream API onları məhz bu formada gözləyir. Əgər model yuxarıda sadalanmayıbsa, mövcudluğu təsdiqləmək üçün `omniroute models --search ` əmrini icra edin və ya `GET /api/models/catalog` ünvanına sorğu göndərin.
+**IDs modeli haqqında qeyd:** OmniRoute provayder-doğma IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`) istifadə edir. Bəzi IDs nöqtəli versiyalar daxildir, çünki yuxarı axın API onları belə gözləyir. Model yuxarıda qeyd edilməyibsə, mövcudluğu təsdiqləmək üçün `omniroute models --search ` işə salın və ya `GET /api/models/catalog` düyməsini basın.
diff --git a/docs/i18n/bg/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/bg/docs/architecture/RESILIENCE_GUIDE.md
index fd9aa8d7336c..d0a01c4bcf93 100644
--- a/docs/i18n/bg/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/bg/docs/architecture/RESILIENCE_GUIDE.md
@@ -287,24 +287,17 @@ _изброява_ активните заключвания) — новата
---
-## 4. Контрол на конкурентността при споделена квота (v3.8.36)
+## 4. Контрол на паралелността на квотата (v3.8.36)
-Абонаментните акаунти (GLM, MiniMax и др.) често приемат само ~1–3 конкурентни
-заявки; превишаването на този брой води до грешки 429 и периоди на изчакване. Това е особено осезаемо при
-комбинации със **споделена квота** (`qtSd/…`), при които няколко API ключа споделят един upstream
-акаунт. Три слоя предпазват споделения акаунт от претоварване.
+Абонаментните акаунти (GLM, MiniMax и т.н.) често приемат само ~ 1–3 едновременни заявки; надвишаването на това задейства 429s и охлаждане. Това е остро под** квотен дял** (`qtSd/…`) комбинации, където няколко API ключа споделят един възходящ акаунт. Три слоя предпазват споделен акаунт от наводняване.
-### Ограничение на конкурентността за връзка (`max_concurrent`)
+### Ограничение за едновременност на връзка (`max_concurrent`)
-Всяка връзка с доставчик може да зададе максимална стойност за `max_concurrent`
-(`provider_connections.max_concurrent`, задавана в модалния прозорец за връзката / API / БД).
-Оставете полето празно, ако не искате ограничение. Това е единствената настройка, която управлява слоя
-за сериализация по-долу — задайте я според действителната конкурентност на акаунта (напр. GLM ~1, MiniMax ~2).
+Всяка връзка на доставчик може да декларира `max_concurrent` таван (`provider_connections.max_concurrent`, зададен в връзката modal / API / DB). Оставете го празно за без ограничение. Това е единичното копче, което управлява слоя за сериализация под — задайте го на реалната едновременност на акаунта (напр. GLM ~ 1, MiniMax ~ 2).
-### Ограничения на конкурентността за модел (`modelConcurrency`)
+### Ограничения за паралелност за модел (`modelConcurrency`)
-Връзката може допълнително да зададе точни максимални стойности за конкурентността на отделните модели
-в своята карта `rateLimitOverrides`:
+Връзката може допълнително да декларира точни тавани за паралелност за всеки модел в своята `rateLimitOverrides` карта:
```json
{
@@ -315,72 +308,32 @@ _изброява_ активните заключвания) — новата
}
```
-Задайте ги в модалния прозорец за връзката (**Замени на ограниченията на скоростта → Ограничения на
-конкурентността за модел**, по един запис `model=cap` на ред) или чрез
-`PATCH /api/providers/[id]` със същата JSON структура. Семантика на ключовете:
-
-- **За цялата връзка спрямо конкретен модел:** `maxConcurrent` остава общото
- ограничение за цялата връзка. Когато са приложими и двете, двете ограничения се придобиват
- атомарно в един и същ съставен механизъм
- (`global → provider → account → model`); ефективното поведение се определя от
- по-строгото приложимо ограничение.
-- **Точно съвпадение на ключа на модела:** ключът е низът за модела, предаден на
- изпълнителя след разрешаването на маршрутизацията — обикновено чистият идентификатор на upstream модела
- (`glm-5`), а не клиентски псевдоним `provider/model` (`zai/glm-5` не
- съвпада с `glm-5`). Стойностите са положителни цели числа, задаващи максималния брой конкурентни заявки.
-- **Локална опашка, без автоматично откриване:** излишните заявки се поставят в локална опашка със
- съществуващата семантика за опашка/време на изчакване (типизирани грешки при допускане `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL`). OmniRoute не открива и не
- извежда автоматично политиката на upstream услугата — той налага точно ограниченията, които операторът
- е конфигурирал. Наситено ограничение за модел никога не деактивира доставчика и никога
- не създава постоянно блокиране на модела; поведението при upstream 429/период на изчакване/резервен маршрут
- остава последният защитен механизъм при грешки.
-- **Обхват за връзка и процес:** ограниченията са за всяка отделна връзка в базата данни
- и се поддържат в паметта, така че две връзки, използващи повторно един и същ upstream API ключ,
- не се координират помежду си.
-- **Без конфигурация няма промяна:** пропускането на картата (или оставянето на
- полето в таблото празно) не добавя ограничение за модел. Примерна конфигурация, без
- да се заявява универсално ограничение за доставчика:
+Задайте го в режим на връзка (** Ограничението на скоростта отменя ограниченията → за едновременност на модел** , един `model=cap` на ред) или чрез `PATCH /api/providers/[id]` със същата форма JSON. Ключова семантика:
+
+- **Цяла връзка срещу специфичен модел:** `maxConcurrent` остава споделеният таван за цялата връзка. Когато се прилагат и двете, и двете порти се придобиват атомно в една и съща съставна порта (`global → provider → account → model`); ефективното поведение е по-строгата приложима граница.
+- **Точно съвпадение на модел-ключ:** ключът е низът на модела, предаден на изпълнителя след разрешаване на маршрута — обикновено голият id на модела нагоре по веригата (`glm-5`), а не `provider/model` псевдоним от страна на клиента (`zai/glm-5` не съвпада `glm-5`). Стойностите са положително цяло число на таваните за едновременни заявки.
+- **Локална опашка, без откриване:** излишните заявки се поставят на опашка локално със съществуващата queue/timeout семантика (въведени грешки при допускане `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ). OmniRoute не открива или извежда политиката нагоре по веригата — той налага точните тавани, конфигурирани от оператора. Гейтът на наситения модел никога не деактивира доставчика и никога не създава постоянно блокиране на модела; поведението 429/cooldown/fallback нагоре по веригата остава обратната спирка на грешката.
+- **Обхват на връзка, на процес:** caps са за връзка с база данни и се съхраняват в паметта, така че две връзки, използващи повторно един и същ API ключ нагоре, не се координират една с друга.
+- **Неконфигурирано означава непроменено:** пропускането на картата (или оставянето на полето на таблото празно) не добавя порта за модел. Примерна конфигурация без утвърждаване на ограничение за универсален доставчик:
```text
glm-5=1
glm-4.7=3
```
-### Сериализация на заявките със споделена квота
-
-Когато изпращане със споделена квота е насочено към връзка, която задава положителна стойност за
-`max_concurrent`, конкурентните заявки към този **акаунт** се сериализират чрез
-семафор за всяка връзка (ключ `qsconn:`): излишните заявки **изчакват в
-опашката**, вместо да претоварват акаунта. Механизмът е **fail-open** — при наситена
-опашка или изтичане на времето заявката продължава без слот, вместо някога да отхвърли заявка,
-която може да бъде изпратена. Превключва се от **Настройки → Устойчивост → Конкурентност за връзка
-при споделена квота** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, включено
-по подразбиране). Без ограничение `max_concurrent` поведението остава непроменено.
-
-> Ограничението за маршрутизация при споделена квота (`selectQuotaShareTarget`, DRR + P2C) само по себе си
-> е fail-open и единствено _понижава приоритета_ на връзка, достигнала ограничението — при
-> пул с една връзка то не може да наложи твърдо ограничение, така че именно този семафор действително
-> ограничава претоварването.
-
-### Повторен опит за комбинация с отчитане на периода на изчакване
-
-За всяка стратегия с комбинации (когато е активирана) заявка, която би довела до окончателна грешка 429
-поради КРАТЪК временен период на изчакване, изчаква края му и се изпраща повторно, вместо
-да върне грешката 429 — това обхваща TPM/RPM прозорци от типа на Gemini (~60s retry-after)
-при комбинации с няколко модела, напр. когато и двете цели на комбинация от 2 модела достигнат ограничение на скоростта
-за конкретен модел. Ограничено е чрез `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`,
-`budgetMs`) в **Настройки → Устойчивост**. Никога не изчаква при `quota_exhausted`
-(блокирано до полунощ) или причини, свързани с удостоверяване/липса на ресурс.
-
-Същият механизъм обхваща случая преди изпращането (#16319): когато всяка цел на
-комбинацията бъде пропусната, преди да е направен какъвто и да е опит, защото моделът ѝ е в кратко
-временно блокиране, пътят с нула опити изчаква края на блокирането при същите
-ограничения и изпраща заявката повторно, вместо да отговори с
-`503 ALL_TARGETS_SKIPPED` без указание. Когато изчакването не е разрешено (изчерпано е ограничението, броят опити или бюджетът
-или функцията е изключена), крайният отговор се надгражда до
-`429 rate_limit_error`, съдържащ `retry_after` / `reset_at` от най-ранното
-изтичане на временно блокиране; блокиранията поради квота, удостоверяване и липса на ресурс запазват отговора 503 без указание.
+### Сериализация на искане за споделяне на квота
+
+Когато изпращането на квота е насочено към връзка, която декларира положителен `max_concurrent`, едновременни заявки към това** сметка** се сериализират чрез семафор за всяка връзка (ключ `qsconn:`): излишни заявки** чакай на опашката** вместо да наводнявате сметката. Така е** неуспешно отворен** — наситена опашка или изчакване продължава без слот, вместо изобщо да отхвърли заявка за изпращане. Включване** Настройки → Устойчивост → Квота-споделяне на връзка едновременност** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, включено по подразбиране). Без `max_concurrent` cap поведението е непроменено.
+
+> Вратата за маршрутизиране на споделяне на квота (`selectQuotaShareTarget`, DRR + P2C) сама по себе си е отворена при отказ и само _деприоритизира_ връзка с капачка — с пул от единични връзки, която не може да ограничи, така че този семафор е това, което всъщност съдържа наводнението.
+
+### Комбиниран повторен опит с разхлаждане
+
+За всяка комбинирана стратегия (когато е активирана), заявка, която би кристализирала 429 за SHORT преходно охлаждане, я изчаква и изпраща отново, вместо да върне 429 — това обхваща TPM/RPM прозорци от клас Gemini (~ 60s повторен опит след) при комбинации от няколко модела, напр. и двете цели на комбинация от 2 модела достигат скорост за всеки модел лимит. Ограничен от `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) в** Настройки → Устойчивост** . Никога не чака по `quota_exhausted` (заключен до полунощ) или auth/not-found причини.
+
+Комбо може да се откаже с `config.comboCooldownWaitEnabled: false`. Само литералът `false` деактивира тези споделени комбинирани изчаквания (изчакване след изпращане и изчаквания circuit-open/model-lock преди изпращане) и тяхното разширение за изчакване-бюджет за изчакване-под. Липсва или `true` запазва глобалната политика; `true` не може да активира глобално деактивирано чакане. Изричният `targetTimeoutMs` все още печели. Това отказване не променя отделното изчакване преди изпращане за обръщане на щифта на родния Codex.
+
+Същата порта обхваща случая преди изпращане (#16319): когато всяка цел от комбо е пропусната, преди да бъде направен какъвто и да е опит, защото нейният модел се намира в кратко преходно блокиране, пътят с нулев опит чака заключването под същите тавани и изпраща отново, вместо да отговори на `503 ALL_TARGETS_SKIPPED` без подсказки. Когато не е позволено изчакване (таван, опит или бюджет е изчерпан или функцията е изключена), отговорът на терминала се надгражда до `429 rate_limit_error` носещ `retry_after` / `reset_at` от най-ранното изтичане на временното заключване; заключванията за квота, удостоверяване и ненамерени запазват 503 без подсказки.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/bg/docs/guides/USER_GUIDE.md b/docs/i18n/bg/docs/guides/USER_GUIDE.md
index 7d14b41f4b61..d735925a9c42 100644
--- a/docs/i18n/bg/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/bg/docs/guides/USER_GUIDE.md
@@ -612,55 +612,55 @@ post_install() {
Вижте всички налични модели
-> Списъкът по-долу е подбран от `open-sse/config/providerRegistry.ts` за v3.8.0. Облачните каталози (Gemini, OpenRouter и др.) се синхронизират динамично — за пълния актуален каталог отворете **Табло → Доставчици → [доставчик] → Налични модели** или извикайте `GET /api/models/catalog`.
+> Списъкът по-долу е подбран от `open-sse/config/providerRegistry.ts` за v3.8.0. Облачните каталози (Gemini, OpenRouter и т.н.) се синхронизират динамично — за отворен пълен каталог на живо** Табло за управление → Доставчици → [доставчик] → Налични модели** или се обадете на `GET /api/models/catalog`.
>
-> Ако вграденият списък на даден доставчик е остарял, използвайте **Импортиране от /models** на тази страница (или активирайте **Автоматична синхронизация**), за да изтеглите актуалния upstream каталог. Това беше потвърдено във v3.8.50 за LLM7.io (`gemini-3.1-flash-lite`) и UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); анонимният достъп до Pollinations остана ограничен от upstream по време на същия тестов цикъл.
+> Ако вграденият списък на доставчика се е променил, използвайте** Импортиране от /models** на тази страница (или активирайте** Автоматично синхронизиране** ), за да изтеглите каталога на живо нагоре по веригата. Това беше потвърдено във v3.8.50 за LLM7.io (`gemini-3.1-flash-lite`) и UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Анонимният достъп на опрашванията остава ограничен нагоре по течението по време на същия тест.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude код (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ нива на effort: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (нива на усилията + : `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — БЕЗПЛАТЕН OAuth: използвайте актуалния каталог, показан под **Табло → Доставчици → Kiro → Налични модели**. Наличността зависи от акаунта и плана.
+**Kiro (`kr/`)** — FREE OAuth: използвайте каталога на живо, показан по-долу** Табло → Доставчици → Kiro → Налични модели** . Наличността зависи от акаунта и плана.
-**Qoder (`if/`)** — БЕЗПЛАТЕН OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/мес. фиксирана цена или според потреблението: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo плоски или за употреба: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — API ключ: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Изключително бърз: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Ултра-бърз: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Нативен Grok: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok естествен: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Хостван в ЕС: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — хостван в ЕС: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — С обогатено търсене: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Недоумение (`pplx/`)** — Разширено търсене: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — С отворен код: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (безплатен), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — Отворен код: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (безплатно), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Бърз inference: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Бърз извод: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
**Cerebras (`cerebras/`)** — Wafer-scale: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Фокусиран върху RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG-фокусиран: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Корпоративен: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**облак Ollama (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Синхронизира се на живо за всеки API ключ от Google — няма статичен списък. Свържете ключ в **Табло → Доставчици**, след което използвайте **Налични модели**, за да импортирате актуалния каталог (напр. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : Синхронизирано на живо за API ключ от Google — без статичен списък. Свържете ключ** Табло за управление → Доставчици** след това използвайте** Налични модели** за импортиране на текущия каталог (напр. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Други съвместими доставчици** (подбрани): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (чрез `aws-bedrock`), `azure-ai`, `openrouter` (passthrough каталог), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Всеки поддържа собствен списък с модели в `providerRegistry.ts` и може да се синхронизира автоматично, когато доставчикът предоставя `/models` endpoint.
+**Други съвместими доставчици** (избрано): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (чрез `aws-bedrock`), `azure-ai`, `openrouter` (преминаващ каталог), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Всеки поддържа свой собствен списък с модели в `providerRegistry.ts` и може да бъде автоматично синхронизиран, когато доставчикът изложи `/models` крайна точка.
-**Забележка относно ID-тата на моделите:** OmniRoute използва родните за доставчика ID-та (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Някои ID-та включват версии с точки, защото upstream API ги очаква точно в този вид. Ако даден модел не е посочен по-горе, изпълнете `omniroute models --search ` или отправете заявка към `GET /api/models/catalog`, за да потвърдите наличността.
+**Бележка за модел IDs:** OmniRoute използва родния за доставчика IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Някои IDs включват версии с точки, защото така ги очаква API нагоре. Ако даден модел не е в списъка по-горе, стартирайте `omniroute models --search ` или натиснете `GET /api/models/catalog` за да потвърдите наличността.
diff --git a/docs/i18n/bn/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/bn/docs/architecture/RESILIENCE_GUIDE.md
index 04168a1aec4e..0ed917c9eb5d 100644
--- a/docs/i18n/bn/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/bn/docs/architecture/RESILIENCE_GUIDE.md
@@ -280,24 +280,17 @@ _তালিকাভুক্ত_ করে) — নতুন কার্ড
---
-## 4. কোটা-শেয়ার কনকারেন্সি নিয়ন্ত্রণ (v3.8.36)
+## 4. কোটা-শেয়ার কনকারেন্সি কন্ট্রোল (v3.8.36)
-সাবস্ক্রিপশন অ্যাকাউন্টগুলো (GLM, MiniMax ইত্যাদি) প্রায়শই মাত্র ~১–৩টি সমবর্তী
-রিকোয়েস্ট গ্রহণ করে; এর বেশি হলে 429 ও কুলডাউন ঘটে। **কোটা-শেয়ার**
-(`qtSd/…`) কম্বোর ক্ষেত্রে এটি বিশেষভাবে তীব্র, যেখানে একাধিক API কী একটি আপস্ট্রিম
-অ্যাকাউন্ট ভাগ করে। তিনটি স্তর একটি শেয়ার্ড অ্যাকাউন্টকে প্লাবিত হওয়া থেকে রক্ষা করে।
+সাবস্ক্রিপশন অ্যাকাউন্ট (GLM, MiniMax, ইত্যাদি) প্রায়ই শুধুমাত্র ~ 1-3 সমবর্তী অনুরোধ গ্রহণ করে; অতিক্রম করলে 429 এবং কুলডাউন ট্রিগার হয়। এই অধীন তীব্র** কোটা ভাগ** (`qtSd/…`) কম্বোস, যেখানে একাধিক API কী একটি আপস্ট্রিম অ্যাকাউন্ট শেয়ার করে। তিনটি স্তর প্লাবিত হওয়া থেকে একটি ভাগ করা অ্যাকাউন্ট রাখে।
-### প্রতি-কানেকশন কনকারেন্সি সীমা (`max_concurrent`)
+### প্রতি-সংযোগ সঙ্গতি ক্যাপ (`max_concurrent`)
-প্রতিটি প্রোভাইডার কানেকশন একটি `max_concurrent` সর্বোচ্চ সীমা ঘোষণা করতে পারে
-(`provider_connections.max_concurrent`, কানেকশন মোডাল / API / DB-তে সেট করা যায়)।
-সীমা না রাখতে খালি রাখুন। এটিই সেই একক নব যা নিচের সিরিয়ালাইজেশন
-স্তরটি চালায় — এটি অ্যাকাউন্টের প্রকৃত কনকারেন্সিতে সেট করুন (যেমন GLM ~১, MiniMax ~২)।
+প্রতিটি প্রদানকারী সংযোগ একটি `max_concurrent` সিলিং ঘোষণা করতে পারে (`provider_connections.max_concurrent`, সংযোগ মোডালে সেট করা / API / DB)। কোন সীমা জন্য এটি খালি ছেড়ে দিন. এটি একটি একক গাঁট যা — নীচের ক্রমিককরণ স্তরটিকে চালিত করে এটিকে অ্যাকাউন্টের আসল একত্রে সেট করে (যেমন GLM ~ 1, MiniMax ~ 2)।
-### প্রতি-মডেল কনকারেন্সি সীমা (`modelConcurrency`)
+### প্রতি মডেল কনকারেন্সি ক্যাপস (`modelConcurrency`)
-একটি কানেকশন অতিরিক্তভাবে তার `rateLimitOverrides` ম্যাপের ভেতরে
-নির্ভুল প্রতি-মডেল কনকারেন্সি সর্বোচ্চ সীমা ঘোষণা করতে পারে:
+একটি সংযোগ অতিরিক্তভাবে তার `rateLimitOverrides` মানচিত্রের মধ্যে সঠিক প্রতি-মডেল কনকারেন্সি সিলিং ঘোষণা করতে পারে:
```json
{
@@ -308,72 +301,32 @@ _তালিকাভুক্ত_ করে) — নতুন কার্ড
}
```
-এটি কানেকশন মোডালে সেট করুন (**Rate limit overrides → Per-model
-concurrency caps**, প্রতি লাইনে একটি `model=cap`) অথবা
-`PATCH /api/providers/[id]` দিয়ে একই JSON আকৃতিতে। মূল শব্দার্থ:
-
-- **কানেকশন-ব্যাপী বনাম মডেল-নির্দিষ্ট:** `maxConcurrent` শেয়ার্ড
- কানেকশন-ব্যাপী সর্বোচ্চ সীমা হিসেবে থেকে যায়। উভয়টি প্রযোজ্য হলে, উভয় গেট
- একই কম্পোজিট গেটে পারমাণবিকভাবে অর্জিত হয়
- (`global → provider → account → model`); কার্যকর আচরণ হলো
- প্রযোজ্য সীমাগুলোর মধ্যে কঠোরতমটি।
-- **নির্ভুল মডেল-কী মিল:** কী হলো রাউটিং রেজোলিউশনের পর এক্সিকিউটরে পাঠানো
- মডেল স্ট্রিং — সাধারণত বিশুদ্ধ আপস্ট্রিম মডেল আইডি
- (`glm-5`), ক্লায়েন্ট-সাইড `provider/model` অ্যালিয়াস নয় (`zai/glm-5`
- `glm-5`-এর সাথে মেলে না)। মানগুলো ধনাত্মক-পূর্ণসংখ্যার সমবর্তী-রিকোয়েস্ট সর্বোচ্চ সীমা।
-- **স্থানীয় কিউয়িং, কোনো ডিসকভারি নয়:** অতিরিক্ত রিকোয়েস্ট বিদ্যমান কিউ/টাইমআউট
- শব্দার্থে স্থানীয়ভাবে কিউতে অপেক্ষা করে (টাইপড `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL` অ্যাডমিশন ত্রুটি)। OmniRoute আপস্ট্রিম নীতি আবিষ্কার
- বা অনুমান করে না — এটি অপারেটরের কনফিগার করা নির্ভুল সীমাগুলোই
- প্রয়োগ করে। পরিপূর্ণ মডেল গেট কখনো প্রোভাইডারকে নিষ্ক্রিয় করে না এবং কখনো
- স্থায়ী মডেল লকআউট তৈরি করে না; আপস্ট্রিম 429/কুলডাউন/ফলব্যাক আচরণ
- ত্রুটি-সুরক্ষাবলয় হিসেবে থেকে যায়।
-- **প্রতি-কানেকশন, প্রতি-প্রসেস সুযোগ:** সীমাগুলো প্রতি ডাটাবেস কানেকশন
- ভিত্তিক এবং ইন-মেমরিতে ধারণ করা হয়, তাই একই আপস্ট্রিম API কী পুনঃব্যবহারকারী
- দুটি কানেকশন একে অপরের সাথে সমন্বয় করে না।
-- **কনফিগার না করলে অপরিবর্তিত:** ম্যাপ বাদ দিলে (বা ড্যাশবোর্ড
- ফিল্ড খালি রাখলে) কোনো মডেল গেট যুক্ত হয় না। কোনো সার্বজনীন প্রোভাইডার
- সীমা নির্ধারণ না করেই উদাহরণস্বরূপ কনফিগারেশন:
+এটি সংযোগ মোডেলে সেট করুন (** হারের সীমা → প্রতি মডেল কনকারেন্সি ক্যাপ ওভাররাইড করে** , প্রতি লাইনে এক `model=cap` ) অথবা একই JSON আকার সহ `PATCH /api/providers/[id]` মাধ্যমে। মূল শব্দার্থবিদ্যা:
+
+- **সংযোগ-বিস্তৃত বনাম মডেল-নির্দিষ্ট:** `maxConcurrent` রয়ে গেছে শেয়ার্ড কানেকশন-ওয়াইড সিলিং। যখন উভয়ই প্রযোজ্য হয়, উভয় গেট একই যৌগিক গেটে পারমাণবিকভাবে অর্জিত হয় (`global → provider → account → model`); কার্যকর আচরণ কঠোর প্রযোজ্য সীমা.
+- **সঠিক মডেল-কী মিল:** চাবি হল মডেল স্ট্রিং যা রাউটিং রেজোলিউশন — পরে নির্বাহককে পাস করা হয় সাধারণত বেয়ার আপস্ট্রিম মডেল আইডি (`glm-5`), ক্লায়েন্ট-সাইড `provider/model` alias নয় (`zai/glm-5` `glm-5` সাথে মেলে না)। মান হল ধনাত্মক-পূর্ণসংখ্যা সমবর্তী-অনুরোধ সিলিং।
+- **স্থানীয় সারিবদ্ধ, কোন আবিষ্কার নেই:** অতিরিক্ত অনুরোধ স্থানীয়ভাবে বিদ্যমান queue/timeout শব্দার্থবিদ্যা (টাইপ করা `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ভর্তি ত্রুটি) সঙ্গে সারিবদ্ধ. OmniRoute আপস্ট্রিম পলিসি আবিষ্কার বা অনুমান করে না — এটি অপারেটর কনফিগার করা সঠিক সিলিং প্রয়োগ করে। একটি স্যাচুরেটেড মডেল গেট কখনই প্রদানকারীকে নিষ্ক্রিয় করে না এবং একটি স্থায়ী মডেল লকআউট তৈরি করে না; আপস্ট্রিম 429/cooldown/fallback আচরণ ত্রুটি ব্যাকস্টপ থেকে যায়।
+- **প্রতি-সংযোগ, প্রতি-প্রক্রিয়ার সুযোগ:** ক্যাপগুলি ডাটাবেস সংযোগ প্রতি এবং মেমরিতে রাখা হয়, তাই একই আপস্ট্রিম API কী পুনরায় ব্যবহার করে দুটি সংযোগ একে অপরের সাথে সমন্বয় করে না।
+- **অপরিবর্তিত মানে অপরিবর্তিত:** মানচিত্রটি বাদ দিলে (বা ড্যাশবোর্ড ক্ষেত্রটি ফাঁকা রেখে) কোনো মডেল গেট যোগ করে না। কোনো সার্বজনীন প্রদানকারীর সীমা জাহির না করে উদাহরণ কনফিগারেশন:
```text
glm-5=1
glm-4.7=3
```
-### কোটা-শেয়ার রিকোয়েস্ট সিরিয়ালাইজেশন
-
-যখন একটি কোটা-শেয়ার ডিসপ্যাচ এমন কানেকশনকে লক্ষ্য করে যা ধনাত্মক
-`max_concurrent` ঘোষণা করে, তখন ঐ **অ্যাকাউন্টে** সমবর্তী রিকোয়েস্টগুলো একটি
-প্রতি-কানেকশন সেমাফোরের (কী `qsconn:`) মাধ্যমে সিরিয়ালাইজ হয়:
-অতিরিক্ত রিকোয়েস্ট অ্যাকাউন্ট প্লাবিত না করে **কিউতে অপেক্ষা করে**। এটি
-**ফেইল-ওপেন** — পরিপূর্ণ কিউ বা টাইমআউট হলে ডিসপ্যাচযোগ্য রিকোয়েস্ট প্রত্যাখ্যান না করে
-স্লট ছাড়াই এগিয়ে যায়। **Settings → Resilience → Quota-share per-connection
-concurrency**-এ টগল করুন (`resilienceSettings.quotaShareConcurrencyLimit.enabled`,
-ডিফল্ট চালু)। `max_concurrent` সীমা না থাকলে আচরণ অপরিবর্তিত থাকে।
-
-> কোটা-শেয়ার রাউটিং গেট (`selectQuotaShareTarget`, DRR + P2C) নিজেই
-> ফেইল-ওপেন এবং সীমায় পৌঁছানো কানেকশনকে কেবল _অগ্রাধিকার হ্রাস_ করে —
-> একক-কানেকশন পুলে এটি কঠোরভাবে সীমাবদ্ধ করতে পারে না, তাই এই সেমাফোরই
-> প্রকৃতপক্ষে প্লাবন ধারণ করে।
-
-### কম্বো কুলডাউন-সচেতন রিট্রাই
-
-প্রতিটি কম্বো স্ট্র্যাটেজির জন্য (চালু থাকলে), এমন রিকোয়েস্ট যা একটি স্বল্পমেয়াদি
-ক্ষণস্থায়ী কুলডাউনের জন্য 429 সৃষ্টি করত, সেটি 429 ফেরত না দিয়ে অপেক্ষা করে
-পুনরায় ডিসপ্যাচ হয় — এটি মাল্টি-মডেল কম্বোগুলোতে Gemini-শ্রেণীর TPM/RPM
-উইন্ডো (~৬০ সেকেন্ড retry-after) কভার করে, যেমন ২-মডেল কম্বোর উভয় টার্গেট
-প্রতি-মডেল রেট লিমিটে পড়লে। **Settings → Resilience**-এ `comboCooldownWait`
-(`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) দ্বারা সীমাবদ্ধ। এটি কখনো
-`quota_exhausted` (মধ্যরাত পর্যন্ত লকড) বা auth/not-found কারণে অপেক্ষা করে না।
-
-একই গেট প্রি-ডিসপ্যাচ কেসটিও (#16319) কভার করে: যখন কোনো প্রচেষ্টা করার আগেই
-কম্বোর প্রতিটি টার্গেট বাদ পড়ে কারণ এর মডেল স্বল্প ক্ষণস্থায়ী লকআউটে আছে,
-তখন শূন্য-প্রচেষ্টা পাথ একই সীমার মধ্যে লক শেষ হওয়া পর্যন্ত অপেক্ষা করে পুনরায়
-ডিসপ্যাচ করে, ইঙ্গিত-বিহীন `503 ALL_TARGETS_SKIPPED` উত্তর না দিয়ে।
-যখন কোনো অপেক্ষা অনুমোদিত নয় (সীমা, প্রচেষ্টা বা বাজেট শেষ, বা ফিচার
-বন্ধ), তখন টার্মিনাল রেসপন্স `429 rate_limit_error`-এ উন্নীত হয় এবং প্রথমতম
-ক্ষণস্থায়ী লক মেয়াদোত্তীর্ণের `retry_after` / `reset_at` বহন করে; কোটা, auth
-এবং not-found লকগুলো ইঙ্গিত-বিহীন 503-ই বজায় রাখে।
+### কোটা-শেয়ার অনুরোধ ক্রমিককরণ
+
+যখন একটি কোটা-শেয়ার প্রেরন একটি সংযোগকে লক্ষ্য করে যা একটি ইতিবাচক `max_concurrent` ঘোষণা করে, তখন সেটির সমবর্তী অনুরোধ** অ্যাকাউন্ট** প্রতি-সংযোগ সেমাফোর (কী `qsconn:`) এর মাধ্যমে ক্রমিক করা হয় : অতিরিক্ত অনুরোধ** সারিতে অপেক্ষা করুন** অ্যাকাউন্ট প্লাবিত করার পরিবর্তে। এটা** ব্যর্থ-খোলা** — একটি স্যাচুরেটেড কিউ বা টাইমআউট একটি স্লট ছাড়াই অগ্রসর হয় বরং একটি প্রেরণযোগ্য অনুরোধ প্রত্যাখ্যান করার পরিবর্তে। টগল ইন** সেটিংস → স্থিতিস্থাপকতা → কোটা-শেয়ার প্রতি-সংযোগ সহযোগিতা** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, ডিফল্ট অন)। একটি `max_concurrent` ক্যাপ ছাড়া আচরণ অপরিবর্তিত।
+
+> কোটা-শেয়ার রাউটিং গেট (`selectQuotaShareTarget`, DRR + P2C) নিজেই ব্যর্থ-খোলা এবং শুধুমাত্র _deprioritizes_ একটি অ্যাট-ক্যাপ সংযোগ — একটি একক-সংযোগ পুলের সাথে এটি হার্ড-লিমিট করতে পারে না, তাই এই সেমাফোরই আসলে বন্যা ধারণ করে।
+
+### কম্বো কুলডাউন-সচেতন পুনরায় চেষ্টা করুন
+
+প্রতিটি কম্বো কৌশলের জন্য (যখন সক্রিয় করা হয়), একটি অনুরোধ যা একটি 429 কে স্ফটিক করে একটি SHORT ক্ষণস্থায়ী কুলডাউনের জন্য অপেক্ষা করে এবং 429 — ফেরত দেওয়ার পরিবর্তে পুনরায় প্রেরণ করে এটি জেমিনি-শ্রেণির TPM/RPM উইন্ডো (~ 60s retry-after) কভার করে একটি মাল্টি-মডেল উভয় কম্বো-এর টার্গেট-2 কম্বোতে প্রতি মডেল হার সীমা। `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) দ্বারা আবদ্ধ** সেটিংস → স্থিতিস্থাপকতা** . এটি কখনই `quota_exhausted` (মধ্যরাত পর্যন্ত লক) বা auth/not-found কারণে অপেক্ষা করে না।
+
+একটি কম্বো `config.comboCooldownWaitEnabled: false` এর সাথে অপ্ট আউট করতে পারে। শুধুমাত্র আক্ষরিক `false` এই শেয়ার করা কম্বো ওয়েট (পোস্ট-ডিসপ্যাচ কুলডাউন এবং প্রি-ডিসপ্যাচ circuit-open/model-lock অপেক্ষা) এবং তাদের অপেক্ষা-বাজেট টাইমআউট-ফ্লোর এক্সটেনশনকে নিষ্ক্রিয় করে। অনুপস্থিত বা `true` বিশ্বব্যাপী নীতি সংরক্ষণ করে; `true` বিশ্বব্যাপী অক্ষম অপেক্ষা সক্ষম করতে পারে না। একটি স্পষ্ট `targetTimeoutMs` এখনও জয়ী হয়। এই অপ্ট-আউট পৃথক নেটিভ-কোডেক্স টার্ন-পিন প্রি-ডিসপ্যাচ অপেক্ষা পরিবর্তন করে না।
+
+একই গেটটি প্রি-ডিসপ্যাচ কেস (#16319) কভার করে : যখন একটি কম্বোর প্রতিটি টার্গেট কোনো চেষ্টা করার আগে এড়িয়ে যায় কারণ এর মডেলটি একটি সংক্ষিপ্ত ক্ষণস্থায়ী লকআউটে বসে থাকে, তখন শূন্য-প্রয়াস পথটি একই সিলিং-এর নিচে লক আউটের জন্য অপেক্ষা করে এবং ইঙ্গিতহীন `503 ALL_TARGETS_SKIPPED` উত্তর না দিয়ে পুনরায় প্রেরণ করে। যখন কোন অপেক্ষার অনুমতি দেওয়া হয় না (সিলিং, প্রচেষ্টা বা বাজেট শেষ, বা বৈশিষ্ট্য বন্ধ), টার্মিনাল রেসপন্স `429 rate_limit_error` তে আপগ্রেড হয় যা `retry_after` / `reset_at` বহন করে ক্ষণস্থায়ী লক মেয়াদ শেষ হওয়ার পর থেকে; কোটা, প্রমাণীকরণ এবং পাওয়া না পাওয়া লকগুলি ইঙ্গিত-কম 503 রাখে।
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/bn/docs/guides/USER_GUIDE.md b/docs/i18n/bn/docs/guides/USER_GUIDE.md
index 2aa76eddc787..a73bf713cd67 100644
--- a/docs/i18n/bn/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/bn/docs/guides/USER_GUIDE.md
@@ -612,39 +612,39 @@ post_install() {
সমস্ত উপলব্ধ মডেল দেখুন
-> নিচের তালিকাটি `open-sse/config/providerRegistry.ts` থেকে v3.8.0-এর জন্য সংকলিত। ক্লাউড ক্যাটালগ (Gemini, OpenRouter ইত্যাদি) ডাইনামিকভাবে সিঙ্ক হয় — সম্পূর্ণ লাইভ ক্যাটালগের জন্য **ড্যাশবোর্ড → প্রোভাইডার → [provider] → উপলব্ধ মডেল** খুলুন অথবা `GET /api/models/catalog` কল করুন।
+> নিচের তালিকাটি v3.8.0 এর জন্য `open-sse/config/providerRegistry.ts` থেকে কিউরেট করা হয়েছে। ক্লাউড ক্যাটালগগুলি (Gemini, OpenRouter, ইত্যাদি) সম্পূর্ণ লাইভ ক্যাটালগ খোলার জন্য গতিশীলভাবে — সিঙ্ক করা হয়** ড্যাশবোর্ড → প্রদানকারী → [প্রোভাইডার] → উপলব্ধ মডেল** অথবা `GET /api/models/catalog` কল করুন।
>
-> যদি কোনো প্রোভাইডারের বিল্ট-ইন তালিকা পুরনো হয়ে যায়, তাহলে লাইভ আপস্ট্রিম ক্যাটালগ আনতে সেই পেজে **/models থেকে ইমপোর্ট করুন** ব্যবহার করুন (অথবা **অটো-সিঙ্ক** চালু করুন)। এটি v3.8.50-তে LLM7.io (`gemini-3.1-flash-lite`) এবং UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`)-এর জন্য যাচাই করা হয়েছে; একই টেস্ট পাসের সময় Pollinations-এর anonymous access আপস্ট্রিম-সীমাবদ্ধ ছিল।
+> যদি একটি প্রদানকারীর অন্তর্নির্মিত তালিকা প্রবাহিত হয়, ব্যবহার করুন** /মডেল থেকে আমদানি করুন** সেই পৃষ্ঠায় (বা সক্ষম করুন** অটো-সিঙ্ক** ) লাইভ আপস্ট্রিম ক্যাটালগ টানতে। এটি LLM7.io (`gemini-3.1-flash-lite`) এবং UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) এর জন্য v3.8.50 এ যাচাই করা হয়েছে; একই পরীক্ষা পাসের সময় পরাগায়ন বেনামী অ্যাক্সেস আপস্ট্রিম-সীমিত ছিল।
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude কোড (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort টিয়ার: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ প্রচেষ্টার স্তর: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — ফ্রি OAuth: **ড্যাশবোর্ড → প্রোভাইডার → Kiro → উপলব্ধ মডেল**-এ দেখানো লাইভ ক্যাটালগ ব্যবহার করুন। উপলব্ধতা অ্যাকাউন্ট এবং প্ল্যানের উপর নির্ভর করে।
+**Kiro (`kr/`)** — FREE OAuth: নীচে দেখানো লাইভ ক্যাটালগ ব্যবহার করুন** ড্যাশবোর্ড → প্রদানকারী → Kiro → উপলব্ধ মডেল** . প্রাপ্যতা অ্যাকাউন্ট এবং পরিকল্পনা উপর নির্ভর করে.
-**Qoder (`if/`)** — ফ্রি OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/মাস ফ্ল্যাট অথবা ব্যবহার-ভিত্তিক: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo ফ্ল্যাট বা প্রতি-ব্যবহার: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — API কী: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — আলট্রা-দ্রুত: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — আল্ট্রা-ফাস্ট: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — নেটিভ Grok: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok নেটিভ: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU-তে হোস্ট করা: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — ইইউ-হোস্টেড: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — সার্চ-সমৃদ্ধ: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**বিভ্রান্তি (`pplx/`)** — অনুসন্ধান-বর্ধিত: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — ওপেন-সোর্স: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ফ্রি), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — ওপেন সোর্স: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ফ্রি), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — দ্রুত ইনফারেন্স: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — দ্রুত অনুমান: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
**Cerebras (`cerebras/`)** — ওয়েফার-স্কেল: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
@@ -654,13 +654,13 @@ post_install() {
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama মেঘ (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Google থেকে প্রতি API কী অনুযায়ী লাইভ সিঙ্ক হয় — কোনো স্ট্যাটিক তালিকা নেই। **ড্যাশবোর্ড → প্রোভাইডার**-এ একটি কী সংযুক্ত করুন, তারপর বর্তমান ক্যাটালগ ইমপোর্ট করতে **উপলব্ধ মডেল** ব্যবহার করুন (যেমন `gemini/gemini-3-pro`, `gemini/gemini-3-flash`)।
+**Gemini (Google মেঘ `gemini/`)** : Google — কোন স্ট্যাটিক তালিকা থেকে API কী প্রতি লাইভ সিঙ্ক করা হয়েছে। একটি কী সংযুক্ত করুন** ড্যাশবোর্ড → প্রদানকারী** তারপর ব্যবহার করুন** উপলব্ধ মডেল** বর্তমান ক্যাটালগ আমদানি করতে (যেমন `gemini/gemini-3-pro`, `gemini/gemini-3-flash`)।
-**অন্যান্য সামঞ্জস্যপূর্ণ প্রোভাইডার** (নির্বাচিত): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (passthrough ক্যাটালগ), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`। প্রতিটি `providerRegistry.ts`-এ নিজস্ব মডেল তালিকা রক্ষণ করে এবং প্রোভাইডার যখন `/models` এন্ডপয়েন্ট এক্সপোজ করে তখন অটো-সিঙ্ক করা যায়।
+**অন্যান্য সামঞ্জস্যপূর্ণ প্রদানকারী** (নির্বাচিত): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` ( `aws-bedrock` এর মাধ্যমে), `azure-ai` `gigachat` `openrouter` (পাসথ্রু ক্যাটালগ), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai` `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21` প্রতিটি `providerRegistry.ts` তে নিজস্ব মডেল তালিকা বজায় রাখে এবং প্রদানকারী একটি `/models` এন্ডপয়েন্ট প্রকাশ করলে স্বয়ংক্রিয়ভাবে সিঙ্ক হতে পারে।
-**মডেল ID সম্পর্কে নোট:** OmniRoute প্রোভাইডার-নেটিভ ID ব্যবহার করে (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`)। কিছু ID-তে বিন্দুসহ সংস্করণ থাকে কারণ আপস্ট্রিম API সেভাবেই আশা করে। যদি কোনো মডেল উপরে তালিকাভুক্ত না থাকে, তাহলে উপলব্ধতা নিশ্চিত করতে `omniroute models --search ` চালান অথবা `GET /api/models/catalog` কল করুন।
+**মডেল IDs সম্পর্কে নোট:** OmniRoute প্রদানকারী-নেটিভ IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`) ব্যবহার করে। কিছু IDs ডটেড সংস্করণ অন্তর্ভুক্ত করে কারণ আপস্ট্রিম API তাদের প্রত্যাশা করে। যদি একটি মডেল উপরে তালিকাভুক্ত না থাকে, তাহলে `omniroute models --search ` চালান বা উপলব্ধতা নিশ্চিত করতে `GET /api/models/catalog` চাপুন।
diff --git a/docs/i18n/bs/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/bs/docs/architecture/RESILIENCE_GUIDE.md
index d70592050cd8..525cad046d71 100644
--- a/docs/i18n/bs/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/bs/docs/architecture/RESILIENCE_GUIDE.md
@@ -284,25 +284,17 @@ _stanje_ zaključavanja je efemerno.
---
-## 4. Kontrola istovremenosti kod dijeljenja kvote (v3.8.36)
+## 4. Quota-Share Concurrency Control (v3.8.36)
-Računi pretplate (GLM, MiniMax itd.) često prihvataju samo ~1–3 istovremena
-zahtjeva; prekoračenje toga izaziva 429 greške i periode hlađenja. Ovo je posebno
-izraženo kod **quota-share** (`qtSd/…`) kombinacija, gdje više API ključeva dijeli
-jedan upstream račun. Tri sloja sprječavaju da dijeljeni račun bude preplavljen.
+Nalozi za pretplatu (GLM, MiniMax, itd.) često prihvataju samo ~ 1–3 istovremena zahteva; prekoračenje toga pokreće 429s i hlađenje. Ovo je akutno pod** kvota-udio** (`qtSd/…`) kombinacije, gdje nekoliko API ključeva dijeli jedan upstream račun. Tri sloja štite zajednički račun od poplave.
-### Ograničenje istovremenosti po konekciji (`max_concurrent`)
+### Ograničenje konkurentnosti po vezi (`max_concurrent`)
-Svaka konekcija provajdera može deklarisati gornju granicu `max_concurrent`
-(`provider_connections.max_concurrent`, postavlja se u modalnom prozoru konekcije /
-API-ju / bazi podataka). Ostavite prazno za neograničeno. Ovo je jedini regulator
-koji pokreće sloj serijalizacije opisan ispod — postavite ga na stvarnu
-istovremenost računa (npr. GLM ~1, MiniMax ~2).
+Svaka veza provajdera može deklarisati `max_concurrent` plafon (`provider_connections.max_concurrent`, postavljen u modalnoj vezi / API / DB). Ostavite ga praznim bez ograničenja. Ovo je jedno dugme koje pokreće sloj serijalizacije ispod — ga postavlja na stvarnu konkurentnost naloga (npr. GLM ~ 1, MiniMax ~ 2).
-### Ograničenja istovremenosti po modelu (`modelConcurrency`)
+### Ograničenja istodobnosti po modelu (`modelConcurrency`)
-Konekcija može dodatno deklarisati tačna ograničenja istovremenosti po modelu
-unutar svoje `rateLimitOverrides` mape:
+Veza može dodatno deklarirati tačne gornje granice konkurentnosti po modelu unutar svoje `rateLimitOverrides` mape:
```json
{
@@ -313,76 +305,32 @@ unutar svoje `rateLimitOverrides` mape:
}
```
-Postavlja se u modalnom prozoru konekcije (**Zaobilaženja ograničenja brzine →
-Ograničenja istovremenosti po modelu**, jedan `model=cap` po redu) ili putem
-`PATCH /api/providers/[id]` s istim JSON oblikom. Ključna semantika:
-
-- **Na nivou konekcije naspram po modelu:** `maxConcurrent` ostaje dijeljena
- gornja granica na nivou konekcije. Kada oba važe, obje kapije se zauzimaju
- atomski u istoj kompozitnoj kapiji
- (`global → provider → account → model`); efektivno ponašanje određuje strože
- primjenjivo ograničenje.
-- **Tačno podudaranje ključa modela:** ključ je string modela koji se prosljeđuje
- izvršiocu nakon razrješenja rutiranja — obično goli upstream ID modela
- (`glm-5`), a ne klijentski `provider/model` alias (`zai/glm-5` ne odgovara
- `glm-5`). Vrijednosti su gornje granice istovremenih zahtjeva u obliku
- pozitivnih cijelih brojeva.
-- **Lokalno čekanje u redu, bez otkrivanja:** višak zahtjeva čeka lokalno u redu
- s postojećom semantikom reda/isteka vremena (tipizirane greške prijema
- `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). OmniRoute ne otkriva niti
- zaključuje upstream politiku — on nameće tačne granice koje je operator
- konfigurisao. Zasićena kapija modela nikada ne onemogućava provajdera i nikada
- ne stvara trajnu blokadu modela; upstream ponašanje 429/cooldown/fallback
- ostaje krajnja zaštita od grešaka.
-- **Opseg po konekciji i po procesu:** ograničenja važe po konekciji baze
- podataka i drže se u memoriji, pa dvije konekcije koje koriste isti upstream
- API ključ ne koordiniraju međusobno.
-- **Nekonfigurisano znači nepromijenjeno:** izostavljanje mape (ili ostavljanje
- polja na kontrolnoj ploči praznim) ne dodaje kapiju modela. Primjer
- konfiguracije bez nametanja bilo kakvog univerzalnog ograničenja provajdera:
+Postavite u modalnu vezu (** Ograničenje brzine nadjačava → ograničenja istodobnosti po modelu** , jedan `model=cap` po liniji) ili preko `PATCH /api/providers/[id]` sa istim JSON oblikom. Ključna semantika:
+
+- **Širom konekcije nasuprot specifičnom modelu:** `maxConcurrent` ostaje zajednički plafon za cijelu vezu. Kada se primjenjuju oba, oba gejta se dobijaju atomski u istoj kompozitnoj kapiji (`global → provider → account → model`); efektivno ponašanje je stroža primjenjiva granica.
+- **Tačno podudaranje modela i ključa:** ključ je niz modela koji se prosljeđuje izvršiocu nakon rezolucije rutiranja — obično je goli uzvodni id modela (`glm-5`), a ne `provider/model` alias na strani klijenta (`zai/glm-5` ne odgovara `glm-5`). Vrijednosti su gornje granice istovremenog zahtjeva pozitivnog cijelog broja.
+- **Lokalno čekanje u redu, bez otkrivanja:** suvišni zahtjevi u redu čekaju lokalno sa postojećom queue/timeout semantikom (ukucane greške pri prijemu `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ). OmniRoute ne otkriva niti zaključuje politiku upstream — primjenjuje točne gornje granice koje je konfigurirao operater. Zasićena kapija modela nikada ne onemogućava dobavljača i nikada ne stvara trajno zaključavanje modela; upstream 429/cooldown/fallback ponašanje ostaje backstop greške.
+- **Po konekciji, opseg po procesu:** caps su po vezi sa bazom podataka i drže se u memoriji, tako da dvije veze koje ponovno koriste isti uzvodni API ključ ne koordiniraju jedna s drugom.
+- **Nekonfigurirano znači nepromijenjeno:** izostavljanje karte (ili ostavljanje polja kontrolne table prazno) ne dodaje vrata modela. Primjer konfiguracije bez postavljanja ograničenja univerzalnog dobavljača:
```text
glm-5=1
glm-4.7=3
```
-### Serijalizacija zahtjeva kod dijeljenja kvote
-
-Kada otpremanje kod dijeljenja kvote cilja konekciju koja deklariše pozitivan
-`max_concurrent`, istovremeni zahtjevi prema tom **računu** serijaliziraju se kroz
-semafor po konekciji (ključ `qsconn:`): višak zahtjeva **čeka u
-redu** umjesto da preplavi račun. To je **fail-open** — zasićen red ili istek
-vremena nastavlja bez zauzetog mjesta, umjesto da ikada odbije zahtjev koji se
-može otpremiti. Uključuje se u **Postavke → Otpornost → Istovremenost po
-konekciji kod dijeljenja kvote**
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, zadano uključeno). Bez
-ograničenja `max_concurrent` ponašanje je nepromijenjeno.
-
-> Kapija rutiranja dijeljenja kvote (`selectQuotaShareTarget`, DRR + P2C) je sama
-> po sebi fail-open i samo _smanjuje prioritet_ konekciji koja je na granici — s
-> bazenom od jedne konekcije ne može strogo ograničiti, pa je ovaj semafor ono
-> što zapravo obuzdava poplavu.
-
-### Ponovni pokušaj kombinacija svjestan perioda hlađenja
-
-Za svaku strategiju kombinacija (kada je omogućena), zahtjev koji bi kristalizirao
-429 zbog KRATKOG prolaznog perioda hlađenja pričeka ga i ponovo otprema umjesto
-da vrati 429 — ovo pokriva TPM/RPM prozore klase Gemini (~60s retry-after) kod
-kombinacija s više modela, npr. kada oba cilja kombinacije od 2 modela pogode
-ograničenje brzine po modelu. Ograničeno s `comboCooldownWait` (`enabled`,
-`maxWaitMs`, `maxAttempts`, `budgetMs`) u **Postavke → Otpornost**. Nikada ne čeka
-na `quota_exhausted` (zaključano do ponoći) niti na razloge autentikacije /
-nije-pronađeno.
-
-Ista kapija pokriva slučaj prije otpremanja (#16319): kada se svaki cilj
-kombinacije preskoči prije nego što je ijedan pokušaj izvršen jer se njegov model
-nalazi u kratkoj prolaznoj blokadi, putanja bez pokušaja pričeka blokadu pod
-istim granicama i ponovo otprema, umjesto da odgovori s
-`503 ALL_TARGETS_SKIPPED` bez nagovještaja. Kada čekanje nije dozvoljeno
-(iscrpljena granica, pokušaji ili budžet, ili je funkcija isključena), završni
-odgovor se nadograđuje na `429 rate_limit_error` koji nosi `retry_after` /
-`reset_at` od najranijeg isteka prolazne blokade; blokade kvote, autentikacije i
-nije-pronađeno zadržavaju 503 bez nagovještaja.
+### Serijalizacija zahtjeva za dijeljenjem kvote
+
+Kada otpremanje podjele kvote cilja vezu koja deklarira pozitivan `max_concurrent`, istovremeni zahtjevi za to** račun** se serijaliziraju kroz semafor po konekciji (ključ `qsconn:`): višak zahtjeva** čekati u redu** umjesto da poplavi račun. Jeste** fail-open** — zasićeni red čekanja ili vremensko ograničenje se nastavlja bez slota umjesto da odbije zahtjev koji se može otpremiti. Uključi** Postavke → Otpornost → Konkurentnost dijeljenja kvote po konekciji** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, podrazumevano uključeno). Bez `max_concurrent` capa ponašanje je nepromijenjeno.
+
+> Gate za usmjeravanje kvote dijeljenja (`selectQuotaShareTarget`, DRR + P2C) je sam po sebi otvoren za neuspjeh i samo _depriorizira_ at-cap vezu — sa spremištem jedne veze koje ne može čvrsto ograničiti, tako da je ovaj semafor ono što zapravo sadrži poplavu.
+
+### Kombinovani pokušaj ponovnog hlađenja svjestan hlađenja
+
+Za svaku kombinovanu strategiju (kada je omogućena), zahtjev koji bi kristalizirao 429 za SHORT prolazno hlađenje čeka ga i ponovo šalje umjesto vraćanja 429 — ovo pokriva TPM/RPM prozore klase Gemini (~ 60s ponovni pokušaj nakon) na kombinacijama više modela od 2 kombo ciljane brzine, npr. limit. Ograničeno `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) u** Postavke → Otpornost** . Nikada ne čeka na `quota_exhausted` (zaključan do ponoći) ili auth/not-found razloge.
+
+Kombinacija se može isključiti sa `config.comboCooldownWaitEnabled: false`. Samo doslovni `false` onemogućuje ova dijeljena kombinirana čekanja (hlađenje nakon otpreme i circuit-open/model-lock čekanja prije otpreme) i njihovo produženje praga vremena čekanja-budžeta. Nedostaje ili `true` čuva globalnu politiku; `true` ne može omogućiti globalno onemogućeno čekanje. Eksplicitni `targetTimeoutMs` i dalje pobjeđuje. Ovo odbijanje ne mijenja odvojeno čekanje prije otpreme native-Codex-a.
+
+Ista kapija pokriva slučaj prije otpreme (#16319): kada se svaka meta kombinacije preskoči prije nego što se napravi bilo kakav pokušaj jer se njen model nalazi u kratkom prolaznom zaključavanju, putanja bez pokušaja čeka zaključavanje ispod istih stropova i ponovno se šalje, umjesto da odgovori na `503 ALL_TARGETS_SKIPPED` bez nagoveštaja. Kada nije dozvoljeno čekanje (plafon, pokušaj ili budžet je iscrpljen, ili je funkcija isključena), odgovor terminala se nadogradi na `429 rate_limit_error` koji nosi `retry_after` / `reset_at` od najranijeg isteka prolaznog zaključavanja; quota, auth i not-found brave zadržavaju 503 bez nagoveštaja.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/bs/docs/guides/USER_GUIDE.md b/docs/i18n/bs/docs/guides/USER_GUIDE.md
index 6d4f89d07636..5bfb0e66bd7a 100644
--- a/docs/i18n/bs/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/bs/docs/guides/USER_GUIDE.md
@@ -613,55 +613,55 @@ Za kompletnu referencu varijabli okruženja, pogledajte [README](../README.md).
Pogledajte sve dostupne modele
-> Lista ispod je sastavljena iz `open-sse/config/providerRegistry.ts` za v3.8.0. Katalozi u oblaku (Gemini, OpenRouter, itd.) sinhroniziraju se dinamički — za potpuni katalog uživo otvorite **Dashboard → Providers → [provider] → Available Models** ili pozovite `GET /api/models/catalog`.
+> Lista ispod je sastavljena od `open-sse/config/providerRegistry.ts` za v3.8.0. Katalozi u oblaku (Gemini, OpenRouter, itd.) se dinamički sinkroniziraju — za potpuni otvoreni katalog uživo** Kontrolna tabla → Dobavljači → [provider] → Dostupni modeli** ili pozovite `GET /api/models/catalog`.
>
-> Ako je ugrađena lista nekog dobavljača zastarjela, koristite **Import from /models** na toj stranici (ili omogućite **Auto-Sync**) da preuzmete aktuelni katalog s izvora. Ovo je provjereno u v3.8.50 za LLM7.io (`gemini-3.1-flash-lite`) i UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); anonimni pristup Pollinationsu ostao je ograničen od strane izvora tokom istog ciklusa testiranja.
+> Ako se ugrađena lista dobavljača promijenila, koristite** Uvoz iz /models** na toj stranici (ili omogućite** Auto-Sync** ) da povučete uzvodni katalog uživo. Ovo je potvrđeno u v3.8.50 za LLM7.io (`gemini-3.1-flash-lite`) i UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Anonimni pristup oprašivanja ostao je ograničen uzvodno tokom istog prolaska testa.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude kod (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ nivoi napora: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — BESPLATAN OAuth: koristite katalog uživo prikazan pod **Dashboard → Providers → Kiro → Available Models**. Dostupnost zavisi od računa i plana.
+**Kiro (`kr/`)** — FREE OAuth: koristite katalog uživo prikazan ispod** Dashboard → Providers → Kiro → Dostupni modeli** . Dostupnost zavisi od računa i plana.
-**Qoder (`if/`)** — BESPLATAN OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mj paušalno ili po korištenju: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo stan ili po upotrebi: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — API ključ: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Ultra-brz: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Ultra-brzi: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Izvorni Grok: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok izvorni: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Hostirano u EU: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — Hostovan u EU: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Prošireno pretragom: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**zbunjenost (`pplx/`)** — Prošireno pretraživanje: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Otvoreni kod: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (besplatno), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — Otvoreni izvor: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (besplatno), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Brza inferencija: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Brzo zaključivanje: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Wafer-scale: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Vafer-skala: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Fokusirano na RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG fokusiran: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Za preduzeća: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama oblak (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Sinhronizira se uživo po API ključu s Googlea — nema statičke liste. Povežite ključ u **Dashboard → Providers**, a zatim koristite **Available Models** da uvezete trenutni katalog (npr. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google oblak `gemini/`)** : Sinhronizirano uživo po API ključu sa Google — bez statične liste. Priključite ključ** Dashboard → Providers** zatim koristite** Dostupni modeli** da uvezete trenutni katalog (npr. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Ostali kompatibilni dobavljači** (odabrani): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (passthrough catalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Svaki održava vlastitu listu modela u `providerRegistry.ts` i može se automatski sinhronizirati kada dobavljač izlaže `/models` endpoint.
+**Drugi kompatibilni provajderi** (odabrano): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (preko `aws-bedrock`), `azure-ai`, `openrouter` (prolazni katalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `friendliai` `vercel-ai-gateway`, `bazaarlink` `reka` `nous-research`, `volcengine`, `ai21` `gigachat` Svaki održava svoju vlastitu listu modela u `providerRegistry.ts` i može se automatski sinhronizirati kada dobavljač izloži `/models` krajnju tačku.
-**Napomena o ID-evima modela:** OmniRoute koristi izvorne ID-eve dobavljača (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Neki ID-evi sadrže verzije s tačkama jer ih izvorni API tako očekuje. Ako model nije naveden iznad, pokrenite `omniroute models --search ` ili pozovite `GET /api/models/catalog` da potvrdite dostupnost.
+**Napomena o modelu IDs:** OmniRoute koristi IDs izvorni dobavljač (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Neki IDs uključuju isprekidane verzije jer ih uzvodni API tako očekuje. Ako model nije naveden iznad, pokrenite `omniroute models --search ` ili pritisnite `GET /api/models/catalog` da potvrdite dostupnost.
diff --git a/docs/i18n/cs/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/cs/docs/architecture/RESILIENCE_GUIDE.md
index 8d7f4a1ee19f..b47da682b1cb 100644
--- a/docs/i18n/cs/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/cs/docs/architecture/RESILIENCE_GUIDE.md
@@ -290,25 +290,17 @@ _stav_ blokování je efemérní.
---
-## 4. Řízení souběžnosti quota-share (v3.8.36)
+## 4. Kontrola souběžného sdílení kvót (v3.8.36)
-Účty s předplatným (GLM, MiniMax atd.) často přijímají pouze ~1–3 souběžné
-požadavky; při jejich překročení dochází k chybám 429 a cooldownům. Tento problém
-je obzvlášť naléhavý u kombinací **quota-share** (`qtSd/…`), kde několik klíčů API
-sdílí jeden upstreamový účet. Tři vrstvy zabraňují zahlcení sdíleného účtu.
+Účty předplatného (GLM, MiniMax atd.) často přijímají pouze ~ 1–3 souběžné požadavky; překročení spouští 429s a cooldowny. To je akutní pod** kvótní podíl** (`qtSd/…`) komba, kde několik klíčů API sdílí jeden upstream účet. Tři vrstvy chrání sdílený účet před zaplavením.
-### Limit souběžnosti na připojení (`max_concurrent`)
+### Omezení souběžnosti na připojení (`max_concurrent`)
-Každé připojení poskytovatele může deklarovat limit `max_concurrent`
-(`provider_connections.max_concurrent`, nastavuje se v modálním okně připojení /
-API / DB). Ponechte jej prázdný, pokud nechcete žádný limit. Toto je jediný
-ovladač, který řídí níže popsanou serializační vrstvu — nastavte jej na skutečnou
-souběžnost účtu (např. GLM ~1, MiniMax ~2).
+Každé připojení poskytovatele může deklarovat strop `max_concurrent` (`provider_connections.max_concurrent`, nastavený v připojení modal / API / DB). Ponechejte prázdné bez omezení. Toto je jediný knoflík, který řídí vrstvu serializace pod — nastavte ji na skutečnou souběžnost účtu (např. GLM ~ 1, MiniMax ~ 2).
-### Limity souběžnosti podle modelu (`modelConcurrency`)
+### Omezení souběžnosti podle modelu (`modelConcurrency`)
-Připojení může navíc deklarovat přesné limity souběžnosti pro jednotlivé modely
-uvnitř své mapy `rateLimitOverrides`:
+Připojení může dodatečně deklarovat přesné stropy souběžnosti podle modelu uvnitř své mapy `rateLimitOverrides` :
```json
{
@@ -319,71 +311,32 @@ uvnitř své mapy `rateLimitOverrides`:
}
```
-Nastavte je v modálním okně připojení (**Přepsání rate limitů → Limity
-souběžnosti podle modelu**, jeden `model=cap` na řádek) nebo pomocí
-`PATCH /api/providers/[id]` se stejnou strukturou JSON. Sémantika klíčů:
-
-- **Celé připojení vs. konkrétní model:** `maxConcurrent` zůstává sdíleným
- limitem celého připojení. Pokud platí obojí, obě brány se získají atomicky
- v rámci stejné složené brány (`global → provider → account → model`);
- výsledné chování odpovídá přísnějšímu z platných limitů.
-- **Přesná shoda klíče modelu:** klíčem je řetězec modelu předaný exekutoru po
- vyhodnocení směrování — obvykle holé upstreamové ID modelu (`glm-5`), nikoli
- klientský alias `provider/model` (`zai/glm-5` neodpovídá `glm-5`). Hodnoty
- představují limity souběžných požadavků v podobě kladných celých čísel.
-- **Místní fronta, žádné zjišťování:** přebytečné požadavky čekají v místní
- frontě se stávající sémantikou fronty/timeoutu (typované chyby přijetí
- `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). OmniRoute nezjišťuje ani
- neodvozuje upstreamové zásady — vynucuje přesné limity, které operátor
- nakonfiguroval. Nasycená brána modelu nikdy nezakáže poskytovatele a nikdy
- nevytvoří trvalé zablokování modelu; upstreamové chování 429/cooldown/fallback
- zůstává chybovou pojistkou.
-- **Rozsah na připojení a proces:** limity platí pro každé připojení v databázi
- a jsou uchovávány v paměti, takže dvě připojení používající stejný upstreamový
- klíč API se vzájemně nekoordinují.
-- **Nenastaveno znamená beze změny:** vynechání mapy (nebo ponechání pole
- v dashboardu prázdné) nepřidá žádnou bránu modelu. Příklad konfigurace bez
- uplatnění jakéhokoli univerzálního limitu poskytovatele:
+Nastavte jej v modálním připojení (** Sazbový limit přepíše → Omezení souběžnosti podle modelu** , jeden `model=cap` na řádek) nebo přes `PATCH /api/providers/[id]` se stejným tvarem JSON. Klíčová sémantika:
+
+- **Pro celé připojení vs pro konkrétní model:** `maxConcurrent` zůstává sdílený strop pro celé připojení. Když platí obě, obě hradla se získají atomicky ve stejném složeném hradlu (`global → provider → account → model`); efektivní chování je přísnější použitelný limit.
+- **Přesná shoda modelu a klíče:** klíčem je modelový řetězec předaný exekutoru po rozlišení směrování — normálně holé id modelu upstream (`glm-5`), nikoli alias `provider/model` na straně klienta (`zai/glm-5` neodpovídá `glm-5`). Hodnoty jsou limity kladných celých souběžných požadavků.
+- **Místní fronta, žádné zjišťování:** přebytečné požadavky se řadí do fronty lokálně se stávající sémantikou queue/timeout (chyby přijetí typu `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ). OmniRoute nezjišťuje ani neodvozuje upstream politiku — vynucuje přesné stropy nakonfigurované operátorem. Nasycená brána modelu nikdy nevyřadí poskytovatele z provozu a nikdy nevytvoří trvalé uzamčení modelu; chování 429/cooldown/fallback proti proudu zůstává pojistkou proti chybám.
+- **Na připojení, rozsah na proces:** caps jsou na databázové připojení a jsou uloženy v paměti, takže dvě připojení znovu používající stejný upstream klíč API se vzájemně nekoordinují.
+- **Nekonfigurováno znamená nezměněno:** vynechání mapy (nebo ponechání pole palubní desky prázdné) nepřidá žádnou modelovou bránu. Příklad konfigurace bez uplatnění limitu univerzálního poskytovatele:
```text
glm-5=1
glm-4.7=3
```
-### Serializace požadavků quota-share
-
-Když odeslání quota-share cílí na připojení, které deklaruje kladný
-`max_concurrent`, souběžné požadavky na daný **účet** jsou serializovány přes
-semafor na připojení (klíč `qsconn:`): přebytečné požadavky
-**čekají ve frontě** místo zahlcování účtu. Semafor je **fail-open** — nasycená
-fronta nebo timeout pokračuje bez slotu, místo aby kdykoli odmítl odeslatelný
-požadavek. Přepíná se v **Nastavení → Odolnost → Souběžnost quota-share na
-připojení** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, ve výchozím
-nastavení zapnuto). Bez limitu `max_concurrent` zůstává chování nezměněné.
-
-> Směrovací brána quota-share (`selectQuotaShareTarget`, DRR + P2C) je sama
-> o sobě fail-open a pouze _snižuje prioritu_ připojení, které je na limitu —
-> s poolem s jediným připojením nemůže tvrdě omezit, takže právě tento semafor
-> skutečně zadržuje záplavu.
-
-### Opakování combo s ohledem na cooldown
-
-U každé strategie combo (pokud je povolena) požadavek, který by vyústil ve 429
-kvůli KRÁTKÉMU přechodnému cooldownu, vyčká jeho vypršení a znovu se odešle,
-místo aby vrátil 429 — to pokrývá okna TPM/RPM třídy Gemini (~60s retry-after)
-u vícemodelových combo, např. když oba cíle 2modelového komba narazí na rate
-limit daného modelu. Omezeno parametry `comboCooldownWait` (`enabled`,
-`maxWaitMs`, `maxAttempts`, `budgetMs`) v **Nastavení → Odolnost**. Nikdy nečeká
-při `quota_exhausted` (zamčeno do půlnoci) nebo z důvodů auth/not-found.
-
-Stejná brána pokrývá i případ před odesláním (#16319): když jsou všechny cíle
-komba přeskočeny ještě před jakýmkoli pokusem, protože jejich model je v krátkém
-přechodném zablokování, větev s nulovým počtem pokusů počká na vypršení zámku za
-stejných limitů a znovu odešle, místo aby odpověděla `503 ALL_TARGETS_SKIPPED`
-bez nápovědy. Když není čekání povoleno (vyčerpán limit, pokusy nebo rozpočet,
-nebo je funkce vypnutá), koncová odpověď se povýší na `429 rate_limit_error`
-nesoucí `retry_after` / `reset_at` z nejbližšího vypršení přechodného zámku;
-zámky kvóty, auth a not-found si ponechávají 503 bez nápovědy.
+### Serializace požadavku na sdílení kvót
+
+Když odeslání sdílení kvóty cílí na připojení, které deklaruje kladné `max_concurrent`, souběžné požadavky na toto připojení** účet** jsou serializovány prostřednictvím semaforu pro jednotlivá připojení (klíč `qsconn:`): nadměrné požadavky** čekat ve frontě** místo zahlcení účtu. To je** fail-open** — nasycená fronta nebo časový limit pokračuje bez slotu, spíše než kdybyste odmítli odeslat požadavek. Zapnout** Nastavení → Odolnost → Souběžnost sdílení kvót na připojení** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, výchozí zapnuto). Bez omezení `max_concurrent` se chování nezmění.
+
+> Směrovací brána pro sdílení kvót (`selectQuotaShareTarget`, DRR + P2C) je sama o sobě otevřená při selhání a pouze _deprioritizuje_ připojení typu at-cap — s fondem jediného připojení, který nelze pevně omezit, takže tento semafor je to, co ve skutečnosti obsahuje záplavu.
+
+### Opakování kombinovaného cooldown-aware
+
+Pro každou kombinovanou strategii (je-li povolena) čeká požadavek, který vykrystalizuje 429 pro přechodné zchlazení SHORT, a znovu odešle místo vrácení 429 — což se vztahuje na okna TPM/RPM třídy Gemini (~ 60s opakování po) na kombech s více modely, např. oba cíle dosažení limitu komba 2 na model. Ohraničeno `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) v** Nastavení → Odolnost** . Nikdy nečeká na důvody `quota_exhausted` (zamčené do půlnoci) nebo auth/not-found.
+
+Kombinace se může odhlásit pomocí `config.comboCooldownWaitEnabled: false`. Pouze doslovné `false` deaktivuje tato sdílená kombinovaná čekání (poodeslání cooldown a pre-dispatch circuit-open/model-lock čekání) a jejich prodloužení limitu čekání-rozpočet-timeout. Chybějící nebo `true` zachovává globální politiku; `true` nemůže povolit globálně zakázané čekání. Explicitní `targetTimeoutMs` stále vyhrává. Toto odhlášení nemění samostatné čekání před odesláním otočného kolíku nativního kódu.
+
+Stejná brána pokrývá případ před odesláním (#16319): když je každý cíl komba přeskočen předtím, než dojde k jakémukoli pokusu, protože jeho model se nachází v krátkém přechodném zablokování, cesta nulového pokusu čeká na uzamčení pod stejnými stropy a znovu se odešle, místo aby odpovídala na `503 ALL_TARGETS_SKIPPED` bez náznaku. Když není povoleno žádné čekání (vyčerpání stropu, pokusu nebo rozpočtu nebo funkce vypnuta), odezva terminálu se upgraduje na `429 rate_limit_error` nesoucí `retry_after` / `reset_at` od nejbližšího vypršení platnosti dočasného zámku; kvóta, auth a nenalezené zámky udržují bez nápovědy 503.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/cs/docs/guides/USER_GUIDE.md b/docs/i18n/cs/docs/guides/USER_GUIDE.md
index c9aea54c4878..5447f5b3d9ae 100644
--- a/docs/i18n/cs/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/cs/docs/guides/USER_GUIDE.md
@@ -611,55 +611,55 @@ post_install() {
Zobrazit všechny dostupné modely
-> Níže uvedený seznam je sestaven z `open-sse/config/providerRegistry.ts` pro v3.8.0. Cloudové katalogy (Gemini, OpenRouter atd.) se synchronizují dynamicky — pro úplný živý katalog otevřete **Přehled → Poskytovatelé → [poskytovatel] → Dostupné modely** nebo zavolejte `GET /api/models/catalog`.
+> Níže uvedený seznam je kurátorem `open-sse/config/providerRegistry.ts` pro v3.8.0. Cloudové katalogy (Gemini, OpenRouter atd.) jsou synchronizovány dynamicky — pro otevření plného živého katalogu** Ovládací panel → Poskytovatelé → [poskytovatel] → Dostupné modely** nebo zavolejte `GET /api/models/catalog`.
>
-> Pokud vestavěný seznam některého poskytovatele zastará, použijte na téže stránce **Import z /models** (nebo povolte **Automatickou synchronizaci**) pro načtení živého upstream katalogu. Toto bylo ověřeno ve v3.8.50 pro LLM7.io (`gemini-3.1-flash-lite`) a UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); anonymní přístup Pollinations zůstal během stejného testovacího kola omezen na straně upstreamu.
+> Pokud se vestavěný seznam poskytovatele posunul, použijte** Import z /models** na této stránce (nebo povolit** Automatická synchronizace** ), chcete-li stáhnout živý upstream katalog. To bylo ověřeno ve verzi 3.8.50 pro LLM7.io (`gemini-3.1-flash-lite`) a UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Anonymní přístup k opylování zůstal během stejného testu omezen.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude kód (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ úrovně úsilí: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` ( úrovně úsilí + : `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth ZDARMA: použijte živý katalog zobrazený v **Přehled → Poskytovatelé → Kiro → Dostupné modely**. Dostupnost závisí na účtu a tarifu.
+**Kiro (`kr/`)** — FREE OAuth: použijte živý katalog uvedený pod** Dashboard → Poskytovatelé → Kiro → Dostupné modely** . Dostupnost závisí na účtu a plánu.
-**Qoder (`if/`)** — OAuth ZDARMA: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
-**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — 0,2–0,6 $/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
+**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
-**MiniMax (`minimax/`, `minimax-cn/`)** — 0,2 $/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
+**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — 9 $/měs. paušálně nebo za použití: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo ploché nebo na použití: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — API klíč: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Ultrarychlé: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Ultra-rychlé: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Nativní Grok: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok nativní: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Hostováno v EU: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — hostované v EU: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Rozšířené o vyhledávání: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**zmatenost (`pplx/`)** — Rozšířené vyhledávání: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
**Together AI (`together/`)** — Open-source: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (zdarma), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Rychlá inference: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Rychlé vyvozování: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
**Cerebras (`cerebras/`)** — Wafer-scale: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Zaměřené na RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — zaměřené na RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Podnikové: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Synchronizováno živě pro každý API klíč od Googlu — žádný statický seznam. Připojte klíč v **Přehled → Poskytovatelé** a poté pomocí **Dostupné modely** importujte aktuální katalog (např. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : Synchronizováno živě na klíč API ze Google — žádný statický seznam. Připojte klíč** Poskytovatelé řídicího panelu →** pak použijte** Dostupné modely** pro import aktuálního katalogu (např. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Ostatní kompatibilní poskytovatelé** (výběr): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (přes `aws-bedrock`), `azure-ai`, `openrouter` (průchozí katalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Každý udržuje vlastní seznam modelů v `providerRegistry.ts` a lze jej automaticky synchronizovat, pokud poskytovatel zpřístupňuje endpoint `/models`.
+**Další kompatibilní poskytovatelé** (vybrané): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (přes `aws-bedrock`), `azure-ai`, `openrouter` (průchozí katalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21` `gigachat` Každý si udržuje svůj vlastní seznam modelů v `providerRegistry.ts` a může být automaticky synchronizován, když poskytovatel vystaví koncový bod `/models`.
-**Poznámka k ID modelů:** OmniRoute používá nativní ID poskytovatelů (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Některá ID obsahují verze s tečkami, protože tak je očekává upstream API. Pokud model není uveden výše, spusťte `omniroute models --search ` nebo zavolejte `GET /api/models/catalog` pro ověření dostupnosti.
+**Poznámka k modelu IDs:** OmniRoute používá IDs nativní poskytovatele (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Některé IDs obsahují tečkované verze, protože je očekává API proti proudu. Pokud model není uveden výše, spusťte `omniroute models --search ` nebo stiskněte `GET /api/models/catalog` a potvrďte dostupnost.
diff --git a/docs/i18n/da/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/da/docs/architecture/RESILIENCE_GUIDE.md
index 4418edcfdb83..ba335311ef98 100644
--- a/docs/i18n/da/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/da/docs/architecture/RESILIENCE_GUIDE.md
@@ -283,25 +283,17 @@ lockout-_tilstand_ er flygtig.
---
-## 4. Samtidighedsstyring for quota-share (v3.8.36)
+## 4. Samtidig kontrol med kvoteandele (v3.8.36)
-Abonnementskonti (GLM, MiniMax osv.) accepterer ofte kun ~1–3 samtidige
-forespørgsler; overskrides det, udløses 429'ere og cooldowns. Dette er særligt
-kritisk ved **quota-share**-kombinationer (`qtSd/…`), hvor flere API-nøgler
-deler én upstream-konto. Tre lag forhindrer, at en delt konto bliver oversvømmet.
+Abonnementskonti (GLM, MiniMax, osv.) accepterer ofte kun ~ 1-3 samtidige anmodninger; overskridelse udløser 429s og nedkøling. Dette er akut under** kvote-andel** (`qtSd/…`) combos, hvor flere API nøgler deler én upstream-konto. Tre lag forhindrer en delt konto i at blive oversvømmet.
-### Loft over samtidighed pr. forbindelse (`max_concurrent`)
+### Per-forbindelse samtidighedsloft (`max_concurrent`)
-Hver udbyderforbindelse kan deklarere et `max_concurrent`-loft
-(`provider_connections.max_concurrent`, indstilles i forbindelsesmodalen /
-API'et / databasen). Lad feltet stå tomt for ingen grænse. Dette er den ene
-knap, der driver serialiseringslaget nedenfor — indstil det til kontoens
-reelle samtidighed (f.eks. GLM ~1, MiniMax ~2).
+Hver udbyderforbindelse kan erklære et `max_concurrent` loft (`provider_connections.max_concurrent`, indstillet i forbindelsesmodal / API / DB). Lad det stå tomt uden grænser. Dette er den enkelte knap, der driver serialiseringslaget under — sæt det til kontoens reelle samtidighed (f.eks. GLM ~ 1, MiniMax ~ 2).
-### Samtidighedslofter pr. model (`modelConcurrency`)
+### Konkurrencegrænser pr. model (`modelConcurrency`)
-En forbindelse kan desuden deklarere præcise samtidighedslofter pr. model
-inde i sit `rateLimitOverrides`-map:
+En forbindelse kan desuden erklære nøjagtige per-model samtidighedslofter inde i sit `rateLimitOverrides` kort:
```json
{
@@ -312,76 +304,32 @@ inde i sit `rateLimitOverrides`-map:
}
```
-Indstil det i forbindelsesmodalen (**Rate limit-tilsidesættelser →
-Samtidighedslofter pr. model**, én `model=cap` pr. linje) eller via
-`PATCH /api/providers/[id]` med samme JSON-struktur. Vigtig semantik:
-
-- **Forbindelsesdækkende vs. modelspecifik:** `maxConcurrent` forbliver det
- delte, forbindelsesdækkende loft. Når begge gælder, erhverves begge porte
- atomisk i samme sammensatte port
- (`global → provider → account → model`); den effektive adfærd er den
- strengeste gældende grænse.
-- **Eksakt match på modelnøgle:** nøglen er den modelstreng, der sendes til
- eksekvereren efter routingopløsning — normalt det rene upstream-model-id
- (`glm-5`), ikke et klientside-`provider/model`-alias (`zai/glm-5` matcher
- ikke `glm-5`). Værdier er lofter over samtidige forespørgsler som positive
- heltal.
-- **Lokal kø, ingen discovery:** overskydende forespørgsler stilles lokalt i
- kø med den eksisterende kø-/timeout-semantik (typede `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL`-adgangsfejl). OmniRoute opdager eller udleder ikke
- upstream-politik — den håndhæver præcis de lofter, operatøren har
- konfigureret. En mættet modelport deaktiverer aldrig udbyderen og skaber
- aldrig en permanent modellockout; upstream-429/cooldown/fallback-adfærd
- forbliver sikkerhedsnettet for fejl.
-- **Omfang pr. forbindelse, pr. proces:** lofter gælder pr. databaseforbindelse
- og opbevares i hukommelsen, så to forbindelser, der genbruger samme
- upstream-API-nøgle, ikke koordinerer med hinanden.
-- **Ukonfigureret betyder uændret:** udelades mappet (eller efterlades
- dashboard-feltet tomt), tilføjes ingen modelport. Eksempelkonfiguration
- uden at hævde nogen universel udbydergrænse:
+Indstil den i forbindelsesmodal (** Rate limit tilsidesætter → Per-model concurrency caps** , en `model=cap` pr. linje) eller via `PATCH /api/providers/[id]` med samme JSON form. Nøgle semantik:
+
+- **Forbindelsesdækkende vs modelspecifik:** `maxConcurrent` forbliver det delte loft over hele forbindelsen. Når begge gælder, erhverves begge porte atomisk i den samme sammensatte port (`global → provider → account → model`); den effektive adfærd er den strengere gældende grænse.
+- **Præcis model-nøgle match:** nøglen er modelstrengen, der sendes til eksekveren efter routingopløsning — normalt det blotte opstrøms model-id (`glm-5`), ikke et `provider/model` alias på klientsiden (`zai/glm-5` matcher ikke `glm-5`). Værdier er positive-heltals samtidige anmodningslofter.
+- **Lokal kø, ingen opdagelse:** overskydende anmodninger står i kø lokalt med den eksisterende queue/timeout semantik (indtastede `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` -adgangsfejl). OmniRoute opdager eller udleder ikke upstream-politik — den håndhæver de nøjagtige lofter, som operatøren har konfigureret. En mættet modelport deaktiverer aldrig udbyderen og skaber aldrig en permanent modellockout; opstrøms 429/cooldown/fallback adfærd forbliver fejlens bagstopper.
+- **Per-forbindelse, pr-proces omfang:** caps er pr. databaseforbindelse og holdes i hukommelsen, så to forbindelser, der genbruger den samme upstream API nøgle, koordinerer ikke med hinanden.
+- **Ukonfigureret betyder uændret:** udeladelse af kortet (eller lade dashboardfeltet stå tomt) tilføjer ingen modelport. Eksempel på konfiguration uden at hævde nogen universel udbydergrænse:
```text
glm-5=1
glm-4.7=3
```
-### Serialisering af quota-share-forespørgsler
-
-Når en quota-share-dispatch retter sig mod en forbindelse, der deklarerer en
-positiv `max_concurrent`, serialiseres samtidige forespørgsler til den
-pågældende **konto** gennem en semafor pr. forbindelse (nøgle
-`qsconn:`): overskydende forespørgsler **venter i køen** i stedet
-for at oversvømme kontoen. Den er **fail-open** — en mættet kø eller en timeout
-fortsætter uden en plads frem for nogensinde at afvise en forespørgsel, der kan
-dispatches. Slå til/fra under **Indstillinger → Robusthed → Quota-share-
-samtidighed pr. forbindelse** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`,
-slået til som standard). Uden et `max_concurrent`-loft er adfærden uændret.
-
-> Quota-share-routingporten (`selectQuotaShareTarget`, DRR + P2C) er i sig selv
-> fail-open og _nedprioriterer_ kun en forbindelse, der har nået loftet — med en
-> pool med kun én forbindelse kan den ikke begrænse hårdt, så det er denne
-> semafor, der rent faktisk inddæmmer oversvømmelsen.
-
-### Cooldown-bevidste genforsøg for kombinationer
-
-For enhver kombinationsstrategi (når den er aktiveret) afventer en forespørgsel,
-der ellers ville udkrystallisere sig til en 429 under en KORT forbigående
-cooldown, denne og dispatcher igen i stedet for at returnere 429'en — dette
-dækker Gemini-klassens TPM/RPM-vinduer (~60 s retry-after) på kombinationer med
-flere modeller, f.eks. når begge mål i en kombination med 2 modeller rammer en
-rate limit pr. model. Begrænset af `comboCooldownWait` (`enabled`, `maxWaitMs`,
-`maxAttempts`, `budgetMs`) under **Indstillinger → Robusthed**. Den venter
-aldrig på `quota_exhausted` (låst indtil midnat) eller auth-/not-found-årsager.
-
-Samme port dækker tilfældet før dispatch (#16319): når alle mål i en
-kombination springes over, før der gøres noget forsøg, fordi deres model
-befinder sig i en kort forbigående lockout, afventer nul-forsøgs-vejen låsen
-under samme lofter og dispatcher igen i stedet for at svare med en
-`503 ALL_TARGETS_SKIPPED` uden hint. Når ventning ikke er tilladt (loft, forsøg
-eller budget opbrugt, eller funktionen slået fra), opgraderes det endelige svar
-til `429 rate_limit_error` med `retry_after` / `reset_at` fra det tidligste
-udløb af en forbigående lås; kvote-, auth- og not-found-låse beholder 503'en
-uden hint.
+### Serialisering af anmodning om kvotedeling
+
+Når en kvotedelingsudsendelse er målrettet mod en forbindelse, der erklærer en positiv `max_concurrent`, samtidige anmodninger til den** konto** serialiseres gennem en per-forbindelse semafor (nøgle `qsconn:`): overskydende anmodninger** vente i køen** i stedet for at oversvømme kontoen. Det er det** fejl-åbn** — en mættet kø eller timeout fortsætter uden et slot i stedet for nogensinde at afvise en afsendelsesanmodning. Slå ind** Indstillinger → Resilience → Quota-share per-forbindelse samtidighed** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, standard slået til). Uden en `max_concurrent` cap er adfærden uændret.
+
+> Quota-share routing gate (`selectQuotaShareTarget`, DRR + P2C) er i sig selv fejlåben og _deprioriterer_ kun en at-cap-forbindelse — med en single-connection pool, den kan ikke hårdt begrænse, så denne semafor er det, der faktisk indeholder oversvømmelsen.
+
+### Genforsøg med combo cooldown-bevidst
+
+For hver kombinationsstrategi (når den er aktiveret), venter en anmodning, der ville krystallisere en 429 for en SHORT transient cooldown, den ud og afsendes igen i stedet for at returnere de 429 — Dette dækker Gemini-klasse TPM/RPM vinduer (~ 60s genforsøg efter) på kombinationer af flere modeller, f.eks. rammer begge mål for en model. Afgrænset af `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) i** Indstillinger → Resilience** . Den venter aldrig på `quota_exhausted` (låst indtil midnat) eller auth/not-found årsager.
+
+En combo kan fravælge med `config.comboCooldownWaitEnabled: false`. Kun bogstavelig `false` deaktiverer disse delte kombinationsventer (afkøling efter afsendelse og ventetider før afsendelse af circuit-open/model-lock ) og deres vente-budget timeout-gulvudvidelse. Mangler eller `true` bevarer den globale politik; `true` kan ikke aktivere globalt deaktiveret ventetid. En eksplicit `targetTimeoutMs` vinder stadig. Dette fravalg ændrer ikke den separate native-Codex turn-pin før afsendelse.
+
+Den samme gate dækker sagen før afsendelse (#16319): når hvert mål i en kombination springes over, før der gøres forsøg, fordi dens model sidder i en kort forbigående lockout, venter nul-forsøgsvejen låsningen ude under de samme lofter og sender igen, i stedet for at besvare en `503 ALL_TARGETS_SKIPPED` uden hints. Når ingen ventetid er tilladt (loft, forsøg eller budget opbrugt, eller funktionen er slået fra), opgraderes terminalsvaret til `429 rate_limit_error`, der bærer `retry_after` / `reset_at` fra det tidligste forbigående låseudløb; kvote-, godkendelses- og ikke-fundne låse holder den antydningsfrie 503.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/da/docs/guides/USER_GUIDE.md b/docs/i18n/da/docs/guides/USER_GUIDE.md
index 36e770016a12..a9319ebba59a 100644
--- a/docs/i18n/da/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/da/docs/guides/USER_GUIDE.md
@@ -607,42 +607,42 @@ Se [README](../README.md) for den komplette oversigt over miljøvariabler.
---
-## 📊 Tilgængelige modeller
+## 📊 tilgængelige modeller
Se alle tilgængelige modeller
-> Listen nedenfor er udvalgt fra `open-sse/config/providerRegistry.ts` for v3.8.0. Cloud-kataloger (Gemini, OpenRouter osv.) synkroniseres dynamisk — for at se hele live-kataloget åbn **Dashboard → Udbydere → [udbyder] → Tilgængelige modeller** eller kald `GET /api/models/catalog`.
+> Listen nedenfor er kurateret fra `open-sse/config/providerRegistry.ts` til v3.8.0. Cloud-kataloger (Gemini, OpenRouter, osv.) synkroniseres dynamisk — for hele live-kataloget åbent** Dashboard → Udbydere → [udbyder] → Tilgængelige modeller** eller ring til `GET /api/models/catalog`.
>
-> Hvis en udbyders indbyggede liste er kommet ud af trit, kan du bruge **Importér fra /models** på den pågældende side (eller aktivere **Automatisk synkronisering**) for at hente det aktuelle upstream-katalog. Dette blev verificeret i v3.8.50 for LLM7.io (`gemini-3.1-flash-lite`) og UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); anonym adgang til Pollinations forblev begrænset fra upstreams side under samme testrunde.
+> Hvis en udbyders indbyggede liste er forsvundet, skal du bruge** Importer fra /models** på den side (eller aktiver** Auto-synkronisering** ) for at trække live upstream-kataloget. Dette blev verificeret i v3.8.50 for LLM7.io (`gemini-3.1-flash-lite`) og UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Den anonyme adgang til bestøvning forblev opstrøms begrænset under det samme testpas.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude -kode (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort-niveauer: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ indsatsniveauer: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — GRATIS OAuth: Brug live-kataloget, der vises under **Dashboard → Udbydere → Kiro → Tilgængelige modeller**. Tilgængeligheden afhænger af kontoen og abonnementet.
+**Kiro (`kr/`)** — FREE OAuth: brug live-kataloget vist under** Dashboard → Udbydere → Kiro → Tilgængelige modeller** . Tilgængelighed afhænger af kontoen og planen.
-**Qoder (`if/`)** — GRATIS OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/md. fast pris eller pr. brug: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo flad eller pr-brug: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — API-nøgle: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API nøgle: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Ultra-hurtig: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Ultrahurtig: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok-nativ: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok native: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU-hostet: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU-hostet: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Søgeunderstøttet: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Forvirring (`pplx/`)** — Search-augmented: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Open source: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (gratis), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — Open-source: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (gratis), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
**Fireworks AI (`fireworks/`)** — Hurtig inferens: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
@@ -654,13 +654,13 @@ Se [README](../README.md) for den komplette oversigt over miljøvariabler.
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Synkroniseres live pr. API-nøgle fra Google — ingen statisk liste. Tilføj en nøgle under **Dashboard → Udbydere**, og brug derefter **Tilgængelige modeller** til at importere det aktuelle katalog (f.eks. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : Synkroniseret live pr. API -nøgle fra Google — ingen statisk liste. Tilslut en nøgle ind** Dashboard → udbydere** brug derefter** Tilgængelige modeller** for at importere det aktuelle katalog (f.eks. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Andre kompatible udbydere** (udvalgte): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (passthrough-katalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Hver enkelt vedligeholder sin egen modelliste i `providerRegistry.ts` og kan autosynkroniseres, når udbyderen eksponerer et `/models`-endpoint.
+**Andre kompatible udbydere** (valgt): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (gennemgangskatalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink` `nous-research`, `friendliai`, `reka`, `volcengine`, `ai21` `gigachat` Hver vedligeholder sin egen modelliste i `providerRegistry.ts` og kan automatisk synkroniseres, når udbyderen afslører et `/models` slutpunkt.
-**Bemærkning om model-ID'er:** OmniRoute bruger udbyder-native ID'er (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Nogle ID'er indeholder versioner med punktummer, fordi det er sådan, upstream-API'et forventer dem. Hvis en model ikke er anført ovenfor, kør `omniroute models --search ` eller kald `GET /api/models/catalog` for at bekræfte tilgængeligheden.
+**Bemærk om model IDs:** OmniRoute bruger udbyder-native IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Nogle IDs inkluderer prikkede versioner, fordi det er sådan, opstrøms API forventer dem. Hvis en model ikke er angivet ovenfor, skal du køre `omniroute models --search ` eller trykke på `GET /api/models/catalog` for at bekræfte tilgængeligheden.
diff --git a/docs/i18n/de/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/de/docs/architecture/RESILIENCE_GUIDE.md
index fe85d473e260..45b450ab1688 100644
--- a/docs/i18n/de/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/de/docs/architecture/RESILIENCE_GUIDE.md
@@ -291,26 +291,17 @@ Lockout-_Zustand_ ist ephemer.
---
-## 4. Quota-Share-Parallelitätssteuerung (v3.8.36)
+## 4. Quota-Share-Parallelitätskontrolle (v3.8.36)
-Abonnement-Konten (GLM, MiniMax usw.) akzeptieren oft nur ~1–3 gleichzeitige
-Anfragen; eine Überschreitung löst 429-Fehler und Cooldowns aus. Besonders akut
-ist dies bei **Quota-Share**-Kombos (`qtSd/…`), bei denen sich mehrere
-API-Schlüssel ein Upstream-Konto teilen. Drei Ebenen verhindern, dass ein
-geteiltes Konto überflutet wird.
+Abonnementkonten (GLM, MiniMax usw.) akzeptieren häufig nur 1–3 gleichzeitige ~ Anfragen; Wird dieser Wert überschritten, werden 429 Sekunden und Abklingzeiten ausgelöst. Das ist akut unter** Quotenanteil** (`qtSd/…`)-Kombinationen, bei denen sich mehrere API Schlüssel ein Upstream-Konto teilen. Drei Schichten verhindern, dass ein gemeinsames Konto überflutet wird.
-### Parallelitätslimit pro Verbindung (`max_concurrent`)
+### Parallelitätsobergrenze pro Verbindung (`max_concurrent`)
-Jede Provider-Verbindung kann ein `max_concurrent`-Limit deklarieren
-(`provider_connections.max_concurrent`, gesetzt im Verbindungsmodal / per API / DB).
-Leer lassen für kein Limit. Dies ist der zentrale Regler, der die unten
-beschriebene Serialisierungsebene steuert – auf die tatsächliche Parallelität
-des Kontos setzen (z. B. GLM ~1, MiniMax ~2).
+Jede Anbieterverbindung kann eine `max_concurrent` Obergrenze deklarieren (`provider_connections.max_concurrent`, festgelegt im Verbindungsmodal / API / DB). Lassen Sie es leer, damit es keine Begrenzung gibt. Dies ist der einzelne Knopf, der die darunter liegende Serialisierungsschicht steuert. — stellt ihn auf die tatsächliche Parallelität des Kontos ein (z. B. GLM ~ 1, MiniMax ~ 2).
-### Parallelitätslimits pro Modell (`modelConcurrency`)
+### Parallelitätsobergrenzen pro Modell (`modelConcurrency`)
-Eine Verbindung kann zusätzlich exakte Parallelitätslimits pro Modell
-innerhalb ihrer `rateLimitOverrides`-Map deklarieren:
+Eine Verbindung kann zusätzlich in ihrer `rateLimitOverrides` -Karte genaue Obergrenzen für die Parallelität pro Modell deklarieren:
```json
{
@@ -321,79 +312,32 @@ innerhalb ihrer `rateLimitOverrides`-Map deklarieren:
}
```
-Im Verbindungsmodal einstellen (**Rate-Limit-Überschreibungen → Parallelitätslimits
-pro Modell**, ein `model=cap` pro Zeile) oder über
-`PATCH /api/providers/[id]` mit derselben JSON-Struktur. Wichtige Semantik:
-
-- **Verbindungsweit vs. modellspezifisch:** `maxConcurrent` bleibt das gemeinsame
- verbindungsweite Limit. Wenn beide gelten, werden beide Gates atomar
- im selben zusammengesetzten Gate erworben
- (`global → provider → account → model`); das effektive Verhalten entspricht dem
- strengeren anwendbaren Limit.
-- **Exakte Modellschlüssel-Übereinstimmung:** Der Schlüssel ist der Modellstring,
- der nach der Routing-Auflösung an den Executor übergeben wird – normalerweise
- die reine Upstream-Modell-ID (`glm-5`), nicht ein clientseitiger
- `provider/model`-Alias (`zai/glm-5` stimmt nicht mit `glm-5` überein). Werte
- sind positive ganzzahlige Obergrenzen für gleichzeitige Anfragen.
-- **Lokale Einreihung, keine Erkennung:** Überschüssige Anfragen reihen sich lokal
- mit der bestehenden Warteschlangen-/Timeout-Semantik ein (typisierte
- `SEMAPHORE_TIMEOUT`- / `SEMAPHORE_QUEUE_FULL`-Zulassungsfehler). OmniRoute
- erkennt bzw. erschließt keine Upstream-Richtlinien – es erzwingt exakt die
- Obergrenzen, die der Betreiber konfiguriert hat. Ein gesättigtes Modell-Gate
- deaktiviert den Provider niemals und erzeugt niemals eine permanente
- Modellsperre; das Upstream-Verhalten bei 429/Cooldown/Fallback bleibt die
- letzte Fehlerabsicherung.
-- **Geltungsbereich pro Verbindung und Prozess:** Limits gelten pro
- Datenbankverbindung und werden im Speicher gehalten; zwei Verbindungen, die
- denselben Upstream-API-Schlüssel wiederverwenden, stimmen sich daher nicht
- untereinander ab.
-- **Nicht konfiguriert heißt unverändert:** Das Weglassen der Map (oder ein leer
- gelassenes Dashboard-Feld) fügt kein Modell-Gate hinzu. Beispielkonfiguration,
- ohne ein universelles Provider-Limit zu behaupten:
+Stellen Sie es im Verbindungsmodal ein (** Die Ratenbegrenzung setzt → -Parallelitätsobergrenzen pro Modell außer Kraft** , ein `model=cap` pro Zeile) oder über `PATCH /api/providers/[id]` mit der gleichen JSON Form. Schlüsselsemantik:
+
+- **Verbindungsweit vs. modellspezifisch:** `maxConcurrent` bleibt die gemeinsame verbindungsweite Obergrenze. Wenn beides zutrifft, werden beide Gates atomar im selben zusammengesetzten Gate (`global → provider → account → model`) erfasst; das effektive Verhalten ist der strengere anwendbare Grenzwert.
+- **Exakte Modell-Schlüssel-Übereinstimmung:** Der Schlüssel ist die Modellzeichenfolge, die nach der Routing-Auflösung an den Executor übergeben wird — ist normalerweise die nackte Upstream-Modell-ID (`glm-5`), kein clientseitiger `provider/model` Alias (`zai/glm-5` stimmt nicht mit `glm-5` überein). Bei den Werten handelt es sich um positive, ganzzahlige Obergrenzen für gleichzeitige Anforderungen.
+- **Lokale Warteschlange, keine Erkennung:** Überschüssige Anfragen werden lokal mit der vorhandenen queue/timeout Semantik in die Warteschlange gestellt (typisierte `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` Zulassungsfehler). OmniRoute erkennt oder leitet keine Upstream-Richtlinie ab, — erzwingt die genauen Obergrenzen, die der Betreiber konfiguriert hat. Ein gesättigtes Modelltor deaktiviert niemals den Anbieter und führt niemals zu einer dauerhaften Modellsperre. Das Upstream- 429/cooldown/fallback Verhalten bleibt der Fehler-Backstop.
+- **Umfang pro Verbindung, pro Prozess:** Die Obergrenzen gelten pro Datenbankverbindung und werden im Speicher gehalten, sodass zwei Verbindungen, die denselben Upstream- API Schlüssel wiederverwenden, nicht miteinander koordiniert werden.
+- **Unkonfiguriert bedeutet unverändert:** Wenn Sie die Karte weglassen (oder das Dashboard-Feld leer lassen), wird kein Modell-Gate hinzugefügt. Beispielkonfiguration ohne Durchsetzung eines Universal-Provider-Limits:
```text
glm-5=1
glm-4.7=3
```
-### Quota-Share-Anfragenserialisierung
-
-Wenn ein Quota-Share-Dispatch auf eine Verbindung zielt, die ein positives
-`max_concurrent` deklariert, werden gleichzeitige Anfragen an dieses **Konto**
-über ein Semaphor pro Verbindung serialisiert (Schlüssel `qsconn:`):
-Überschüssige Anfragen **warten in der Warteschlange**, statt das Konto zu
-überfluten. Der Mechanismus ist **fail-open** – eine volle Warteschlange oder ein
-Timeout setzt die Verarbeitung ohne Slot fort, statt jemals eine dispatchfähige
-Anfrage abzulehnen. Umschaltbar unter **Einstellungen → Resilienz →
-Quota-Share-Parallelität pro Verbindung**
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, standardmäßig
-aktiviert). Ohne ein `max_concurrent`-Limit bleibt das Verhalten unverändert.
-
-> Das Quota-Share-Routing-Gate (`selectQuotaShareTarget`, DRR + P2C) ist selbst
-> fail-open und stuft eine ausgelastete Verbindung lediglich _herab_ – bei einem
-> Pool mit nur einer Verbindung kann es kein hartes Limit durchsetzen, daher ist
-> dieses Semaphor das, was die Flut tatsächlich eindämmt.
-
-### Cooldown-bewusste Combo-Wiederholung
-
-Bei jeder Kombo-Strategie (sofern aktiviert) wartet eine Anfrage, die einen 429
-für einen KURZEN transienten Cooldown als Ergebnis fixieren würde, diesen ab und
-dispatcht erneut, statt den 429 zurückzugeben – dies deckt TPM/RPM-Fenster der
-Gemini-Klasse (~60s Retry-After) bei Multi-Modell-Kombos ab, etwa wenn beide
-Ziele einer 2-Modell-Kombo ein modellbezogenes Rate-Limit erreichen. Begrenzt
-durch `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`)
-unter **Einstellungen → Resilienz**. Es wartet niemals bei `quota_exhausted`
-(bis Mitternacht gesperrt) oder bei Authentifizierungs-/Nicht-gefunden-Gründen.
-
-Dasselbe Gate deckt den Pre-Dispatch-Fall ab (#16319): Wenn jedes Ziel einer
-Kombo übersprungen wird, bevor auch nur ein Versuch unternommen wurde, weil sich
-sein Modell in einer kurzen transienten Sperre befindet, wartet der
-Null-Versuch-Pfad die Sperre unter denselben Obergrenzen ab und dispatcht erneut,
-statt mit einem hinweislosen `503 ALL_TARGETS_SKIPPED` zu antworten. Wenn kein
-Warten erlaubt ist (Obergrenze, Versuche oder Budget erschöpft oder das Feature
-deaktiviert), wird die terminale Antwort auf `429 rate_limit_error` hochgestuft
-und trägt `retry_after` / `reset_at` vom frühesten Ablauf einer transienten
-Sperre; Quota-, Auth- und Nicht-gefunden-Sperren behalten die hinweislose 503 bei.
+### Serialisierung von Kontingentanteil-Anfragen
+
+Wenn ein Quota-Share-Dispatch auf eine Verbindung abzielt, die ein positives `max_concurrent` deklariert, werden gleichzeitige Anfragen an diese gesendet** Konto** werden über ein verbindungsspezifisches Semaphor (Schlüssel `qsconn:`) serialisiert: überschüssige Anfragen** in der Warteschlange warten** anstatt das Konto zu überschwemmen. Es ist** Fail-Open** Bei einer gesättigten Warteschlange oder einer Zeitüberschreitung wird — ohne einen Slot fortgesetzt, anstatt jemals eine zuteilbare Anfrage abzulehnen. Einschalten** Einstellungen → Resilience → Kontingentanteil pro Verbindung Parallelität** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, standardmäßig aktiviert). Ohne eine `max_concurrent` Obergrenze bleibt das Verhalten unverändert.
+
+> Das Quota-Share-Routing-Gate (`selectQuotaShareTarget`, DRR + P2C) ist selbst ausfallsicher und _depriorisiert_ nur eine At-Cap-Verbindung — mit einem Single-Connection-Pool, den es nicht hart begrenzen kann, daher ist dieses Semaphor das, was tatsächlich die Flut enthält.
+
+### Kombinierter, abklingzeitabhängiger Wiederholungsversuch
+
+Für jede Combo-Strategie (sofern aktiviert) wartet eine Anfrage, die einen 429 für eine vorübergehende SHORT Abklingzeit kristallisieren würde, ab und sendet sie erneut, anstatt den 429 — zurückzugeben. Dies deckt TPM/RPM Fenster der Gemini-Klasse (~ 60 Sekunden Wiederholung nach) bei Multi-Modell-Combos ab, z. B. wenn beide Ziele einer 2-Modell-Combo ein Ratenlimit pro Modell erreichen. Begrenzt durch `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) in** Einstellungen → Resilienz** . Es wird nie auf `quota_exhausted` (bis Mitternacht gesperrt) oder auth/not-found Gründe gewartet.
+
+Eine Kombination kann mit `config.comboCooldownWaitEnabled: false` deaktiviert werden. Nur das wörtliche `false` deaktiviert diese gemeinsamen Combo-Wartezeiten (Abklingzeit nach dem Versand und circuit-open/model-lock -Wartezeiten vor dem Versand) und ihre Verlängerung des Wartebudget-Timeouts. Fehlt oder `true` bleibt die globale Richtlinie erhalten; `true` kann das global deaktivierte Warten nicht aktivieren. Ein explizites `targetTimeoutMs` gewinnt immer noch. Durch diese Abmeldung ändert sich nichts an der separaten Wartezeit vor dem Versand des Native-Codex-Turn-Pins.
+
+Das gleiche Gate deckt den Pre-Dispatch-Fall ab (#16319): Wenn jedes Ziel einer Combo übersprungen wird, bevor irgendein Versuch unternommen wird, weil sich das Modell in einer kurzen vorübergehenden Sperre befindet, wartet der Null-Versuchs-Pfad die Sperre unter denselben Obergrenzen ab und sendet erneut, anstatt auf ein `503 ALL_TARGETS_SKIPPED` ohne Hinweis zu antworten. Wenn keine Wartezeit zulässig ist (Obergrenze, Versuch oder Budget ausgeschöpft oder die Funktion deaktiviert), wird die Terminalantwort auf `429 rate_limit_error` aktualisiert und trägt `retry_after` / `reset_at` ab dem frühesten Ablauf der vorübergehenden Sperre; Kontingent-, Authentifizierungs- und nicht gefundene Sperren behalten den Hinweis-losen 503 bei.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/de/docs/guides/USER_GUIDE.md b/docs/i18n/de/docs/guides/USER_GUIDE.md
index 1e6c55cbd0f2..29434ff961e8 100644
--- a/docs/i18n/de/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/de/docs/guides/USER_GUIDE.md
@@ -611,55 +611,55 @@ Die vollständige Referenz der Umgebungsvariablen finden Sie in der [README](../
Alle verfügbaren Modelle anzeigen
-> Die folgende Liste wurde aus `open-sse/config/providerRegistry.ts` für v3.8.0 zusammengestellt. Cloud-Kataloge (Gemini, OpenRouter usw.) werden dynamisch synchronisiert — den vollständigen Live-Katalog finden Sie unter **Dashboard → Providers → [provider] → Available Models** oder über einen Aufruf von `GET /api/models/catalog`.
+> Die folgende Liste wurde von `open-sse/config/providerRegistry.ts` für v3.8.0 zusammengestellt. Cloud-Kataloge (Gemini, OpenRouter usw.) werden dynamisch — synchronisiert, damit der vollständige Live-Katalog geöffnet ist** Dashboard → -Anbieter → [Anbieter] → Verfügbare Modelle** oder rufen Sie `GET /api/models/catalog`.
>
-> Wenn die integrierte Liste eines Anbieters nicht mehr aktuell ist, verwenden Sie auf dieser Seite **Import from /models** (oder aktivieren Sie **Auto-Sync**), um den aktuellen Upstream-Katalog zu übernehmen. Dies wurde in v3.8.50 für LLM7.io (`gemini-3.1-flash-lite`) und UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) verifiziert; der anonyme Zugriff auf Pollinations blieb im selben Testdurchlauf upstream-seitig eingeschränkt.
+> Wenn die integrierte Liste eines Anbieters abgewichen ist, verwenden Sie** Import aus /models** auf dieser Seite (oder aktivieren** Automatische Synchronisierung** ), um den Live-Upstream-Katalog abzurufen. Dies wurde in Version 3.8.50 für LLM7(`gemini-3.1-flash-lite`) und UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) überprüft; Der anonyme Zugriff auf Bestäubungen blieb während desselben Testdurchgangs flussaufwärts begrenzt.
-**Claude Code (`cc/`)** — Pro/Max-OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude -Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro-OAuth: `cx/gpt-5.5` (+ Effort-Stufen: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ -Aufwandsstufen: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — KOSTENLOSES OAuth: Verwenden Sie den Live-Katalog unter **Dashboard → Providers → Kiro → Available Models**. Die Verfügbarkeit hängt vom Konto und Tarif ab.
+**Kiro (`kr/`)** — FREE OAuth: Verwenden Sie den unten gezeigten Live-Katalog** Dashboard → Anbieter → Kiro → Verfügbare Modelle** . Die Verfügbarkeit hängt vom Konto und Plan ab.
-**Qoder (`if/`)** — KOSTENLOSES OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/Monat pauschal oder nutzungsbasiert: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo pauschal oder pro Verwendung: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — API-Schlüssel: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API Schlüssel: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
**Groq (`groq/`)** — Ultraschnell: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
**xAI (`xai/`)** — Grok nativ: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — In der EU gehostet: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU-gehostet: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Suchgestützt: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Ratlosigkeit (`pplx/`)** — Sucherweitert: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
**Together AI (`together/`)** — Open-Source: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (kostenlos), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
**Fireworks AI (`fireworks/`)** — Schnelle Inferenz: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Wafer-Scale: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Wafer-Maßstab: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
**Cohere (`cohere/`)** — RAG-fokussiert: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Unternehmen: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Wird pro API-Schlüssel live von Google synchronisiert — keine statische Liste. Verbinden Sie einen Schlüssel unter **Dashboard → Providers** und importieren Sie anschließend über **Available Models** den aktuellen Katalog (z. B. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : Live-Synchronisierung per API -Schlüssel von Google — keine statische Liste. Schließen Sie einen Schlüssel an** Dashboard → Anbieter** dann verwenden** Verfügbare Modelle** um den aktuellen Katalog zu importieren (z. B. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Weitere kompatible Anbieter** (Auswahl): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (über `aws-bedrock`), `azure-ai`, `openrouter` (Passthrough-Katalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Jeder Anbieter pflegt seine eigene Modellliste in `providerRegistry.ts` und kann automatisch synchronisiert werden, sofern er einen `/models`-Endpunkt bereitstellt.
+**Andere kompatible Anbieter** (ausgewählt): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (über `aws-bedrock`), `azure-ai`, `openrouter` (Passthrough-Katalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Jedes verwaltet seine eigene Modellliste in `providerRegistry.ts` und kann automatisch synchronisiert werden, wenn der Anbieter einen `/models` -Endpunkt verfügbar macht.
-**Hinweis zu Modell-IDs:** OmniRoute verwendet anbiereigene IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Einige IDs enthalten Versionen mit Punkten, weil die Upstream-API sie in dieser Form erwartet. Wenn ein Modell oben nicht aufgeführt ist, führen Sie `omniroute models --search ` aus oder rufen Sie `GET /api/models/catalog` auf, um die Verfügbarkeit zu prüfen.
+**Hinweis zum Modell IDs:** OmniRoute verwendet anbieternatives IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Einige IDs enthalten gepunktete Versionen, da sie vom Upstream API so erwartet werden. Wenn ein Modell oben nicht aufgeführt ist, führen Sie `omniroute models --search ` aus oder drücken Sie `GET /api/models/catalog` um die Verfügbarkeit zu bestätigen.
diff --git a/docs/i18n/el/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/el/docs/architecture/RESILIENCE_GUIDE.md
index ab9f4ee25a6d..cfca1f92e39c 100644
--- a/docs/i18n/el/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/el/docs/architecture/RESILIENCE_GUIDE.md
@@ -285,26 +285,17 @@ _κατάσταση_ κλειδώματος είναι εφήμερη.
---
-## 4. Έλεγχος συγχρονισμού Quota-Share (v3.8.36)
+## 4. Έλεγχος συγχρονισμού ποσοστώσεων-μεριδίων (v3.8.36)
-Οι λογαριασμοί συνδρομής (GLM, MiniMax κ.λπ.) συχνά δέχονται μόνο ~1–3 ταυτόχρονα
-αιτήματα· η υπέρβαση αυτού προκαλεί σφάλματα 429 και περιόδους cooldown. Το πρόβλημα
-είναι οξύ στα combos **quota-share** (`qtSd/…`), όπου πολλά API keys μοιράζονται
-έναν upstream λογαριασμό. Τρία επίπεδα εμποδίζουν την πλημμύρα ενός κοινόχρηστου
-λογαριασμού.
+Οι λογαριασμοί συνδρομής (GLM, MiniMax, κ.λπ.) συχνά δέχονται μόνο ~ 1–3 ταυτόχρονα αιτήματα. Η υπέρβαση αυτή ενεργοποιεί τα 429 δευτερόλεπτα και τα cooldowns. Αυτό είναι οξύ κάτω** ποσόστωση-μερίδιο** (`qtSd/…`) συνδυασμοί, όπου πολλά πλήκτρα API μοιράζονται έναν ανοδικό λογαριασμό. Τρία επίπεδα προστατεύουν έναν κοινόχρηστο λογαριασμό από το να πλημμυρίσει.
-### Όριο συγχρονισμού ανά σύνδεση (`max_concurrent`)
+### Καπάκι συγχρονισμού ανά σύνδεση (`max_concurrent`)
-Κάθε σύνδεση παρόχου μπορεί να δηλώσει ένα ανώτατο όριο `max_concurrent`
-(`provider_connections.max_concurrent`, ορίζεται στο modal σύνδεσης / API / DB).
-Αφήστε το κενό για κανένα όριο. Αυτό είναι το μοναδικό χειριστήριο που οδηγεί το
-επίπεδο σειριοποίησης παρακάτω — ορίστε το στον πραγματικό συγχρονισμό του
-λογαριασμού (π.χ. GLM ~1, MiniMax ~2).
+Κάθε σύνδεση παρόχου μπορεί να δηλώσει ένα ανώτατο όριο `max_concurrent` (`provider_connections.max_concurrent`, που ορίζεται στη σύνδεση modal / API / DB). Αφήστε το κενό χωρίς όριο. Αυτό είναι το μεμονωμένο κουμπί που οδηγεί το επίπεδο σειριοποίησης κάτω από — ρυθμίστε το στην πραγματική ταυτόχρονη λειτουργία του λογαριασμού (π.χ. GLM ~ 1, MiniMax ~ 2).
-### Όρια συγχρονισμού ανά μοντέλο (`modelConcurrency`)
+### Ανώτατα όρια συγχρονισμού ανά μοντέλο (`modelConcurrency`)
-Μια σύνδεση μπορεί επιπλέον να δηλώσει ακριβή ανώτατα όρια συγχρονισμού ανά
-μοντέλο μέσα στο map `rateLimitOverrides`:
+Μια σύνδεση μπορεί επιπλέον να δηλώνει ακριβή ανώτατα όρια συγχρονισμού ανά μοντέλο μέσα στον χάρτη `rateLimitOverrides` της:
```json
{
@@ -315,79 +306,32 @@ _κατάσταση_ κλειδώματος είναι εφήμερη.
}
```
-Ορίστε το στο modal σύνδεσης (**Rate limit overrides → Per-model
-concurrency caps**, ένα `model=cap` ανά γραμμή) ή μέσω
-`PATCH /api/providers/[id]` με το ίδιο σχήμα JSON. Βασική σημασιολογία:
-
-- **Σε επίπεδο σύνδεσης έναντι ανά μοντέλο:** το `maxConcurrent` παραμένει το
- κοινό ανώτατο όριο σε επίπεδο σύνδεσης. Όταν ισχύουν και τα δύο, και οι δύο
- πύλες αποκτώνται ατομικά στην ίδια σύνθετη πύλη
- (`global → provider → account → model`)· η πραγματική συμπεριφορά είναι το
- αυστηρότερο ισχύον όριο.
-- **Ακριβής αντιστοίχιση κλειδιού μοντέλου:** το κλειδί είναι η συμβολοσειρά
- μοντέλου που περνά στον executor μετά την επίλυση δρομολόγησης — συνήθως το
- σκέτο upstream id μοντέλου (`glm-5`), όχι ένα ψευδώνυμο `provider/model` από
- την πλευρά του πελάτη (το `zai/glm-5` δεν αντιστοιχεί στο `glm-5`). Οι τιμές
- είναι θετικοί ακέραιοι που ορίζουν ανώτατα όρια ταυτόχρονων αιτημάτων.
-- **Τοπική ουρά αναμονής, χωρίς ανακάλυψη:** τα πλεονάζοντα αιτήματα μπαίνουν
- σε τοπική ουρά με την υπάρχουσα σημασιολογία ουράς/timeout (τυποποιημένα
- σφάλματα αποδοχής `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). Το OmniRoute
- δεν ανακαλύπτει ούτε συνάγει την upstream πολιτική — επιβάλλει ακριβώς τα
- ανώτατα όρια που διαμόρφωσε ο χειριστής. Μια κορεσμένη πύλη μοντέλου δεν
- απενεργοποιεί ποτέ τον πάροχο και δεν δημιουργεί ποτέ μόνιμο κλείδωμα
- μοντέλου· η upstream συμπεριφορά 429/cooldown/fallback παραμένει το τελευταίο
- δίχτυ ασφαλείας για τα σφάλματα.
-- **Εύρος ανά σύνδεση, ανά διεργασία:** τα όρια ισχύουν ανά εγγραφή σύνδεσης
- στη βάση δεδομένων και διατηρούνται στη μνήμη, επομένως δύο συνδέσεις που
- επαναχρησιμοποιούν το ίδιο upstream API key δεν συντονίζονται μεταξύ τους.
-- **Χωρίς διαμόρφωση σημαίνει αμετάβλητη συμπεριφορά:** η παράλειψη του map
- (ή το κενό πεδίο στον πίνακα ελέγχου) δεν προσθέτει καμία πύλη μοντέλου.
- Παράδειγμα διαμόρφωσης χωρίς να επιβάλλεται κανένα καθολικό όριο παρόχου:
+Ρυθμίστε το στον τρόπο σύνδεσης (** Το όριο τιμής παρακάμπτει τα όρια συγχρονισμού → ανά μοντέλο** , ένα `model=cap` ανά γραμμή) ή μέσω `PATCH /api/providers/[id]` με το ίδιο σχήμα JSON. Βασική σημασιολογία:
+
+- **Σε επίπεδο σύνδεσης έναντι συγκεκριμένου μοντέλου:** `maxConcurrent` παραμένει το κοινό ανώτατο όριο σε όλη τη σύνδεση. Όταν ισχύουν και τα δύο, και οι δύο πύλες αποκτώνται ατομικά στην ίδια σύνθετη πύλη (`global → provider → account → model`). η αποτελεσματική συμπεριφορά είναι το αυστηρότερο εφαρμοστέο όριο.
+- **Ακριβής αντιστοίχιση μοντέλου-κλειδιού:** Το κλειδί είναι η συμβολοσειρά μοντέλου που μεταβιβάστηκε στον εκτελεστή μετά τη δρομολόγηση της ανάλυσης — συνήθως το γυμνό αναγνωριστικό μοντέλου ανάντη (`glm-5`), όχι ένα ψευδώνυμο `provider/model` από την πλευρά του πελάτη (`zai/glm-5` δεν ταιριάζει με `glm-5`). Οι τιμές είναι θετικά ακέραια ανώτατα όρια ταυτόχρονων αιτημάτων.
+- **Τοπική ουρά, καμία ανακάλυψη:** υπερβολικά αιτήματα ουρά τοπικά με την υπάρχουσα σημασιολογία queue/timeout (πληκτρολογημένα σφάλματα αποδοχής `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ). OmniRoute δεν ανακαλύπτει ή δεν συνάγει την πολιτική ανάντη — επιβάλλει τα ακριβή ανώτατα όρια που έχει διαμορφώσει ο χειριστής. Μια πύλη κορεσμένου μοντέλου δεν απενεργοποιεί ποτέ τον πάροχο και δεν δημιουργεί ποτέ μόνιμο κλείδωμα μοντέλου. Ανοδική συμπεριφορά 429/cooldown/fallback παραμένει το σφάλμα backstop.
+- **Πεδίο ανά σύνδεση, ανά διεργασία:** Τα κεφαλαία είναι ανά σύνδεση βάσης δεδομένων και διατηρούνται στη μνήμη, επομένως δύο συνδέσεις που επαναχρησιμοποιούν το ίδιο κλειδί API upstream δεν συντονίζονται μεταξύ τους.
+- **Μη διαμορφωμένο σημαίνει αμετάβλητο:** Η παράλειψη του χάρτη (ή το να αφήσετε κενό το πεδίο του πίνακα εργαλείων) δεν προσθέτει πύλη μοντέλου. Παράδειγμα διαμόρφωσης χωρίς την επιβολή καθολικού ορίου παρόχου:
```text
glm-5=1
glm-4.7=3
```
-### Σειριοποίηση αιτημάτων quota-share
-
-Όταν μια αποστολή quota-share στοχεύει σύνδεση που δηλώνει θετικό
-`max_concurrent`, τα ταυτόχρονα αιτήματα προς αυτόν τον **λογαριασμό**
-σειριοποιούνται μέσω ενός σημαφόρου ανά σύνδεση (κλειδί `qsconn:`):
-τα πλεονάζοντα αιτήματα **περιμένουν στην ουρά** αντί να πλημμυρίζουν τον
-λογαριασμό. Είναι **fail-open** — μια κορεσμένη ουρά ή ένα timeout προχωρά
-χωρίς θέση, αντί να απορρίψει ποτέ ένα αίτημα που μπορεί να αποσταλεί.
-Εναλλαγή στα **Settings → Resilience → Quota-share per-connection
-concurrency** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`,
-προεπιλογή ενεργό). Χωρίς όριο `max_concurrent` η συμπεριφορά παραμένει
-αμετάβλητη.
-
-> Η πύλη δρομολόγησης quota-share (`selectQuotaShareTarget`, DRR + P2C) είναι
-> η ίδια fail-open και μόνο _υποβαθμίζει την προτεραιότητα_ μιας σύνδεσης που
-> έχει φτάσει στο όριο — με pool μίας σύνδεσης δεν μπορεί να επιβάλει σκληρό
-> όριο, οπότε αυτός ο σημαφόρος είναι που περιορίζει πραγματικά την πλημμύρα.
-
-### Επανάληψη combo με επίγνωση cooldown
-
-Για κάθε στρατηγική combo (όταν είναι ενεργή), ένα αίτημα που θα κατέληγε σε
-429 λόγω ΣΥΝΤΟΜΗΣ παροδικής περιόδου cooldown την αναμένει και επαναποστέλλει
-αντί να επιστρέψει το 429 — αυτό καλύπτει παράθυρα TPM/RPM τύπου Gemini
-(~60s retry-after) σε combos πολλαπλών μοντέλων, π.χ. όταν και οι δύο στόχοι
-ενός combo 2 μοντέλων συναντούν όριο ρυθμού ανά μοντέλο. Περιορίζεται από το
-`comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) στα
-**Settings → Resilience**. Δεν περιμένει ποτέ σε `quota_exhausted` (κλειδωμένο
-μέχρι τα μεσάνυχτα) ούτε σε αιτίες auth/not-found.
-
-Η ίδια πύλη καλύπτει και την περίπτωση πριν από την αποστολή (#16319): όταν
-κάθε στόχος ενός combo παραλείπεται πριν γίνει οποιαδήποτε προσπάθεια, επειδή
-το μοντέλο του βρίσκεται σε σύντομο παροδικό κλείδωμα, η διαδρομή μηδενικών
-προσπαθειών αναμένει τη λήξη του κλειδώματος υπό τα ίδια ανώτατα όρια και
-επαναποστέλλει, αντί να απαντήσει με ένα `503 ALL_TARGETS_SKIPPED` χωρίς hint.
-Όταν δεν επιτρέπεται αναμονή (εξαντλήθηκε το ανώτατο όριο, οι προσπάθειες ή
-ο προϋπολογισμός, ή η δυνατότητα είναι απενεργοποιημένη), η τελική απόκριση
-αναβαθμίζεται σε `429 rate_limit_error` φέροντας `retry_after` / `reset_at`
-από την πρωιμότερη λήξη παροδικού κλειδώματος· τα κλειδώματα quota, auth και
-not-found διατηρούν το 503 χωρίς hint.
+### Σειριοποίηση αιτήματος μεριδίου ποσοστώσεων
+
+Όταν μια αποστολή μεριδίου ποσόστωσης στοχεύει μια σύνδεση που δηλώνει θετικό `max_concurrent`, ταυτόχρονα ζητούνται σε αυτήν** λογαριασμός** σειριοποιούνται μέσω ενός σηματοφόρου ανά σύνδεση (κλειδί `qsconn:`): επιπλέον αιτήματα** περίμενε στην ουρά** αντί να πλημμυρίσει ο λογαριασμός. Είναι** fail-open** — μια κορεσμένη ουρά ή ένα χρονικό όριο λήξης προχωρά χωρίς υποδοχή αντί να απορρίπτεται ποτέ ένα αίτημα με δυνατότητα αποστολής. Εναλλαγή** Ρυθμίσεις → Ανθεκτικότητα → Συγχρονισμός ορίου-μερίδιο ανά σύνδεση** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, προεπιλογή ενεργοποιημένο). Χωρίς καπάκι `max_concurrent` η συμπεριφορά παραμένει αμετάβλητη.
+
+> Η πύλη δρομολόγησης quota-share (`selectQuotaShareTarget`, DRR + P2C) είναι από μόνη της ανοιχτή για αποτυχία και μόνο _deprioritizes_ μια σύνδεση at-cap — με μια πισίνα μονής σύνδεσης που δεν μπορεί να περιορίσει σκληρά, επομένως αυτός ο σηματοφόρος είναι αυτός που περιέχει στην πραγματικότητα το flood.
+
+### Επανάληψη σύνθετης ενημέρωσης
+
+Για κάθε στρατηγική συνδυασμού (όταν είναι ενεργοποιημένη), ένα αίτημα που θα αποκρυστάλλωνε ένα 429 για μια προσωρινή ψύξη SHORT το περιμένει και το αποστέλλει εκ νέου αντί να επιστρέψει τα 429 — αυτό καλύπτει παράθυρα TPM/RPM κατηγορίας Gemini (~ 60s retry-after) σε συνδυασμούς πολλαπλών μοντέλων hi-model, eg. όριο. Οριοθετείται από `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) σε** Ρυθμίσεις → Resilience** . Δεν περιμένει ποτέ για λόγους `quota_exhausted` (κλειδωμένο μέχρι τα μεσάνυχτα) ή auth/not-found.
+
+Ένας συνδυασμός μπορεί να εξαιρεθεί με `config.comboCooldownWaitEnabled: false`. Μόνο το κυριολεκτικό `false` απενεργοποιεί αυτές τις κοινόχρηστες σύνθετες αναμονές (αναμονή αναμονής μετά την αποστολή και αναμονή circuit-open/model-lock πριν από την αποστολή) και την επέκτασή τους χρόνου αναμονής-προϋπολογισμού. Λείπει ή `true` διατηρεί την παγκόσμια πολιτική. `true` δεν μπορεί να ενεργοποιήσει την καθολικά απενεργοποιημένη αναμονή. Ένα ρητό `targetTimeoutMs` εξακολουθεί να κερδίζει. Αυτή η εξαίρεση δεν αλλάζει την ξεχωριστή αναμονή για το turn-pin εγγενούς κώδικα πριν από την αποστολή.
+
+Η ίδια πύλη καλύπτει την περίπτωση πριν από την αποστολή (#16319): όταν κάθε στόχος ενός συνδυασμού παραλείπεται πριν γίνει οποιαδήποτε προσπάθεια επειδή το μοντέλο του βρίσκεται σε ένα σύντομο προσωρινό κλείδωμα, η διαδρομή μηδενικής προσπάθειας περιμένει το κλείδωμα κάτω από τα ίδια ανώτατα όρια και αποστέλλει ξανά, αντί να απαντήσει σε `503 ALL_TARGETS_SKIPPED` χωρίς υποδείξεις. Όταν δεν επιτρέπεται καμία αναμονή (το ανώτατο όριο, η προσπάθεια ή ο προϋπολογισμός έχει εξαντληθεί ή η δυνατότητα είναι απενεργοποιημένη), η απόκριση του τερματικού αναβαθμίζεται σε `429 rate_limit_error` μεταφέροντας `retry_after` / `reset_at` από την πρώιμη λήξη της προσωρινής κλειδαριάς. οι κλειδαριές quota, auth και που δεν βρέθηκαν διατηρούν το 503 χωρίς υποδείξεις.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/el/docs/guides/USER_GUIDE.md b/docs/i18n/el/docs/guides/USER_GUIDE.md
index 04f1ba352314..5edddd5307a8 100644
--- a/docs/i18n/el/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/el/docs/guides/USER_GUIDE.md
@@ -606,60 +606,60 @@ post_install() {
---
-## 📊 Διαθέσιμα Μοντέλα
+## 📊 διαθέσιμα μοντέλα
-Προβολή όλων των διαθέσιμων μοντέλων
+Δείτε όλα τα διαθέσιμα μοντέλα
-> Η παρακάτω λίστα είναι επιμελημένη από το `open-sse/config/providerRegistry.ts` για την v3.8.0. Οι κατάλογοι cloud (Gemini, OpenRouter, κ.λπ.) συγχρονίζονται δυναμικά — για τον πλήρη ζωντανό κατάλογο ανοίξτε **Πίνακας Ελέγχου → Πάροχοι → [πάροχος] → Διαθέσιμα Μοντέλα** ή καλέστε το `GET /api/models/catalog`.
+> Η παρακάτω λίστα έχει επιμεληθεί από `open-sse/config/providerRegistry.ts` για την έκδοση 3.8.0. Οι κατάλογοι cloud (Gemini, OpenRouter, κ.λπ.) συγχρονίζονται δυναμικά — για τον πλήρη ζωντανό κατάλογο ανοιχτό** Dashboard → Providers → [provider] → Διαθέσιμα μοντέλα** ή καλέστε `GET /api/models/catalog`.
>
-> Αν η ενσωματωμένη λίστα κάποιου παρόχου έχει αποκλίνει, χρησιμοποιήστε την **Εισαγωγή από /models** σε εκείνη τη σελίδα (ή ενεργοποιήστε τον **Αυτόματο Συγχρονισμό**) για να ανακτήσετε τον ζωντανό κατάλογο upstream. Αυτό επαληθεύτηκε στην v3.8.50 για τα LLM7.io (`gemini-3.1-flash-lite`) και UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`)· η ανώνυμη πρόσβαση στο Pollinations παρέμεινε περιορισμένη από τον upstream κατά τον ίδιο κύκλο δοκιμών.
+> Εάν η ενσωματωμένη λίστα ενός παρόχου έχει παρασυρθεί, χρησιμοποιήστε το** Εισαγωγή από /models** σε αυτήν τη σελίδα (ή ενεργοποιήστε** Αυτόματος συγχρονισμός** ) για να τραβήξετε τον ζωντανό κατάλογο ανάντη. Αυτό επαληθεύτηκε στην έκδοση 3.8.50 για LLM7.io (`gemini-3.1-flash-lite`) και UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`). Η ανώνυμη πρόσβαση επικονιασμών παρέμεινε περιορισμένη κατά τη διάρκεια της ίδιας δοκιμαστικής επιτυχίας.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Κωδικός Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ επίπεδα effort: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ βαθμίδες προσπάθειας: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — ΔΩΡΕΑΝ OAuth: χρησιμοποιήστε τον ζωντανό κατάλογο που εμφανίζεται στην ενότητα **Πίνακας Ελέγχου → Πάροχοι → Kiro → Διαθέσιμα Μοντέλα**. Η διαθεσιμότητα εξαρτάται από τον λογαριασμό και το πλάνο.
+**Kiro (`kr/`)** — FREE OAuth: χρησιμοποιήστε τον ζωντανό κατάλογο που εμφανίζεται παρακάτω** Ταμπλό → Providers → Kiro → Διαθέσιμα μοντέλα** . Η διαθεσιμότητα εξαρτάται από τον λογαριασμό και το σχέδιο.
-**Qoder (`if/`)** — ΔΩΡΕΑΝ OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/μήνα σταθερά ή ανά χρήση: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo επίπεδη ή ανά χρήση: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — Κλειδί API: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — κλειδί API : `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Εξαιρετικά ταχύ: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Εξαιρετικά γρήγορο: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Εγγενές Grok: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok native: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Φιλοξενείται στην ΕΕ: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — Φιλοξενείται στην ΕΕ: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Με ενίσχυση αναζήτησης: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Αμηχανία (`pplx/`)** — Αναζήτηση-αυξημένη: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
**Together AI (`together/`)** — Ανοιχτού κώδικα: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (δωρεάν), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Ταχεία εξαγωγή συμπερασμάτων: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Γρήγορη εξαγωγή συμπερασμάτων: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Σε κλίμακα wafer: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Κλίμακα γκοφρέτας: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Εστιασμένο σε RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG-focused: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Εταιρικό: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Συγχρονίζεται ζωντανά ανά κλειδί API από τη Google — δεν υπάρχει στατική λίστα. Συνδέστε ένα κλειδί στο **Πίνακας Ελέγχου → Πάροχοι** και έπειτα χρησιμοποιήστε τα **Διαθέσιμα Μοντέλα** για να εισαγάγετε τον τρέχοντα κατάλογο (π.χ. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : Συγχρονίστηκε ζωντανά ανά κλειδί API από Google — χωρίς στατική λίστα. Συνδέστε ένα κλειδί** Πίνακας εργαλείων → Providers** στη συνέχεια χρησιμοποιήστε** Διαθέσιμα μοντέλα** για να εισαγάγετε τον τρέχοντα κατάλογο (π.χ. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Άλλοι συμβατοί πάροχοι** (επιλεγμένοι): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (μέσω `aws-bedrock`), `azure-ai`, `openrouter` (κατάλογος passthrough), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Καθένας διατηρεί τη δική του λίστα μοντέλων στο `providerRegistry.ts` και μπορεί να συγχρονίζεται αυτόματα όταν ο πάροχος εκθέτει ένα endpoint `/models`.
+**Άλλοι συμβατοί πάροχοι** (επιλεγμένα): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (μέσω `aws-bedrock`), `azure-ai`, `openrouter` (κατάλογος διέλευσης), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai` `reka` `nous-research`, `volcengine`, `ai21` `gigachat` Κάθε ένα διατηρεί τη δική του λίστα μοντέλων στο `providerRegistry.ts` και μπορεί να συγχρονιστεί αυτόματα όταν ο πάροχος εκθέτει ένα τελικό σημείο `/models`.
-**Σημείωση για τα ID μοντέλων:** Το OmniRoute χρησιμοποιεί εγγενή ID παρόχων (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Ορισμένα ID περιλαμβάνουν εκδόσεις με τελείες, επειδή έτσι τα αναμένει το upstream API. Αν κάποιο μοντέλο δεν παρατίθεται παραπάνω, εκτελέστε `omniroute models --search ` ή καλέστε το `GET /api/models/catalog` για να επιβεβαιώσετε τη διαθεσιμότητα.
+**Σημείωση για το μοντέλο IDs:** OmniRoute χρησιμοποιεί IDs εγγενή παρόχου (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Ορισμένα IDs περιλαμβάνουν εκδόσεις με κουκκίδες επειδή έτσι τις περιμένει το upstream API. Εάν ένα μοντέλο δεν αναφέρεται παραπάνω, εκτελέστε `omniroute models --search ` ή πατήστε `GET /api/models/catalog` για να επιβεβαιώσετε τη διαθεσιμότητα.
diff --git a/docs/i18n/es/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/es/docs/architecture/RESILIENCE_GUIDE.md
index b4c7d3c5ac48..87017f8ed7fa 100644
--- a/docs/i18n/es/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/es/docs/architecture/RESILIENCE_GUIDE.md
@@ -290,21 +290,17 @@ _estado_ de los bloqueos activos es efímero.
---
-## 4. Control de concurrencia en cuota compartida (v3.8.36)
+## 4. Control de concurrencia de cuotas compartidas (v3.8.36)
-Las cuentas de suscripción (GLM, MiniMax, etc.) a menudo aceptan solo ~1–3 solicitudes concurrentes; superar ese límite provoca respuestas 429 y periodos de enfriamiento. Esto es especialmente crítico en **cuota compartida** (`qtSd/…`), donde varias API keys comparten una misma cuenta upstream. Tres capas impiden que una cuenta compartida se sature.
+Las cuentas de suscripción (GLM, MiniMax, etc.) a menudo aceptan solo ~ 1 a 3 solicitudes simultáneas; exceder eso activa 429 y tiempos de reutilización. Esto es agudo bajo** cuota compartida** (`qtSd/…`), donde varias claves API comparten una cuenta ascendente. Tres capas evitan que una cuenta compartida se inunde.
-### Límite de concurrencia por conexión (`max_concurrent`)
+### Límite de simultaneidad por conexión (`max_concurrent`)
-Cada conexión de proveedor puede declarar un `max_concurrent`
-(`provider_connections.max_concurrent`, configurado en el modal de conexión / API / BD).
-Déjalo vacío para no aplicar límite. Este es el único parámetro que impulsa la capa de
-serialización descrita a continuación — ajústalo a la concurrencia real de la cuenta (p. ej., GLM ~1, MiniMax ~2).
+Cada conexión de proveedor puede declarar un límite máximo `max_concurrent` (`provider_connections.max_concurrent`, establecido en la conexión modal / API / DB). Déjalo vacío sin límite. Esta es la única perilla que controla la capa de serialización debajo de — y la establece en la simultaneidad real de la cuenta (por ejemplo, GLM ~ 1, MiniMax ~ 2).
-Límites de concurrencia por modelo (`modelConcurrency`)
+### Límites de simultaneidad por modelo (`modelConcurrency`)
-Una conexión puede además declarar límites de concurrencia exactos por modelo
-dentro de su mapa `rateLimitOverrides`:
+Una conexión también puede declarar límites de concurrencia exactos por modelo dentro de su mapa `rateLimitOverrides` :
```json
{
@@ -315,72 +311,32 @@ dentro de su mapa `rateLimitOverrides`:
}
```
-Configúralo en el modal de conexión (**Rate limit overrides → Per-model
-concurrency caps**, un `model=cap` por línea) o mediante
-`PATCH /api/providers/[id]` con la misma estructura JSON. Semántica clave:
-
-- **Concurrencia a nivel de conexión vs. específica de modelo:** `maxConcurrent` sigue siendo el límite compartido
- a nivel de conexión. Cuando ambos aplican, ambas compuertas se adquieren
- de forma atómica en la misma compuerta compuesta
- (`global → provider → account → model`); el comportamiento efectivo es el
- límite aplicable más estricto.
-- **Coincidencia exacta de la clave de modelo:** la clave es la cadena de modelo que se pasa al
- ejecutor tras la resolución del enrutamiento — normalmente el id de modelo upstream sin prefijos
- (`glm-5`), no un alias del lado del cliente `provider/model` (`zai/glm-5` no
- coincide con `glm-5`). Los valores son límites de solicitudes concurrentes en enteros positivos.
-- **Encolamiento local, sin descubrimiento:** las solicitudes en exceso se encolan localmente con
- la semántica existente de cola/tiempo de espera (errores de admisión tipados `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL`). OmniRoute no descubre ni
- infiere la política upstream — aplica exactamente los límites que el operador
- configuró. Una compuerta de modelo saturada nunca deshabilita el proveedor ni
- crea un bloqueo permanente del modelo; el comportamiento upstream de 429/cooldown/fallback
- sigue siendo el mecanismo de contención ante errores.
-- **Ámbito por conexión y por proceso:** los límites son por conexión de base de datos
- y se mantienen en memoria, por lo que dos conexiones que reutilizan la misma API key upstream
- no se coordinan entre sí.
-- **Sin configurar significa sin cambios:** omitir el mapa (o dejar en blanco el campo del
- panel) no añade ninguna compuerta de modelo. Ejemplo de configuración sin
- imponer un límite universal de proveedor:
+Configúrelo en el modal de conexión (** El límite de tasa anula los límites de simultaneidad por modelo →** , un `model=cap` por línea) o mediante `PATCH /api/providers/[id]` con la misma forma JSON. Semántica clave:
+
+- **Para toda la conexión frente a un modelo específico:** `maxConcurrent` sigue siendo el límite máximo compartido para toda la conexión. Cuando se aplican ambas, ambas puertas se adquieren atómicamente en la misma puerta compuesta (`global → provider → account → model`); el comportamiento efectivo es el límite aplicable más estricto.
+- **Coincidencia exacta de modelo-clave:** la clave es la cadena del modelo pasada al ejecutor después de la resolución de enrutamiento — normalmente la identificación del modelo ascendente (`glm-5`), no un alias `provider/model` del lado del cliente (`zai/glm-5` no coincide con `glm-5`). Los valores son límites máximos de solicitudes simultáneas de números enteros positivos.
+- **Cola local, sin descubrimiento:** las solicitudes excedentes se ponen en cola localmente con la semántica queue/timeout existente (errores de admisión `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` escritos). OmniRoute no descubre ni infiere la política ascendente, — aplica los límites exactos que configuró el operador. Una puerta de modelo saturada nunca desactiva al proveedor y nunca crea un bloqueo de modelo permanente; El comportamiento 429/cooldown/fallback ascendente sigue siendo el mecanismo de protección contra errores.
+- **Alcance por conexión y por proceso:** los límites son por conexión de base de datos y se mantienen en la memoria, por lo que dos conexiones que reutilizan la misma clave API ascendente no se coordinan entre sí.
+- **Sin configurar significa sin cambios:** omitir el mapa (o dejar el campo del tablero en blanco) no agrega ninguna puerta de modelo. Configuración de ejemplo sin afirmar ningún límite de proveedor universal:
```text
glm-5=1
glm-4.7=3
```
-### Serialización de solicitudes en cuota compartida
-
-Cuando un despacho de cuota compartida se dirige a una conexión que declara un
-`max_concurrent` positivo, las solicitudes concurrentes a esa **cuenta** se serializan mediante un
-semáforo por conexión (clave `qsconn:`): las solicitudes en exceso **esperan en
-la cola** en lugar de saturar la cuenta. Es **fail-open** — una cola saturada
-o un tiempo de espera agotado continúa sin slot en lugar de rechazar una solicitud
-despachable. Se activa en **Settings → Resilience → Quota-share per-connection
-concurrency** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, activado por defecto).
-Sin un límite `max_concurrent`, el comportamiento no cambia.
-
-> La compuerta de enrutamiento de cuota compartida (`selectQuotaShareTarget`, DRR + P2C) es en sí misma
-> fail-open y solo _desprioriza_ una conexión que alcanzó su límite — con un
-> pool de una sola conexión no puede limitar de forma estricta, por lo que este semáforo es lo que realmente
-> contiene la saturación.
-
-### Reintento consciente del cooldown en combos
-
-Para cada estrategia de combo (cuando está habilitada), una solicitud que cristalizaría en un 429
-por un cooldown transitorio CORTO espera a que pase y la vuelve a despachar en lugar de
-devolver el 429 — esto cubre las ventanas TPM/RPM de la clase Gemini (~60s de retry-after)
-en combos de varios modelos, p. ej., ambos objetivos de un combo de 2 modelos alcanzando un límite
-de tasa por modelo. Acotado por `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`,
-`budgetMs`) en **Settings → Resilience**. Nunca espera por `quota_exhausted`
-(bloqueado hasta medianoche) ni por motivos de auth/not-found.
-
-La misma compuerta cubre el caso previo al despacho (#16319): cuando todos los objetivos de un
-combo se omiten antes de realizar cualquier intento porque su modelo se encuentra en un bloqueo
-transitorio corto, la ruta de cero intentos espera a que expire el bloqueo bajo los mismos
-límites y vuelve a despachar, en lugar de responder un
-`503 ALL_TARGETS_SKIPPED` sin pistas. Cuando no se permite esperar (límite, intentos o presupuesto
-agotados, o la función desactivada), la respuesta terminal se eleva a
-`429 rate_limit_error` portando `retry_after` / `reset_at` desde la expiración de bloqueo transitorio
-más temprana; los bloqueos por cuota, auth y not-found mantienen el 503 sin pistas.
+### Serialización de solicitudes de cuota compartida
+
+Cuando un envío de cuota compartida apunta a una conexión que declara un `max_concurrent` positivo, las solicitudes simultáneas a esa** cuenta** se serializan a través de un semáforo por conexión (clave `qsconn:`): solicitudes excesivas** espera en la cola** en lugar de inundar la cuenta. Es** falla de apertura** — una cola saturada o un tiempo de espera continúa sin un espacio en lugar de rechazar una solicitud despachable. Alternar** Configuración → Resiliencia → Simultaneidad por conexión de cuota compartida** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, activado por defecto). Sin un límite `max_concurrent` el comportamiento no cambia.
+
+> La puerta de enrutamiento de cuota compartida (`selectQuotaShareTarget`, DRR + P2C) en sí misma se abre a prueba de fallos y solo _desprioriza_ una conexión con límite máximo — con un grupo de conexiones únicas que no puede limitar, por lo que este semáforo es lo que realmente contiene la inundación.
+
+### Reintento combinado con tiempo de reutilización
+
+Para cada estrategia de combo (cuando está habilitada), una solicitud que cristalizaría un 429 para un tiempo de reutilización transitorio SHORT espera y se vuelve a enviar en lugar de devolver el 429 — Esto cubre ventanas TPM/RPM de clase Gemini (~ 60s reintento posterior) en combos de múltiples modelos, por ejemplo, ambos objetivos de un combo de 2 modelos alcanzan un límite de velocidad por modelo. Delimitado por `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) en** Configuración → Resiliencia** . Nunca espera por motivos `quota_exhausted` (bloqueado hasta medianoche) o auth/not-found.
+
+Un combo puede optar por no participar con `config.comboCooldownWaitEnabled: false`. Solo `false` literal deshabilita estas esperas combinadas compartidas (esperas de enfriamiento posteriores al envío y esperas circuit-open/model-lock previas al envío) y su extensión de tiempo de espera de presupuesto de espera. Missing o `true` preserva la política global; `true` no puede habilitar la espera deshabilitada globalmente. Un `targetTimeoutMs` explícito todavía gana. Esta exclusión voluntaria no cambia la espera previa al envío separada del Codex nativo.
+
+La misma puerta cubre el caso previo al envío (#16319): cuando cada objetivo de un combo se omite antes de realizar cualquier intento porque su modelo se encuentra en un bloqueo transitorio corto, la ruta de intento cero espera el bloqueo bajo los mismos techos y vuelve a enviar, en lugar de responder a un `503 ALL_TARGETS_SKIPPED` sin pistas. Cuando no se permite ninguna espera (techo, intento o presupuesto agotado, o la función está desactivada), la respuesta del terminal se actualiza a `429 rate_limit_error` llevando `retry_after` / `reset_at` desde la primera expiración del bloqueo transitorio; Los bloqueos de cuota, autenticación y no encontrado mantienen el 503 sin pistas.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/es/docs/guides/USER_GUIDE.md b/docs/i18n/es/docs/guides/USER_GUIDE.md
index 4b8e19c5641a..8ca075195b99 100644
--- a/docs/i18n/es/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/es/docs/guides/USER_GUIDE.md
@@ -605,60 +605,60 @@ Para consultar la referencia completa de variables de entorno, consulte el [READ
---
-## 📊 Modelos disponibles
+## 📊 disponibles
Ver todos los modelos disponibles
-> La siguiente lista se ha seleccionado de `open-sse/config/providerRegistry.ts` para v3.8.0. Los catálogos en la nube (Gemini, OpenRouter, etc.) se sincronizan dinámicamente — para ver el catálogo completo en vivo, abre **Panel → Proveedores → [proveedor] → Modelos disponibles** o llama a `GET /api/models/catalog`.
+> La siguiente lista está seleccionada de `open-sse/config/providerRegistry.ts` para v3.8.0. Los catálogos en la nube (Gemini, OpenRouter, etc.) se sincronizan dinámicamente — para abrir el catálogo en vivo completo** Panel de control → Proveedores → [proveedor] → Modelos disponibles** o llame `GET /api/models/catalog`.
>
-> Si la lista integrada de un proveedor se ha desactualizado, usa **Importar desde /models** en esa página (o activa la **Sincronización automática**) para obtener el catálogo actual del upstream. Esto se verificó en v3.8.50 para LLM7.io (`gemini-3.1-flash-lite`) y UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); el acceso anónimo de Pollinations permaneció limitado por el upstream durante la misma ronda de pruebas.
+> Si la lista integrada de un proveedor se ha desviado, utilice** Importar desde /modelos** en esa página (o habilitar** Sincronización automática** ) para extraer el catálogo ascendente en vivo. Esto se verificó en v3.8.50 para LLM7.io (`gemini-3.1-flash-lite`) y UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); El acceso anónimo a las polinizaciones permaneció limitado durante el mismo pase de prueba.
-**Claude Code (`cc/`)** — OAuth Pro/Max: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Código Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — OAuth Plus/Pro: `cx/gpt-5.5` (+ niveles de esfuerzo: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (niveles de esfuerzo de + : `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth GRATUITO: usa el catálogo en vivo que se muestra en **Panel → Proveedores → Kiro → Modelos disponibles**. La disponibilidad depende de la cuenta y del plan.
+**Kiro (`kr/`)** — FREE OAuth: use el catálogo en vivo que se muestra debajo** Tablero → Proveedores → Kiro → Modelos disponibles** . La disponibilidad depende de la cuenta y el plan.
-**Qoder (`if/`)** — OAuth GRATUITO: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mes fijo o por uso: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo plano o por uso: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — Clave de API: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — clave API : `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
**Groq (`groq/`)** — Ultrarrápido: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
**xAI (`xai/`)** — Grok nativo: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Alojado en la UE: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — alojado en la UE: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Aumentado con búsqueda: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Perplejidad (`pplx/`)** — Búsqueda aumentada: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Código abierto: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (gratuito), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — Código abierto: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (gratis), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
**Fireworks AI (`fireworks/`)** — Inferencia rápida: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — A escala de oblea: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Escala de oblea: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Enfocado en RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — centrado en RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Empresarial: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Empresa: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Se sincroniza en vivo por clave de API desde Google — no hay lista estática. Conecta una clave en **Panel → Proveedores** y luego usa **Modelos disponibles** para importar el catálogo actual (p. ej., `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Nube `gemini/`)** : Sincronizado en vivo por clave API desde Google — sin lista estática. Conecte una llave en** Panel de control → Proveedores** entonces usa** Modelos disponibles** para importar el catálogo actual (por ejemplo, `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Otros proveedores compatibles** (selección): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (vía `aws-bedrock`), `azure-ai`, `openrouter` (catálogo passthrough), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Cada uno mantiene su propia lista de modelos en `providerRegistry.ts` y puede sincronizarse automáticamente cuando el proveedor expone un endpoint `/models`.
+**Otros proveedores compatibles** (seleccionado): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (a través de `aws-bedrock`), `azure-ai`, `openrouter` (catálogo de paso), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `bazaarlink`, `vercel-ai-gateway`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Cada uno mantiene su propia lista de modelos en `providerRegistry.ts` y se puede sincronizar automáticamente cuando el proveedor expone un punto final `/models`.
-**Nota sobre los IDs de modelos:** OmniRoute utiliza IDs nativos del proveedor (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Algunos IDs incluyen versiones con puntos porque así es como la API upstream los espera. Si un modelo no aparece en la lista anterior, ejecuta `omniroute models --search ` o consulta `GET /api/models/catalog` para confirmar la disponibilidad.
+**Nota sobre el modelo IDs:** OmniRoute utiliza IDs nativo del proveedor (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Algunos IDs incluyen versiones con puntos porque así es como las espera el API ascendente. Si un modelo no aparece en la lista anterior, ejecute `omniroute models --search ` o presione `GET /api/models/catalog` para confirmar la disponibilidad.
diff --git a/docs/i18n/et/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/et/docs/architecture/RESILIENCE_GUIDE.md
index 6017f0dd6378..c50fc91e68c6 100644
--- a/docs/i18n/et/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/et/docs/architecture/RESILIENCE_GUIDE.md
@@ -283,17 +283,17 @@ lukustuse _olek_ on efemeerne.
---
-## 4. Kvoodijagamise samaaegsuse kontroll (v3.8.36)
+## 4. Kvoodi jagamise samaaegsuse juhtimine (v3.8.36)
-Tellimuskontod (GLM, MiniMax jne) aktsepteerivad sageli vaid ~1–3 samaaegset päringut; selle ületamine käivitab 429-vead ja jahtumisperioodid. See on eriti terav **kvoodijagamise** (`qtSd/…`) kombinatsioonide puhul, kus mitu API-võtit jagavad ühte ülesvoolu kontot. Kolm kihti hoiavad jagatud konto üleujutamise eest.
+Tellimuskontod (GLM, MiniMax jne) võtavad sageli vastu ainult ~ 1–3 samaaegset taotlust; selle ületamine käivitab 429 sekundit ja jahtumist. See on äge all** kvoodiosa** (`qtSd/…`) kombod, kus mitu API klahvi jagavad ühte ülesvoolu kontot. Kolm kihti hoiavad jagatud konto üle ujutamise eest.
-### Ühendusepõhine samaaegsuse piirang (`max_concurrent`)
+### Ühendusepõhine samaaegsuse ülempiir (`max_concurrent`)
-Iga pakkuja ühendus saab deklareerida `max_concurrent` ülempiiri (`provider_connections.max_concurrent`, määratud ühenduse modaalis / API-s / andmebaasis). Jätke see tühjaks, kui piirangut pole. See on ainus nupp, mis juhib allolevat serialiseerimiskihit – seadke see konto tegelikule samaaegsusele (nt GLM ~1, MiniMax ~2).
+Iga pakkuja ühendus saab deklareerida `max_concurrent` ülemmäära (`provider_connections.max_concurrent`, määratud ühenduses modal / API / DB). Jätke see piiranguteta tühjaks. See on ainuke nupp, mis juhib — all olevat serialiseerimiskihti, mis seab selle konto tegelikule samaaegsusele (nt GLM ~ 1, MiniMax ~ 2).
-### Mudelipõhised samaaegsuse piirangud (`modelConcurrency`)
+### Mudelipõhised samaaegsuse piirid (`modelConcurrency`)
-Ühendus saab lisaks deklareerida täpsed mudelipõhised samaaegsuse ülempiirid oma `rateLimitOverrides` kaardis:
+Ühendus võib lisaks deklareerida täpsed mudelipõhised samaaegsuse ülemmäärad oma `rateLimitOverrides` kaardil:
```json
{
@@ -304,30 +304,32 @@ Iga pakkuja ühendus saab deklareerida `max_concurrent` ülempiiri (`provider_co
}
```
-Määrake see ühenduse modaalis (**Rate limit overrides → Per-model concurrency caps**, üks `model=cap` rea kohta) või `PATCH /api/providers/[id]` kaudu sama JSON-kujuga. Võtme semantika:
+Seadke see ühenduse modaali (** Rate limiit alistab → mudelipõhised samaaegsuse ülemmäärad** , üks `model=cap` rea kohta) või `PATCH /api/providers/[id]` kaudu sama JSON -kujuga. Peamised semantika:
-- **Ühenduseülene vs mudelispetsiifiline:** `maxConcurrent` jääb jagatud ühenduseüleseks ülempiiriks. Kui mõlemad kehtivad, omandatakse mõlemad väravad aatomiliselt samas liitväravas (`global → provider → account → model`); tegelik käitumine on rangem kohaldatav piirang.
-- **Täpne mudelivõtme vaste:** võti on mudeli string, mis edastatakse täitjale pärast marsruutimise lahendamist – tavaliselt paljas ülesvoolu mudeli ID (`glm-5`), mitte kliendipoolne `provider/model` alias (`zai/glm-5` ei vasta `glm-5`). Väärtused on positiivsed täisarvulised samaaegsete päringute ülempiirid.
-- **Kohalik järjekord, puudub avastamine:** liigsed päringud järjekorda kohapeal olemasoleva järjekorra/ajalõpu semantikaga (tüübitud `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` vastuvõtuvead). OmniRoute ei avasta ega järelda ülesvoolu poliitikat – see jõustab täpsed piirangud, mille operaator on konfigureerinud. Küllastunud mudelivärav ei lülita kunagi pakkujat välja ega loo püsivat mudeli lukustust; ülesvoolu 429/jahtumis-/tagavaramehhanismi käitumine jääb veapiiriks.
-- **Ühendusepõhine, protsessipõhine ulatus:** piirangud on andmebaasi ühendusepõhised ja hoitakse mälus, nii et kaks ühendust, mis kasutavad sama ülesvoolu API-võtit, ei koordineeri omavahel.
-- **Konfigureerimata tähendab muutumatut:** kaardi väljajätmine (või armatuurlaua välja tühjaks jätmine) ei lisa mudeliväravat. Näide konfiguratsioonist ilma universaalset pakkuja piirangut kehtestamata:
+- **Kogu ühendust hõlmav vs mudelipõhine:** `maxConcurrent` jääb ühisühendust hõlmavaks laeks. Mõlema rakendumisel omandatakse mõlemad väravad aatomiliselt samas liitväravas (`global → provider → account → model`); tõhus käitumine on rangem kohaldatav piir.
+- **Täpne mudeli ja võtme vaste:** võti on mudelistring, mis edastatakse täitjale pärast marsruutimislahutust — tavaliselt tühi ülesvoolu mudeli ID (`glm-5`), mitte kliendipoolne `provider/model` alias (`zai/glm-5` ei ühti `glm-5`). Väärtused on positiivsete täisarvude samaaegse taotluse ülemmäärad.
+- **Kohalik järjekord, avastamata:** üleliigsed päringud lokaalselt olemasoleva queue/timeout semantikaga (tipitud `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` vastuvõtuvead). OmniRoute ei tuvasta ega järelda ülesvoolupoliitikat — see jõustab operaatori seadistatud täpsed ülemmäärad. Küllastunud mudelivärav ei keela kunagi teenusepakkujat ega loo kunagi püsivat mudeli lukustamist; ülesvoolu 429/cooldown/fallback käitumine jääb vea tagamise vahendiks.
+- **Ühenduse kohta, protsessi ulatus:** piirangud on andmebaasiühenduse kohta ja neid hoitakse mälus, nii et kaks sama ülesvoolu API -võtit taaskasutavat ühendust ei koordineeri ennast üksteisega.
+- **Konfigureerimata tähendab muutmata:** kaardi väljajätmine (või armatuurlaua välja tühjaks jätmine) ei lisa mudeliväravat. Konfiguratsiooni näide ilma universaalse pakkuja piiranguta:
```text
glm-5=1
glm-4.7=3
```
-### Kvoodijagamise päringute serialiseerimine
+### Kvoodi jagamise taotluse serialiseerimine
-Kui kvoodijagamise dispetšer suunab päringu ühendusele, mis deklareerib positiivse `max_concurrent`, serialiseeritakse samaaegsed päringud sellele **kontole** ühendusepõhise semafori kaudu (võti `qsconn:`): liigsed päringud **ootavad järjekorras** konto üleujutamise asemel. See on **fail-open** – küllastunud järjekord või ajalõpp jätkub ilma pesata, selle asemel et kunagi dispetšeeritavat päringut tagasi lükata. Lülitage sisse **Settings → Resilience → Quota-share per-connection concurrency** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, vaikimisi sisse lülitatud). Ilma `max_concurrent` piiranguta jääb käitumine muutumatuks.
+Kui kvoodijagamise saatmine sihib ühendust, mis deklareerib positiivse `max_concurrent`, esitatakse sellele samaaegsed taotlused** konto** jadatakse ühendusepõhise semafoori kaudu (klahv `qsconn:`): liigsed päringud** järjekorras ootama** konto üle ujutamise asemel. On küll** tõrgeteta avatud** — küllastunud järjekord või ajalõpp kulgeb edasi ilma pesa, mitte ei lükka kunagi tagasi saadetavat taotlust. Lülitage sisse** Seaded → Vastupidavus → Kvoodi jagamine ühenduse kohta samaaegsus** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, vaikimisi sees). Ilma `max_concurrent` korgita on käitumine muutumatu.
-> Kvoodijagamise marsruutimisvärav (`selectQuotaShareTarget`, DRR + P2C) on iseenesest fail-open ja ainult _deprioriseerib_ piirini jõudnud ühenduse – ühe ühenduse puhul ei saa see kõvasti piirata, seega see semafor on see, mis tegelikult üleujutust ohjeldab.
+> Kvoodijagamise marsruutimise värav (`selectQuotaShareTarget`, DRR + P2C) on ise tõrkeavatud ja _defitseerib_ ainult ühe ühendusega ühenduse — prioriteedid, nii et see semafor on see, mis tegelikult üleujutust sisaldab.
-### Kombineeritud jahtumisperioodi teadlik korduskatse
+### Kombineeritud jahtumist arvestav uuesti proovimine
-Iga kombineeritud strateegia puhul (kui see on lubatud) ootab päring, mis kristalliseeriks 429-vea LÜHIKESE mööduva jahtumisperioodi jaoks, selle ära ja saadab uuesti, selle asemel et tagastada 429 – see hõlmab Gemini-klassi TPM/RPM aknaid (~60s retry-after) mitme mudeli kombinatsioonide puhul, nt mõlemad 2-mudeli kombinatsiooni sihtmärgid jõuavad mudelipõhise piirini. Piiratud `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) seadetes **Settings → Resilience**. See ei oota kunagi `quota_exhausted` (lukustatud südaööni) ega autentimis-/mitteleidmise põhjuste puhul.
+Iga kombineeritud strateegia puhul (kui see on lubatud) ootab taotlus, mis kristalliseerib 429 SHORT ajutise jahtumise jaoks, ja saadetakse uuesti, selle asemel, et tagastada 429 — see hõlmab Gemini-klassi TPM/RPM aknaid (~ 60s uuesti proovimine-pärast) mitme mudeli kombinatsioonidel, nt kamm-model-model mõlema piirangu tabamissagedus. Piiratud `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`)** Seaded → Vastupidavus** . See ei oota kunagi `quota_exhausted` (lukus keskööni) või auth/not-found põhjustel.
-Sama värav katab eeldispetšerimise juhtumi (#16319): kui iga kombinatsiooni sihtmärk jäetakse vahele enne mis tahes katse tegemist, kuna selle mudel on lühiajalises mööduvas lukustuses, ootab nullkatse tee luku ära samade piirangute all ja dispetšeerib uuesti, selle asemel et vastata vihjeta `503 ALL_TARGETS_SKIPPED`. Kui ootamine pole lubatud (piirang, katse või eelarve on ammendatud või funktsioon on välja lülitatud), uuendatakse lõplik vastus `429 rate_limit_error`-ks, mis sisaldab `retry_after` / `reset_at` varaseimast mööduvast luku aegumisest; kvoodi-, autentimis- ja mitteleidmise lukud säilitavad vihjeta 503.
+Kombo saab `config.comboCooldownWaitEnabled: false` abil loobuda. Ainult sõnasõnaline `false` keelab need jagatud kombineeritud ooteootused (saatmisjärgne jahtumine ja väljasaatmiseelne circuit-open/model-lock ootamine) ja nende oote-eelarve ajalõpu-põrandalaienduse. Puuduv või `true` säilitab globaalse poliitika; `true` ei saa lubada globaalselt keelatud ootamist. Selgesõnaline `targetTimeoutMs` võidab ikkagi. See loobumine ei muuda eraldi natiivse Codexi nööpnõela saatmiseelset ootamist.
+
+Sama värav katab ärasaatmiseelse juhtumi (#16319): kui kombinatsiooni iga sihtmärk jäetakse vahele enne mis tahes katse tegemist, kuna selle mudel on lühikeses mööduvas lukustuses, ootab nullkatseta tee samade lagede all ja saadetakse uuesti, selle asemel et vastata vihjevabale `503 ALL_TARGETS_SKIPPED`-le. Kui ootamine pole lubatud (lagi, katse või eelarve on ammendatud või funktsioon on välja lülitatud), uuendatakse terminali vastust `429 rate_limit_error`, mis kannab `retry_after` / `reset_at` alates varaseimast mööduva lukustuse aegumist; kvoot, autentimine ja leidmata lukud hoiavad vihjeteta 503.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/et/docs/guides/USER_GUIDE.md b/docs/i18n/et/docs/guides/USER_GUIDE.md
index bbc05ab4a10b..fd7aa7f48cf2 100644
--- a/docs/i18n/et/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/et/docs/guides/USER_GUIDE.md
@@ -609,60 +609,60 @@ Täieliku keskkonnamuutujate loendi leiate [README](../README.md) failist.
---
-## 📊 Saadaolevad mudelid
+## 📊 saadaolevad mudelid
-Kuva kõik saadaolevad mudelid
+Vaadake kõiki saadaolevaid mudeleid
-> Allolev loend on koostatud failist `open-sse/config/providerRegistry.ts` versiooni v3.8.0 jaoks. Pilvekataloogid (Gemini, OpenRouter jne) sünkroonitakse dünaamiliselt — täieliku reaalajas kataloogi nägemiseks avage **Dashboard → Providers → [provider] → Available Models** või tehke päring `GET /api/models/catalog`.
+> Allolev loend on kureeritud versioonist `open-sse/config/providerRegistry.ts` v3.8.0 jaoks. Pilvekataloogid (Gemini, OpenRouter jne) sünkroonitakse dünaamiliselt — kogu reaalajas kataloogi avamiseks** Armatuurlaud → Pakkujad → [pakkuja] → Saadaolevad mudelid** või helistage `GET /api/models/catalog`.
>
-> Kui mõne pakkuja sisseehitatud loend on aegunud, kasutage sellel lehel valikut **Import from /models** (või lubage **Auto-Sync**), et tõmmata reaalajas ülemvoo kataloog. See kinnitati versioonis v3.8.50 LLM7.io (`gemini-3.1-flash-lite`) ja UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) puhul; Pollinationsi anonüümne juurdepääs jäi sama testitsükli jooksul ülemvoo poolt piiratuks.
+> Kui teenusepakkuja sisseehitatud loend on triivinud, kasutage** Import / mudelid** sellel lehel (või lubage** Automaatne sünkroonimine** ), et tõmmata reaalajas ülesvoolu kataloog. Seda kontrolliti versioonis 3.8.50 LLM7.io (`gemini-3.1-flash-lite`) ja UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) jaoks; Tolmeldajate anonüümne juurdepääs jäi sama katsekäigu ajal ülesvoolu piiratuks.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude kood (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ pingutustasemed: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ pingutusastmed: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — TASUTA OAuth: kasutage reaalajas kataloogi, mida kuvatakse jaotises **Dashboard → Providers → Kiro → Available Models**. Saadavus sõltub kontost ja paketist.
+**Kiro (`kr/`)** — FREE OAuth: kasutage all näidatud reaalajas kataloogi** Armatuurlaud → Pakkujad → Kiro → Saadaolevad mudelid** . Saadavus sõltub kontost ja plaanist.
-**Qoder (`if/`)** — TASUTA OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/kuus fikseeritud hinnaga või kasutuspõhiselt: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo lame või kasutuskorras: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — API-võti: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API klahv: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Ülikiire: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — ülikiire: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Groki-natiivne: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok algne: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EL-is majutatud: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EL-is hostitud: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Otsinguga täiendatud: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**segadus (`pplx/`)** — laiendatud otsing: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Avatud lähtekoodiga: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (tasuta), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — avatud lähtekoodiga: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (tasuta), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Kiire järeldamine: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Kiire järeldus: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Wafer-scale: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Vahvli skaala: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
**Cohere (`cohere/`)** — RAG-keskne: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Ettevõtlusklass: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Sünkroonitakse reaalajas iga API-võtme kohta Google'ist — staatilist loendit pole. Ühendage võti jaotises **Dashboard → Providers** ja seejärel kasutage praeguse kataloogi importimiseks valikut **Available Models** (nt `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : reaalajas sünkroonitud API klahviga Google — staatiline loend puudub. Ühendage võti** Armatuurlaud → pakkujad** siis kasuta** Saadaolevad mudelid** aktiivse kataloogi importimiseks (nt `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Muud ühilduvad pakkujad** (valik): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (läbi `aws-bedrock`), `azure-ai`, `openrouter` (edastusreežimi kataloog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Igaüks haldab oma mudeliloendit failis `providerRegistry.ts` ja seda saab automaatselt sünkroonida, kui pakkuja pakub `/models` lõpp-punkti.
+**Muud ühilduvad pakkujad** (valitud): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` ( `aws-bedrock` kaudu ), `azure-ai`, `openrouter` (läbipääsukataloog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway` `deepinfra`, `friendliai` `vercel-ai-gateway` `bazaarlink` `nous-research` `reka`, `volcengine`, `ai21`, `gigachat`. Igaüks neist säilitab `providerRegistry.ts` oma mudeliloendi ja neid saab automaatselt sünkroonida, kui pakkuja avaldab `/models` lõpp-punkti.
-**Märkus mudeli-ID-de kohta:** OmniRoute kasutab pakkuja-põhiseid ID-sid (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Mõned ID-d sisaldavad punktidega versiooninumbreid, sest ülemvoo API ootab neid just nii. Kui mudelit pole ülal loetletud, käivitage `omniroute models --search ` või tehke päring `GET /api/models/catalog`, et saadavust kinnitada.
+**Märkus mudeli IDs kohta:** OmniRoute kasutab pakkuja natiivset IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Mõned IDs sisaldavad punktiirjoonega versioone, sest nii eeldab ülesvoolu API neid. Kui mudelit pole ülaltoodud loendis, käivitage saadavuse kinnitamiseks `omniroute models --search ` või klõpsake nuppu `GET /api/models/catalog`.
diff --git a/docs/i18n/fa/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/fa/docs/architecture/RESILIENCE_GUIDE.md
index a3b789914955..05bf542d3a42 100644
--- a/docs/i18n/fa/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/fa/docs/architecture/RESILIENCE_GUIDE.md
@@ -281,22 +281,17 @@ _وضعیت_ فعالِ قفلها زودگذر است.
---
-## 4. کنترل همروندی سهمیهاشتراکی (v3.8.36)
+## 4. سهمیه-سهم کنترل همزمانی (نسخه 3.8.36)
-حسابهای اشتراکی (GLM، MiniMax و غیره) اغلب تنها حدود ~1–3 درخواست همزمان را میپذیرند؛ عبور از این حد موجب خطاهای 429 و cooldown میشود. این مسئله در کامبوهای **سهمیهاشتراکی** (`qtSd/…`) حادتر است، جایی که چند کلید API یک حساب بالادستی را به اشتراک میگذارند. سه لایه جلوی سیلآسا شدن یک حساب اشتراکی را میگیرند.
+حساب های اشتراک (GLM، MiniMax، و غیره) اغلب فقط ~ 1-3 درخواست همزمان را می پذیرند. فراتر از آن باعث ایجاد 429 ثانیه و خنک شدن می شود. این زیر حاد است** سهمیه-سهم** ترکیبهای (`qtSd/…`)، که در آن چندین کلید API یک حساب بالادستی را به اشتراک میگذارند. سه لایه از سیل شدن یک حساب کاربری مشترک جلوگیری می کند.
-### سقف همروندی هر اتصال (`max_concurrent`)
+### درپوش همزمانی هر اتصال (`max_concurrent`)
-هر اتصال ارائهدهنده میتواند یک سقف `max_concurrent` اعلام کند
-(`provider_connections.max_concurrent`، که در مودال اتصال / API / DB تنظیم میشود).
-برای نداشتن محدودیت، آن را خالی بگذارید. این تنها دستگیرهای است که لایه
-سریالیسازی زیر را هدایت میکند — آن را برابر همروندی واقعی حساب تنظیم کنید
-(مثلاً GLM حدود ~1، MiniMax حدود ~2).
+هر اتصال ارائه دهنده می تواند یک سقف `max_concurrent` را اعلام کند (`provider_connections.max_concurrent`، تنظیم شده در اتصال modal / API / DB). بدون محدودیت آن را خالی بگذارید. این دکمه تکی است که لایه سریال سازی را در زیر — هدایت می کند و آن را روی همزمانی واقعی حساب تنظیم می کند (به عنوان مثال GLM ~ 1، MiniMax ~ 2).
-### سقفهای همروندی هر مدل (`modelConcurrency`)
+### سرپوش های همزمانی هر مدل (`modelConcurrency`)
-یک اتصال علاوه بر این میتواند سقفهای دقیق همروندی برای هر مدل را درون
-نگاشت `rateLimitOverrides` خود اعلام کند:
+علاوه بر این، یک اتصال می تواند سقف های همزمانی دقیق هر مدل را در داخل نقشه `rateLimitOverrides` خود اعلام کند:
```json
{
@@ -307,75 +302,32 @@ _وضعیت_ فعالِ قفلها زودگذر است.
}
```
-آن را در مودال اتصال تنظیم کنید (**بازنویسیهای محدودیت نرخ → سقفهای همروندی
-هر مدل**، در هر خط یک `model=cap`) یا از طریق
-`PATCH /api/providers/[id]` با همان ساختار JSON. معناشناسی کلیدها:
-
-- **در سطح اتصال در برابر مختص مدل:** `maxConcurrent` همچنان سقف مشترک
- در سطح کل اتصال است. وقتی هر دو اعمال میشوند، هر دو دروازه
- بهصورت اتمی در همان دروازه ترکیبی گرفته میشوند
- (`global → provider → account → model`)؛ رفتار مؤثر، همان
- محدودیت سختگیرانهترِ قابلاعمال است.
-- **تطابق دقیق کلید مدل:** کلید، همان رشته مدلی است که پس از تعیین مسیر
- به اجراکننده داده میشود — معمولاً شناسه خالص مدل بالادستی
- (`glm-5`)، نه نام مستعار `provider/model` در سمت کلاینت (`zai/glm-5`
- با `glm-5` تطابق ندارد). مقادیر، سقفهای عدد صحیح مثبت برای
- درخواستهای همزمان هستند.
-- **صف محلی، بدون کشف خودکار:** درخواستهای مازاد بهصورت محلی و با
- همان معناشناسی صف/مهلت موجود در صف میمانند (خطاهای پذیرش تایپدار
- `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). OmniRoute سیاست بالادستی را
- کشف یا استنباط نمیکند — دقیقاً همان سقفهایی را اعمال میکند که
- اپراتور پیکربندی کرده است. یک دروازه مدل اشباعشده هرگز ارائهدهنده را
- غیرفعال نمیکند و هرگز قفل دائمی مدل ایجاد نمیکند؛ رفتار
- 429/cooldown/fallback بالادستی همچنان پشتیبان خطا باقی میماند.
-- **دامنه هر اتصال و هر فرایند:** سقفها برای هر اتصال دیتابیس
- است و در حافظه نگه داری میشود، بنابراین دو اتصالی که از یک کلید API
- بالادستی یکسان استفاده میکنند، با یکدیگر هماهنگ نمیشوند.
-- **پیکربندینشده یعنی بدون تغییر:** حذف نگاشت (یا خالی گذاشتن
- فیلد داشبورد) هیچ دروازه مدلی اضافه نمیکند. نمونه پیکربندی بدون
- ادعای هیچ محدودیت سراسری ارائهدهنده:
+آن را در حالت اتصال (** محدودیت نرخ، محدودیتهای همزمانی → در هر مدل را لغو میکند** ، یک `model=cap` در هر خط) یا از طریق `PATCH /api/providers/[id]` با همان شکل JSON. معناشناسی کلیدی:
+
+- **اتصال گسترده در مقابل مدل خاص:** `maxConcurrent` سقف اتصال مشترک باقی می ماند. هنگامی که هر دو اعمال می شوند، هر دو دروازه به صورت اتمی در یک دروازه ترکیبی (`global → provider → account → model`) به دست می آیند. رفتار موثر حد قابل اجرا سختگیرانه تر است.
+- **مطابقت دقیق مدل-کلید:** نکته کلیدی این است که رشته مدل پس از مسیریابی رزولوشن — به مجری ارسال می شود که معمولاً شناسه مدل بالادستی خالی (`glm-5`) است، نه نام مستعار `provider/model` سمت کلاینت (`zai/glm-5` `glm-5` مطابقت ندارد). مقادیر سقف درخواست همزمان اعداد صحیح مثبت هستند.
+- **صف محلی، بدون کشف:** درخواست های اضافی به صورت محلی با معنای queue/timeout موجود (خطاهای پذیرش `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` تایپ شده) در صف قرار می گیرند. OmniRoute خط مشی بالادستی را کشف یا استنباط نمی کند — آن سقف های دقیقی را که اپراتور پیکربندی کرده اعمال می کند. یک گیت مدل اشباع هرگز ارائه دهنده را غیرفعال نمی کند و هرگز یک قفل مدل دائمی ایجاد نمی کند. رفتار 429/cooldown/fallback بالادست خطای backstop باقی می ماند.
+- **دامنه هر اتصال، دامنه هر فرآیند:** سرپوش ها در هر اتصال پایگاه داده هستند و در حافظه نگهداری می شوند، بنابراین دو اتصال با استفاده مجدد از یک کلید بالادست API با یکدیگر هماهنگ نیستند.
+- **پیکربندی نشده به معنای بدون تغییر است:** حذف نقشه (یا خالی گذاشتن قسمت داشبورد) هیچ گیت مدلی اضافه نمی کند. پیکربندی نمونه بدون اعمال محدودیت ارائه دهنده جهانی:
```text
glm-5=1
glm-4.7=3
```
-### سریالیسازی درخواستهای سهمیهاشتراکی
-
-وقتی یک دیسپچ سهمیهاشتراکی اتصالی را هدف میگیرد که `max_concurrent`
-مثبت اعلام کرده است، درخواستهای همزمان به آن **حساب** از طریق یک
-سمافور هر اتصال (کلید `qsconn:`) سریالی میشوند: درخواستهای
-مازاد بهجای سیلآسا کردن حساب، **در صف منتظر میمانند**. این مکانیزم
-**fail-open** است — صف اشباعشده یا timeout بهجای اینکه هرگز درخواست
-قابلدیسپچ را رد کند، بدون گرفتن slot ادامه میدهد. فعال/غیرفعالسازی در
-**تنظیمات → تابآوری → همروندی هر اتصال
-سهمیهاشتراکی** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`،
-بهصورت پیشفرض روشن). بدون سقف `max_concurrent` رفتار تغییری نمیکند.
-
-> دروازه مسیریابی سهمیهاشتراکی (`selectQuotaShareTarget`، DRR + P2C) خودش
-> fail-open است و یک اتصال پرشده را فقط _کماولویت_ میکند — با یک
-> استخر تکاتصالی نمیتواند محدودیت سخت اعمال کند، بنابراین این سمافور است که
-> عملاً جلوی سیل را میگیرد.
-
-### تلاش مجدد آگاه از cooldown در کامبو
-
-برای هر استراتژی کامبو (وقتی فعال باشد)، درخواستی که قرار است بهخاطر یک
-cooldown گذرای کوتاه به خطای 429 تبدیل شود، مدت آن را صبر میکند و بهجای
-برگرداندن 429 دوباره دیسپچ میشود — این حالت پنجرههای TPM/RPM از جنس
-Gemini (حدود ~60 ثانیه retry-after) را در کامبوهای چندمدله پوشش میدهد،
-مثلاً وقتی هر دو هدف یک کامبوی دومدله به محدودیت نرخ هر مدل برمیخورند.
-محدودشده توسط `comboCooldownWait` (`enabled`، `maxWaitMs`، `maxAttempts`،
-`budgetMs`) در **تنظیمات → تابآوری**. هرگز روی `quota_exhausted`
-(قفل تا نیمهشب) یا دلایل auth/not-found صبر نمیکند.
-
-همین دروازه حالت پیش از دیسپچ (#16319) را هم پوشش میدهد: وقتی همه اهداف
-یک کامبو پیش از هر تلاشی رد میشوند چون مدلشان در یک قفل گذرای کوتاه
-قرار دارد، مسیر صفر-تلاش با همان سقفها مدت قفل را صبر میکند و دوباره
-دیسپچ میکند، بهجای اینکه با `503 ALL_TARGETS_SKIPPED` بدون سرنخ پاسخ
-دهد. وقتی هیچ صبری مجاز نباشد (سقف، تعداد تلاش یا بودجه تمام شده، یا
-قابلیت خاموش است)، پاسخ نهایی به `429 rate_limit_error` ارتقا مییابد که
-`retry_after` / `reset_at` را از نزدیکترین انقضای قفل گذرا حمل میکند؛
-قفلهای quota، auth و not-found همان 503 بدون سرنخ را حفظ میکنند.
+### سریال سازی درخواست سهمیه سهمیه
+
+هنگامی که یک توزیع سهمیه، اتصالی را هدف قرار می دهد که `max_concurrent` مثبت را اعلام می کند، درخواست های همزمان برای آن** حساب کاربری** از طریق یک سمافور هر اتصال (کلید `qsconn:`) سریال می شوند: درخواست های اضافی** در صف صبر کنید** به جای سیل کردن حساب هست** شکست باز** — یک صف اشباع شده یا تایم اوت بدون شکاف به جای رد درخواست قابل ارسال ادامه می یابد. تغییر دهید** تنظیمات → Resilience → سهمیه اشتراک در هر اتصال همزمان** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`، پیش فرض روشن). بدون سرپوش `max_concurrent` رفتار تغییری نکرده است.
+
+> گیت مسیریابی سهمیه سهم (`selectQuotaShareTarget`، DRR + P2C) خود باز است و فقط یک اتصال در سرپوش — با یک استخر تک اتصال که نمیتواند به سختی محدود کند، از اولویت خارج میکند، بنابراین این سمافور همان چیزی است که در واقع حاوی سیل است.
+
+### تلاش مجدد با آگاهی از سرد شدن ترکیبی
+
+برای هر استراتژی ترکیبی (هنگامی که فعال باشد)، درخواستی که 429 را برای خنکسازی گذرا SHORT متبلور میکند، منتظر میماند و بهجای بازگرداندن 429 — دوباره ارسال میکند، این شامل پنجرههای TPM/RPM کلاس Gemini (~ 60s retry-after) در هر دو مدل ترکیبی چند مدل در هر دو مدل ترکیبی، ee-model میشود. محدود کردن محصور به `comboCooldownWait` (`enabled`، `maxWaitMs`، `maxAttempts`، `budgetMs`) در** تنظیمات → Resilience** . هرگز روی `quota_exhausted` (قفل تا نیمه شب) یا دلایل auth/not-found منتظر نمی ماند.
+
+یک ترکیب میتواند با `config.comboCooldownWaitEnabled: false` انصراف دهد. فقط `false` تحت اللفظی این انتظارهای ترکیبی مشترک (سرد شدن پس از اعزام و انتظارهای circuit-open/model-lock قبل از اعزام) و تمدید طبقه بندی زمان پایان بودجه انتظار آنها را غیرفعال می کند. مفقود یا `true` حفظ سیاست جهانی; `true` نمی تواند انتظار غیرفعال جهانی را فعال کند. یک `targetTimeoutMs` صریح همچنان برنده است. این انصراف، انتظار پیش از ارسال نوبت پین جداگانه Codex را تغییر نمی دهد.
+
+همان دروازه، مورد پیش از اعزام (#16319) را پوشش میدهد: وقتی هر هدف ترکیبی قبل از هر تلاشی نادیده گرفته میشود، زیرا مدل آن در یک قفل گذرا کوتاه قرار میگیرد، مسیر صفر تلاش به جای پاسخ دادن به `503 ALL_TARGETS_SKIPPED` بدون اشاره، در زیر همان سقفها منتظر قفل میشود و دوباره ارسال میکند. هنگامی که هیچ انتظاری مجاز نیست (سقف، تلاش یا بودجه تمام شده است، یا ویژگی خاموش است)، پاسخ ترمینال از اولین انقضای قفل گذرا به `429 rate_limit_error` با حمل `retry_after` / `reset_at` ارتقا می یابد. قفل های سهمیه، احراز هویت و یافت نشدن 503 را حفظ می کنند.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/fa/docs/guides/USER_GUIDE.md b/docs/i18n/fa/docs/guides/USER_GUIDE.md
index 73b69483bee5..504e9378a1cf 100644
--- a/docs/i18n/fa/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/fa/docs/guides/USER_GUIDE.md
@@ -609,60 +609,60 @@ post_install() {
---
-## 📊 مدلهای موجود
+## مدل های موجود 📊
-مشاهده همه مدلهای موجود
+مشاهده تمامی مدل های موجود
-> فهرست زیر از `open-sse/config/providerRegistry.ts` برای v3.8.0 گردآوری شده است. کاتالوگهای ابری (Gemini، OpenRouter و غیره) بهصورت پویا همگامسازی میشوند — برای مشاهده کاتالوگ کامل و بهروز، مسیر **Dashboard → Providers → [provider] → Available Models** را باز کنید یا `GET /api/models/catalog` را فراخوانی کنید.
+> لیست زیر از `open-sse/config/providerRegistry.ts` برای نسخه 3.8.0 تهیه شده است. کاتالوگ های ابری (Gemini، OpenRouter، و غیره) به صورت پویا — برای کاتالوگ زنده کامل باز همگام سازی می شوند** Dashboard → Providers → [provider] → مدل های موجود** یا `GET /api/models/catalog` را صدا کن .
>
-> اگر فهرست داخلی یک ارائهدهنده قدیمی شده باشد، از **Import from /models** در همان صفحه استفاده کنید (یا **Auto-Sync** را فعال کنید) تا کاتالوگ بهروز upstream را دریافت کنید. این مورد در v3.8.50 برای LLM7.io (`gemini-3.1-flash-lite`) و UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) تأیید شد؛ دسترسی ناشناس Pollinations در همان مرحله آزمایش همچنان از سمت upstream محدود باقی ماند.
+> اگر فهرست داخلی ارائهدهنده تغییر کرده است، از آن استفاده کنید** واردات از /models** در آن صفحه (یا فعال کنید** همگام سازی خودکار** ) برای کشیدن کاتالوگ بالادستی زنده. این در نسخه 3.8.50 برای LLM7(`gemini-3.1-flash-lite`) و UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) تأیید شد. دسترسی ناشناس گردهافشانیها در طول همان قبولی آزمون محدود به بالادست باقی ماند.
-**Claude Code (`cc/`)** — OAuth از نوع Pro/Max: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**کد Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — OAuth از نوع Plus/Pro: `cx/gpt-5.5` (+ سطوح effort: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort tiers: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth رایگان: از کاتالوگ بهروزی که در مسیر **Dashboard → Providers → Kiro → Available Models** نمایش داده میشود استفاده کنید. دسترسیپذیری بسته به حساب کاربری و طرح متفاوت است.
+**Kiro (`kr/`)** — FREE OAuth: از کاتالوگ زنده نشان داده شده در زیر استفاده کنید** داشبورد → ارائه دهندگان → Kiro → مدل های موجود** . در دسترس بودن بستگی به حساب و برنامه دارد.
-**Qoder (`if/`)** — OAuth رایگان: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — تعرفه ثابت $9 در ماه یا پرداخت بهازای مصرف: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo مسطح یا در هر استفاده: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — کلید API: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API کلید: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — فوقسریع: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — فوق سریع: `groq/llama-3.3-70b-versatile`، `groq/meta-llama/llama-4-maverick-17b-128e-instruct`، `groq/qwen/qwen3-32b`، `groq/openai/gpt-oss-120b`
**xAI (`xai/`)** — Grok بومی: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — میزبانیشده در اتحادیه اروپا: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — به میزبانی اتحادیه اروپا: `mistral/mistral-large-latest`، `mistral/mistral-medium-3-5`، `mistral/mistral-small-latest`، `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — تقویتشده با جستجو: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**گیجی (`pplx/`)** — جستجوی افزوده شده: `pplx/sonar-deep-research`، `pplx/sonar-reasoning-pro`، `pplx/sonar-pro`، `pplx/sonar`
-**Together AI (`together/`)** — متنباز: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (رایگان), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — منبع باز: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (رایگان)، `together/meta-llama/Llama-Vision-Free`، `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`، `together/deepseek-ai/DeepSeek-R1`، `together/Qwen/Qwen3-235B-A22B`، `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — استنتاج سریع: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — استنباط سریع: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — مقیاس ویفر: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — ویفر مقیاس: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — متمرکز بر RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG-focused: `cohere/command-a-reasoning-08-2025`، `cohere/command-a-vision-07-2025`، `cohere/command-a-03-2025`، `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — سازمانی: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
-**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
+**Baidu کیانفان (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: بهصورت زنده و بهازای هر کلید API از Google همگامسازی میشود — فهرست ثابتی وجود ندارد. یک کلید را در **Dashboard → Providers** متصل کنید و سپس از **Available Models** برای واردکردن کاتالوگ فعلی استفاده کنید (مثلاً `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google ابر `gemini/`)** : همگام سازی زنده به ازای کلید API از Google — بدون لیست ثابت. یک کلید را به داخل وصل کنید** ارائه دهندگان داشبورد →** سپس استفاده کنید** مدل های موجود** برای وارد کردن کاتالوگ فعلی (به عنوان مثال `gemini/gemini-3-pro`، `gemini/gemini-3-flash`).
-**سایر ارائهدهندگان سازگار** (منتخب): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (از طریق `aws-bedrock`), `azure-ai`, `openrouter` (کاتالوگ عبوری), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. هرکدام فهرست مدلهای خود را در `providerRegistry.ts` نگهداری میکنند و در صورتی که ارائهدهنده یک endpoint به نام `/models` ارائه دهد، میتوانند بهصورت خودکار همگامسازی شوند.
+**سایر ارائه دهندگان سازگار** (انتخاب شده): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (از طریق `aws-bedrock`), `azure-ai`, `openrouter` (کاتالوگ عبوری) `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink` `nous-research` `friendliai` `volcengine` `reka`, `ai21` `gigachat` هر کدام لیست مدل خود را در `providerRegistry.ts` حفظ می کنند و زمانی که ارائه دهنده یک نقطه پایانی `/models` را نشان می دهد می تواند به طور خودکار همگام سازی شود.
-**نکته درباره شناسههای مدل:** OmniRoute از شناسههای بومیِ هر ارائهدهنده استفاده میکند (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). برخی شناسهها شامل نسخههای نقطهدار هستند، زیرا API بالادستی آنها را به همین شکل انتظار دارد. اگر مدلی در فهرست بالا ذکر نشده است، دستور `omniroute models --search ` را اجرا کنید یا `GET /api/models/catalog` را فراخوانی کنید تا از در دسترس بودن آن مطمئن شوید.
+**توجه به مدل IDs:** OmniRoute از IDs بومی ارائهدهنده استفاده میکند (`claude-opus-4-8`، `gpt-5.5`، `glm-5.1`، `MiniMax-M2.7`، `kimi-k2.5`، `grok-4.20-0309-reasoning`). برخی از IDs شامل نسخههای نقطهدار میشوند، زیرا API بالادست آنها را انتظار دارد. اگر مدلی در بالا ذکر نشده است، `omniroute models --search ` اجرا کنید یا `GET /api/models/catalog` را برای تأیید در دسترس بودن ضربه بزنید.
diff --git a/docs/i18n/fi/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/fi/docs/architecture/RESILIENCE_GUIDE.md
index d010181bc84c..95a1bfa192a3 100644
--- a/docs/i18n/fi/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/fi/docs/architecture/RESILIENCE_GUIDE.md
@@ -283,25 +283,17 @@ tallennetaan pysyvästi; aktiivinen lukituksen _tila_ on ohimenevä.
---
-## 4. Quota-share -samanaikaisuuden hallinta (v3.8.36)
+## 4. Kiintiön jaon samanaikaisuuden hallinta (v3.8.36)
-Tilauspohjaiset tilit (GLM, MiniMax jne.) hyväksyvät usein vain noin 1–3 samanaikaista
-pyyntöä; rajan ylittäminen laukaisee 429-virheitä ja jäähdytysaikoja. Ongelma korostuu
-**quota-share**-yhdistelmissä (`qtSd/…`), joissa useat API-avaimet jakavat yhden
-upstream-tilin. Kolme kerrosta estää jaetun tilin tulvimisen.
+Tilaustilit (GLM, MiniMax jne.) hyväksyvät usein vain ~ 1–3 samanaikaista pyyntöä; sen ylittäminen laukaisee 429s ja jäähtymisen. Tämä on akuutti alla** kiintiöosuus** (`qtSd/…`) -yhdistelmät, joissa useat API näppäimet jakavat yhden ylävirran tilin. Kolme kerrosta estävät jaetun tilin tulvimisen.
-### Yhteyskohtainen samanaikaisuusraja (`max_concurrent`)
+### Yhteyskohtainen samanaikaisuuden yläraja (`max_concurrent`)
-Jokainen provider-yhteys voi määrittää `max_concurrent`-ylärajan
-(`provider_connections.max_concurrent`, asetetaan yhteysikkunassa / API:n kautta /
-tietokannassa). Jätä tyhjäksi, jos rajaa ei haluta. Tämä on ainoa säädin, joka ohjaa
-alla kuvattua sarjallistuskerrosta — aseta se tilin todellista samanaikaisuutta
-vastaavaksi (esim. GLM ~1, MiniMax ~2).
+Jokainen palveluntarjoajayhteys voi ilmoittaa `max_concurrent` -katon (`provider_connections.max_concurrent`, asetettu yhteyden modaalissa / API / DB). Jätä se tyhjäksi ilman rajoituksia. Tämä on yksi nuppi, joka ohjaa sarjoituskerrosta — alapuolella ja asettaa sen tilin todelliseen samanaikaisuuteen (esim. GLM ~ 1, MiniMax ~ 2).
-### Mallikohtaiset samanaikaisuusrajat (`modelConcurrency`)
+### Mallikohtaiset samanaikaisuuden ylärajat (`modelConcurrency`)
-Yhteys voi lisäksi määrittää tarkat mallikohtaiset samanaikaisuusylärajat
-`rateLimitOverrides`-kartan sisällä:
+Yhteys voi lisäksi ilmoittaa tarkat mallikohtaiset samanaikaisuuskatot `rateLimitOverrides` kartassa:
```json
{
@@ -312,78 +304,32 @@ Yhteys voi lisäksi määrittää tarkat mallikohtaiset samanaikaisuusylärajat
}
```
-Aseta se yhteysikkunassa (**Rate limit overrides → Per-model
-concurrency caps**, yksi `model=cap` per rivi) tai kutsulla
-`PATCH /api/providers/[id]` samalla JSON-muodolla. Keskeinen semantiikka:
-
-- **Koko yhteys vs. mallikohtainen:** `maxConcurrent` pysyy jaettuna koko yhteyden
- ylärajana. Kun molemmat ovat voimassa, molemmat portit hankitaan
- atomisesti samassa yhdistelmäportissa
- (`global → provider → account → model`); vaikuttava käyttäytyminen määräytyy
- tiukemman sovellettavan rajan mukaan.
-- **Tarkka malliavainvastaavuus:** avain on mallimerkkijono, joka välitetään
- executorille reititysratkaisun jälkeen — yleensä pelkkä upstream-mallin tunnus
- (`glm-5`), ei asiakaspuolen `provider/model`-alias (`zai/glm-5` ei
- vastaa `glm-5`). Arvot ovat positiivisia kokonaislukuja, jotka toimivat
- samanaikaisten pyyntöjen ylärajoina.
-- **Paikallinen jonotus, ei selvittelyä:** ylimääräiset pyynnöt jonottavat
- paikallisesti olemassa olevilla jono-/aikakatkaisusemantiikoilla (typitetyt
- `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` -pääsyvirheet). OmniRoute ei selvitä
- tai päättele upstream-käytäntöä — se valvoo täsmälleen operaattorin
- määrittelemiä ylärajoja. Kyllästynyt malliportti ei koskaan poista provideria
- käytöstä eikä luo pysyvää mallilukitusta; upstreamin 429-/jäähdytys-/fallback-
- käyttäytyminen toimii edelleen virheiden varmistuksena.
-- **Yhteys- ja prosessikohtainen laajuus:** rajat ovat tietokantayhteyskohtaisia
- ja säilytetään muistissa, joten kaksi samaa upstream-API-avainta käyttävää
- yhteyttä eivät koordinoi keskenään.
-- **Määrittämätön tarkoittaa muuttumatonta:** kartan pois jättäminen (tai
- hallintapaneelin kentän jättäminen tyhjäksi) ei lisää malliporttia.
- Esimerkkikonfiguraatio ilman väitettä mistään yleisestä provider-rajasta:
+Aseta se yhteysmodaaliin (** Hintaraja ohittaa → -mallikohtaiset samanaikaisuuskatot** , yksi `model=cap` riviä kohden) tai `PATCH /api/providers/[id]` kautta samalla JSON muodolla. Keskeiset semantiikka:
+
+- **Yhteydenlaajuinen vs mallikohtainen:** `maxConcurrent` pysyy jaetun yhteyden laajuisena kattona. Kun molemmat ovat voimassa, molemmat portit hankitaan atomisesti samassa komposiittiportissa (`global → provider → account → model`); tehokas toiminta on tiukempi sovellettava raja.
+- **Tarkka malli-avain vastaavuus:** avain on mallimerkkijono, joka välitetään suorittimelle reititysresoluution — jälkeen, yleensä paljas ylävirran mallitunnus (`glm-5`), ei asiakaspuolen `provider/model` alias (`zai/glm-5` ei vastaa `glm-5`). Arvot ovat positiivisten kokonaislukujen samanaikaisten pyyntöjen enimmäismääriä.
+- **Paikallinen jonotus, ei löytöä:** ylimääräiset pyynnöt jonottavat paikallisesti olemassa olevan queue/timeout semantiikan kanssa (kirjoitettu `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` -pääsyvirheet). OmniRoute ei löydä tai päättele ylävirran käytäntöä — se valvoo operaattorin määrittämiä tarkat enimmäismäärät. Kyllästynyt malliportti ei koskaan poista palveluntarjoajaa käytöstä eikä luo pysyvää mallin lukitusta; ylävirran 429/cooldown/fallback käyttäytyminen on edelleen virheen esto.
+- **Yhteyskohtainen, prosessikohtainen laajuus:** caps ovat tietokantayhteyskohtaisia ja säilytetään muistissa, joten kaksi samaa ylävirran API avainta uudelleen käyttävää yhteyttä eivät koordinoi toisiaan.
+- **Määrittämätön tarkoittaa muuttumatonta:** kartan jättäminen pois (tai kojelautakentän tyhjäksi jättäminen) ei lisää malliporttia. Esimerkki kokoonpanosta ilman yleispalvelun tarjoajan rajoitusta:
```text
glm-5=1
glm-4.7=3
```
-### Quota-share -pyyntöjen sarjallistaminen
-
-Kun quota-share -lähetys kohdistuu yhteyteen, jossa on määritetty positiivinen
-`max_concurrent`, kyseiseen **tiliin** kohdistuvat samanaikaiset pyynnöt
-sarjallistetaan yhteyskohtaisen semaforin kautta (avain `qsconn:`):
-ylimääräiset pyynnöt **odottavat jonossa** sen sijaan, että ne tulvisivat tiliä.
-Ratkaisu on **fail-open** — täysi jono tai aikakatkaisu jatkaa ilman paikkaa sen
-sijaan, että lähetettävissä oleva pyyntö koskaan hylättäisiin. Ominaisuuden voi
-kytkeä kohdassa **Settings → Resilience → Quota-share per-connection
-concurrency** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`,
-oletuksena päällä). Ilman `max_concurrent`-rajaa toiminta on ennallaan.
-
-> Quota-share -reititysportti (`selectQuotaShareTarget`, DRR + P2C) on itsessään
-> fail-open ja vain _alentaa_ kapasiteetin ylärajaan saavuttaneen yhteyden
-> _prioriteettia_ — yhden yhteyden poolissa se ei voi asettaa ehdotonta rajaa,
-> joten tämä semafori on se, joka todella pitää tulvan hallinnassa.
-
-### Yhdistelmien jäähdytykseen mukautuva uudelleenyritys
-
-Jokaisessa yhdistelmästrategiassa (kun ominaisuus on käytössä) pyyntö, joka
-muuten tuottaisi 429-virheen LYHYEN ohimenevän jäähdytysajan vuoksi, odottaa sen
-päättymistä ja lähetetään uudelleen sen sijaan, että 429 palautettaisiin — tämä
-kattaa Gemini-luokan TPM/RPM-ikkunat (~60 s retry-after) usean mallin
-yhdistelmissä, esimerkiksi kun kahden mallin yhdistelmän molemmat kohteet osuvat
-mallikohtaiseen nopeusrajoitukseen. Rajoituksia ohjaa `comboCooldownWait`
-(`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) kohdassa **Settings →
-Resilience**. Se ei koskaan odota `quota_exhausted`-tilan vuoksi (lukittuna
-keskiyöhön asti) tai auth-/not-found-syistä.
-
-Sama portti kattaa myös lähetystä edeltävän tapauksen (#16319): kun kaikki
-yhdistelmän kohteet ohitetaan ennen yhtään yritystä, koska niiden mallit ovat
-lyhyessä ohimenevässä lukituksessa, nollayrityspolku odottaa lukon päättymistä
-samojen ylärajojen puitteissa ja lähettää uudelleen sen sijaan, että vastaisi
-vihjeettömällä `503 ALL_TARGETS_SKIPPED` -virheellä. Kun odotusta ei sallita
-(yläraja, yritys- tai budjettivaraus lopussa tai ominaisuus pois päältä),
-lopullinen vastaus muuttuu muotoon `429 rate_limit_error`, joka sisältää
-`retry_after`- / `reset_at`-arvot aikaisimmasta ohimenevän lukon
-päättymisajankohdasta; quota-, auth- ja not-found-lukot säilyttävät vihjeettömän
-503-vastauksen.
+### Kiintiönjakopyynnön sarjoittaminen
+
+Kun kiintiöosuuslähetys kohdistuu yhteyteen, joka ilmoittaa positiivisen `max_concurrent`, samanaikaiset pyynnöt tälle** tili** sarjoitetaan yhteyskohtaisen semaforin kautta (avain `qsconn:`): ylimääräiset pyynnöt** odota jonossa** tilin tulvimisen sijaan. Se on** epäonnistunut** — kyllästynyt jono tai aikakatkaisu etenee ilman aikaväliä sen sijaan, että koskaan hylättäisiin lähetettävä pyyntö. Vaihda sisään** Asetukset → Resilience → Kiintiön osuus yhteyskohtaisesti samanaikaisuus** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, oletuksena päällä). Ilman `max_concurrent` korkkia käyttäytyminen ei muutu.
+
+> Kiintiön jaon reititysportti (`selectQuotaShareTarget`, DRR + P2C) on itsessään vikasietoinen ja vain _depriorisoi_ at-cap-yhteyden — jossa on yksiyhteyspooli, jota se ei voi tiukasti rajoittaa, joten tämä semafori on se, joka todella sisältää tulvan.
+
+### Yhdistelmäjäähdytystietoinen uudelleenyritys
+
+Jokaisen yhdistelmästrategian kohdalla (kun käytössä) pyyntö, joka kiteyttää 429:n SHORT ohimenevään jäähtymiseen, odottaa sen ja lähettää uudelleen sen sijaan, että se palauttaisi 429 — Tämä kattaa Gemini-luokan TPM/RPM ikkunat (~ 60s uudelleenyritysten jälkeen) usean mallin yhdistelmässä, esim. molemmissa rajoissa model-model-mallit. `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) rajoittama** Asetukset → Resilience** . Se ei koskaan odota `quota_exhausted` (lukittu keskiyöhön asti) tai auth/not-found syistä.
+
+Yhdistelmä voi kieltäytyä käytöstä `config.comboCooldownWaitEnabled: false` kanssa. Vain kirjaimellinen `false` poistaa käytöstä nämä jaetut yhdistelmä-odotukset (lähetyksen jälkeiset jäähdytys- ja lähetystä edeltävät circuit-open/model-lock odotukset) ja niiden odotusbudjetin aikakatkaisukerroslaajennus. Puuttuva tai `true` säilyttää globaalin politiikan; `true` ei voi ottaa käyttöön maailmanlaajuisesti käytöstä poistettua odotusta. Selkeä `targetTimeoutMs` voittaa silti. Tämä kieltäytyminen ei muuta erillistä alkuperäisen Codexin kääntönasta ennen lähettämistä.
+
+Sama portti peittää lähettämistä edeltävän tapauksen (#16319): kun yhdistelmän jokainen kohde ohitetaan ennen kuin yritetään tehdä, koska sen malli on lyhyessä ohimenevässä lukituksessa, nollayrityspolku odottaa lukitusta samojen kattojen alla ja lähettää uudelleen sen sijaan, että vastaisi vihjeettömään `503 ALL_TARGETS_SKIPPED`. Kun odotus ei ole sallittua (katto, yritys tai budjetti on käytetty loppuun tai ominaisuus pois päältä), päätteen vastaus päivittyy `429 rate_limit_error`, joka kuljettaa `retry_after` / `reset_at` aikaisimmasta ohimenevän lukon päättymisestä; kiintiö-, todennus- ja ei-found-lukot pitävät vihjettömän 503:n.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/fi/docs/guides/USER_GUIDE.md b/docs/i18n/fi/docs/guides/USER_GUIDE.md
index 9996e7219dcf..7d7f88ce3a70 100644
--- a/docs/i18n/fi/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/fi/docs/guides/USER_GUIDE.md
@@ -607,60 +607,60 @@ Täydellinen ympäristömuuttujien luettelo on [README-tiedostossa](../README.md
---
-## 📊 Käytettävissä olevat mallit
+## 📊 Saatavilla olevat mallit
-Näytä kaikki käytettävissä olevat mallit
+Katso kaikki saatavilla olevat mallit
-> Alla oleva lista on koottu tiedostosta `open-sse/config/providerRegistry.ts` versiolle v3.8.0. Pilvikatalogit (Gemini, OpenRouter jne.) synkronoidaan dynaamisesti — täyden reaaliaikaisen katalogin näet valitsemalla **Hallintapaneeli → Palveluntarjoajat → [palveluntarjoaja] → Käytettävissä olevat mallit** tai kutsumalla `GET /api/models/catalog`.
+> Alla oleva luettelo on kuratoitu `open-sse/config/providerRegistry.ts` :sta v3.8.0:lle. Pilviluettelot (Gemini, OpenRouter jne.) synkronoidaan dynaamisesti — koko live-luettelon avaamiseksi** Dashboard → Providers → [provider] → Saatavilla olevat mallit** tai soita `GET /api/models/catalog`.
>
-> Jos palveluntarjoajan sisäänrakennettu lista on vanhentunut, käytä kyseisellä sivulla olevaa toimintoa **Tuo /models-rajapinnasta** (tai ota käyttöön **Automaattinen synkronointi**) hakeaksesi ajantasaisen ylävirran katalogin. Tämä varmistettiin versiossa v3.8.50 LLM7.io:lle (`gemini-3.1-flash-lite`) ja UncloseAI:lle (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Pollinationsin anonyymi käyttö pysyi ylävirran rajoittamana saman testikierroksen aikana.
+> Jos palveluntarjoajan sisäänrakennettu luettelo on ajautunut, käytä** Tuo / mallit** tällä sivulla (tai ota käyttöön** Automaattinen synkronointi** ) hakeaksesi live upstream -luettelon. Tämä varmistettiin versiossa 3.8.50 LLM7.io (`gemini-3.1-flash-lite`) ja UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Pölytysten anonyymi pääsy pysyi ylävirtaan rajoitettuna saman testikierroksen aikana.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude koodi (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort-tasot: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ -työtasot: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — ILMAINEN OAuth: käytä reaaliaikaista katalogia, joka näkyy kohdassa **Hallintapaneeli → Palveluntarjoajat → Kiro → Käytettävissä olevat mallit**. Saatavuus riippuu tilistä ja tilaustasosta.
+**Kiro (`kr/`)** — FREE OAuth: käytä alla näkyvää luetteloa** Kojelauta → Tarjoajat → Kiro → Saatavilla olevat mallit** . Saatavuus riippuu tilistä ja suunnitelmasta.
-**Qoder (`if/`)** — ILMAINEN OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/kk kiinteä tai käytön mukaan: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo tasainen tai käyttökohtainen: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — API-avain: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API -näppäin: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
**Groq (`groq/`)** — Erittäin nopea: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok-natiivit: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok natiivi: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU:ssa isännöity: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU:n isännöimä: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Haulla tehostettu: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**hämmennys (`pplx/`)** — Lisätty haku: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Avoimen lähdekoodin: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ilmainen), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — Avoin lähdekoodi: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ilmainen), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
**Fireworks AI (`fireworks/`)** — Nopea päättely: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Wafer-scale: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — kiekkomittakaava: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — RAG-painotteinen: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG-keskeinen: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Yrityskäyttöön: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Synkronoidaan reaaliajassa API-avaimella Googlelta — ei staattista listaa. Yhdistä avain kohdassa **Hallintapaneeli → Palveluntarjoajat** ja tuo sen jälkeen ajantasainen katalogi valitsemalla **Käytettävissä olevat mallit** (esim. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : Synkronoitu livenä API -näppäimellä Google — stä, ei staattista luetteloa. Liitä avain sisään** Kojelaudan → palveluntarjoajat** käytä sitten** Saatavilla olevat mallit** tuodaksesi nykyisen luettelon (esim. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Muut yhteensopivat palveluntarjoajat** (valikoima): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (kautta `aws-bedrock`), `azure-ai`, `openrouter` (läpikulkukatalogi), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Jokainen ylläpitää omaa mallilistaansa tiedostossa `providerRegistry.ts`, ja ne voidaan synkronoida automaattisesti, kun palveluntarjoaja tarjoaa `/models`-päätepisteen.
+**Muut yhteensopivat palveluntarjoajat** (valittu): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` ( `aws-bedrock` kautta `nous-research`, `azure-ai`, `openrouter` (läpivientiluettelo), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai` `volcengine` `reka`, `ai21` `gigachat` Jokainen ylläpitää omaa malliluetteloaan `providerRegistry.ts` :ssa, ja se voidaan synkronoida automaattisesti, kun toimittaja paljastaa `/models` päätepisteen.
-**Huomautus mallitunnisteista:** OmniRoute käyttää palveluntarjoajien natiiveja tunnisteita (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Jotkin tunnisteet sisältävät pisteellisiä versioita, koska ylävirran API odottaa niitä sellaisina. Jos mallia ei ole lueteltu yllä, suorita `omniroute models --search ` tai tee pyyntö `GET /api/models/catalog` vahvistaaksesi saatavuuden.
+**Huomautus mallista IDs:** OmniRoute käyttää tarjoajan alkuperäistä IDs :tä (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Jotkut IDs versiot sisältävät katkoviivaversioita, koska niin ylävirran API odottaa niitä. Jos mallia ei ole luettelossa, suorita `omniroute models --search ` tai paina `GET /api/models/catalog` vahvistaaksesi saatavuus.
diff --git a/docs/i18n/fr/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/fr/docs/architecture/RESILIENCE_GUIDE.md
index 9b24dffe82cb..bd8683681d8e 100644
--- a/docs/i18n/fr/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/fr/docs/architecture/RESILIENCE_GUIDE.md
@@ -286,26 +286,17 @@ actif des verrouillages est éphémère.
---
-## 4. Contrôle de la concurrence en partage de quota (v3.8.36)
+## 4. Contrôle de la concurrence par partage de quotas (v3.8.36)
-Les comptes d'abonnement (GLM, MiniMax, etc.) n'acceptent souvent que ~1 à 3
-requêtes simultanées ; au-delà, des erreurs 429 et des cooldowns se déclenchent.
-Le problème est particulièrement aigu avec les combos en **partage de quota**
-(`qtSd/…`), où plusieurs clés API partagent un même compte amont. Trois couches
-empêchent qu'un compte partagé soit saturé.
+Les comptes d'abonnement (GLM, MiniMax, etc.) n'acceptent souvent que ~ 1 à 3 requêtes simultanées ; le dépassement déclenche des 429 et des temps de recharge. Ceci est aigu sous** quote-part** (`qtSd/…`) combos, où plusieurs clés API partagent un compte en amont. Trois couches empêchent un compte partagé d'être inondé.
### Plafond de concurrence par connexion (`max_concurrent`)
-Chaque connexion de fournisseur peut déclarer un plafond `max_concurrent`
-(`provider_connections.max_concurrent`, défini dans la fenêtre modale de
-connexion / l'API / la base de données). Laissez-le vide pour aucune limite.
-C'est l'unique réglage qui pilote la couche de sérialisation décrite ci-dessous —
-définissez-le sur la concurrence réelle du compte (par ex. GLM ~1, MiniMax ~2).
+Chaque connexion du fournisseur peut déclarer un plafond `max_concurrent` (`provider_connections.max_concurrent`, défini dans la connexion modal / API / DB). Laissez-le vide sans limite. Il s'agit du seul bouton qui pilote la couche de sérialisation sous — et la définit sur la concurrence réelle du compte (par exemple, GLM ~ 1, MiniMax ~ 2).
### Plafonds de concurrence par modèle (`modelConcurrency`)
-Une connexion peut en outre déclarer des plafonds de concurrence exacts par
-modèle dans sa map `rateLimitOverrides` :
+Une connexion peut en outre déclarer des plafonds de concurrence exacts par modèle dans sa carte `rateLimitOverrides` :
```json
{
@@ -316,79 +307,32 @@ modèle dans sa map `rateLimitOverrides` :
}
```
-Définissez-la dans la fenêtre modale de connexion (**Remplacements des limites
-de débit → Plafonds de concurrence par modèle**, un `model=cap` par ligne) ou via
-`PATCH /api/providers/[id]` avec la même structure JSON. Sémantique des clés :
-
-- **À l'échelle de la connexion ou spécifique au modèle :** `maxConcurrent`
- reste le plafond partagé à l'échelle de la connexion. Lorsque les deux
- s'appliquent, les deux portes sont acquises atomiquement dans la même porte
- composite (`global → provider → account → model`) ; le comportement effectif
- est celui de la limite applicable la plus stricte.
-- **Correspondance exacte de la clé de modèle :** la clé est la chaîne de
- modèle transmise à l'exécuteur après la résolution du routage — normalement
- l'identifiant de modèle amont nu (`glm-5`), et non un alias `provider/model`
- côté client (`zai/glm-5` ne correspond pas à `glm-5`). Les valeurs sont des
- plafonds de requêtes simultanées sous forme d'entiers positifs.
-- **Mise en file d'attente locale, sans découverte :** les requêtes
- excédentaires sont mises en file d'attente localement avec la sémantique de
- file/délai d'attente existante (erreurs d'admission typées
- `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). OmniRoute ne découvre ni ne
- déduit la politique amont — il applique les plafonds exacts configurés par
- l'opérateur. Une porte de modèle saturée ne désactive jamais le fournisseur et
- ne crée jamais de verrouillage permanent du modèle ; le comportement amont
- 429/cooldown/fallback reste le filet de sécurité en cas d'erreur.
-- **Portée par connexion et par processus :** les plafonds sont définis par
- connexion en base de données et conservés en mémoire, de sorte que deux
- connexions réutilisant la même clé API amont ne se coordonnent pas entre elles.
-- **Non configuré signifie inchangé :** l'omission de la map (ou un champ
- laissé vide dans le tableau de bord) n'ajoute aucune porte de modèle. Exemple
- de configuration sans affirmer de limite universelle de fournisseur :
+Définissez-le dans le modal de connexion (** La limite de débit remplace → les plafonds de concurrence par modèle** , un `model=cap` par ligne) ou via `PATCH /api/providers/[id]` avec la même forme JSON. Sémantique clé :
+
+- **À l’échelle de la connexion ou spécifique au modèle :** `maxConcurrent` reste le plafond partagé à l’échelle de la connexion. Lorsque les deux s'appliquent, les deux portes sont acquises atomiquement dans la même porte composite (`global → provider → account → model`) ; le comportement effectif est la limite applicable la plus stricte.
+- **Correspondance exacte modèle-clé :** la clé est la chaîne de modèle transmise à l'exécuteur après la résolution du routage — normalement l'identifiant de modèle en amont (`glm-5`), pas un alias `provider/model` côté client (`zai/glm-5` ne correspond pas `glm-5`). Les valeurs sont des plafonds de demandes simultanées positives.
+- **File d'attente locale, pas de découverte :** les requêtes excédentaires sont mises en file d'attente localement avec la sémantique queue/timeout existante (erreurs d'admission tapées `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ). OmniRoute ne découvre ni ne déduit la politique en amont — il applique les plafonds exacts configurés par l'opérateur. Une porte de modèle saturée ne désactive jamais le fournisseur et ne crée jamais de verrouillage permanent du modèle ; le comportement 429/cooldown/fallback en amont reste le filet de sécurité contre les erreurs.
+- **Portée par connexion et par processus :** les majuscules sont par connexion à la base de données et conservées en mémoire, de sorte que deux connexions réutilisant la même clé API en amont ne se coordonnent pas.
+- **Non configuré signifie inchangé :** omettre la carte (ou laisser le champ du tableau de bord vide) n'ajoute aucune porte de modèle. Exemple de configuration sans affirmer de limite de fournisseur universel :
```text
glm-5=1
glm-4.7=3
```
-### Sérialisation des requêtes en partage de quota
-
-Lorsqu'une distribution en partage de quota cible une connexion qui déclare un
-`max_concurrent` positif, les requêtes simultanées vers ce **compte** sont
-sérialisées via un sémaphore par connexion (clé `qsconn:`) : les
-requêtes excédentaires **attendent dans la file** au lieu de saturer le compte.
-Le mécanisme est **fail-open** — une file saturée ou un délai dépassé poursuit
-sans emplacement plutôt que de jamais rejeter une requête distribuable.
-Basculez dans **Paramètres → Résilience → Concurrence par connexion pour le
-partage de quota** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`,
-activé par défaut). Sans plafond `max_concurrent`, le comportement est inchangé.
-
-> La porte de routage en partage de quota (`selectQuotaShareTarget`, DRR + P2C)
-> est elle-même fail-open et ne fait que _déprioriser_ une connexion ayant
-> atteint son plafond — avec un pool à connexion unique, elle ne peut pas
-> imposer de limite stricte ; c'est donc ce sémaphore qui contient réellement
-> le flux.
-
-### Réessai de combo tenant compte des cooldowns
-
-Pour chaque stratégie de combo (lorsqu'elle est activée), une requête qui
-cristalliserait une erreur 429 pour un cooldown transitoire COURT attend la fin
-de celui-ci et est redistribuée au lieu de renvoyer le 429 — cela couvre les
-fenêtres TPM/RPM de type Gemini (~60 s de retry-after) sur les combos
-multi-modèles, par ex. lorsque les deux cibles d'un combo à 2 modèles atteignent
-une limite de débit par modèle. Limité par `comboCooldownWait` (`enabled`,
-`maxWaitMs`, `maxAttempts`, `budgetMs`) dans **Paramètres → Résilience**. Il
-n'attend jamais sur `quota_exhausted` (verrouillé jusqu'à minuit) ni pour des
-motifs auth/not-found.
-
-La même porte couvre le cas pré-distribution (#16319) : lorsque toutes les
-cibles d'un combo sont ignorées avant la moindre tentative parce que leur modèle
-se trouve dans un court verrouillage transitoire, le parcours sans tentative
-attend la fin du verrouillage sous les mêmes plafonds et redistribue, au lieu de
-répondre un `503 ALL_TARGETS_SKIPPED` sans indice. Lorsqu'aucune attente n'est
-permise (plafond, tentatives ou budget épuisés, ou fonctionnalité désactivée),
-la réponse terminale passe à `429 rate_limit_error` portant `retry_after` /
-`reset_at` issus de l'expiration du verrou transitoire la plus proche ; les
-verrous de quota, auth et not-found conservent le 503 sans indice.
+### Sérialisation des demandes de partage de quota
+
+Lorsqu'une répartition en partage de quota cible une connexion qui déclare un `max_concurrent` positif, les requêtes simultanées à ce sujet** compte** sont sérialisés via un sémaphore par connexion (clé `qsconn:`) : requêtes excédentaires** attendre dans la file d'attente** au lieu d'inonder le compte. C'est** échec d'ouverture** — une file d'attente saturée ou un délai d'attente se déroule sans créneau plutôt que de jamais rejeter une demande distribuable. Activer** Paramètres → Résilience → Concurrence de partage de quota par connexion** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, activé par défaut). Sans plafond `max_concurrent` le comportement est inchangé.
+
+> La porte de routage de partage de quota (`selectQuotaShareTarget`, DRR + P2C) est elle-même ouverte en cas d'échec et ne _dépriorise_ qu'une connexion au plafond — avec un pool de connexion unique qu'elle ne peut pas limiter de manière stricte, donc ce sémaphore est ce qui contient réellement l'inondation.
+
+### Nouvelle tentative prenant en compte le temps de recharge du combo
+
+Pour chaque stratégie de combo (lorsqu'elle est activée), une demande qui cristalliserait un 429 pour un temps de recharge transitoire SHORT l'attend et le réexpédie au lieu de renvoyer le 429 — Cela couvre les fenêtres TPM/RPM de classe Gemini (~ 60s réessayer après) sur les combos multi-modèles, par exemple les deux cibles d'un combo à 2 modèles atteignant une limite de débit par modèle. Délimité par `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) dans** Paramètres → Résilience** . Il n'attend jamais pour des raisons `quota_exhausted` (verrouillé jusqu'à minuit) ou auth/not-found.
+
+Un combo peut se désinscrire avec `config.comboCooldownWaitEnabled: false`. Seul `false` littéral désactive ces attentes combinées partagées (temps de recharge après expédition et attentes circuit-open/model-lock avant expédition) et leur extension de délai d'expiration du budget d'attente. Missing ou `true` préserve la politique globale ; `true` ne peut pas activer l'attente globalement désactivée. Un `targetTimeoutMs` explicite gagne toujours. Cette désinscription ne modifie pas l’attente préalable à l’expédition des broches Codex natives.
+
+La même porte couvre le cas de pré-envoi (#16319) : lorsque chaque cible d'un combo est ignorée avant qu'une tentative ne soit effectuée parce que son modèle se trouve dans un court verrouillage transitoire, le chemin de tentative zéro attend le verrouillage sous les mêmes plafonds et ré-envoie, au lieu de répondre à un `503 ALL_TARGETS_SKIPPED` sans indice. Lorsqu'aucune attente n'est autorisée (plafond, tentative ou budget épuisé, ou fonctionnalité désactivée), la réponse du terminal passe à `429 rate_limit_error` transportant `retry_after` / `reset_at` à partir de la première expiration du verrouillage transitoire ; Les verrous de quota, d'authentification et non trouvés conservent le 503 sans indice.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/fr/docs/guides/USER_GUIDE.md b/docs/i18n/fr/docs/guides/USER_GUIDE.md
index 07bd5da92550..f328dfb8d168 100644
--- a/docs/i18n/fr/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/fr/docs/guides/USER_GUIDE.md
@@ -607,60 +607,60 @@ Pour obtenir la liste complète des variables d'environnement, consultez le [REA
---
-## 📊 Modèles disponibles
+## 📊 disponibles
Voir tous les modèles disponibles
-> La liste ci-dessous est extraite de `open-sse/config/providerRegistry.ts` pour la v3.8.0. Les catalogues cloud (Gemini, OpenRouter, etc.) sont synchronisés dynamiquement — pour consulter le catalogue complet en temps réel, ouvrez **Tableau de bord → Fournisseurs → [fournisseur] → Modèles disponibles** ou appelez `GET /api/models/catalog`.
+> La liste ci-dessous est organisée à partir de `open-sse/config/providerRegistry.ts` pour la v3.8.0. Les catalogues cloud (Gemini, OpenRouter, etc.) sont synchronisés dynamiquement — pour le catalogue complet en direct ouvert** Fournisseurs de tableau de bord → → [provider] → Modèles disponibles** ou appelez `GET /api/models/catalog`.
>
-> Si la liste intégrée d'un fournisseur a dérivé, utilisez **Importer depuis /models** sur cette page (ou activez **Synchronisation automatique**) pour récupérer le catalogue amont en temps réel. Cela a été vérifié dans la v3.8.50 pour LLM7.io (`gemini-3.1-flash-lite`) et UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) ; l'accès anonyme de Pollinations est resté limité côté amont lors de la même série de tests.
+> Si la liste intégrée d'un fournisseur a dérivé, utilisez** Importer depuis /models** sur cette page (ou activer** Synchronisation automatique** ) pour extraire le catalogue en amont en direct. Cela a été vérifié dans la v3.8.50 pour LLM7.io (`gemini-3.1-flash-lite`) et UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) ; L'accès anonyme aux pollinisations est resté limité en amont au cours de la même passe de test.
-**Claude Code (`cc/`)** — OAuth Pro/Max : `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Code Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — OAuth Plus/Pro : `cx/gpt-5.5` (+ niveaux d'effort : `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort tiers: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
-**GitHub Copilot (`gh/`)** — OAuth : `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
+**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth GRATUIT : utilisez le catalogue en temps réel affiché sous **Tableau de bord → Fournisseurs → Kiro → Modèles disponibles**. La disponibilité dépend du compte et de l'offre.
+**Kiro (`kr/`)** — FREE OAuth: utilisez le catalogue live présenté ci-dessous** Fournisseurs de tableaux de bord → → Kiro → Modèles disponibles** . La disponibilité dépend du compte et du forfait.
-**Qoder (`if/`)** — OAuth GRATUIT : `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
-**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — 0,2–0,6 $/1M : `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
+**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
-**MiniMax (`minimax/`, `minimax-cn/`)** — 0,2 $/1M : `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
+**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — 9 $/mois en forfait ou à l'usage : `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo à plat ou à l'usage : `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — Clé API : `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** Clé — API : `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Ultra-rapide : `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Ultra-rapide : `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok natif : `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok natif : `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Hébergé dans l'UE : `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — hébergé dans l'UE : `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Augmenté par la recherche : `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Perplexité (`pplx/`)** — Recherche augmentée : `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Open source : `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (gratuit), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — Open source : `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (gratuit), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Inférence rapide : `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Inférence rapide : `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Wafer-scale : `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — À l'échelle de la tranche : `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Axé RAG : `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — axé sur RAG : `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Entreprise : `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Entreprise : `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
-**Baidu Qianfan (`qianfan/`)** — ERNIE : `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
+**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Nuage (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)** : Synchronisé en temps réel par clé API depuis Google — pas de liste statique. Connectez une clé dans **Tableau de bord → Fournisseurs** puis utilisez **Modèles disponibles** pour importer le catalogue actuel (par ex. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : Synchronisé en direct par clé API à partir de Google — sans liste statique. Connectez une clé dans** Fournisseurs de tableaux de bord →** puis utilise** Modèles disponibles** pour importer le catalogue actuel (par exemple `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Autres fournisseurs compatibles** (sélection) : `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (catalogue en passthrough), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Chacun maintient sa propre liste de modèles dans `providerRegistry.ts` et peut être synchronisé automatiquement lorsque le fournisseur expose un endpoint `/models`.
+**Autres fournisseurs compatibles** (sélectionné) : `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (catalogue passthrough), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Chacun gère sa propre liste de modèles dans `providerRegistry.ts` et peut être automatiquement synchronisé lorsque le fournisseur expose un point de terminaison `/models`.
-**Remarque sur les ID de modèles :** OmniRoute utilise les ID natifs des fournisseurs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Certains ID incluent des versions avec points car c'est ainsi que l'API amont les attend. Si un modèle n'est pas listé ci-dessus, exécutez `omniroute models --search ` ou appelez `GET /api/models/catalog` pour confirmer sa disponibilité.
+**Remarque sur le modèle IDs:** OmniRoute utilise IDs natif du fournisseur (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Certains IDs incluent des versions en pointillés car c'est ainsi que le API en amont les attend. Si un modèle n'est pas répertorié ci-dessus, exécutez `omniroute models --search ` ou appuyez sur `GET /api/models/catalog` pour confirmer la disponibilité.
diff --git a/docs/i18n/ga/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/ga/docs/architecture/RESILIENCE_GUIDE.md
index 066bf2634b59..0b20a0fb561f 100644
--- a/docs/i18n/ga/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/ga/docs/architecture/RESILIENCE_GUIDE.md
@@ -284,17 +284,17 @@ ghníomhach an fhrithdhúnta sealadach.
---
-## 4. Rialú Comhthráthachta Quota-Share (v3.8.36)
+## 4. Rialú Comhairgeadra Cuóta-Scair (v3.8.36)
-Is minic nach nglacann cuntais shíntiúsacha (GLM, MiniMax, srl.) ach thart ar 1–3 iarratas comhthráthach; má sháraítear é sin, spreagtar 429anna agus tréimhsí fuaraithe. Bíonn sé seo géar go háirithe i gcás cumaisc **quota-share** (`qtSd/…`), ina roinneann roinnt eochracha API cuntas amháin suasrith. Coinníonn trí shraith cuntas roinnte ó bheith plódaithe.
+Is minic nach nglacann cuntais síntiús (GLM, MiniMax, etc.) ach ~ 1-3 iarratas comhthráthach; má sháraíonn sé sin truicear 429s agus fuarú. Tá sé seo géarmhíochaine faoi** cuóta-roinnt** (`qtSd/…`) combos, ina roinneann roinnt eochracha API cuntas amháin in aghaidh an tsrutha. Coinníonn trí shraith cuntas roinnte ó bheith tuilte.
-### Uasteorainn comhthráthachta in aghaidh an nasctha (`max_concurrent`)
+### Teorainn airgeadra in aghaidh an naisc (`max_concurrent`)
-Is féidir le gach nasc soláthraí uasteorainn `max_concurrent` a dhearbhú (`provider_connections.max_concurrent`, a shocraítear sa mhodail nasctha / API / DB). Fág folamh é mura dteastaíonn teorainn. Is é seo an t-aon rialtán amháin a thiomáineann an tsraith srathúcháin thíos — socraigh é go comhthráthacht fíor an chuntais (m.sh. GLM ~1, MiniMax ~2).
+Is féidir le gach nasc soláthraí uasteorainn `max_concurrent` a dhearbhú (`provider_connections.max_concurrent`, atá leagtha síos sa mhodh nasc / API / DB). Fág é folamh gan teorainn. Is é seo an knob aonair a thiomáineann an ciseal sraitheachú faoi bhun — é a shocrú le comhairgeadra fíor an chuntais (m.sh. GLM ~ 1, MiniMax ~ 2).
-### Uasteorainneacha comhthráthachta in aghaidh an mhunla (`modelConcurrency`)
+### Teorainneacha airgeadra in aghaidh an mhúnla (`modelConcurrency`)
-Is féidir le nasc uasteorainneacha beachta comhthráthachta in aghaidh an mhunla a dhearbhú freisin laistigh dá léarscáil `rateLimitOverrides`:
+Is féidir le nasc freisin uasteorainneacha comhairgeadra beachta in aghaidh an mhúnla a dhearbhú laistigh dá léarscáil `rateLimitOverrides` :
```json
{
@@ -305,30 +305,32 @@ Is féidir le nasc uasteorainneacha beachta comhthráthachta in aghaidh an mhunl
}
```
-Socraigh é sa mhodail nasctha (**Sáruithe teorainne ráta → Uasteorainneacha comhthráthachta in aghaidh an mhunla**, `model=cap` amháin in aghaidh na líne) nó trí `PATCH /api/providers/[id]` leis an gcruth JSON céanna. Séimeantaic na n-eochracha:
+Socraigh é sa mhodh nasctha (** Sáraíonn teorainn ráta → Teorainneacha comhairgeadra Per-model** , `model=cap` amháin in aghaidh an líne) nó trí `PATCH /api/providers/[id]` leis an gcruth JSON céanna. Séimeantaic eochair:
-- **Ar fud an nasctha vs sainiúil don mhúnla:** fanann `maxConcurrent` mar an uasteorainn roinnte ar fud an nasctha. Nuair is infheidhme an dá cheann, faightear an dá gheata go hatamach sa gheata cumaisc chéanna (`global → provider → account → model`); is é an t-iompar éifeachtach ná an teorainn is déine is infheidhme.
-- **Meaitseáil bheacht ar eochair an mhúnla:** is í an eochair an teaghrán múnla a thugtar don fhorghníomhaire tar éis réitigh ródúcháin — de ghnáth id lom an mhúnla suasrith (`glm-5`), ní ailias `provider/model` ar thaobh an chliaint (ní mheaitseálann `zai/glm-5` le `glm-5`). Is uasteorainneacha iarratas comhthráthach de shlánuimhreacha dearfacha iad na luachanna.
-- **Scuainiú áitiúil, gan fhionnachtain:** cuirtear iarratais bhreise ar scuaine go háitiúil leis an séimeantaic scuaine/teorainne ama atá ann cheana féin (earráidí iontrála clóscríofa `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). Ní dhéanann OmniRoute beartas suasrith a fhionnachtain ná a thuar — forchuireann sé na huasteorainneacha beachta a chumraigh an t-oibreoir. Ní dhíchumasaíonn geata múnla sáithithe an soláthraí riamh agus ní chruthaíonn sé glasáil mhunla bhuan; fanann iompar 429/fuaraithe/fallback suasrith mar chúltaca earráide.
-- **Scóip in aghaidh an nasctha agus in aghaidh an phróisis:** is in aghaidh nasctha sa bhunachar sonraí atá na huasteorainneacha agus coinnítear i gcuimhne iad, mar sin ní chomhordaíonn dhá nasc a athúsáideann an eochair API suasrith chéanna lena chéile.
-- **Ciallaíonn gan chumrú gan athrú:** má fhágtar an léarscáil ar lár (nó má fhágtar réimse an deais folamh) ní chuirtear aon gheata múnla leis. Cumraíocht shamplach gan aon teorainn sholáthraí uilíoch a dhearbhú:
+- **Nasc-leathan vs samhail-shonrach:** Tá `maxConcurrent` fós ar an uasteorainn nasc-roinnte. Nuair a bhíonn an dá cheann i bhfeidhm, faightear an dá gheata go adamhach sa gheata ilchodach céanna (`global → provider → account → model`); is é an t-iompar éifeachtach an teorainn infheidhme is déine.
+- **Meaitseáil beacht-eochair mhúnla:** is í an eochair an teaghrán múnla a chuirtear ar aghaidh chuig an seiceadóir tar éis taifeach — a ródú de ghnáth an t-aitheantas múnla lom in aghaidh an tsrutha (`glm-5`), ní ailias `provider/model` taobh an chliaint (ní mheaitseálann `zai/glm-5` `glm-5`). Is uasteorainneacha iarratais comhthráthacha deimhneacha iad luachanna.
+- **Ciúáil áitiúil, gan aon fhionnachtain:** scuaine iarrataí barrachais go háitiúil leis an queue/timeout semantics atá ann cheana féin (earráidí clóscríofa iontrála `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ). OmniRoute ní aimsíonn nó ní tátal a bhaint as beartas réamhtheachtacha — forfheidhmíonn sé na huasteorainneacha cruinne a chumraigh an t-oibreoir. Ní dhíchumasaíonn geata múnla sáithithe an soláthraí riamh agus ní chruthaíonn sé frithdhúnadh múnla buan riamh; Tá iompar 429/cooldown/fallback in aghaidh an tsrutha fós mar chúlstop earráide.
+- **In aghaidh an naisc, raon feidhme in aghaidh an phróisis:** tá caipíní de réir nasc bunachar sonraí agus coinnítear i gcuimhne iad, mar sin ní dhéanann dhá nasc a athúsáidtear an eochair API in aghaidh an tsrutha céanna a chomhordú lena chéile.
+- **Ciallaíonn neamhchumraithe gan athrú:** má fhágtar an léarscáil ar lár (nó má fhágtar páirc an deais bán) ní chuirtear aon gheata samhail leis. Cumraíocht shamplach gan aon teorainn uilíoch soláthraí a dhearbhú:
```text
glm-5=1
glm-4.7=3
```
-### Srathú iarratas quota-share
+### Srathú iarratais cuóta-roinnte
-Nuair a dhíríonn seoladh quota-share ar nasc a dhearbhaíonn `max_concurrent` dearfach, srathúchánaítear iarratais chomhthráthacha chuig an **gcuntas** sin trí shéimeafór in aghaidh an nasctha (eochair `qsconn:`): **fanann iarratais bhreise sa scuaine** in ionad an cuntas a phlódú. Tá sé **oscailte ar theip** — leanann sé ar aghaidh gan sliotán fiú nuair a bhíonn an scuaine sáithithe nó nuair a sháraítear teorainn ama, seachas iarratas inseolta a dhiúltú riamh. Is féidir é a lascadh in **Socruithe → Athléimneacht → Comhthráthacht quota-share in aghaidh an nasctha** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, ar siúl de réir réamhshocraithe). Gan uasteorainn `max_concurrent` fanann an t-iompar mar a bhí.
+Nuair a dhíríonn seoladh cuóta-roinnte ar nasc a dhearbhaíonn `max_concurrent` dearfach , iarratais chomhthráthacha chuige sin** cuntas** á sraithiú trí sheimeafóir in aghaidh an naisc (eochair `qsconn:`): iarratais iomarcacha** fan sa scuaine** in ionad an cuntas a thuilte. Tá sé** teip-oscailte** — téann scuaine sáithithe nó teorainn ama ar aghaidh gan sliotán seachas iarraidh inseolta a dhiúltú riamh. Scoránaigh isteach** Socruithe → Athléimneacht → Cuóta-scair in aghaidh an naisc concurrency** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, réamhshocraithe ar siúl). Gan caipín `max_concurrent` níl aon athrú ar an iompar.
-> Tá an geata ródúcháin quota-share (`selectQuotaShareTarget`, DRR + P2C) féin oscailte ar theip agus ní dhéanann sé ach nasc atá ag a uasteorainn a _ísliú tosaíochta_ — le linne aon-nasctha amháin ní féidir leis teorainn chrua a chur i bhfeidhm, mar sin is é an séimeafór seo a choinníonn an tuile faoi smacht i ndáiríre.
+> Tá an geata ródaithe cuóta-roinnte (`selectQuotaShareTarget`, DRR + P2C) ann féin ar oscailt gan teip agus gan ach _deprioritizes_ nasc at-cap — le linn aon-naisc ní féidir leis teorainn chrua a dhéanamh, mar sin is é an semaphore seo a bhfuil an tuile ann i ndáiríre.
-### Atrialach cumasc atá feasach ar an bhfuarú
+### Atriail faoi fhuarú teaglama
-Do gach straitéis chumaisc (nuair atá sí cumasaithe), má chruthódh iarratas 429 de bharr fuarú tráthach GEARR, fanann sé an fhuarú amach agus athsheolann sé in ionad an 429 a thabhairt ar ais — clúdaíonn sé seo fuinneoga TPM/RPM den chineál Gemini (~60s retry-after) ar chumaisc ilmhunla, m.sh. an dá sprioc de chumasc 2-mhúnla ag bualadh i gcoinne teorainne ráta in aghaidh an mhunla. Teoranta ag `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) in **Socruithe → Athléimneacht**. Ní fhanann sé riamh ar `quota_exhausted` (glasáilte go dtí meán oíche) ná ar chúiseanna údaraithe/gan aimsiú.
+I gcás gach straitéis teaglama (nuair atá sé cumasaithe), fanann iarratas a chriostalódh 429 le haghaidh fuarú neamhbhuan SHORT amach agus athsheoltaí seachas an 429 — a thabhairt ar ais clúdaíonn sé seo fuinneoga Gemini-class TPM/RPM (~ 60s retry-after) ar combos ilmhúnla, m.sh. Ar teorainn le `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) i** Socruithe → Athléimneacht** . Ní fhanann sé ar chúiseanna `quota_exhausted` (faoi ghlas go meán oíche) nó auth/not-found.
-Clúdaíonn an geata céanna an cás réamhsheolta (#16319): nuair a léimtear gach sprioc de chumasc sula ndéantar iarracht ar bith mar go bhfuil a mhúnla faoi ghlasáil ghearr thráthach, fanann an chonair nialas-iarracht an glas amach faoi na huasteorainneacha céanna agus athsheolann sí, in ionad freagra gan leid `503 ALL_TARGETS_SKIPPED` a thabhairt. Nuair nach gceadaítear feitheamh ar bith (uasteorainn, iarrachtaí nó buiséad ídithe, nó an ghné múchta), uasghrádaítear an freagra críochfoirt go `429 rate_limit_error` agus `retry_after` / `reset_at` á n-iompar aige ó dhul in éag an ghlasála thráthaigh is luaithe; coinníonn glasanna cuóta, údaraithe agus gan aimsiú an 503 gan leid.
+Is féidir le teaglama rogha an diúltaithe le `config.comboCooldownWaitEnabled: false`. Ní dhíchumasaíonn ach `false` litriúil na feithimh teaglama comhroinnte seo (fionnuarú iar-seolta agus feithimh circuit-open/model-lock réamhsheolta) agus a síneadh ama laistigh den bhuiséad feithimh. Ar iarraidh nó `true` caomhnaíonn an beartas domhanda; Ní féidir le `true` feithimh díchumasaithe domhanda a chumasú. Bhuaigh `targetTimeoutMs` follasach fós. Ní athraíonn an rogha diúltaithe seo an feithimh réamhsheolta réamhsheolta dúchais-Codex ar leith.
+
+Clúdaíonn an geata céanna an cás réamhsheolta (#16319): nuair a dhéantar gach sprioc teaglama a scipeáil sula ndéantar aon iarracht toisc go bhfuil a mhúnla suite i bhfrithdhúnadh gearr neamhbhuan, fanann an cosán náid-iarracht an frithdhúnadh faoi na huasteorainneacha agus na hathsheoltaí céanna, in ionad `503 ALL_TARGETS_SKIPPED` gan leid a fhreagairt. Nuair nach gceadaítear fanacht (uasteorainn, iarracht nó buiséad ídithe, nó an ghné as feidhm), uasghrádaítear an fhreagairt teirminéil go `429 rate_limit_error` ag iompar `retry_after` / `reset_at` ón dul in éag is luaithe maidir le glas neamhbhuan; coinníonn cuóta, glais údaraithe agus gan aimsiú an 503 gan leid.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/ga/docs/guides/USER_GUIDE.md b/docs/i18n/ga/docs/guides/USER_GUIDE.md
index 8339c3d1e7f6..c885c9a35264 100644
--- a/docs/i18n/ga/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/ga/docs/guides/USER_GUIDE.md
@@ -603,60 +603,60 @@ Le haghaidh an tagarmharc iomlán athróga timpeallachta, féach an [README](../
---
-## 📊 Samhail atá ar Fáil
+## 📊 Múnlaí Ar Fáil
-Féach ar na samhail go léir atá ar fáil
+Féach ar na samhlacha go léir atá ar fáil
-> Coimeádtar an liosta thíos as `open-sse/config/providerRegistry.ts` do v3.8.0. Sioncrónaítear catalóga scamall (Gemini, OpenRouter, srl.) go dinimiciúil — don chatalóg beo iomlán, oscail **Deais → Soláthraithe → [soláthraí] → Samhail atá ar Fáil** nó cuir glao ar `GET /api/models/catalog`.
+> Tá an liosta thíos coimeádta ó `open-sse/config/providerRegistry.ts` do v3.8.0. Déantar catalóga néal (Gemini, OpenRouter, etc.) a shioncronú go dinimiciúil — chun an chatalóg iomlán beo a oscailt** Soláthraithe Painéal → → [soláthraí] → Múnlaí ar Fáil** nó cuir glaoch ar `GET /api/models/catalog`.
>
-> Má tá liosta ionsuite soláthraí tar éis dul as sync, úsáid **Iompórtáil ó /models** ar an leathanach sin (nó cumasaigh **Uath-Shioncrónú**) chun an catalóg beo uastaighreach a tharraingt anuas. Fíoraíodh é seo i v3.8.50 do LLM7.io (`gemini-3.1-flash-lite`) agus do UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); d'fhan rochtain anaithnid Pollinations teoranta ón uastaigre le linn na rith tástála chéanna.
+> Má tá athrú tagtha ar liosta ionsuite soláthraí, bain úsáid as** Iompórtáil ó / samhlacha** ar an leathanach sin (nó cumasaigh** Uath-Sync** ) an chatalóg beo in aghaidh an tsrutha a tharraingt. Fíoraíodh é seo i v3.8.50 do LLM7.io (`gemini-3.1-flash-lite`) agus UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Bhí rochtain gan ainm ar phailniú teoranta in aghaidh an tsrutha le linn an pas tástála céanna.
-**Claude Code (`cc/`)** — OAuth Pro/Max: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Cód Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — OAuth Plus/Pro: `cx/gpt-5.5` (+ leibhéil iarrachta: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` ( sraitheanna iarracht + : `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth SAOR IN AISCE: úsáid an catalóg beo a thaispeántar faoi **Deais → Soláthraithe → Kiro → Samhail atá ar Fáil**. Braitheann an infhaighteacht ar an gcuntas agus ar an bplean.
+**Kiro (`kr/`)** — FREE OAuth: bain úsáid as an gcatalóg bheo a thaispeántar thíos** Soláthraithe Painéal → → Kiro → Múnlaí ar Fáil** . Braitheann infhaighteacht ar an gcuntas agus ar an bplean.
-**Qoder (`if/`)** — OAuth SAOR IN AISCE: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mí comhráta nó de réir úsáide: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo árasán nó in aghaidh na húsáide: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — Eochair API: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** eochair — API : `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Fíorthapa: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Ultra-tapa: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
**xAI (`xai/`)** — Grok dúchais: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Óstáilte san AE: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — arna óstáil ag an AE: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Feabhsaithe le cuardach: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Perplexity (`pplx/`)** — Cuardach méadaithe: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Foinse oscailte: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (saor in aisce), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** foinse oscailte — : `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (saor in aisce), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
**Fireworks AI (`fireworks/`)** — Tátal tapa: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Scála wafer: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Wafer-scála: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Dírithe ar RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG-dírithe: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Fiontar: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** Fiontar — : `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Sioncrónaítear go beo de réir eochair API ó Google — gan aon liosta statach. Ceangail eochair i **Deais → Soláthraithe** agus ansin úsáid **Samhail atá ar Fáil** chun an catalóg reatha a iompórtáil (m.sh. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Scamall `gemini/`)** : sioncronaithe beo in aghaidh API eochair ó Google — gan aon liosta statach. Ceangail eochair isteach** Painéal na Soláthraithe →** úsáid ansin** Múnlaí ar Fáil** chun an chatalóg reatha a allmhairiú (m.sh. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Soláthraithe comhoiriúnacha eile** (roghnaithe): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (trí `aws-bedrock`), `azure-ai`, `openrouter` (catalóg passthrough), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Coinníonn gach ceann a liosta samhail féin i `providerRegistry.ts` agus is féidir é a uath-shioncrónú nuair a nochtann an soláthraí críochphointe `/models`.
+**Soláthraithe comhoiriúnacha eile** (roghnaithe): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (catalóg passthrough), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai` `reka` `nous-research`, `volcengine`, `ai21` `gigachat` Coinníonn gach ceann acu a liosta samhlacha féin i `providerRegistry.ts` agus is féidir iad a uathshioncronú nuair a nochtar an soláthraí críochphointe `/models`.
-**Nóta faoi IDanna samhail:** Úsáideann OmniRoute IDanna atá dúchais don tsoláthraí (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Áirítear leaganacha poncaithe i roinnt IDanna mar sin an chaoi a nglacann an API uastaighreach leo. Mura bhfuil samhail liostaithe thuas, rith `omniroute models --search ` nó cuir glao ar `GET /api/models/catalog` chun an infhaighteacht a dhearbhú.
+**Nóta ar mhúnla IDs:** Úsáideann OmniRoute IDs ó dhúchas soláthraí (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Cuimsíonn roinnt IDs leaganacha poncaithe mar is é sin an chaoi a bhfuil an API in aghaidh an tsrutha ag súil leo. Mura bhfuil samhail liostaithe thuas, rith `omniroute models --search ` nó buail `GET /api/models/catalog` chun infhaighteacht a dhearbhú.
diff --git a/docs/i18n/gu/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/gu/docs/architecture/RESILIENCE_GUIDE.md
index 41a618ace62d..32574b2100e6 100644
--- a/docs/i18n/gu/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/gu/docs/architecture/RESILIENCE_GUIDE.md
@@ -289,22 +289,15 @@ _સ્થિતિ_ ક્ષણભંગુર છે.
## 4. ક્વોટા-શેર કન્કરન્સી નિયંત્રણ (v3.8.36)
-સબ્સ્ક્રિપ્શન એકાઉન્ટ્સ (GLM, MiniMax વગેરે) ઘણી વખત ફક્ત ~1–3 સમવર્તી
-રિક્વેસ્ટ્સ જ સ્વીકારે છે; તેનાથી વધુ જતાં 429s અને કૂલડાઉન્સ ટ્રિગર થાય છે. આ સમસ્યા
-**ક્વોટા-શેર** (`qtSd/…`) કોમ્બો હેઠળ તીવ્ર બને છે, જ્યાં અનેક API કીઓ એક જ અપસ્ટ્રીમ
-એકાઉન્ટ શેર કરે છે. ત્રણ સ્તરો શેર કરેલા એકાઉન્ટને રિક્વેસ્ટ્સના પ્રવાહથી બચાવે છે.
+સબ્સ્ક્રિપ્શન એકાઉન્ટ્સ (GLM, MiniMax, વગેરે) ઘણીવાર ફક્ત ~ 1–3 સહવર્તી વિનંતીઓ સ્વીકારે છે; જે 429 અને કૂલડાઉનને ટ્રિગર કરે છે. આ હેઠળ તીવ્ર છે** ક્વોટા-શેર** (`qtSd/…`) કોમ્બોઝ, જ્યાં ઘણી API કી એક અપસ્ટ્રીમ એકાઉન્ટ શેર કરે છે. ત્રણ સ્તરો વહેંચાયેલ ખાતાને પૂરથી બચાવે છે.
-### દર-કનેક્શન કન્કરન્સી કેપ (`max_concurrent`)
+### પ્રતિ-કનેક્શન કન્કરન્સી કેપ (`max_concurrent`)
-દરેક પ્રોવાઇડર કનેક્શન `max_concurrent` મર્યાદા જાહેર કરી શકે છે
-(`provider_connections.max_concurrent`, કનેક્શન મોડલ / API / DB માં સેટ થાય છે).
-મર્યાદા ન જોઈતી હોય તો તેને ખાલી છોડી દો. આ નીચેના સીરિયલાઇઝેશન
-સ્તરને ચલાવનાર એકમાત્ર નિયંત્રણ છે — તેને એકાઉન્ટની વાસ્તવિક કન્કરન્સી પર સેટ કરો (દા.ત. GLM ~1, MiniMax ~2).
+દરેક પ્રદાતા કનેક્શન `max_concurrent` ટોચમર્યાદા જાહેર કરી શકે છે (`provider_connections.max_concurrent`, કનેક્શન મોડલમાં સેટ કરેલ / API / DB). તેને કોઈ મર્યાદા વિના ખાલી છોડી દો. આ સિંગલ નોબ છે જે — નીચે સીરિયલાઈઝેશન લેયરને ચલાવે છે અને તેને એકાઉન્ટની વાસ્તવિક સંમતિ પર સેટ કરે છે (દા.ત. GLM ~ 1, MiniMax ~ 2).
-### દર-મોડલ કન્કરન્સી કેપ્સ (`modelConcurrency`)
+### પ્રતિ-મૉડલ કન્કરન્સી કેપ્સ (`modelConcurrency`)
-કનેક્શન ઉપરાંત તેના `rateLimitOverrides` મેપની અંદર ચોક્કસ દર-મોડલ કન્કરન્સી
-મર્યાદાઓ પણ જાહેર કરી શકે છે:
+કનેક્શન વધુમાં તેના `rateLimitOverrides` નકશાની અંદર ચોક્કસ પ્રતિ-મોડલ સહવર્તી ટોચમર્યાદા જાહેર કરી શકે છે:
```json
{
@@ -315,73 +308,32 @@ _સ્થિતિ_ ક્ષણભંગુર છે.
}
```
-તેને કનેક્શન મોડલમાં સેટ કરો (**રેટ લિમિટ ઓવરરાઇડ્સ → દર-મોડલ
-કન્કરન્સી કેપ્સ**, દરેક લાઇનમાં એક `model=cap`) અથવા
-`PATCH /api/providers/[id]` દ્વારા એ જ JSON આકાર સાથે. મુખ્ય સિમેન્ટિક્સ:
-
-- **કનેક્શન-વ્યાપી vs મોડલ-વિશિષ્ટ:** `maxConcurrent` શેર કરેલી
- કનેક્શન-વ્યાપી મર્યાદા તરીકે રહે છે. જ્યારે બંને લાગુ પડે, ત્યારે બંને ગેટ્સ
- એક જ કોમ્પોઝિટ ગેટમાં એટોમિક રીતે મેળવાય છે
- (`global → provider → account → model`); અસરકારક વર્તન એ વધુ
- કડક લાગુ મર્યાદા મુજબનું હોય છે.
-- **ચોક્કસ મોડલ-કી મેળ:** કી એ રાઉટિંગ રિઝોલ્યુશન પછી એક્ઝિક્યુટરને
- પાસ થતી મોડલ સ્ટ્રિંગ છે — સામાન્ય રીતે બેર અપસ્ટ્રીમ મોડલ id
- (`glm-5`), ક્લાયન્ટ-સાઇડ `provider/model` એલિયસ નહીં (`zai/glm-5` એ
- `glm-5` સાથે મેળ ખાતું નથી). વેલ્યુઓ ધન-પૂર્ણાંક સમવર્તી-રિક્વેસ્ટ મર્યાદાઓ છે.
-- **સ્થાનિક ક્યૂઇંગ, કોઈ ડિસ્કવરી નહીં:** વધારાની રિક્વેસ્ટ્સ હાજરના ક્યૂ/ટાઇમઆઉટ
- સિમેન્ટિક્સ સાથે સ્થાનિક રીતે ક્યૂમાં રહે છે (ટાઇપ્ડ `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL` એડમિશન એરર્સ). OmniRoute અપસ્ટ્રીમ નીતિ
- શોધતું નથી કે અનુમાન લગાવતું નથી — તે ઓપરેટરે કન્ફિગર કરેલી
- ચોક્કસ મર્યાદાઓ લાગુ કરે છે. સંતૃપ્ત મોડલ ગેટ ક્યારેય પ્રોવાઇડરને
- અક્ષમ કરતું નથી અને ક્યારેય કાયમી મોડલ લોકઆઉટ બનાવતું નથી; અપસ્ટ્રીમ
- 429/કૂલડાઉન/ફોલબેક વર્તન એરર બેકસ્ટોપ તરીકે રહે છે.
-- **દર-કનેક્શન, દર-પ્રોસેસ સ્કોપ:** કેપ્સ દરેક ડેટાબેઝ કનેક્શન માટે છે
- અને ઇન-મેમરી રાખવામાં આવે છે, તેથી એક જ અપસ્ટ્રીમ API કીનો ફરી ઉપયોગ
- કરતાં બે કનેક્શન્સ એકબીજા સાથે સંકલન કરતાં નથી.
-- **અકન્ફિગર્ડ એટલે અપરિબદ્ધિત:** મેપ છોડી દેવો (અથવા
- ડેશબોર્ડ ફીલ્ડ ખાલી રાખવું) કોઈ મોડલ ગેટ ઉમેરતું નથી. કોઈપણ સાર્વત્રિક
- પ્રોવાઇડર મર્યાદા દર્શાવ્યા વિનાનું ઉદાહરણ કન્ફિગરેશન:
+તેને કનેક્શન મોડલમાં સેટ કરો (** દર મર્યાદા → પ્રતિ-મૉડલ કન્કરન્સી કૅપ્સને ઓવરરાઇડ કરે છે** , લીટી દીઠ એક `model=cap` ) અથવા સમાન JSON આકાર સાથે `PATCH /api/providers/[id]` દ્વારા. મુખ્ય અર્થશાસ્ત્ર:
+
+- **કનેક્શન-વાઇડ વિ મોડેલ-વિશિષ્ટ:** `maxConcurrent` એ વહેંચાયેલ જોડાણ-વ્યાપી ટોચમર્યાદા રહે છે. જ્યારે બંને લાગુ થાય છે, ત્યારે બંને દરવાજા એક જ સંયુક્ત ગેટ (`global → provider → account → model`) માં અણુરૂપે પ્રાપ્ત થાય છે; અસરકારક વર્તન એ સખત લાગુ મર્યાદા છે.
+- **ચોક્કસ મોડેલ-કી મેચ:** ચાવી એ એક્ઝિક્યુટરને રીઝોલ્યુશન — સામાન્ય રીતે એકદમ અપસ્ટ્રીમ મોડલ આઈડી (`glm-5`) રાઉટીંગ કર્યા પછી પાસ કરવામાં આવે છે, ક્લાયન્ટ-સાઇડ `provider/model` ઉપનામ (`zai/glm-5` `glm-5` સાથે મેળ ખાતું નથી ) છે. મૂલ્યો ધન-પૂર્ણાંક સમવર્તી-વિનંતી સીલિંગ છે.
+- **સ્થાનિક કતાર, કોઈ શોધ નથી:** હાલની queue/timeout સિમેન્ટિક્સ (ટાઈપ કરેલ `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` પ્રવેશ ભૂલો) સાથે વધારાની વિનંતીઓ સ્થાનિક રીતે કતારમાં છે. OmniRoute અપસ્ટ્રીમ પોલિસી શોધી શકતું નથી અથવા અનુમાન કરતું નથી — તે ઑપરેટરે ગોઠવેલ ચોક્કસ સીલિંગને લાગુ કરે છે. સંતૃપ્ત મોડેલ ગેટ ક્યારેય પ્રદાતાને અક્ષમ કરતું નથી અને કાયમી મોડલ લોકઆઉટ ક્યારેય બનાવતું નથી; અપસ્ટ્રીમ 429/cooldown/fallback વર્તન એ ભૂલ બેકસ્ટોપ રહે છે.
+- **પ્રતિ-કનેક્શન, પ્રતિ-પ્રક્રિયા અવકાશ:** કેપ્સ ડેટાબેઝ કનેક્શન દીઠ હોય છે અને મેમરીમાં રાખવામાં આવે છે, તેથી સમાન અપસ્ટ્રીમ API કીનો ફરીથી ઉપયોગ કરતા બે જોડાણો એકબીજા સાથે સંકલન કરતા નથી.
+- **બિનરૂપરેખાંકિત એટલે અપરિવર્તિત:** નકશાને અવગણવાથી (અથવા ડેશબોર્ડ ફીલ્ડ ખાલી રાખવાથી) કોઈ મોડલ ગેટ ઉમેરશે નહીં. કોઈપણ સાર્વત્રિક પ્રદાતાની મર્યાદા પર ભાર મૂક્યા વિના ઉદાહરણ રૂપરેખાંકન:
```text
glm-5=1
glm-4.7=3
```
-### ક્વોટા-શેર રિક્વેસ્ટ સીરિયલાઇઝેશન
-
-જ્યારે ક્વોટા-શેર ડિસ્પેચ એવા કનેક્શનને લક્ષ્ય બનાવે છે જે ધન
-`max_concurrent` જાહેર કરે છે, ત્યારે તે **એકાઉન્ટ** પરની સમવર્તી રિક્વેસ્ટ્સ
-દર-કનેક્શન સેમાફોર (કી `qsconn:`) દ્વારા સીરિયલાઇઝ થાય છે: વધારાની
-રિક્વેસ્ટ્સ એકાઉન્ટને પ્રવાહમાં નાખવાને બદલે **ક્યૂમાં રાહ જુએ છે**. તે
-**ફેલ-ઓપન** છે — સંતૃપ્ત ક્યૂ અથવા ટાઇમઆઉટ સ્લોટ વિના આગળ વધે છે, ડિસ્પેચ
-થઈ શકે એવી રિક્વેસ્ટને ક્યારેય નકારતું નથી. **સેટિંગ્સ → રેઝિલિયન્સ → ક્વોટા-શેર દર-કનેક્શન
-કન્કરન્સી** માં ટૉગલ કરો (`resilienceSettings.quotaShareConcurrencyLimit.enabled`,
-ડિફોલ્ટ ચાલુ). `max_concurrent` કેપ વિના વર્તન અપરિબદ્ધિત રહે છે.
-
-> ક્વોટા-શેર રાઉટિંગ ગેટ (`selectQuotaShareTarget`, DRR + P2C) પોતે પણ
-> ફેલ-ઓપન છે અને કેપ પર પહોંચેલા કનેક્શનને માત્ર _ઓછી પ્રાથમિકતા_ આપે છે —
-> સિંગલ-કનેક્શન પૂલ સાથે તે હાર્ડ-લિમિટ કરી શકતું નથી, તેથી આ સેમાફોર જ ખરેખર
-> પ્રવાહને રોકે છે.
-
-### કોમ્બો કૂલડાઉન-જાગૃત રિટ્રાય
-
-દરેક કોમ્બો સ્ટ્રેટેજી માટે (ચાલુ હોય ત્યારે), ટૂંકા ક્ષણિક કૂલડાઉન માટે 429
-ઉત્પન્ન કરનારી રિક્વેસ્ટ 429 પરત કરવાને બદલે તેની રાહ જુએ છે અને ફરી
-ડિસ્પેચ થાય છે — આ મલ્ટિ-મોડલ કોમ્બો પર Gemini-વર્ગની TPM/RPM વિન્ડો
-(~60s retry-after) ને આવરી લે છે, દા.ત. 2-મોડલ કોમ્બોના બંને લક્ષ્યો
-દર-મોડલ રેટ લિમિટને અથડાય ત્યારે. **સેટિંગ્સ → રેઝિલિયન્સ** માં `comboCooldownWait`
-(`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) દ્વારા મર્યાદિત. તે ક્યારેય
-`quota_exhausted` (મધ્યરાત્રિ સુધી લોક) અથવા ઓથ/નોટ-ફાઉન્ડ કારણો માટે રાહ જોતું નથી.
-
-તે જ ગેટ પ્રી-ડિસ્પેચ કેસને (#16319) આવરી લે છે: જ્યારે કોમ્બોનું દરેક
-લક્ષ્ય કોઈપણ પ્રયાસ થાય તે પહેલાં જ સ્કિપ થઈ જાય કારણ કે તેનું મોડલ ટૂંકા
-ક્ષણિક લોકઆઉટમાં હોય, ત્યારે ઝીરો-અટેમ્પ્ટ પાથ એ જ મર્યાદાઓ હેઠળ લોકની રાહ
-જુએ છે અને ફરી ડિસ્પેચ કરે છે, હિન્ટ-વિહોણું
-`503 ALL_TARGETS_SKIPPED` જવાબ આપવાને બદલે. જ્યારે કોઈ રાહ જોવાની મંજૂરી ન હોય
-(મર્યાદા, પ્રયાસ અથવા બજેટ ખતમ, અથવા ફીચર બંધ), ત્યારે ટર્મિનલ
-રિસ્પોન્સ `429 rate_limit_error` માં અપગ્રેડ થાય છે, જે સૌથી વહેલી
-ક્ષણિક લોક સમાપ્તિમાંથી `retry_after` / `reset_at` વહન કરે છે; ક્વોટા, ઓથ
-અને નોટ-ફાઉન્ડ લોક્સ હિન્ટ-વિહોણું 503 જાળવી રાખે છે.
+### ક્વોટા-શેર વિનંતી ક્રમાંકન
+
+જ્યારે ક્વોટા-શેર ડિસ્પેચ એવા કનેક્શનને લક્ષ્ય બનાવે છે જે હકારાત્મક `max_concurrent` જાહેર કરે છે, ત્યારે તેના માટે સમવર્તી વિનંતીઓ** એકાઉન્ટ** પ્રતિ-કનેક્શન સેમાફોર (કી `qsconn:`) દ્વારા શ્રેણીબદ્ધ કરવામાં આવે છે: વધારાની વિનંતીઓ** કતારમાં રાહ જુઓ** ખાતામાં પૂર આવવાને બદલે. તે છે** નિષ્ફળ** — એક સંતૃપ્ત કતાર અથવા સમયસમાપ્તિ સ્લોટ વિના આગળ વધે છે અને મોકલવા યોગ્ય વિનંતીને ક્યારેય નકારી કાઢવાને બદલે. ટૉગલ ઇન કરો** સેટિંગ્સ → સ્થિતિસ્થાપકતા → ક્વોટા-શેર-દીઠ-કનેક્શન સંમતિ** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, ડિફોલ્ટ ચાલુ). `max_concurrent` કેપ વિના વર્તન યથાવત છે.
+
+> ક્વોટા-શેર રૂટીંગ ગેટ (`selectQuotaShareTarget`, DRR + P2C) પોતે જ ફેલ-ઓપન છે અને માત્ર _deprioritizes_ એટ-કેપ કનેક્શન — એક-કનેક્શન પૂલ સાથે તે હાર્ડ-લિમિટ કરી શકતું નથી, તેથી આ સેમાફોર તે છે જે વાસ્તવમાં પૂર ધરાવે છે.
+
+### કોમ્બો કૂલડાઉન-અવેર ફરી પ્રયાસ
+
+દરેક કોમ્બો વ્યૂહરચના માટે (જ્યારે સક્ષમ હોય), એક વિનંતી કે જે SHORT ક્ષણિક કૂલડાઉન માટે 429 ને સ્ફટિકીકરણ કરશે તે તેની રાહ જુએ છે અને 429 — પરત કરવાને બદલે ફરીથી ડિસ્પેચ કરે છે આ જેમિની-ક્લાસ TPM/RPM વિન્ડો (~ 60s retry-after) મલ્ટી-એગ-મૉડલ કોમ્બો ટાર્ગેટ 2 કોમ્બોઝ પર પ્રતિ-મોડલ દર મર્યાદા. માં `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) દ્વારા બંધાયેલ** સેટિંગ્સ → સ્થિતિસ્થાપકતા** . તે ક્યારેય `quota_exhausted` (મધ્યરાત સુધી લૉક) અથવા auth/not-found કારણો પર રાહ જોતો નથી.
+
+કોમ્બો `config.comboCooldownWaitEnabled: false` સાથે નાપસંદ કરી શકે છે. ફક્ત શાબ્દિક `false` આ વહેંચાયેલ કોમ્બો રાહ (પોસ્ટ-ડિસ્પેચ કૂલડાઉન અને પ્રી-ડિસ્પેચ circuit-open/model-lock રાહ) અને તેમના રાહ-બજેટ સમયસમાપ્તિ-ફ્લોર એક્સ્ટેંશનને અક્ષમ કરે છે. ખૂટે છે અથવા `true` વૈશ્વિક નીતિને સાચવે છે; `true` વૈશ્વિક રીતે અક્ષમ પ્રતીક્ષાને સક્ષમ કરી શકતું નથી. એક સ્પષ્ટ `targetTimeoutMs` હજુ પણ જીતે છે. આ નાપસંદ અલગ મૂળ-કોડેક્સ ટર્ન-પિન પ્રી-ડિસ્પેચ રાહને બદલતું નથી.
+
+આ જ દરવાજો પ્રી-ડિસ્પેચ કેસ (#16319) ને આવરી લે છે : જ્યારે કોમ્બોના દરેક લક્ષ્યને કોઈપણ પ્રયાસ કરવામાં આવે તે પહેલાં છોડી દેવામાં આવે છે કારણ કે તેનું મોડેલ ટૂંકા ક્ષણિક લોકઆઉટમાં બેસે છે, ત્યારે શૂન્ય-પ્રયાસ પાથ એ જ છત હેઠળ લોક આઉટની રાહ જુએ છે અને સંકેત-લેસ `503 ALL_TARGETS_SKIPPED` જવાબ આપવાને બદલે ફરીથી મોકલે છે. જ્યારે કોઈ રાહ જોવાની મંજૂરી નથી (સીલિંગ, પ્રયાસ અથવા બજેટ સમાપ્ત થઈ ગયું છે, અથવા સુવિધા બંધ), ટર્મિનલ પ્રતિસાદ પ્રારંભિક ક્ષણિક લોક સમાપ્તિથી `retry_after` / `reset_at` વહન કરતા `429 rate_limit_error` પર અપગ્રેડ થાય છે; ક્વોટા, ઓથ અને ન-ફાઉન્ડ લૉક્સ સંકેત-ઓછી 503 રાખે છે.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/gu/docs/guides/USER_GUIDE.md b/docs/i18n/gu/docs/guides/USER_GUIDE.md
index b44f9fcf9a48..444c6cfbcc5a 100644
--- a/docs/i18n/gu/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/gu/docs/guides/USER_GUIDE.md
@@ -607,44 +607,44 @@ post_install() {
---
-## 📊 ઉપલબ્ધ મોડેલો
+## 📊 ઉપલબ્ધ મોડલ્સ
બધા ઉપલબ્ધ મોડેલો જુઓ
-> નીચેની સૂચિ v3.8.0 માટે `open-sse/config/providerRegistry.ts` માંથી ક્યુરેટ કરવામાં આવી છે. ક્લાઉડ કેટલોગ્સ (Gemini, OpenRouter, વગેરે) ડાયનેમિક રીતે સિંક થાય છે — સંપૂર્ણ લાઇવ કેટલોગ માટે **ડેશબોર્ડ → પ્રોવાઇડર્સ → [provider] → ઉપલબ્ધ મોડેલો** ખોલો અથવા `GET /api/models/catalog` કૉલ કરો.
+> નીચેની સૂચિ v3.8.0 માટે `open-sse/config/providerRegistry.ts` થી ક્યુરેટ કરવામાં આવી છે. ક્લાઉડ કેટલોગ (Gemini, OpenRouter, વગેરે) સંપૂર્ણ લાઇવ કેટલોગ ઓપન માટે ગતિશીલ રીતે — સમન્વયિત થાય છે** ડેશબોર્ડ → પ્રદાતાઓ → [પ્રોવાઇડર] → ઉપલબ્ધ મોડલ્સ** અથવા `GET /api/models/catalog` ને કૉલ કરો.
>
-> જો કોઈ પ્રોવાઇડરની બિલ્ટ-ઇન સૂચિ જૂની થઈ ગઈ હોય, તો લાઇવ અપસ્ટ્રીમ કેટલોગ ખેંચવા માટે તે પેજ પર **/models માંથી આયાત કરો** નો ઉપયોગ કરો (અથવા **ઓટો-સિંક** સક્ષમ કરો). આ v3.8.50 માં LLM7.io (`gemini-3.1-flash-lite`) અને UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) માટે ચકાસવામાં આવ્યું હતું; એ જ ટેસ્ટ પાસ દરમિયાન Pollinations ની અનામી ઍક્સેસ અપસ્ટ્રીમ-મર્યાદિત જ રહી હતી.
+> જો કોઈ પ્રદાતાની બિલ્ટ-ઇન સૂચિ બદલાઈ ગઈ હોય, તો ઉપયોગ કરો** /મોડલ્સમાંથી આયાત કરો** તે પૃષ્ઠ પર (અથવા સક્ષમ કરો** સ્વતઃ-સમન્વયન** ) લાઇવ અપસ્ટ્રીમ કેટલોગ ખેંચવા માટે. આ LLM7.io (`gemini-3.1-flash-lite`) અને UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) માટે v3.8.50 માં ચકાસવામાં આવ્યું હતું; સમાન પરીક્ષણ પાસ દરમિયાન પરાગનયન અનામી પ્રવેશ અપસ્ટ્રીમ-મર્યાદિત રહ્યો.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude કોડ (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort ટિયર: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ પ્રયાસ સ્તરો: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — મફત OAuth: **ડેશબોર્ડ → પ્રોવાઇડર્સ → Kiro → ઉપલબ્ધ મોડેલો** હેઠળ બતાવવામાં આવેલા લાઇવ કેટલોગનો ઉપયોગ કરો. ઉપલબ્ધતા એકાઉન્ટ અને પ્લાન પર આધાર રાખે છે.
+**Kiro (`kr/`)** — FREE OAuth: નીચે દર્શાવેલ જીવંત સૂચિનો ઉપયોગ કરો** ડેશબોર્ડ → પ્રદાતાઓ → Kiro → ઉપલબ્ધ મોડલ્સ** . ઉપલબ્ધતા એકાઉન્ટ અને પ્લાન પર આધારિત છે.
-**Qoder (`if/`)** — મફત OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/માસ ફ્લેટ અથવા ઉપયોગ-દીઠ: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo ફ્લેટ અથવા પ્રતિ-ઉપયોગ: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — API કી: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — અલ્ટ્રા-ઝડપી: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — અલ્ટ્રા-ફાસ્ટ: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok નેટિવ: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok મૂળ: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU-હોસ્ટેડ: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU-હોસ્ટેડ: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — સર્ચ-ઓગમેન્ટેડ: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**મૂંઝવણ (`pplx/`)** — શોધ-વૃદ્ધિ: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — ઓપન-સોર્સ: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (મફત), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — ઓપન સોર્સ: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ફ્રી), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — ઝડપી ઇન્ફરન્સ: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — ઝડપી અનુમાન: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
**Cerebras (`cerebras/`)** — વેફર-સ્કેલ: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
@@ -654,13 +654,13 @@ post_install() {
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama ક્લાઉડ (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Google તરફથી દરેક API કી મુજબ લાઇવ સિંક થાય છે — કોઈ સ્થિર સૂચિ નથી. **ડેશબોર્ડ → પ્રોવાઇડર્સ** માં કી કનેક્ટ કરો અને પછી વર્તમાન કેટલોગ આયાત કરવા માટે **ઉપલબ્ધ મોડેલો** નો ઉપયોગ કરો (દા.ત. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google ક્લાઉડ `gemini/`)** : Google — નો સ્ટેટિક સૂચિમાંથી API કી દીઠ લાઇવ સમન્વયિત. માં એક કી જોડો** ડેશબોર્ડ → પ્રદાતાઓ** પછી ઉપયોગ કરો** ઉપલબ્ધ મોડલ્સ** વર્તમાન કેટલોગ આયાત કરવા માટે (દા.ત. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**અન્ય સુસંગત પ્રોવાઇડર્સ** (પસંદ કરેલા): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (`aws-bedrock` દ્વારા), `azure-ai`, `openrouter` (પાસથ્રુ કેટલોગ), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. દરેક `providerRegistry.ts` માં પોતાની મોડેલ સૂચિ જાળવે છે અને જ્યારે પ્રોવાઇડર `/models` એન્ડપોઇન્ટ ઉપલબ્ધ કરાવે ત્યારે ઓટો-સિંક થઈ શકે છે.
+**અન્ય સુસંગત પ્રદાતાઓ** (પસંદ કરેલ): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` ( `aws-bedrock`), `azure-ai`, `openrouter` (પાસથ્રુ કૅટેલોગ), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai` `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21` `gigachat` દરેક `providerRegistry.ts` માં તેની પોતાની મૉડલ સૂચિ જાળવી રાખે છે અને જ્યારે પ્રદાતા `/models` એન્ડપોઇન્ટનો પર્દાફાશ કરે ત્યારે સ્વતઃ-સમન્વયિત થઈ શકે છે.
-**મોડેલ ID વિશે નોંધ:** OmniRoute પ્રોવાઇડર-નેટિવ ID નો ઉપયોગ કરે છે (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). કેટલાક ID માં ડોટેડ વર્ઝન હોય છે કારણ કે અપસ્ટ્રીમ API તેમને એ જ રીતે અપેક્ષિત કરે છે. જો કોઈ મોડેલ ઉપર સૂચિબદ્ધ ન હોય, તો ઉપલબ્ધતા ચકાસવા માટે `omniroute models --search ` ચલાવો અથવા `GET /api/models/catalog` ને હિટ કરો.
+**મોડેલ IDs પર નોંધ:** OmniRoute પ્રદાતા-મૂળ IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`) નો ઉપયોગ કરે છે. કેટલાક IDs માં ડોટેડ વર્ઝનનો સમાવેશ થાય છે કારણ કે અપસ્ટ્રીમ API તેમની પાસેથી એવી અપેક્ષા રાખે છે. જો કોઈ મોડેલ ઉપર સૂચિબદ્ધ નથી, તો `omniroute models --search ` ચલાવો અથવા ઉપલબ્ધતાની પુષ્ટિ કરવા માટે `GET /api/models/catalog` દબાવો.
diff --git a/docs/i18n/ha/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/ha/docs/architecture/RESILIENCE_GUIDE.md
index 91751dd83532..26d5a3650b14 100644
--- a/docs/i18n/ha/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/ha/docs/architecture/RESILIENCE_GUIDE.md
@@ -268,17 +268,17 @@ DB — suna ɓacewa a sake farawa. Ana ajiye _saitunan_; _yanayin_ kullewa mai a
---
-## 4. Sarrafa Yawan Buƙatun Lokaci Guda na Quota-Share (v3.8.36)
+## 4. Ƙididdigar Rarraba Sarrafa Sabis (v3.8.36)
-Asusun biyan kuɗi (GLM, MiniMax, da sauransu) galibi suna karɓar buƙatu ~1–3 kacal a lokaci guda; ƙetare hakan yana haifar da 429s da cooldowns. Wannan matsala tana da tsanani musamman ƙarƙashin hadewar **quota-share** (`qtSd/…`), inda maɓallan API da yawa ke raba asusu guda na sama. Matakan uku suna kare asusun da aka raba daga ambaliya.
+Asusun biyan kuɗi (GLM, MiniMax, da sauransu) sau da yawa suna karɓar buƙatun ~ 1-3 kawai; wuce abin da ke haifar da 429s da cooldowns. Wannan shi ne m karkashin** rabo-share** (`qtSd/…`) combos, inda maɓallan API da yawa ke raba asusun sama ɗaya. Yadudduka uku suna kiyaye asusun da aka raba daga ambaliya.
-### Iyakar yawan aiki lokaci guda na kowace haɗi (`max_concurrent`)
+### Haɗin haɗin kai tsaye (`max_concurrent`)
-Kowace haɗin mai samarwa na iya ayyana iyakar `max_concurrent` (`provider_connections.max_concurrent`, ana saita ta a cikin modal ɗin haɗi / API / DB). Bar ta babu komai idan ba a son iyaka. Wannan shi ne kaɗai mabuɗin da ke tūkara matakin tsarawa da ke ƙasa — saita shi zuwa ainihin yawan aikin lokaci guda na asusun (misali GLM ~1, MiniMax ~2).
+Kowane haɗin mai ba da sabis na iya ayyana rufin `max_concurrent` (`provider_connections.max_concurrent`, saita cikin yanayin haɗin / API / DB). Bar shi fanko ba iyaka. Wannan ita ce ƙulli ɗaya wanda ke tafiyar da serialization Layer a ƙasa — saita shi zuwa ainihin daidaitaccen asusun (misali GLM ~ 1, MiniMax ~ 2).
-### Iyakokin yawan aiki lokaci guda na kowace samfuri (`modelConcurrency`)
+### Ƙwararren ƙira (`modelConcurrency`)
-Haɗi na iya ƙara ayyana ainihin iyakokin yawan aiki lokaci guda na kowace samfuri a cikin taswirar `rateLimitOverrides` ɗinta:
+Haɗin yana kuma iya bayyana ainihin madaidaicin rufin kowane samfuri a cikin taswirar `rateLimitOverrides` :
```json
{
@@ -289,30 +289,32 @@ Haɗi na iya ƙara ayyana ainihin iyakokin yawan aiki lokaci guda na kowace samf
}
```
-Saita shi a cikin modal ɗin haɗi (**Ƙetare iyakar sauri → Iyakokin yawan aiki lokaci guda na kowace samfuri**, `model=cap` ɗaya a kowace layi) ko ta `PATCH /api/providers/[id]` da wannan tsarin JSON ɗin. Ma'anomin maɓallai:
+Saita shi a cikin tsarin haɗin kai (** Ƙididdigar ƙididdigewa ta wuce → Per-model madaidaicin iyakoki** , `model=cap` ɗaya a kowane layi) ko ta hanyar `PATCH /api/providers/[id]` mai siffar JSON iri ɗaya. Mahimman bayanai:
-- **Na haɗi gaba ɗaya vs na takamaiman samfuri:** `maxConcurrent` yana ci gaba da kasancewa iyakar haɗi gaba ɗaya da aka raba. Idan dukkansu biyu sun shafi aiki, ana samun ƙofofin biyu tare a ɗan lokaci a cikin wannan ƙofar hadaka (`global → provider → account → model`); halin da ke aiki shi ne iyakar da ta fi tsaurara a cikin waɗanda suka dace.
-- **Daidaituwar maɓallin samfuri daidai:** maɓallin shi ne rubutun samfurin da aka miƙa wa mai aiwatarwa bayan warware jagora — yawanci ainihin ID ɗin samfurin sama marar ƙari (`glm-5`), ba laƙabin `provider/model` na gefen abokin ciniki ba (`zai/glm-5` bai dace da `glm-5` ba). Ƙimomin su ne iyakokin buƙatun lokaci guda na cikakkiyar lamba mai kyau.
-- **Jerin gida, babu bincike:** buƙatun da suka wuce suna yin jerin gwano a gida da ma'anar jeri/timeout da yake akwai (kurakuran shiga na `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). OmniRoute ba ya gano ko fahimtar manufar sama da kansa — yana tilasta ainihin iyakokin da mai aiki ya saita. Ƙofar samfuri da ta cika ba ta kashe mai samarwa kuma ba ta ƙirƙirar kulle samfuri na dindindin; halin 429/cooldown/fallback na sama ya kasance matsayin ƙarshe na kuskure.
-- **Fannin kowace haɗi, kowace tsari (process):** iyakokin su ne na kowace haɗin bayanai (database) kuma ana riƙe su a cikin ƙwaƙwalwa, don haka haɗi biyu da ke sake amfani da maɓallin API ɗaya na sama ba sa haɗin kai da juna.
-- **Rashin saita yana nufin babu canji:** barin taswirar (ko barin filin dashboard babu komai) ba ya ƙara ƙofar samfuri. Misalin saiti ba tare da ayyana wata iyaka ta duniya ta mai samarwa ba:
+- **Haɗin kai-fadi vs takamaiman samfuri:** `maxConcurrent` ya kasance rufin da aka raba haɗin haɗin gwiwa. Lokacin da aka yi amfani da duka biyun, ana samun duka kofofin biyu ta atomatik a cikin kofa guda ɗaya (`global → provider → account → model`); ingantacciyar ɗabi'a ita ce mafi tsananin iyaka.
+- **Daidaitaccen maɓalli na ƙirar ƙira:** maɓalli shine ƙirar ƙirar da aka aika zuwa ga mai aiwatarwa bayan ƙaddamar da ƙudurin — kullum dandali samfurin id na sama (`glm-5`), ba sunan `provider/model` na abokin ciniki ba (`zai/glm-5` bai dace da `glm-5` ba). Dabi'u sune rufin buƙatun ƙididdiga masu inganci.
+- **Layin gida, babu ganowa:** wuce haddi na buƙatun layi a cikin gida tare da ilimin tarukan queue/timeout na yanzu (kurakurai shigar `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ). OmniRoute baya ganowa ko fahimtar manufofin sama da — yana aiwatar da madaidaicin silin da mai aiki ya daidaita. Cikakken Ƙofar ƙira ba zai taɓa kashe mai badawa ba kuma baya haifar da kulle samfurin dindindin; Halin 429/cooldown/fallback na sama ya kasance kuskuren baya.
+- **Haɗin kai-tsaye, iyakar-tsari:** iyakoki suna ta kowace hanyar haɗin bayanai kuma ana riƙe su a cikin ƙwaƙwalwar ajiya, don haka haɗi biyu masu sake amfani da maɓallin API ɗaya na sama ba sa daidaitawa da juna.
+- **Ba a daidaita shi yana nufin mara canzawa:** ƙetare taswirar (ko barin filin dashboard babu komai) baya ƙara kofa samfurin. Tsarin misali ba tare da tabbatar da kowane iyaka na mai bada sabis na duniya ba:
```text
glm-5=1
glm-4.7=3
```
-### Tsara buƙatun quota-share
+### Serialization buƙatun rabon ƙima
-Idan aikewar quota-share ta nufa haɗi da ke ayyana `max_concurrent` mai kyau, ana tsara buƙatun lokaci guda zuwa wannan **asusun** ta semaphore na kowace haɗi (maɓalli `qsconn:`): buƙatun da suka wuce **suna jira a jerin gwano** maimakon ambaliyar asusun. Yana **fail-open** — jerin da ya cika ko timeout yana ci gaba ba tare da wuri ba maimakon taƙaita buƙata da za a iya aikawa. Canza shi a **Saituna → Juriya → Yawan aiki lokaci guda na kowace haɗi na quota-share** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, asali kunne). Ba tare da iyakar `max_concurrent` ba halin ba ya canzawa.
+Lokacin da aika rabon rabon keɓancewa akan hanyar haɗin da ke bayyana tabbataccen `max_concurrent`, buƙatun lokaci guda zuwa wancan.** asusu** ana jera su ta hanyar semaphore mai haɗin kai (key `qsconn:`): buƙatun wuce gona da iri** jira a cikin jerin gwano** maimakon ambaliya asusu. Yana da** kasa-bude** — cikakken jerin gwano ko ƙarewar lokaci yana ci gaba ba tare da ramuwa ba maimakon taɓa ƙin yarda da buƙatun da za a iya aikawa. Shiga ciki** Saituna → Resilience → Quota-share kowane haɗin haɗin kai** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, tsoho a kunne). Ba tare da hular `max_concurrent` ba yanayin ba ya canzawa.
-> Ƙofar jagorar quota-share (`selectQuotaShareTarget`, DRR + P2C) ita kanta fail-open ce kuma tana _rage mahimmanci_ kawai ga haɗi da ta cika — da tafkin haɗi ɗaya ba za ta iya takaita da ƙarfi ba, don haka wannan semaphore shi ne ainihin abin da ke ɗauke da ambaliyar.
+> Ƙofar hanyar da za a raba rabo (`selectQuotaShareTarget`, DRR + P2C) ita kanta ta gaza buɗewa kuma kawai _deprioritizes_ haɗin haɗin gwiwa — tare da tafkin haɗin kai guda ɗaya ba zai iya iyakancewa ba, don haka wannan semaphore shine ainihin abin da ya ƙunshi ambaliya.
-### Sake gwadawa mai fahimtar cooldown na combo
+### Combo cooldown-sanke sake gwadawa
-Ga kowace dabarar combo (idan an kunna), buƙata da za ta kafa 429 saboda GAJEREN cooldown na wucin gadi tana jira shi ya wuce kuma ta sake aikawa maimakon mayar da 429 — wannan ya rufe tagogin TPM/RPM na irin Gemini (~60s retry-after) a kan combos na samfuri da yawa, misali dukkanin manufofi biyu na combo na samfuri 2 suna buga iyakar sauri na kowace samfuri. Yana da iyaka da `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) a **Saituna → Juriya**. Ba ya jira a kan `quota_exhausted` (an kulle har tsakar dare) ko dalilan auth/not-found.
+Ga kowane dabarun haɗin gwiwa (lokacin da aka kunna), buƙatun da zai ƙirƙira 429 don sanyin sanyi na SHORT yana jira shi kuma ya sake aikawa maimakon dawo da 429 — wannan ya rufe Gemini-class TPM/RPM windows (~ 60s sake gwadawa-bayan) akan haɗaɗɗun samfura da yawa, misali duka biyun iyakacin adadin 2-mo. An yi iyaka da `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) a ciki** Saituna → Resilience** . Ba ya jira a kan `quota_exhausted` (a kulle har zuwa tsakar dare) ko dalilai na auth/not-found.
-Wannan ƙofar ma tana rufe yanayin kafin aikawa (#16319): idan an tsallake kowace manufa ta combo kafin a yi wani gwaji saboda samfurinta yana cikin kulle na wucin gadi na gajere, hanyar marar gwaji tana jira kulle ya wuce ƙarƙashin wannan iyakoki kuma tana sake aikawa, maimakon amsa `503 ALL_TARGETS_SKIPPED` marar-bayanin kula. Idan ba a yarda da jira ba (iyaka, gwaji ko kasafin kuɗi ya ƙare, ko fasalin ya kashe), amsar ƙarshe tana haɓakawa zuwa `429 rate_limit_error` tana ɗauke da `retry_after` / `reset_at` daga mafi farkon ƙarewar kulle na wucin gadi; kulle na quota, auth da not-found suna riƙe da 503 marar-bayanin kula.
+Combo na iya ficewa da `config.comboCooldownWaitEnabled: false`. `false` na zahiri ne kawai ya hana waɗannan jiragerun haɗin gwiwa (bayan aika sanyi da aika circuit-open/model-lock kafin a aika) da tsawaita lokacin-kudin kasafin kuɗin su. Bace ko `true` yana kiyaye manufofin duniya; `true` ba zai iya kunna jiran naƙasasshen duniya ba. Har yanzu `targetTimeoutMs` bayyananne yana nasara. Wannan ficewar ba zai canza keɓantaccen ɗan-bakin-bakin-bakin juya-filin jiran aika jira.
+
+Ƙofar guda ɗaya tana rufe harafin da aka riga aka aika (#16319): lokacin da aka tsallake kowane maƙasudi na haɗakarwa kafin a yi kowane ƙoƙari saboda samfurinsa yana zaune a cikin ɗan gajeren kulle-kulle, hanyar yunƙurin sifiri yana jiran kullewa a ƙarƙashin rufin guda ɗaya kuma a sake aikawa, maimakon amsa `503 ALL_TARGETS_SKIPPED` mara alama. Lokacin da ba a ba da izinin jira ba (rufi, ƙoƙari ko ƙarancin kasafin kuɗi, ko fasalin a kashe), haɓaka martanin tasha zuwa `429 rate_limit_error` ɗauke da `retry_after` / `reset_at` daga farkon ƙarshen kullewa na wucin gadi; ƙididdiga, auth da makullan da ba a samo su ba suna kiyaye alamar-kasa 503.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/ha/docs/guides/USER_GUIDE.md b/docs/i18n/ha/docs/guides/USER_GUIDE.md
index dac4dc9f5a68..6a2dc757f6bd 100644
--- a/docs/i18n/ha/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/ha/docs/guides/USER_GUIDE.md
@@ -606,60 +606,60 @@ Don cikakken bayani game da maɓallan muhalli, duba [README](../README.md).
---
-## 📊 Samfuran da Ake da Su
+## 📊 Samfuran Akwai
Duba duk samfuran da ake da su
-> Jerin da ke ƙasa an tsara shi daga `open-sse/config/providerRegistry.ts` don v3.8.0. Ana daidaita katalogi na girgije (Gemini, OpenRouter, da sauransu) kai tsaye — don cikakken katalog na kai tsaye buɗe **Dashboard → Providers → [provider] → Available Models** ko kira `GET /api/models/catalog`.
+> Jerin da ke ƙasa an tsara shi daga `open-sse/config/providerRegistry.ts` don v3.8.0. Katalogin gajimare (Gemini, OpenRouter, da sauransu) ana daidaita su da ƙarfi — don buɗe cikakken kundin kasida** Dashboard → Masu bayarwa → [mai bayarwa] → Samfuran Samfura** ko kira `GET /api/models/catalog`.
>
-> Idan jerin da aka sanya na wani mai samarwa ya kaucewa, yi amfani da **Import from /models** a wannan shafin (ko kunna **Auto-Sync**) don ja katalog na upstream na kai tsaye. An tabbatar da wannan a v3.8.50 ga LLM7.io (`gemini-3.1-flash-lite`) da UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); samun damar baƙo na Pollinations ya kasance yana da ƙuntatawa daga upstream a lokacin wannan zagayen gwaji.
+> Idan lissafin ginannen mai bada ya karkata, yi amfani** Shigo daga / samfuri** a kan wancan shafin (ko kunna** Auto-Sync** ) don jawo kundin kundin rafi kai tsaye. An tabbatar da wannan a v3.8.50 don LLM7.io (`gemini-3.1-flash-lite`) da UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Shigar da ba a san sunansa ba ya kasance yana da iyakacin iyaka a lokacin wucewar gwajin.
**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ matakan ƙoƙari: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort tiers: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth KYAUTA: yi amfani da katalog na kai tsaye da aka nuna a ƙarƙashin **Dashboard → Providers → Kiro → Available Models**. Samuwa ya dogara da asusun da shirin.
+**Kiro (`kr/`)** — FREE OAuth: yi amfani da kundin tarihin da aka nuna a ƙarƙashin** Dashboard → Masu bayarwa → Kiro → Samfuran Samfura** . Samuwar ya dogara da asusun da shirin.
-**Qoder (`if/`)** — OAuth KYAUTA: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/wata cikakke ko bisa kowane amfani: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo lebur ko kowane amfani: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — Maɓallin API: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API key: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Mai sauri sosai: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Ultra-sauri: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
**xAI (`xai/`)** — Grok na asali: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Ana masaukar shi a EU: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU mai masaukin baki: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — An ƙarfafa shi da bincike: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Rikici (`pplx/`)** — Bincike-ƙara: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Budɗaɗɗen tushe: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (kyauta), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — Buɗe tushen: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (kyauta), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Inference mai sauri: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Mai sauri inference: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Girman wafer: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Wafer-ma'auni: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Mai mayar da hankali kan RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG-mai da hankali: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Don manyan kamfanoni: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Ana daidaita shi kai tsaye ga kowane maɓallin API daga Google — babu jeri na tsayayye. Haɗa maɓalli a **Dashboard → Providers** sannan yi amfani da **Available Models** don shigo da katalog na yanzu (misali `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : An daidaita kai tsaye a kowane maɓalli API daga Google — babu a tsaye jeri. Haɗa maɓalli a ciki** Dashboard → Masu bayarwa** sannan amfani** Samfuran Akwai** don shigo da kasida na yanzu (misali `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Sauran masu samarwa masu jituwa** (zaɓaɓɓu): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (ta `aws-bedrock`), `azure-ai`, `openrouter` (katalog na passthrough), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Kowanne yana kula da nasa jerin samfura a cikin `providerRegistry.ts` kuma ana iya daidaita shi ta atomatik idan mai samarwa ya bayyana ƙarshen `/models`.
+**Sauran masu samarwa masu jituwa** (zaɓi): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock` `nous-research`, `azure-ai`, `openrouter` `reka` kasidar wucewa), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `friendliai` `vercel-ai-gateway`, `bazaarlink`, `volcengine`, `ai21` `gigachat` Kowannensu yana riƙe da jerin samfuransa a cikin `providerRegistry.ts` kuma ana iya daidaita shi ta atomatik lokacin da mai bayarwa ya fallasa ƙarshen `/models`.
-**Lura kan ID na samfura:** OmniRoute yana amfani da ID na asali na kowane mai samarwa (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Wasu ID suna haɗa da sigogi masu taki domin haka ne API na upstream yake tsammanin su. Idan ba a jera wani samfuri a sama ba, gudanar da `omniroute models --search ` ko kira `GET /api/models/catalog` don tabbatar da samuwa.
+**Note on model IDs:** OmniRoute yana amfani da mai bayarwa-na asali IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Wasu IDs sun haɗa da nau'ikan dige-dige saboda haka API na sama ke tsammanin su. Idan ba a jera samfurin a sama ba, gudanar da `omniroute models --search ` ko buga `GET /api/models/catalog` don tabbatar da samuwa.
diff --git a/docs/i18n/he/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/he/docs/architecture/RESILIENCE_GUIDE.md
index 5925b2db4f03..b62788da3f8d 100644
--- a/docs/i18n/he/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/he/docs/architecture/RESILIENCE_GUIDE.md
@@ -281,17 +281,17 @@ DB — הן אובדות בהפעלה מחדש. ה_הגדרות_ נשמרות; _
---
-## 4. בקרת מקביליות של שיתוף מכסה (v3.8.36)
+## 4. בקרת מקיפות של שיתוף מכסה (v3.8.36)
-חשבונות מנוי (GLM, MiniMax וכו') מקבלים לרוב רק ~1–3 בקשות מקבילות; חריגה מכך מפעילה 429 ותקופות צינון. הבעיה חריפה במיוחד תחת קומבואים של **שיתוף מכסה** (`qtSd/…`), שבהם מספר מפתחות API חולקים חשבון upstream אחד. שלוש שכבות מונעות הצפה של חשבון משותף.
+חשבונות מנוי (GLM, MiniMax וכו') מקבלים לעתים קרובות רק בקשות בו-זמנית ~ 1–3; חריגה מזה מפעילה 429s והתקררות. זה חריף מתחת** חלוקת מכסה** (`qtSd/…`) שילובים, שבהם מספר מפתחות API חולקים חשבון אחד במעלה הזרם. שלוש שכבות מונעות מציף חשבון משותף.
-### מגבלת מקביליות לכל חיבור (`max_concurrent`)
+### מכסת מקבילות לכל חיבור (`max_concurrent`)
-כל חיבור ספק יכול להצהיר על תקרת `max_concurrent` (`provider_connections.max_concurrent`, נקבע ב-modal החיבור / API / DB). השאירו ריק כדי לא להחיל מגבלה. זהו הכפתור היחיד שמפעיל את שכבת הסריאליזציה שלהלן — כוונו אותו למקביליות האמיתית של החשבון (למשל GLM ~1, MiniMax ~2).
+כל חיבור ספק יכול להכריז על תקרת `max_concurrent` (`provider_connections.max_concurrent`, מוגדר ב-connect modal / API / DB). השאר אותו ריק ללא הגבלה. זהו הכפתור הבודד שמניע את שכבת ההסדרה מתחת ל- — הגדר אותה במקבילות האמיתית של החשבון (למשל GLM ~ 1, MiniMax ~ 2).
-### מגבלות מקביליות לכל מודל (`modelConcurrency`)
+### מכסות מקבילות לכל דגם (`modelConcurrency`)
-חיבור יכול להצהיר בנוסף על תקרות מקביליות מדויקות לכל מודל בתוך מפת ה-`rateLimitOverrides` שלו:
+חיבור יכול בנוסף להכריז על תקרות מקבילות מדויקות לכל דגם בתוך מפת `rateLimitOverrides` שלו:
```json
{
@@ -302,30 +302,32 @@ DB — הן אובדות בהפעלה מחדש. ה_הגדרות_ נשמרות; _
}
```
-קבעו זאת ב-modal החיבור (**Rate limit overrides → Per-model concurrency caps**, שורה אחת של `model=cap` לכל מודל) או דרך `PATCH /api/providers/[id]` עם אותו מבנה JSON. סמנטיקה מרכזית:
+הגדר אותו במוד החיבור (** מגבלת התעריף עוקפת מכסות מקבילות → לכל דגם** , `model=cap` אחד לכל שורה) או באמצעות `PATCH /api/providers/[id]` עם אותה צורת JSON. סמנטיקה מרכזית:
-- **רמת חיבור לעומת רמת מודל:** `maxConcurrent` נשאר התקרה המשותפת ברמת החיבור. כאשר שניהם חלים, שני השערים נרכשים אטומית באותו שער מרוכב (`global → provider → account → model`); ההתנהגות האפקטיבית היא המגבלה המחמירה מבין החלות.
-- **התאמה מדויקת של מפתח המודל:** המפתח הוא מחרוזת המודל שנמסרת ל-executor לאחר פתרון הניתוב — בדרך כלל מזהה מודל ה-upstream החשוף (`glm-5`), ולא כינוי `provider/model` בצד הלקוח (`zai/glm-5` אינו תואם ל-`glm-5`). הערכים הם תקרות של מספר בקשות מקבילות כמספר שלם חיובי.
-- **תור מקומי, ללא גילוי:** בקשות עודפות נכנסות לתור מקומי עם סמנטיקת התור/פסק הזמן הקיימת (שגיאות קבלה מוקלדות `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). OmniRoute אינו מגלה או מסיק מדיניות upstream — הוא אוכף בדיוק את התקרות שהמפעיל הגדיר. שער מודל רווי לעולם אינו משבית את הספק ולעולם אינו יוצר נעילה קבועה של המודל; התנהגות 429/צינון/fallback של ה-upstream נשארת גב הגיבוי לשגיאות.
-- **היקף לכל חיבור ולכל תהליך:** המגבלות הן לכל חיבור למסד נתונים ונשמרות בזיכרון, כך ששני חיבורים המשתמשים באותו מפתח API של upstream אינם מתאמים ביניהם.
-- **ללא הגדרה פירושו ללא שינוי:** השמטת המפה (או השארת שדה בלוח הבקרה ריק) אינה מוסיפה שער מודל. דוגמת תצורה מבלי לקבוע מגבלת ספק אוניברסלית:
+- **חיבור רחב לעומת דגם ספציפי:** `maxConcurrent` נותרה התקרה המשותפת לכל החיבורים. כאשר שניהם חלים, שני השערים נרכשים בצורה אטומית באותו שער מורכב (`global → provider → account → model`); ההתנהגות האפקטיבית היא המגבלה החלה המחמירה יותר.
+- **התאמה מדויקת של מפתח דגם:** המפתח הוא מחרוזת הדגם המועברת ל-executor לאחר ניתוב רזולוציית — בדרך כלל מזהה המודל החשוף במעלה הזרם (`glm-5`), לא כינוי `provider/model` בצד הלקוח (`zai/glm-5` אינו תואם `glm-5`). ערכים הם תקרות בו-זמנית עם מספר שלם חיובי.
+- **תור מקומי, ללא גילוי:** עודף בקשות עומד בתור מקומי עם הסמנטיקה הקיימת queue/timeout (שגיאות קבלה מסוג `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ). OmniRoute אינו מגלה או מסיק מדיניות במעלה הזרם — הוא אוכף את התקרות המדויקות שהמפעיל הגדיר. שער דגם רווי לעולם אינו משבית את הספק ולעולם אינו יוצר נעילת דגם קבועה; התנהגות 429/cooldown/fallback במעלה הזרם נשארת מעצור השגיאה.
+- **לכל חיבור, לכל תהליך:** כובעים הם לכל חיבור למסד נתונים ומוחזקים בזיכרון, כך ששני חיבורים המשתמשים באותו מפתח API במעלה הזרם אינם מתואמים זה עם זה.
+- **לא מוגדר פירושו ללא שינוי:** השמטת המפה (או השארת שדה לוח המחוונים ריק) לא מוסיפה שער דגם. תצורה לדוגמה מבלי לקבוע מגבלת ספק אוניברסלית כלשהי:
```text
glm-5=1
glm-4.7=3
```
-### סריאליזציית בקשות בשיתוף מכסה
+### סידור בקשות לשיתוף מכסה
-כאשר שיגור בשיתוף מכסה מכוון לחיבור שמצהיר על `max_concurrent` חיובי, בקשות מקבילות לאותו **חשבון** עוברות סריאליזציה דרך סמפור לכל חיבור (מפתח `qsconn:`): בקשות עודפות **ממתינות בתור** במקום להציף את החשבון. הוא **fail-open** — תור רווי או פסק זמן ממשיכים ללא משבצת במקום לדחות אי-פעם בקשה ששיגורה אפשרי. ניתן להפעיל/לכבות ב-**Settings → Resilience → Quota-share per-connection concurrency** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, ברירת מחדל: פעיל). ללא מגבלת `max_concurrent` ההתנהגות אינה משתנה.
+כאשר שליחת מכסה מכוונת לחיבור שמצהיר על `max_concurrent` חיובי, בקשות במקביל לכך** חֶשְׁבּוֹן** מסודרים באמצעות סמפור לכל חיבור (מפתח `qsconn:`): עודף בקשות** לחכות בתור** במקום להציף את החשבון. זה כן** כשל-פתיחה** — תור רווי או פסק זמן מתמשך ללא משבצת במקום לדחות אי פעם בקשה שניתן לשלוח. התחל פנימה** הגדרות → Resilience → במקביל למכסה-שיתוף לכל חיבור** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, מופעל כברירת מחדל). ללא כובע `max_concurrent` ההתנהגות ללא שינוי.
-> שער הניתוב של שיתוף המכסה (`selectQuotaShareTarget`, DRR + P2C) הוא בעצמו fail-open ורק _מנמיך עדיפות_ של חיבור שנמצא בתקרה — עם מאגר בעל חיבור יחיד הוא אינו יכול להגביל בכוח, ולכן הסמפור הזה הוא שלמעשה מכיל את ההצפה.
+> שער ניתוב המכסה (`selectQuotaShareTarget`, DRR + P2C) הוא עצמו פתוח לכשל ורק _מבטל_ סדר העדיפויות של חיבור at-cap — עם מאגר חיבור יחיד שאינו יכול להגביל אותו בצורה קשה, כך שהסמפור הזה הוא מה שבעצם מכיל את המבול.
-### ניסיון חוזר מודע לצינון בקומבו
+### ניסיון חוזר עם התקררות משולבת
-עבור כל אסטרטגיית קומבו (כאשר היא מופעלת), בקשה שהייתה מקבעת 429 בגלל צינון חולף SHORT ממתינה לו ומשוגרת מחדש במקום להחזיר את ה-429 — זה מכסה חלונות TPM/RPM מסוג Gemini (retry-after של ~60 שניות) בקומבואים רב-מודליים, למשל כאשר שני היעדים של קומבו דו-מודלי נתקלים במגבלת קצב לכל מודל. מוגבל על ידי `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) ב-**Settings → Resilience**. הוא לעולם אינו ממתין על `quota_exhausted` (נעול עד חצות) או על סיבות אימות/לא-נמצא.
+עבור כל אסטרטגיית משולבת (כאשר היא מופעלת), בקשה שתגבש 429 לקירור חולף של SHORT ממתינה אותה ומשגרת מחדש במקום להחזיר את ה-429 — זה מכסה חלונות TPM/RPM בדרגת Gemini (~ 60s ניסיון חוזר-אחרי) בשילובים מרובי דגמים, למשל שני יעדים של דגם-com. תחום על ידי `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) ב** הגדרות → חוסן** . זה אף פעם לא ממתין לסיבות `quota_exhausted` (נעול עד חצות) או auth/not-found.
-אותו שער מכסה גם את המקרה שלפני השיגור (#16319): כאשר כל יעד של קומבו מדולג לפני שנעשתה בקשה כלשהי מפני שהמודל שלו נמצא בנעילה חולפת קצרה, המסלול של אפס ניסיונות ממתין לנעילה תחת אותן תקרות ומשגר מחדש, במקום להשיב `503 ALL_TARGETS_SKIPPED` בלי רמז. כאשר אין אפשרות להמתין (תקרה, ניצול מקסימלי של ניסיונות או תקציב, או שהתכונה כבויה), התגובה הסופית משתדרגת ל-`429 rate_limit_error` הנושאת `retry_after` / `reset_at` מפקיעת הנעילה החולפת המוקדמת ביותר; נעילות מכסה, אימות ולא-נמצא נשארות עם 503 בלי רמז.
+שילוב יכול לבטל את הסכמתו עם `config.comboCooldownWaitEnabled: false`. רק `false` מילולי משבית את ההמתנה המשולבת המשותפת הללו (המתנה לאחר שיגור והמתנה circuit-open/model-lock לפני שליחת) ואת הארכת רצפת הזמן הקצוב של תקציב ההמתנה שלהם. חסר או `true` משמר את המדיניות הגלובלית; `true` לא יכול לאפשר המתנה מושבתת גלובלית. `targetTimeoutMs` מפורש עדיין מנצח. ביטול הסכמה זה אינו משנה את ההמתנה הנפרדת של ה-Codex עם הפניית הפינים לפני המשלוח.
+
+אותו שער מכסה את המקרה שלפני השיגור (#16319): כאשר כל מטרה של משולבת מדלגת לפני שנעשה כל ניסיון מכיוון שהדגם שלו יושב בנעילה חולפת קצרה, נתיב אפס נסיונות ממתין לנעילה מתחת לאותן תקרות ומשגר מחדש, במקום לענות על `503 ALL_TARGETS_SKIPPED` חסר רמז. כאשר לא מותרת המתנה (תקרה, ניסיון או תקציב מוצה, או התכונה כבויה), תגובת הטרמינל משתדרגת ל- `429 rate_limit_error` הנושאת `retry_after` / `reset_at` מהתפוגה המוקדם ביותר של הנעילה החולפת; מכסה, אישור ומנעולים שלא נמצאו שומרים על 503 חסרי רמז.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/he/docs/guides/USER_GUIDE.md b/docs/i18n/he/docs/guides/USER_GUIDE.md
index 04f8bfd37afd..b134e9c381d0 100644
--- a/docs/i18n/he/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/he/docs/guides/USER_GUIDE.md
@@ -606,60 +606,60 @@ post_install() {
---
-## 📊 מודלים זמינים
+## 📊 דגמים זמינים
-הצגת כל המודלים הזמינים
+הצג את כל הדגמים הזמינים
-> הרשימה שלמטה נאספת מתוך `open-sse/config/providerRegistry.ts` עבור v3.8.0. קטלוגי ענן (Gemini, OpenRouter וכו') מסונכרנים באופן דינמי — לקטלוג החי המלא פתחו את **Dashboard → Providers → [provider] → Available Models** או בצעו קריאה ל-`GET /api/models/catalog`.
+> הרשימה שלהלן מאוצרת מ- `open-sse/config/providerRegistry.ts` עבור v3.8.0. קטלוגי ענן (Gemini, OpenRouter, וכו') מסונכרנים באופן דינמי — עבור הקטלוג החי המלא פתוח** לוח מחוונים → ספקי → [ספק] → דגמים זמינים** או התקשר ל- `GET /api/models/catalog`.
>
-> אם הרשימה המובנית של ספק מסוים איבדה עדכניות, השתמשו ב-**Import from /models** באותו עמוד (או הפעילו **Auto-Sync**) כדי למשוך את הקטלוג החי מהספק. זה אומת ב-v3.8.50 עבור LLM7.io (`gemini-3.1-flash-lite`) ו-UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); גישה אנונימית ל-Pollinations נותרה מוגבלת מצד הספק במהלך אותו מחזור בדיקות.
+> אם הרשימה המובנית של ספק נסחפה, השתמש** ייבוא מ /models** בדף זה (או אפשר** סנכרון אוטומטי** ) כדי למשוך את הקטלוג בשידור חי במעלה הזרם. זה אומת ב-v3.8.50 עבור LLM7.io (`gemini-3.1-flash-lite`) ו- UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); הגישה האנונימית להאבקות נותרה מוגבלת במעלה הזרם במהלך אותו מעבר מבחן.
-**Claude Code (`cc/`)** — OAuth של Pro/Max: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**קוד Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — OAuth של Plus/Pro: `cx/gpt-5.5` (+ דרגות effort: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (רמות מאמץ + : `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth חינמי: השתמשו בקטלוג החי המוצג תחת **Dashboard → Providers → Kiro → Available Models**. הזמינות תלויה בחשבון ובמנוי.
+**Kiro (`kr/`)** — FREE OAuth: השתמש בקטלוג החי המוצג מתחת** לוח מחוונים → ספקי → Kiro → דגמים זמינים** . הזמינות תלויה בחשבון ובתוכנית.
-**Qoder (`if/`)** — OAuth חינמי: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
-**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6 לכל מיליון טוקנים: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
+**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
-**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2 לכל מיליון טוקנים: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
+**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9 לחודש בתעריף קבוע או לפי שימוש: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo שטוח או לפי שימוש: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — מפתח API: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** מפתח — API : `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
**Groq (`groq/`)** — מהיר במיוחד: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
**xAI (`xai/`)** — Grok מקורי: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — מתארח באירופה: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — אירוח באיחוד האירופי: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — מועשר בחיפוש: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**תמיהה (`pplx/`)** — חיפוש מוגדל: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
**Together AI (`together/`)** — קוד פתוח: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (חינם), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
**Fireworks AI (`fireworks/`)** — הסקה מהירה: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — בקנה מידה של וופר: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — סולם רקיק: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — ממוקד RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG ממוקד: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — ארגוני: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: מסונכרן בזמן אמת לכל מפתח API מ-Google — אין רשימה סטטית. חברו מפתח ב-**Dashboard → Providers** ולאחר מכן השתמשו ב-**Available Models** כדי לייבא את הקטלוג העדכני (למשל `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : מסונכרן חי לכל מפתח API מ- Google — ללא רשימה סטטית. חבר מפתח פנימה** ספקי → לוח מחוונים** ואז להשתמש** דגמים זמינים** לייבא את הקטלוג הנוכחי (למשל `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**ספקים תואמים נוספים** (נבחרים): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (באמצעות `aws-bedrock`), `azure-ai`, `openrouter` (קטלוג מעבר ישיר), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. כל ספק מנהל רשימת מודלים משלו ב-`providerRegistry.ts` וניתן לסנכרנו אוטומטית כאשר הספק חושף נקודת קצה `/models`.
+**ספקים תואמים אחרים** (נבחר): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (קטלוג מעבר), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `nous-research`, `bazaarlink`, `friendliai`, , `reka`, `volcengine`, `ai21`, `gigachat`. כל אחד שומר על רשימת דגמים משלו ב- `providerRegistry.ts` וניתן לסנכרן אותו אוטומטית כאשר הספק חושף נקודת קצה `/models`.
-**הערה לגבי מזהי מודלים:** OmniRoute משתמש במזהים הילידיים של הספק (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). חלק מהמזהים כוללים גרסאות עם נקודות, מכיוון שכך ה-API של הספק מצפה לקבלם. אם מודל אינו מופיע ברשימה למעלה, הריצו `omniroute models --search ` או בצעו קריאה ל-`GET /api/models/catalog` כדי לוודא זמינות.
+**הערה על דגם IDs:** OmniRoute משתמש ב- IDs מקורי לספק (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). חלק מה- IDs כוללים גרסאות מנוקדות מכיוון שכך ה- API מצפה להן. אם דגם אינו מופיע למעלה, הפעל `omniroute models --search ` או הקש על `GET /api/models/catalog` כדי לאשר זמינות.
diff --git a/docs/i18n/hi/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/hi/docs/architecture/RESILIENCE_GUIDE.md
index bea7caa2e665..6c5941083e60 100644
--- a/docs/i18n/hi/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/hi/docs/architecture/RESILIENCE_GUIDE.md
@@ -264,25 +264,17 @@ UI: Monitoring → Cooldown Manager (`src/app/(dashboard)/dashboard/resilience/c
---
-## 4. Quota-Share समवर्तिता नियंत्रण (v3.8.36)
+## 4. कोटा-शेयर समवर्ती नियंत्रण (v3.8.36)
-सब्सक्रिप्शन खाते (GLM, MiniMax, आदि) अक्सर केवल ~1–3 समवर्ती अनुरोध ही
-स्वीकार करते हैं; इससे अधिक करने पर 429 और कूलडाउन ट्रिगर हो जाते हैं। यह समस्या
-**quota-share** (`qtSd/…`) कॉम्बो में विशेष रूप से गंभीर होती है, जहाँ कई API कुंजियाँ
-एक ही अपस्ट्रीम खाता साझा करती हैं। तीन परतें साझा खाते को अनुरोधों की बाढ़ से बचाती हैं।
+सदस्यता खाते (GLM, MiniMax, आदि) अक्सर केवल ~ 1-3 समवर्ती अनुरोध स्वीकार करते हैं; इससे अधिक होने पर 429 और कूलडाउन ट्रिगर हो जाते हैं। यह नीचे तीव्र है** कोटा शेयर** (`qtSd/…`) कॉम्बो, जहां कई API कुंजियाँ एक अपस्ट्रीम खाता साझा करती हैं। तीन परतें किसी साझा खाते को बाढ़ से बचाती हैं।
-### प्रति-कनेक्शन समवर्तिता सीमा (`max_concurrent`)
+### प्रति-कनेक्शन समवर्ती सीमा (`max_concurrent`)
-प्रत्येक प्रोवाइडर कनेक्शन एक `max_concurrent` अधिकतम सीमा घोषित कर सकता है
-(`provider_connections.max_concurrent`, कनेक्शन मोडल / API / DB में सेट करें)।
-कोई सीमा न रखने के लिए इसे खाली छोड़ दें। यही एकमात्र नॉब है जो नीचे दी गई
-क्रमबद्धता (serialization) परत को चलाता है — इसे खाते की वास्तविक समवर्तिता पर
-सेट करें (जैसे GLM ~1, MiniMax ~2)।
+प्रत्येक प्रदाता कनेक्शन एक `max_concurrent` छत (`provider_connections.max_concurrent`, कनेक्शन मोडल / API / DB में सेट) घोषित कर सकता है। इसे बिना किसी सीमा के खाली छोड़ दें। यह एकल घुंडी है जो — के नीचे क्रमांकन परत को चलाती है और इसे खाते की वास्तविक संगामिति पर सेट करती है (जैसे GLM ~ 1, MiniMax ~ 2)।
-### प्रति-मॉडल समवर्तिता सीमाएँ (`modelConcurrency`)
+### प्रति-मॉडल समवर्ती कैप्स (`modelConcurrency`)
-एक कनेक्शन अपने `rateLimitOverrides` मैप के अंदर प्रति-मॉडल सटीक समवर्तिता
-सीमाएँ भी घोषित कर सकता है:
+एक कनेक्शन अतिरिक्त रूप से अपने `rateLimitOverrides` मानचित्र के अंदर सटीक प्रति-मॉडल समवर्ती छत की घोषणा कर सकता है:
```json
{
@@ -293,76 +285,32 @@ UI: Monitoring → Cooldown Manager (`src/app/(dashboard)/dashboard/resilience/c
}
```
-इसे कनेक्शन मोडल में सेट करें (**दर सीमा ओवरराइड → प्रति-मॉडल
-समवर्तिता सीमाएँ**, प्रति पंक्ति एक `model=cap`) या उसी JSON संरचना के साथ
-`PATCH /api/providers/[id]` के माध्यम से। मुख्य बातें:
-
-- **कनेक्शन-व्यापी बनाम मॉडल-विशिष्ट:** `maxConcurrent` साझा
- कनेक्शन-व्यापी सीमा बना रहता है। जब दोनों लागू हों, तो दोनों गेट एक ही
- सम्मिश्र गेट (`global → provider → account → model`) में परमाणुक रूप से
- (atomically) प्राप्त किए जाते हैं; प्रभावी व्यवहार लागू सीमाओं में से
- अधिक सख्त वाला होता है।
-- **सटीक मॉडल-कुंजी मिलान:** कुंजी वह मॉडल स्ट्रिंग है जो रूटिंग रिज़ॉल्यूशन के
- बाद executor को दी जाती है — सामान्यतः नग्न अपस्ट्रीम मॉडल id
- (`glm-5`), न कि क्लाइंट-साइड `provider/model` उपनाम (`zai/glm-5` का
- `glm-5` से मिलान नहीं होता)। मान धनात्मक-पूर्णांक समवर्ती-अनुरोध
- सीमाएँ होते हैं।
-- **स्थानीय कतारबद्धता, कोई खोज नहीं:** अतिरिक्त अनुरोध मौजूदा कतार/टाइमआउट
- semantics के साथ स्थानीय रूप से कतार में लगते हैं (टाइप किए गए
- `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` प्रवेश त्रुटियाँ)। OmniRoute
- अपस्ट्रीम नीति की खोज या अनुमान नहीं लगाता — यह ठीक वही सीमाएँ लागू करता
- है जो ऑपरेटर ने कॉन्फ़िगर की हैं। संतृप्त मॉडल गेट कभी भी प्रोवाइडर को अक्षम
- नहीं करता और न ही स्थायी मॉडल लॉकआउट बनाता है; अपस्ट्रीम
- 429/कूलडाउन/फ़ॉलबैक व्यवहार ही त्रुटि का अंतिम सहारा (backstop) रहता है।
-- **प्रति-कनेक्शन, प्रति-प्रोसेस दायरा:** सीमाएँ प्रति डेटाबेस कनेक्शन होती
- हैं और इन-मेमोरी रखी जाती हैं, इसलिए एक ही अपस्ट्रीम API कुंजी का पुनः
- उपयोग करने वाले दो कनेक्शन आपस में समन्वय नहीं करते।
-- **अकॉन्फ़िगर का अर्थ अपरिवर्तित:** मैप को छोड़ने (या डैशबोर्ड फ़ील्ड को
- खाली छोड़ने) पर कोई मॉडल गेट नहीं जुड़ता। बिना किसी सार्वभौमिक प्रोवाइडर
- सीमा के उदाहरण कॉन्फ़िगरेशन:
+इसे कनेक्शन मोडल में सेट करें (** दर सीमा → प्रति-मॉडल समवर्ती कैप को ओवरराइड करती है** , प्रति पंक्ति एक `model=cap` ) या समान JSON आकार के साथ `PATCH /api/providers/[id]` के माध्यम से। मुख्य शब्दार्थ:
+
+- **कनेक्शन-व्यापी बनाम मॉडल-विशिष्ट:** `maxConcurrent` साझा कनेक्शन-व्यापी सीमा बनी हुई है। जब दोनों लागू होते हैं, तो दोनों गेट परमाणु रूप से एक ही मिश्रित गेट (`global → provider → account → model`) में प्राप्त हो जाते हैं; प्रभावी व्यवहार सख्त लागू सीमा है।
+- **सटीक मॉडल-कुंजी मिलान:** कुंजी वह मॉडल स्ट्रिंग है जो रिज़ॉल्यूशन — को रूट करने के बाद निष्पादक को दी जाती है, सामान्यतः नंगे अपस्ट्रीम मॉडल आईडी (`glm-5`), न कि क्लाइंट-साइड `provider/model` उपनाम (`zai/glm-5` `glm-5` मेल नहीं खाता)। मान धनात्मक-पूर्णांक समवर्ती-अनुरोध सीमाएँ हैं।
+- **स्थानीय कतार, कोई खोज नहीं:** अतिरिक्त अनुरोध मौजूदा queue/timeout शब्दार्थ (टाइप किए गए `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` प्रवेश त्रुटियों) के साथ स्थानीय रूप से कतार में हैं। OmniRoute अपस्ट्रीम नीति की खोज या अनुमान नहीं लगाता है, — यह ऑपरेटर द्वारा कॉन्फ़िगर की गई सटीक सीमा को लागू करता है। एक संतृप्त मॉडल गेट कभी भी प्रदाता को अक्षम नहीं करता है और कभी भी स्थायी मॉडल लॉकआउट नहीं बनाता है; अपस्ट्रीम 429/cooldown/fallback व्यवहार त्रुटि बैकस्टॉप बना हुआ है।
+- **प्रति-कनेक्शन, प्रति-प्रक्रिया दायरा:** कैप्स प्रति डेटाबेस कनेक्शन हैं और मेमोरी में रखे गए हैं, इसलिए एक ही अपस्ट्रीम API कुंजी का पुन: उपयोग करने वाले दो कनेक्शन एक दूसरे के साथ समन्वयित नहीं होते हैं।
+- **अपुष्ट का अर्थ है अपरिवर्तित:** मानचित्र को हटाने (या डैशबोर्ड फ़ील्ड को खाली छोड़ने) से कोई मॉडल गेट नहीं जुड़ता है। किसी सार्वभौमिक प्रदाता सीमा का दावा किए बिना उदाहरण कॉन्फ़िगरेशन:
```text
glm-5=1
glm-4.7=3
```
-### Quota-share अनुरोध क्रमबद्धता
-
-जब quota-share डिस्पैच किसी ऐसे कनेक्शन को लक्षित करता है जो धनात्मक
-`max_concurrent` घोषित करता है, तो उस **खाते** के समवर्ती अनुरोध
-प्रति-कनेक्शन सेमाफोर (कुंजी `qsconn:`) के माध्यम से क्रमबद्ध किए
-जाते हैं: अतिरिक्त अनुरोध खाते पर बाढ़ डालने के बजाय **कतार में प्रतीक्षा
-करते हैं**। यह **fail-open** है — संतृप्त कतार या टाइमआउट होने पर, डिस्पैच योग्य
-अनुरोध को कभी अस्वीकार करने के बजाय बिना स्लॉट के आगे बढ़ाया जाता है।
-**सेटिंग्स → लचीलापन → Quota-share प्रति-कनेक्शन समवर्तिता** में टॉगल करें
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, डिफ़ॉल्ट चालू)।
-`max_concurrent` सीमा के बिना व्यवहार अपरिवर्तित रहता है।
-
-> quota-share रूटिंग गेट (`selectQuotaShareTarget`, DRR + P2C) स्वयं
-> fail-open है और केवल सीमा पर पहुँचे कनेक्शन को _कम प्राथमिकता_ देता है —
-> एकल-कनेक्शन पूल के साथ यह कठोर सीमा (hard-limit) नहीं लगा सकता, इसलिए
-> यह सेमाफोर ही वास्तव में बाढ़ को रोकता है।
-
-### कूलडाउन-सजग कॉम्बो पुनःप्रयास
-
-प्रत्येक कॉम्बो रणनीति के लिए (चालू होने पर), कोई ऐसा अनुरोध जो SHORT अल्पकालिक
-कूलडाउन के कारण 429 देने वाला हो, 429 लौटाने के बजाय उस कूलडाउन की प्रतीक्षा
-करके पुनः डिस्पैच करता है — इसमें मल्टी-मॉडल कॉम्बो पर Gemini-श्रेणी की TPM/RPM
-विंडो (~60s retry-after) शामिल हैं, उदाहरण के लिए 2-मॉडल कॉम्बो के दोनों लक्ष्यों
-का प्रति-मॉडल दर सीमा से टकराना। **सेटिंग्स → लचीलापन** में `comboCooldownWait`
-(`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) द्वारा सीमाबद्ध। यह
-`quota_exhausted` (आधी रात तक लॉक) या प्रमाणीकरण/नहीं-मिला कारणों पर कभी
-प्रतीक्षा नहीं करता।
-
-यही गेट प्री-डिस्पैच स्थिति (#16319) को भी कवर करता है: जब किसी भी प्रयास से
-पहले कॉम्बो के प्रत्येक लक्ष्य को छोड़ दिया जाता है क्योंकि उसका मॉडल अल्पकालिक
-ट्रांजिएंट लॉकआउट में है, तो शून्य-प्रयास पथ उन्हीं सीमाओं के तहत लॉक समाप्त होने
-की प्रतीक्षा करके पुनः डिस्पैच करता है, बजाय संकेत-रहित
-`503 ALL_TARGETS_SKIPPED` उत्तर देने के। जब प्रतीक्षा की अनुमति न हो (सीमा,
-प्रयास या बजट समाप्त, या सुविधा बंद), तो अंतिम प्रतिक्रिया
-`429 rate_limit_error` में अपग्रेड हो जाती है, जो सबसे जल्दी समाप्त होने वाले
-ट्रांजिएंट लॉक से `retry_after` / `reset_at` ले जाती है; quota, auth और
-not-found लॉक संकेत-रहित 503 ही बनाए रखते हैं।
+### कोटा-शेयर अनुरोध क्रमांकन
+
+जब कोटा-शेयर प्रेषण एक ऐसे कनेक्शन को लक्षित करता है जो सकारात्मक `max_concurrent` घोषित करता है, तो उसके लिए समवर्ती अनुरोध किया जाता है** खाता** प्रति-कनेक्शन सेमाफोर (कुंजी `qsconn:`) के माध्यम से क्रमबद्ध किया जाता है: अतिरिक्त अनुरोध** कतार में प्रतीक्षा करें** खाते में बाढ़ लाने के बजाय। यह है** फेल-खुला** — एक संतृप्त कतार या टाइमआउट किसी प्रेषण योग्य अनुरोध को अस्वीकार करने के बजाय किसी स्लॉट के बिना आगे बढ़ता है। टॉगल इन करें** सेटिंग्स → लचीलापन → कोटा-शेयर प्रति-कनेक्शन संगामिति** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, डिफ़ॉल्ट चालू)। `max_concurrent` कैप के बिना व्यवहार अपरिवर्तित रहता है।
+
+> कोटा-शेयर रूटिंग गेट (`selectQuotaShareTarget`, DRR + P2C) स्वयं विफल-खुला है और केवल एक एट-कैप कनेक्शन को प्राथमिकता देता है — एकल-कनेक्शन पूल के साथ यह हार्ड-लिमिट नहीं कर सकता है, इसलिए यह सेमाफोर वास्तव में बाढ़ को शामिल करता है।
+
+### कॉम्बो कूलडाउन-अवेयर पुनः प्रयास करें
+
+प्रत्येक कॉम्बो रणनीति के लिए (सक्षम होने पर), एक अनुरोध जो SHORT क्षणिक कोल्डाउन के लिए 429 को क्रिस्टलीकृत करेगा, वह प्रतीक्षा करता है और 429 — वापस करने के बजाय फिर से भेजता है, यह मल्टी-मॉडल कॉम्बो पर जेमिनी-क्लास TPM/RPM विंडोज़ (~ 60s रिट्री-आफ्टर) को कवर करता है, उदाहरण के लिए 2-मॉडल कॉम्बो के दोनों लक्ष्य एक प्रति-मॉडल दर सीमा तक पहुंचते हैं। `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) से घिरा हुआ** सेटिंग्स → लचीलापन** . यह कभी भी `quota_exhausted` (आधी रात तक लॉक) या auth/not-found कारणों पर प्रतीक्षा नहीं करता है।
+
+एक कॉम्बो `config.comboCooldownWaitEnabled: false` से बाहर निकल सकता है। केवल शाब्दिक `false` इन साझा कॉम्बो प्रतीक्षा (पोस्ट-डिस्पैच कूलडाउन और प्री-डिस्पैच circuit-open/model-lock प्रतीक्षा) और उनके प्रतीक्षा-बजट टाइमआउट-फ्लोर एक्सटेंशन को अक्षम करता है। गुम या `true` वैश्विक नीति को संरक्षित करता है; `true` विश्व स्तर पर अक्षम प्रतीक्षा को सक्षम नहीं कर सकता। एक स्पष्ट `targetTimeoutMs` अभी भी जीतता है। यह ऑप्ट-आउट अलग-अलग नेटिव-कोडेक्स टर्न-पिन प्री-डिस्पैच प्रतीक्षा को नहीं बदलता है।
+
+वही गेट प्री-डिस्पैच केस (#16319) को कवर करता है: जब कॉम्बो के प्रत्येक लक्ष्य को किसी भी प्रयास से पहले छोड़ दिया जाता है क्योंकि इसका मॉडल एक छोटे क्षणिक लॉकआउट में बैठता है, तो शून्य-प्रयास पथ एक संकेत-रहित `503 ALL_TARGETS_SKIPPED` उत्तर देने के बजाय, उसी छत के नीचे लॉक आउट की प्रतीक्षा करता है और फिर से भेजता है। जब किसी प्रतीक्षा की अनुमति नहीं होती है (छत, प्रयास या बजट समाप्त हो जाता है, या सुविधा बंद हो जाती है), टर्मिनल प्रतिक्रिया जल्द से जल्द क्षणिक लॉक समाप्ति से `retry_after` / `reset_at` ले जाने वाले `429 rate_limit_error` में अपग्रेड हो जाती है; कोटा, प्रमाणीकरण और नहीं मिले ताले संकेत-रहित 503 रखते हैं।
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/hi/docs/guides/USER_GUIDE.md b/docs/i18n/hi/docs/guides/USER_GUIDE.md
index a2343975352a..16527a9030a4 100644
--- a/docs/i18n/hi/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/hi/docs/guides/USER_GUIDE.md
@@ -612,39 +612,39 @@ post_install() {
सभी उपलब्ध मॉडल देखें
-> नीचे दी गई सूची v3.8.0 के लिए `open-sse/config/providerRegistry.ts` से संकलित है। क्लाउड कैटलॉग (Gemini, OpenRouter, आदि) डायनामिक रूप से सिंक किए जाते हैं — पूरी लाइव कैटलॉग के लिए **डैशबोर्ड → प्रोवाइडर → [provider] → उपलब्ध मॉडल** खोलें या `GET /api/models/catalog` कॉल करें।
+> नीचे दी गई सूची v3.8.0 के लिए `open-sse/config/providerRegistry.ts` से क्यूरेट की गई है। क्लाउड कैटलॉग (Gemini, OpenRouter, आदि) पूर्ण लाइव कैटलॉग ओपन के लिए गतिशील रूप से — सिंक किए जाते हैं** डैशबोर्ड → प्रदाता → [प्रदाता] → उपलब्ध मॉडल** या `GET /api/models/catalog` को कॉल करें।
>
-> यदि किसी प्रोवाइडर की बिल्ट-इन सूची पुरानी हो गई है, तो लाइव अपस्ट्रीम कैटलॉग खींचने के लिए उस पेज पर **/models से इम्पोर्ट करें** का उपयोग करें (या **ऑटो-सिंक** सक्षम करें)। इसे v3.8.50 में LLM7.io (`gemini-3.1-flash-lite`) और UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) के लिए सत्यापित किया गया था; उसी टेस्ट पास के दौरान Pollinations का गुमनाम एक्सेस अपस्ट्रीम-सीमित बना रहा।
+> यदि किसी प्रदाता की अंतर्निहित सूची भटक गई है, तो उपयोग करें** /मॉडल से आयात करें** उस पृष्ठ पर (या सक्षम करें** स्वतः सिंक** ) लाइव अपस्ट्रीम कैटलॉग को खींचने के लिए। इसे LLM7.io (`gemini-3.1-flash-lite`) और UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) के लिए v3.8.50 में सत्यापित किया गया था; उसी परीक्षण पास के दौरान परागण की अनाम पहुंच अपस्ट्रीम-सीमित रही।
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude कोड (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort टियर: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ प्रयास स्तर: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — मुफ़्त OAuth: **डैशबोर्ड → प्रोवाइडर → Kiro → उपलब्ध मॉडल** के तहत दिखाई देने वाली लाइव कैटलॉग का उपयोग करें। उपलब्धता खाते और प्लान पर निर्भर करती है।
+**Kiro (`kr/`)** — FREE OAuth: नीचे दिखाए गए लाइव कैटलॉग का उपयोग करें** डैशबोर्ड → प्रदाता → Kiro → उपलब्ध मॉडल** . उपलब्धता खाते और योजना पर निर्भर करती है.
-**Qoder (`if/`)** — मुफ़्त OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/माह फ्लैट या प्रति-उपयोग: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo फ्लैट या प्रति-उपयोग: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — API कुंजी: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — अत्यंत तेज़: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — अल्ट्रा-फास्ट: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok नेटिव: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok मूल निवासी: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU-होस्टेड: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU-होस्टेड: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — सर्च-संवर्धित: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**उलझन (`pplx/`)** — खोज-संवर्धित: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — ओपन-सोर्स: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (मुफ़्त), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — ओपन-सोर्स: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (मुक्त), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — तेज़ इन्फरेंस: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — तेज़ अनुमान: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
**Cerebras (`cerebras/`)** — वेफर-स्केल: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
@@ -652,15 +652,15 @@ post_install() {
**NVIDIA NIM (`nvidia/`)** — एंटरप्राइज़: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
-**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
+**Baidu क़ियानफ़ान (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama क्लाउड (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Google से प्रति API कुंजी लाइव सिंक किया जाता है — कोई स्टैटिक सूची नहीं। **डैशबोर्ड → प्रोवाइडर** में एक कुंजी कनेक्ट करें, फिर वर्तमान कैटलॉग इम्पोर्ट करने के लिए **उपलब्ध मॉडल** का उपयोग करें (जैसे `gemini/gemini-3-pro`, `gemini/gemini-3-flash`)।
+**Gemini (Google क्लाउड `gemini/`)** : Google — से प्रति API कुंजी को लाइव सिंक किया गया, कोई स्थिर सूची नहीं। इसमें एक कुंजी कनेक्ट करें** डैशबोर्ड → प्रदाता** फिर उपयोग करें** उपलब्ध मॉडल** वर्तमान कैटलॉग को आयात करने के लिए (जैसे `gemini/gemini-3-pro`, `gemini/gemini-3-flash`)।
-**अन्य संगत प्रोवाइडर** (चयनित): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (`aws-bedrock` के माध्यम से), `azure-ai`, `openrouter` (पासथ्रू कैटलॉग), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`। प्रत्येक `providerRegistry.ts` में अपनी मॉडल सूची बनाए रखता है और जब प्रोवाइडर `/models` एंडपॉइंट एक्सपोज़ करता है तो इसे ऑटो-सिंक किया जा सकता है।
+**अन्य संगत प्रदाता** (चयनित): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` ( `aws-bedrock` के माध्यम से), `azure-ai`, `openrouter` (पासथ्रू कैटलॉग), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. प्रत्येक `providerRegistry.ts` में अपनी स्वयं की मॉडल सूची बनाए रखता है और जब प्रदाता `/models` एंडपॉइंट को उजागर करता है तो उसे ऑटो-सिंक किया जा सकता है।
-**मॉडल ID पर नोट:** OmniRoute प्रोवाइडर-नेटिव ID का उपयोग करता है (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`)। कुछ ID में डॉटेड वर्ज़न शामिल होते हैं क्योंकि अपस्ट्रीम API उन्हें इसी रूप में अपेक्षित करता है। यदि कोई मॉडल ऊपर सूचीबद्ध नहीं है, तो उपलब्धता की पुष्टि करने के लिए `omniroute models --search ` चलाएँ या `GET /api/models/catalog` को हिट करें।
+**मॉडल IDs पर ध्यान दें:** OmniRoute प्रदाता-मूल IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`) का उपयोग करता है। कुछ IDs में बिंदीदार संस्करण शामिल हैं क्योंकि अपस्ट्रीम API उनसे इसी तरह की अपेक्षा करता है। यदि कोई मॉडल ऊपर सूचीबद्ध नहीं है, तो उपलब्धता की पुष्टि करने के लिए `omniroute models --search ` चलाएँ या `GET /api/models/catalog` दबाएँ।
diff --git a/docs/i18n/hr/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/hr/docs/architecture/RESILIENCE_GUIDE.md
index 3168a544090f..5400337ffbdf 100644
--- a/docs/i18n/hr/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/hr/docs/architecture/RESILIENCE_GUIDE.md
@@ -262,25 +262,17 @@ povećava brojač (i eskalira cooldown) pri neuspjesima unutar prozora eskalacij
---
-## 4. Kontrola istodobnosti za quota-share (v3.8.36)
+## 4. Kontrola istovremenosti dijeljenja kvota (v3.8.36)
-Računi s pretplatom (GLM, MiniMax itd.) često prihvaćaju samo ~1–3 istodobna
-zahtjeva; prekoračenje tog broja izaziva pogreške 429 i razdoblja hlađenja. To je
-posebno kritično kod **quota-share** (`qtSd/…`) kombinacija, gdje više API ključeva
-dijeli jedan izvorni račun. Tri sloja sprječavaju preplavljivanje dijeljenog računa.
+Pretplatnički računi (GLM, MiniMax, itd.) često prihvaćaju samo ~ 1–3 istodobna zahtjeva; prekoračenje toga pokreće 429s i hlađenje. Ovo je akutno pod** kvota-udio** (`qtSd/…`) kombinacije, gdje nekoliko API ključeva dijeli jedan uzvodni račun. Tri sloja štite zajednički račun od poplave.
-### Ograničenje istodobnosti po vezi (`max_concurrent`)
+### Ograničenje istovremenosti po povezivanju (`max_concurrent`)
-Svaka veza s pružateljem usluge može deklarirati gornju granicu `max_concurrent`
-(`provider_connections.max_concurrent`, postavlja se u modalnom prozoru veze /
-API-ju / bazi podataka). Ostavite prazno za neograničeno. To je jedini parametar
-koji pokreće sloj serijalizacije u nastavku — postavite ga na stvarnu istodobnost
-računa (npr. GLM ~1, MiniMax ~2).
+Svaka veza pružatelja može deklarirati `max_concurrent` strop (`provider_connections.max_concurrent`, postavljeno u modalnoj vezi / API / DB). Ostavite prazno da nema ograničenja. Ovo je jedini gumb koji pokreće sloj serijalizacije ispod — postavite ga na stvarnu konkurentnost računa (npr. GLM ~ 1, MiniMax ~ 2).
-### Ograničenja istodobnosti po modelu (`modelConcurrency`)
+### Ograničenja istovremenosti po modelu (`modelConcurrency`)
-Veza dodatno može deklarirati točna ograničenja istodobnosti po modelu unutar svoje
-mape `rateLimitOverrides`:
+Veza može dodatno deklarirati točne gornje granice konkurentnosti po modelu unutar svoje `rateLimitOverrides` karte:
```json
{
@@ -291,75 +283,32 @@ mape `rateLimitOverrides`:
}
```
-Postavlja se u modalnom prozoru veze (**Zaobilaženja ograničenja brzine →
-Ograničenja istodobnosti po modelu**, jedan `model=cap` po retku) ili putem
-`PATCH /api/providers/[id]` s istim JSON oblikom. Ključna semantika:
-
-- **Na razini veze naspram po modelu:** `maxConcurrent` ostaje zajednička gornja
- granica na razini veze. Kada se primjenjuju oba, oba prolaza zauzimaju se
- atomski unutar istog složenog prolaza
- (`global → provider → account → model`); učinkovito ponašanje određuje strože
- primjenjivo ograničenje.
-- **Točno podudaranje ključa modela:** ključ je niz modela koji se prosljeđuje
- izvršitelju nakon razrješavanja usmjeravanja — obično goli izvorni ID modela
- (`glm-5`), a ne korisnički alias `provider/model` (`zai/glm-5` ne odgovara
- `glm-5`). Vrijednosti su gornje granice istodobnih zahtjeva u obliku pozitivnih
- cijelih brojeva.
-- **Lokalno čekanje u redu, bez otkrivanja:** višak zahtjeva lokalno čeka u redu
- s postojećom semantikom reda/isteka vremena (tipizirane pogreške prijema
- `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). OmniRoute ne otkriva niti
- zaključuje izvornu politiku — provodi točno one granice koje je operator
- konfigurirao. Zasićeni prolaz modela nikada ne onemogućuje pružatelja usluge
- i nikada ne stvara trajnu blokadu modela; izvorno ponašanje
- 429/hlađenje/fallback ostaje sigurnosna mreža za pogreške.
-- **Opseg po vezi, po procesu:** ograničenja vrijede po vezi u bazi podataka i
- drže se u memoriji, pa dvije veze koje ponovno koriste isti izvorni API ključ
- ne koordiniraju međusobno.
-- **Nekonfigurirano znači nepromijenjeno:** izostavljanje mape (ili ostavljanje
- polja nadzorne ploče praznim) ne dodaje prolaz modela. Primjer konfiguracije
- bez nametanja bilo kakvog univerzalnog ograničenja pružatelja:
+Postavite ga u način povezivanja (** Ograničenje brzine nadjačava → ograničenja istovremenosti po modelu** , jedan `model=cap` po retku) ili preko `PATCH /api/providers/[id]` s istim oblikom JSON. Ključna semantika:
+
+- **Na razini veze u odnosu na model:** `maxConcurrent` ostaje zajednički strop za cijelu vezu. Kada se oba primjenjuju, oba se vrata dobivaju atomski u istim kompozitnim vratima (`global → provider → account → model`); učinkovito ponašanje je stroža primjenjiva granica.
+- **Točno podudaranje modela i ključa:** ključ je niz modela koji se prosljeđuje izvršitelju nakon rješavanja usmjeravanja — obično goli uzvodni ID modela (`glm-5`), a ne `provider/model` alias na strani klijenta (`zai/glm-5` ne odgovara `glm-5`). Vrijednosti su plafoni istodobnih zahtjeva cijelog pozitivnog broja.
+- **Lokalno čekanje u redu, bez otkrivanja:** višak zahtjeva u red čekanja lokalno s postojećom queue/timeout semantikom (utipkane `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` pogreške pristupa). OmniRoute ne otkriva niti zaključuje uzvodnu politiku — provodi točne gornje granice koje je operater konfigurirao. Zasićena vrata modela nikada ne onemogućuju pružatelja i nikada ne stvaraju trajno zaključavanje modela; uzvodno ponašanje 429/cooldown/fallback ostaje backstop pogreške.
+- **Opseg po vezi, po procesu:** caps su po vezi baze podataka i drže se u memoriji, tako da dvije veze koje ponovno koriste isti uzvodni API ključ ne koordiniraju jedna s drugom.
+- **Nekonfigurirano znači nepromijenjeno:** izostavljanje karte (ili ostavljanje polja nadzorne ploče praznim) ne dodaje vrata modela. Primjer konfiguracije bez utvrđivanja ograničenja univerzalnog pružatelja:
```text
glm-5=1
glm-4.7=3
```
-### Serijalizacija quota-share zahtjeva
-
-Kada quota-share otpremanje cilja vezu koja deklarira pozitivan
-`max_concurrent`, istodobni zahtjevi prema tom **računu** serijaliziraju se kroz
-semafor po vezi (ključ `qsconn:`): višak zahtjeva **čeka u redu**
-umjesto da preplavi račun. Sustav je **fail-open** — zasićeni red ili istek
-vremena nastavlja bez slobodnog mjesta umjesto da ikada odbije zahtjev koji se
-može otpremiti. Uključuje se u **Postavke → Otpornost → Istodobnost po vezi za
-quota-share** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, zadano
-uključeno). Bez ograničenja `max_concurrent` ponašanje je nepromijenjeno.
-
-> Quota-share prolaz usmjeravanja (`selectQuotaShareTarget`, DRR + P2C) sam je
-> fail-open i samo _snižava prioritet_ veze koja je na granici — s bazenom od
-> jedne veze ne može je strogo ograničiti, pa je ovaj semafor ono što stvarno
-> obuzdava poplavu.
-
-### Ponovni pokušaj kombinacije uz uvažavanje hlađenja
-
-Za svaku strategiju kombinacije (kada je omogućena), zahtjev koji bi
-kristalizirao pogrešku 429 zbog KRATKOG prolaznog hlađenja pričeka njegov istek
-i ponovno se otprema umjesto vraćanja 429 — to pokriva TPM/RPM prozore klase
-Gemini (~60 s retry-after) na kombinacijama s više modela, npr. kada oba cilja
-kombinacije s 2 modela pogode ograničenje brzine po modelu. Ograničeno s
-`comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) u
-**Postavke → Otpornost**. Nikada ne čeka na `quota_exhausted` (zaključano do
-ponoći) niti na razloge autentikacije/nije-pronađeno.
-
-Isti prolaz pokriva slučaj prije otpremanja (#16319): kada je svaki cilj
-kombinacije preskočen prije bilo kojeg pokušaja jer se njegov model nalazi u
-kratkoj prolaznoj blokadi, put bez pokušaja pričeka istek blokade pod istim
-granicama i ponovno otprema, umjesto da odgovori s
-`503 ALL_TARGETS_SKIPPED` bez naznaka. Kada čekanje nije dopušteno (granica,
-pokušaj ili proračun iscrpljeni, ili značajka isključena), završni odgovor
-nadograđuje se na `429 rate_limit_error` noseći `retry_after` / `reset_at` od
-najranijeg isteka prolazne blokade; blokade kvote, autentikacije i
-nije-pronađeno zadržavaju 503 bez naznaka.
+### Serijalizacija zahtjeva za dijeljenje kvota
+
+Kada slanje dijeljenja kvote cilja na vezu koja deklarira pozitivan `max_concurrent`, istodobni zahtjevi prema toj** račun** se serijaliziraju kroz semafor po vezi (ključ `qsconn:`): višak zahtjeva** čekati u redu** umjesto poplave računa. jeste** fail-open** — zasićeni red čekanja ili vremensko ograničenje nastavlja se bez utora umjesto da ikada odbije zahtjev koji se može poslati. Uključi se** Postavke → Otpornost → Kvota-dijeljenje po povezivanju istovremenost** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, zadano uključeno). Bez `max_concurrent` capa ponašanje je nepromijenjeno.
+
+> Vrata za usmjeravanje dijeljenja kvota (`selectQuotaShareTarget`, DRR + P2C) su sama po sebi otvorena i samo _oduzimaju prioritet_ at-cap vezi — sa skupom s jednom vezom koju ne može teško ograničiti, tako da je ovaj semafor ono što zapravo sadrži poplavu.
+
+### Ponovni pokušaj kombiniranog hlađenja
+
+Za svaku kombiniranu strategiju (kada je omogućena), zahtjev koji bi kristalizirao 429 za SHORT prolazno hlađenje čeka ga i ponovno šalje umjesto vraćanja 429 — ovo pokriva TPM/RPM prozore klase Gemini (~ 60s ponovni pokušaj nakon) na kombinacijama više modela, npr. oba cilja kombinacije 2 modela pogađaju stopu po modelu granica. Ograničeno sa `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) u** Postavke → Otpornost** . Nikada ne čeka na `quota_exhausted` (zaključano do ponoći) ili auth/not-found razloge.
+
+Kombinacija se može isključiti pomoću `config.comboCooldownWaitEnabled: false`. Samo doslovni `false` onemogućuje ta zajednička kombinirana čekanja (hlađenje nakon otpreme i circuit-open/model-lock čekanja prije otpreme) i njihovo produženje vremenskog ograničenja proračuna čekanja-donjeg praga. Nedostaje ili `true` čuva globalnu politiku; `true` ne može omogućiti globalno onemogućeno čekanje. Eksplicitni `targetTimeoutMs` ipak pobjeđuje. Ovo isključivanje ne mijenja zasebno čekanje prije slanja native-Codex turn-pin.
+
+Ista vrata pokrivaju slučaj prije slanja (#16319): kada je svaki cilj kombinacije preskočen prije bilo kakvog pokušaja jer je njegov model u kratkom prolaznom zaključavanju, put nultog pokušaja čeka zaključavanje pod istim stropovima i ponovno šalje, umjesto da odgovori na `503 ALL_TARGETS_SKIPPED` bez nagovještaja. Kada nije dopušteno čekanje (strop, pokušaj ili proračun iscrpljen, ili je značajka isključena), odgovor terminala nadograđuje se na `429 rate_limit_error` noseći `retry_after` / `reset_at` od najranijeg isteka prijelaznog zaključavanja; kvota, auth i not-found zaključavanja čuvaju 503 bez savjeta.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/hr/docs/guides/USER_GUIDE.md b/docs/i18n/hr/docs/guides/USER_GUIDE.md
index cf4b9ff21c65..438f9f989936 100644
--- a/docs/i18n/hr/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/hr/docs/guides/USER_GUIDE.md
@@ -609,57 +609,57 @@ Za potpuni popis varijabli okoline pogledajte [README](../README.md).
## 📊 Dostupni modeli
-Prikaži sve dostupne modele
+Pogledajte sve dostupne modele
-> Donji popis sažet je iz `open-sse/config/providerRegistry.ts` za v3.8.0. Katalozi u oblaku (Gemini, OpenRouter itd.) sinkroniziraju se dinamički — za potpuni katalog uživo otvorite **Nadzorna ploča → Pružatelji → [provider] → Dostupni modeli** ili pozovite `GET /api/models/catalog`.
+> Popis u nastavku odabran je od `open-sse/config/providerRegistry.ts` za v3.8.0. Cloud katalozi (Gemini, OpenRouter, itd.) sinkroniziraju se dinamički — za puni otvoreni katalog uživo** Dashboard → Providers → [provider] → Dostupni modeli** ili nazovite `GET /api/models/catalog`.
>
-> Ako je ugrađeni popis nekog pružatelja zastario, upotrijebite **Uvezi iz /models** na toj stranici (ili omogućite **Auto-Sync**) kako biste povukli aktualni upstream katalog. Ovo je potvrđeno u v3.8.50 za LLM7.io (`gemini-3.1-flash-lite`) i UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); anonimni pristup Pollinationsu ostao je ograničen na strani upstreama tijekom istog testnog prolaza.
+> Ako se ugrađeni popis davatelja usluga promijenio, upotrijebite** Uvoz iz /models** na toj stranici (ili omogućiti** Automatska sinkronizacija** ) za povlačenje kataloga uživo uzvodno. Ovo je potvrđeno u v3.8.50 za LLM7.io (`gemini-3.1-flash-lite`) i UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Anonimni pristup oprašivanja ostao je uzvodno ograničen tijekom istog prolaska testa.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude kod (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ razine napora: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — BESPLATNI OAuth: koristite katalog uživo prikazan pod **Nadzorna ploča → Pružatelji → Kiro → Dostupni modeli**. Dostupnost ovisi o računu i planu.
+**Kiro (`kr/`)** — FREE OAuth: koristite živi katalog prikazan ispod** Nadzorna ploča → Pružatelji → Kiro → Dostupni modeli** . Dostupnost ovisi o računu i planu.
-**Qoder (`if/`)** — BESPLATNI OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
-**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — 0,2–0,6 $/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
+**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
-**MiniMax (`minimax/`, `minimax-cn/`)** — 0,2 $/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
+**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — 9 $/mj. paušalno ili po upotrebi: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo ravno ili za upotrebu: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — API ključ: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Ultra-brzo: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Ultra-brzi: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Izvorni Grok: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok izvorni: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Hostano u EU: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — hostirano u EU: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Prošireno pretragom: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**zbunjenost (`pplx/`)** — Pretraživanje prošireno: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Otvoreni kôd: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (besplatno), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — Open-source: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (besplatno), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Brza inferencija: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Brzo zaključivanje: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Wafer-scale: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Wafer-vaga: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Fokusirano na RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — fokusiran na RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama oblak (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Sinkronizira se uživo po API ključu s Googlea — bez statičnog popisa. Povežite ključ u **Nadzorna ploča → Pružatelji**, a zatim upotrijebite **Dostupni modeli** za uvoz trenutačnog kataloga (npr. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : Sinkronizirano uživo po API ključu iz Google — bez statičkog popisa. Spojite ključ** Nadzorna ploča → pružatelji usluga** zatim koristite** Dostupni modeli** za uvoz trenutnog kataloga (npr. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Ostali kompatibilni pružatelji** (odabrano): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (putem `aws-bedrock`), `azure-ai`, `openrouter` (katalog prosljeđivanja), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Svaki održava vlastiti popis modela u `providerRegistry.ts` i može se automatski sinkronizirati kada pružatelj izloži endpoint `/models`.
+**Drugi kompatibilni pružatelji usluga** (odabrano): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (preko `aws-bedrock`), `azure-ai`, `openrouter` (prolazni katalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Svaki održava vlastiti popis modela u `providerRegistry.ts` i i može se automatski sinkronizirati kada pružatelj izloži krajnju točku `/models`.
-**Napomena o ID-jevima modela:** OmniRoute koristi izvorne ID-jeve pružatelja (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Neki ID-jevi uključuju verzije s točkama jer ih upstream API tako očekuje. Ako model nije gore naveden, pokrenite `omniroute models --search ` ili pozovite `GET /api/models/catalog` kako biste potvrdili dostupnost.
+**Napomena o modelu IDs:** OmniRoute koristi izvorni IDs pružatelja usluga (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Neki IDs uključuju inačice s točkama jer ih tako očekuje uzvodni API. Ako model nije naveden gore, pokrenite `omniroute models --search ` ili pritisnite `GET /api/models/catalog` da potvrdite dostupnost.
diff --git a/docs/i18n/hu/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/hu/docs/architecture/RESILIENCE_GUIDE.md
index 3aeda7f6d03d..6ff656f6bc1d 100644
--- a/docs/i18n/hu/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/hu/docs/architecture/RESILIENCE_GUIDE.md
@@ -293,21 +293,17 @@ A beállítások a szokásos beállítástárolón keresztül őrződnek meg, é
---
-## 4. Kvótamegosztásos párhuzamosság-szabályozás (v3.8.36)
+## 4. Kvótamegosztási egyidejűség vezérlése (v3.8.36)
-Az előfizetéses fiókok (GLM, MiniMax stb.) gyakran csak ~1–3 egyidejű kérést fogadnak el; az ezt meghaladó terhelés 429-es hibákat és cooldownokat vált ki. Ez különösen kritikus a **kvótamegosztásos** (`qtSd/…`) kombóknál, ahol több API-kulcs osztozik egyetlen upstream fiókon. Három réteg védi a megosztott fiókot az elárasztástól.
+Az előfizetéses fiókok (GLM, MiniMax stb.) gyakran csak ~ 1–3 egyidejű kérést fogadnak el; ennek túllépése 429 másodpercet és lehűlést vált ki. Ez akut alatt** kvóta-részesedés** (`qtSd/…`) kombók, ahol több API kulcs osztozik egy upstream fiókon. Három réteg akadályozza meg a megosztott fiókok elárasztását.
-### Kapcsolatonkénti párhuzamossági korlát (`max_concurrent`)
+### Csatlakozásonkénti párhuzamosság korlát (`max_concurrent`)
-Minden szolgáltatói kapcsolat deklarálhat egy `max_concurrent` felső korlátot
-(`provider_connections.max_concurrent`, a kapcsolat modális ablakában / API-n / adatbázisban állítható be).
-Korlát nélküli működéshez hagyja üresen. Ez az egyetlen szabályozó, amely az alábbi
-sorosítási réteget vezérli — állítsa a fiók tényleges párhuzamosságára (pl. GLM ~1, MiniMax ~2).
+Minden szolgáltatói kapcsolat deklarálhat egy `max_concurrent` plafont (`provider_connections.max_concurrent`, a modal / API / DB kapcsolatban beállítva ). Hagyja üresen korlátozás nélkül. Ez az egyetlen gomb, amely a — alatti szerializációs réteget hajtja, és beállítja azt a fiók valós egyidejűségére (pl. GLM ~ 1, MiniMax ~ 2).
### Modellenkénti párhuzamossági korlátok (`modelConcurrency`)
-Egy kapcsolat emellett pontos, modellenkénti párhuzamossági felső korlátokat is deklarálhat
-a `rateLimitOverrides` mapjében:
+Egy kapcsolat emellett pontos modellenkénti párhuzamossági plafonokat is deklarálhat `rateLimitOverrides` térképén:
```json
{
@@ -318,75 +314,32 @@ a `rateLimitOverrides` mapjében:
}
```
-Beállítható a kapcsolat modális ablakában (**Sebességkorlát-felülbírálások → Modellenkénti
-párhuzamossági korlátok**, soronként egy `model=cap`) vagy a
-`PATCH /api/providers/[id]` végponton keresztül, ugyanazzal a JSON-alakzattal. A kulcsok szemantikája:
-
-- **Kapcsolatszintű vs. modellspecifikus:** a `maxConcurrent` továbbra is a megosztott,
- kapcsolatszintű felső korlát marad. Ha mindkettő érvényes, mindkét kapu atomikusan
- kerül lefoglalásra ugyanabban az összetett kapuban
- (`global → provider → account → model`); a tényleges viselkedés a
- szigorúbb alkalmazható korlátot követi.
-- **Pontos modellkulcs-egyezés:** a kulcs az útválasztási feloldás után a
- végrehajtónak átadott modellstring — általában a puszta upstream modellazonosító
- (`glm-5`), nem pedig egy kliensoldali `provider/model` alias (a `zai/glm-5` nem
- egyezik a `glm-5`-tel). Az értékek pozitív egész számú, egyidejű kérésekre vonatkozó
- felső korlátok.
-- **Helyi sorbaállítás, felderítés nélkül:** a többletkérések helyben állnak sorba a
- meglévő várólista-/időtúllépési szemantikával (típusos `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL` beléptetési hibák). Az OmniRoute nem deríti fel és nem
- következteti le az upstream szabályzatát — pontosan az üzemeltető által beállított
- korlátokat kényszeríti ki. Egy telített modellkapu sosem tiltja le a szolgáltatót,
- és sosem hoz létre végleges modellzárolást; az upstream 429/cooldown/fallback
- viselkedés marad a hibakezelés utolsó védővonala.
-- **Kapcsolatonkénti, folyamatonkénti hatókör:** a korlátok adatbázis-kapcsolatonként
- érvényesek és memóriában tárolódnak, így két, ugyanazt az upstream API-kulcsot
- újrahasznosító kapcsolat nem koordinál egymással.
-- **A beállítás hiánya változatlanságot jelent:** a map elhagyása (vagy a
- vezérlőpulti mező üresen hagyása) nem ad hozzá modellkaput. Példakonfiguráció
- bármilyen univerzális szolgáltatói korlát állítása nélkül:
+Állítsa be a csatlakozási módba (** A sebességkorlát felülírja → modellenkénti egyidejűség felső határát** , soronként egy `model=cap` ) vagy `PATCH /api/providers/[id]` keresztül ugyanazzal a JSON alakzattal. Kulcsszemantika:
+
+- **Csatlakozásszintű vs modellspecifikus:** `maxConcurrent` továbbra is a megosztott kapcsolatra kiterjedő mennyezet. Ha mindkettő érvényes, mindkét kapu atomi módon ugyanabban az összetett kapuban lesz megszerezve (`global → provider → account → model`); a hatékony magatartás a szigorúbb alkalmazható határ.
+- **Pontos modell-kulcs egyezés:** a kulcs a végrehajtónak átadott modellkarakterlánc — útválasztási megoldás után, általában a csupasz upstream modellazonosító (`glm-5`), nem pedig egy kliensoldali `provider/model` alias (`zai/glm-5` nem egyezik `glm-5`). Az értékek pozitív egész számok egyidejű kérések felső határai.
+- **Helyi sorban állás, nincs felfedezés:** felesleges kérések sora helyileg a meglévő queue/timeout szemantikával (beírt `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` belépési hibák). OmniRoute nem fedezi fel és nem következtet be upstream házirendet. — az operátor által beállított pontos plafonokat érvényesíti. A telített modellkapu soha nem tiltja le a szolgáltatót, és soha nem hoz létre állandó modellzárat; Az upstream 429/cooldown/fallback viselkedés továbbra is a hiba hátráltatója.
+- **Kapcsolatonként, folyamatonkénti hatókör:** A caps adatbázis-kapcsolatonként érvényes, és a memóriában van tárolva, így két, ugyanazt a felfelé irányuló API kulcsot használó kapcsolat nem koordinálódik egymással.
+- **A konfigurálatlan azt jelenti, hogy változatlan:** a térkép elhagyása (vagy az irányítópult mező üresen hagyása) nem ad modellkaput. Példa konfigurációra univerzális szolgáltatói korlátozás nélkül:
```text
glm-5=1
glm-4.7=3
```
-### Kvótamegosztásos kéréssorosítás
-
-Ha egy kvótamegosztásos továbbítás olyan kapcsolatot céloz, amely pozitív
-`max_concurrent` értéket deklarál, az adott **fiókra** irányuló egyidejű kérések egy
-kapcsolatonkénti szemaforon (kulcs: `qsconn:`) keresztül sorosítódnak: a
-többletkérések **a várólistában várnak** ahelyett, hogy elárasztanák a fiókot. A működés
-**fail-open** — telített várólista vagy időtúllépés esetén a kérés slot nélkül folytatódik,
-ahelyett hogy valaha is elutasítana egy továbbítható kérést. Kapcsolható a
-**Beállítások → Hibatűrés → Kvótamegosztásos kapcsolatonkénti
-párhuzamosság** alatt (`resilienceSettings.quotaShareConcurrencyLimit.enabled`,
-alapértelmezetten bekapcsolva). `max_concurrent` korlát nélkül a viselkedés változatlan.
-
-> A kvótamegosztásos útválasztási kapu (`selectQuotaShareTarget`, DRR + P2C) önmagában is
-> fail-open, és egy korlátot elért kapcsolatot csupán _deprioritizál_ —
-> egykapcsolatos pool esetén nem képes szigorú korlátozásra, ezért az
-> áradatot valójában ez a szemafor tartja vissza.
-
-### Cooldown-tudatos kombó-újrapróbálkozás
-
-Minden kombóstratégia esetén (ha engedélyezve van) az a kérés, amely RÖVID,
-átmeneti cooldown miatt eredményezne 429-est, kivárja azt és újra továbbítódik,
-a 429-es visszaadása helyett — ez lefedi a Gemini-osztályú TPM/RPM-ablakokat
-(~60 mp-es retry-after) többmodelles kombóknál, például amikor egy 2 modelles kombó
-mindkét célja modellenkénti sebességkorlátba ütközik. Korlátozza a `comboCooldownWait`
-(`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) a **Beállítások → Hibatűrés** alatt.
-Soha nem vár `quota_exhausted` (éjfélig zárolt) vagy hitelesítési/nem található okok esetén.
-
-Ugyanez a kapu lefedi a továbbítás előtti esetet is (#16319): ha egy kombó
-minden célja még bármilyen kísérlet megtétele előtt azért kerül kihagyásra, mert a modellje
-rövid, átmeneti zárolás alatt áll, a nulla kísérletes útvonal ugyanazon korlátok alatt
-kivárja a zárolást és újra továbbít, ahelyett hogy hint nélküli
-`503 ALL_TARGETS_SKIPPED` választ adna. Ha várakozás nem megengedett (a korlát,
-a kísérletek vagy a keret kimerült, illetve a funkció ki van kapcsolva), a végső válasz
-`429 rate_limit_error` értékre emelkedik, amely a legkorábbi átmeneti zárolás lejáratából
-származó `retry_after` / `reset_at` értékeket hordozza; a kvóta-, hitelesítési és
-nem található zárolások megtartják a hint nélküli 503-ast.
+### Kvótamegosztási kérelem sorozatosítása
+
+Amikor egy kvótamegosztási küldés olyan kapcsolatot céloz meg, amely pozitív `max_concurrent` deklarál, párhuzamos kérések érkeznek ehhez** fiókot** kapcsolatonkénti szemaforon ( `qsconn:` billentyű) keresztül vannak sorba rendezve: felesleges kérések** várjon a sorban** ahelyett, hogy elárasztaná a fiókot. Ez az** hibamentes** — egy telített sor vagy időtúllépés rés nélkül folytatódik, ahelyett, hogy valaha is elutasítana egy elküldhető kérést. Váltás be** Beállítások → Rugalmasság → Kvótamegosztás kapcsolatonkénti párhuzamosság** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, alapértelmezetten be). `max_concurrent` cap nélkül a viselkedés változatlan.
+
+> A kvóta-megosztási útválasztó kapu (`selectQuotaShareTarget`, DRR + P2C) maga is hibamentes, és csak egy —, egy-kapcsolati készlettel rendelkező at-cap-kapcsolatot _depriorizálja_, amelyet nem tud szigorúan korlátozni, tehát ez a szemafor az, ami valójában tartalmazza az özönt.
+
+### Kombinált újrapróbálkozás
+
+Minden kombóstratégia esetén (ha engedélyezve van) a SHORT tranziens lehűlési 429-et kikristályosító kérés kivárja, és a 429 — visszaadása helyett újraküldésre kerül, ez lefedi a Gemini-osztályú TPM/RPM ablakokat (~ 60s újrapróbálkozás után) többmodell kombókon, pl. 2-es fésűs kombókonkénti határértéke-model-modell. `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) által határolt** Beállítások → Resilience** . Soha nem vár `quota_exhausted` (éjfélig zárolva) vagy auth/not-found okokra.
+
+A kombó leiratkozhat a `config.comboCooldownWaitEnabled: false`. Csak a szó szerinti `false` tiltja le ezeket a megosztott kombinált várakozásokat (a feladás utáni lehűlést és a feladás előtti circuit-open/model-lock várakozást) és a várakozási költségkeret időtúllépési szint kiterjesztését. A hiányzó vagy `true` megőrzi a globális szabályzatot; `true` nem engedélyezheti a globálisan letiltott várakozást. Az explicit `targetTimeoutMs` továbbra is nyer. Ez a leiratkozás nem változtatja meg a különálló, natív Codex gombos feladás előtti várakozást.
+
+Ugyanez a kapu fedi a kiküldés előtti esetet (#16319): amikor egy kombó minden célpontját kihagyják, mielőtt bármilyen kísérletet hajtanának végre, mert a modellje rövid átmeneti zárolásban van, a nulla kísérleti út ugyanazon mennyezetek alatt várja a zárolást, és újraküldi, ahelyett, hogy egy célzás nélküli `503 ALL_TARGETS_SKIPPED` válaszolna. Ha nem engedélyezett a várakozás (a plafon, a kísérlet vagy a költségvetés kimerült, vagy a funkció ki van kapcsolva), a terminál válasza `retry_after` / `reset_at` hordozó `429 rate_limit_error` re frissül a legkorábbi tranziens zár lejáratától kezdve; A kvóta, hitelesítés és nem található zárolások megtartják a hint-mentes 503-at.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/hu/docs/guides/USER_GUIDE.md b/docs/i18n/hu/docs/guides/USER_GUIDE.md
index efb08c87d66c..47421da01c19 100644
--- a/docs/i18n/hu/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/hu/docs/guides/USER_GUIDE.md
@@ -612,57 +612,57 @@ A környezeti változók teljes referenciáját lásd a [README](../README.md) f
## 📊 Elérhető modellek
-Az összes elérhető modell megtekintése
+Tekintse meg az összes elérhető modellt
-> Az alábbi lista az `open-sse/config/providerRegistry.ts` fájlból készült, a v3.8.0 verzióhoz. A felhőkatalógusok (Gemini, OpenRouter stb.) dinamikusan szinkronizálódnak — a teljes, élő katalógusért nyisd meg a **Vezérlőpult → Szolgáltatók → [szolgáltató] → Elérhető modellek** menüpontot, vagy hívd a `GET /api/models/catalog` végpontot.
+> Az alábbi lista `open-sse/config/providerRegistry.ts` 3.8.0-s verziójához készült. A felhőkatalógusok (Gemini, OpenRouter stb.) dinamikusan szinkronizálva — a teljes élő katalógus megnyitásához** Dashboard → Szolgáltatók → [szolgáltató] → Elérhető modellek** vagy hívja `GET /api/models/catalog`.
>
-> Ha egy szolgáltató beépített listája elavult, használd az adott oldalon az **Importálás a /models-ből** lehetőséget (vagy kapcsold be az **Automatikus szinkronizálást**) az élő upstream katalógus lekéréséhez. Ezt a v3.8.50-ben ellenőriztük az LLM7.io (`gemini-3.1-flash-lite`) és az UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) esetében; a Pollinations névtelen hozzáférése ugyanabban a tesztmenetben továbbra is upstream-oldalon korlátozott maradt.
+> Ha egy szolgáltató beépített listája elcsúszott, használja** Importálás a /models-ből** azon az oldalon (vagy engedélyezze** Automatikus szinkronizálás** ) az élő upstream katalógus letöltéséhez. Ezt a v3.8.50-ben ellenőriztük LLM7.io (`gemini-3.1-flash-lite`) és UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) esetén; A beporzások anonim hozzáférése az áramlás irányába korlátozva maradt ugyanazon teszt során.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude kód (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort-fokozatok: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ erőfeszítési szintek: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — INGYENES OAuth: használd a **Vezérlőpult → Szolgáltatók → Kiro → Elérhető modellek** alatt megjelenő élő katalógust. Az elérhetőség a fióktól és a csomagtól függ.
+**Kiro (`kr/`)** — FREE OAuth: használja az alábbi élő katalógust** Irányítópult → Szolgáltatók → Kiro → Elérhető modellek** . A rendelkezésre állás a számlától és a csomagtól függ.
-**Qoder (`if/`)** — INGYENES OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/hó fix díj vagy használat alapján: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo lapos vagy használatonkénti: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — API-kulcs: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API kulcs: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Ultragyors: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — ultragyors: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok-natív: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok natív: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU-ban üzemeltetett: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU-tárhely: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Kereséssel bővített: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**zavarodottság (`pplx/`)** — Keresés bővített: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Nyílt forráskódú: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ingyenes), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — Nyílt forráskód: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ingyenes), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Gyors inferencia: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Gyors következtetés: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Wafer-szintű: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Ostya-skála: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
**Cohere (`cohere/`)** — RAG-központú: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Vállalati: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: API-kulcsoként élőben szinkronizálva a Google-tól — nincs statikus lista. Adj hozzá egy kulcsot a **Vezérlőpult → Szolgáltatók** menüpontban, majd az **Elérhető modellek** segítségével importáld az aktuális katalógust (pl. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : Élőben szinkronizálva API kulcsonként Google — ből, nincs statikus lista. Csatlakoztasson egy kulcsot** Irányítópult → szolgáltatók** majd használd** Elérhető modellek** az aktuális katalógus importálásához (pl. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Egyéb kompatibilis szolgáltatók** (válogatás): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (átadott katalógus), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Mindegyik a saját modelllistáját a `providerRegistry.ts` fájlban tartja karban, és automatikusan szinkronizálható, ha a szolgáltató `/models` végpontot biztosít.
+**Egyéb kompatibilis szolgáltatók** (kiválasztva): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (átutalási katalógus), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai` `cloudflare-ai` `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Mindegyik saját modelllistát tart fenn `providerRegistry.ts` ban, és automatikusan szinkronizálható, ha a szolgáltató közzéteszi a `/models` végpontot.
-**Megjegyzés a modellazonosítókról:** Az OmniRoute szolgáltató-natív azonosítókat használ (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Egyes azonosítók pontozott verziószámokat tartalmaznak, mert az upstream API ezt a formátumot várja. Ha egy modell nem szerepel a fenti listában, futtasd az `omniroute models --search ` parancsot, vagy kérdezd le a `GET /api/models/catalog` végpontot az elérhetőség megerősítéséhez.
+**Megjegyzés IDs modellhez:** OmniRoute szolgáltató-natív IDs t használja (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Néhány IDs pontozott változatot tartalmaz, mert az upstream API így várja el őket. Ha egy modell nem szerepel a fenti listában, futtassa `omniroute models --search `, vagy nyomja meg `GET /api/models/catalog` az elérhetőség megerősítéséhez.
diff --git a/docs/i18n/hy/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/hy/docs/architecture/RESILIENCE_GUIDE.md
index 03c1e0e76438..12be0de9deb7 100644
--- a/docs/i18n/hy/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/hy/docs/architecture/RESILIENCE_GUIDE.md
@@ -259,17 +259,17 @@ UI. Մոնիտորինգ → Սառեցումների կառավարիչ (`src/a
---
-## 4. Quota-Share միաժամանակության կառավարում (v3.8.36)
+## 4. Quota-Share Concurrency Control (v3.8.36)
-Բաժանորդագրության հաշիվները (GLM, MiniMax և այլն) հաճախ ընդունում են միայն ~1–3 միաժամանակ հարցում. սա գերազանցելը հանգեցնում է 429 սխալների և cooldown-ների։ Սա հատկապես սուր է **quota-share** (`qtSd/…`) կոմբոների դեպքում, որտեղ մի քանի API բանալի կիսում են մեկ upstream հաշիվ։ Երեք շերտեր կանխում են կիսվող հաշվի ծանրաբեռնումը։
+Բաժանորդային հաշիվները (GLM, MiniMax և այլն) հաճախ ընդունում են միայն ~ 1–3 միաժամանակյա հարցումներ. այդ գերազանցումը առաջացնում է 429 վրկ և սառեցում: Սա սուր է տակ** քվոտա-բաժնետոմս** (`qtSd/…`) կոմբինացիաներ, որտեղ մի քանի API ստեղներ կիսում են մեկ վերընթաց հաշիվը: Երեք շերտը պահպանում է ընդհանուր հաշիվը ջրհեղեղից:
-### Յուրաքանչյուր կապի միաժամանակության սահմանաչափ (`max_concurrent`)
+### Միացման համար միաժամանակյա գլխարկ (`max_concurrent`)
-Յուրաքանչյուր մատակարարի կապ կարող է հայտարարել `max_concurrent` առավելագույն սահման (`provider_connections.max_concurrent`, սահմանվում է կապի մոդալում / API-ում / DB-ում)։ Թողեք դատարկ՝ սահմանափակում չունենալու համար։ Սա միակ կարգավորիչն է, որը վարում է ստորև նկարագրված սերիականացման շերտը — սահմանեք այն հաշվի իրական միաժամանակությանը համապատասխան (օր.՝ GLM ~1, MiniMax ~2)։
+Յուրաքանչյուր մատակարարի միացում կարող է հայտարարել `max_concurrent` առաստաղ (`provider_connections.max_concurrent`, որը սահմանված է միացման մոդալում / API / DB): Թողեք այն դատարկ առանց սահմանափակումների: Սա այն մեկ կոճակն է, որը վարում է սերիականացման շերտը — ներքև, սահմանեց այն հաշվի իրական համաժամանակության վրա (օր. GLM ~ 1, MiniMax ~ 2):
-### Յուրաքանչյուր մոդելի միաժամանակության սահմանաչափեր (`modelConcurrency`)
+### Մեկ մոդելի համաժամանակյա գլխարկներ (`modelConcurrency`)
-Կապը կարող է լրացուցիչ հայտարարել յուրաքանչյուր մոդելի ճշգրիտ միաժամանակության առավելագույն սահմաններ իր `rateLimitOverrides` քարտեզի ներսում՝
+Կապը կարող է լրացուցիչ հայտարարել յուրաքանչյուր մոդելի համաժամանակյա առաստաղներ իր `rateLimitOverrides` քարտեզի ներսում.
```json
{
@@ -280,30 +280,32 @@ UI. Մոնիտորինգ → Սառեցումների կառավարիչ (`src/a
}
```
-Սահմանեք այն կապի մոդալում (**Rate limit-ի վերասահմանումներ → Յուրաքանչյուր մոդելի միաժամանակության սահմանաչափեր**, մեկ `model=cap` յուրաքանչյուր տողում) կամ `PATCH /api/providers/[id]`-ի միջոցով՝ նույն JSON ձևաչափով։ Հիմնական սեմանտիկան.
+Տեղադրեք այն միացման մոդալում (** Գնահատման սահմանաչափը գերազանցում է → մեկ մոդելի համաժամանակյա սահմանաչափերը** , մեկ `model=cap` տողում) կամ `PATCH /api/providers/[id]` միջոցով նույն JSON ձևով։ Հիմնական իմաստաբանություն.
-- **Կապի ընդհանուր ընդդեմ մոդելին հատուկ.** `maxConcurrent`-ը մնում է կապի ընդհանուր բաժանված առավելագույն սահմանը։ Երբ երկուսն էլ կիրառելի են, երկու դարպասներն էլ ձեռք են բերվում ատոմար ձևով նույն կոմպոզիտ դարպասի շրջանակում (`global → provider → account → model`). արդյունավետ վարքագիծը ավելի խիստ կիրառելի սահմանն է։
-- **Մոդելի բանալու ճշգրիտ համընկնում.** բանալին executor-ին փոխանցված մոդելի տողն է routing-ի լուծումից հետո — սովորաբար մաքուր upstream մոդելի id-ն (`glm-5`), ոչ թե client-side `provider/model` մականունը (`zai/glm-5`-ը չի համընկնում `glm-5`-ի հետ)։ Արժեքները դրական ամբողջ թվով միաժամանակ հարցումների առավելագույն սահմաններ են։
-- **Տեղային հերթագրում, առանց հայտնաբերման.** ավելցուկային հարցումները հերթագրվում են տեղայնորեն՝ գոյություն ունեցող հերթի/timeout-ի սեմանտիկայով (տիպավորված `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ընդունման սխալներ)։ OmniRoute-ը չի հայտնաբերում և չի եզրակացնում upstream քաղաքականություն — այն կիրառում է օպերատորի կարգավորած ճշգրիտ սահմանները։ Հագեցած մոդելի դարպասը երբեք չի անջատում մատակարարին և երբեք չի ստեղծում մոդելի մշտական արգելափակում. upstream 429/cooldown/fallback վարքագիծը մնում է սխալների ետնապահը։
-- **Յուրաքանչյուր կապի, յուրաքանչյուր պրոցեսի շրջանակ.** սահմանաչափերը յուրաքանչյուր տվյալների բազայի կապի համար են և պահվում են հիշողության մեջ, ուստի նույն upstream API բանալին վերաօգտագործող երկու կապեր միմյանց հետ չեն համակարգվում։
-- **Չկարգավորված նշանակում է անփոփոխ.** քարտեզը բաց թողնելը (կամ վահանակի դաշտը դատարկ թողնելը) չի ավելացնում մոդելի դարպաս։ Կարգավորման օրինակ՝ առանց որևէ ունիվերսալ մատակարարի սահման պնդելու.
+- **Միացման համար ընդդեմ մոդելի հատուկ.** `maxConcurrent` մնում է ընդհանուր կապի առաստաղը: Երբ երկուսն էլ կիրառվում են, երկու դարպասներն էլ ատոմային կերպով ձեռք են բերվում նույն կոմպոզիտային դարպասում (`global → provider → account → model`); արդյունավետ վարքագիծը կիրառելի ավելի խիստ սահմանն է:
+- **Մոդել-բանալին ճշգրիտ համընկնում.** Բանալին այն մոդելի տողն է, որը փոխանցվում է կատարողին — ի լուծումը երթուղավորելուց հետո, սովորաբար մերկ վերին հոսքի մոդելի id-ն (`glm-5`), այլ ոչ թե հաճախորդի կողմի `provider/model` այլանունը (`zai/glm-5` չի համապատասխանում `glm-5`): Արժեքները դրական ամբողջ թվով միաժամանակյա պահանջի առաստաղներ են:
+- **Տեղական հերթեր, ոչ մի բացահայտում.** ավելցուկային հարցումները հերթագրվում են տեղում՝ առկա queue/timeout իմաստաբանության հետ (մուտքագրված `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ընդունման սխալներ): OmniRoute չի հայտնաբերում կամ եզրակացնում է հոսանքին հակառակ քաղաքականությունը — այն պարտադրում է օպերատորի կողմից կազմաձևված ճշգրիտ առաստաղները: Հագեցած մոդելի դարպասը երբեք չի անջատում մատակարարին և երբեք չի ստեղծում մշտական մոդելի արգելափակում. Վերին հոսանքում 429/cooldown/fallback վարքագիծը մնում է սխալի հետնամասը:
+- **Մեկ կապի համար, յուրաքանչյուր գործընթացի շրջանակ.** Կափարիչները գտնվում են տվյալների բազայի միացման համար և պահվում են հիշողության մեջ, այնպես որ երկու միացումներ, որոնք վերօգտագործում են նույն API ստեղնը, չեն համակարգվում միմյանց հետ:
+- **Չկազմաձևված նշանակում է անփոփոխ.** Քարտեզը բաց թողնելը (կամ վահանակի դաշտը դատարկ թողնելը) չի ավելացնում մոդելային դարպաս: Կազմաձևման օրինակ՝ առանց որևէ ունիվերսալ մատակարարի սահմանաչափի.
```text
glm-5=1
glm-4.7=3
```
-### Quota-share հարցումների սերիականացում
+### Քվոտա-բաժնետոմսերի հայտի սերիականացում
-Երբ quota-share ուղարկումը (dispatch) թիրախավորում է դրական `max_concurrent` հայտարարող կապ, այդ **հաշվին** միաժամանակ հարցումները սերիականացվում են յուրաքանչյուր կապի սեմաֆորի միջոցով (բանալի `qsconn:`). ավելցուկային հարցումները **սպասում են հերթում**՝ հաշիվը ծանրաբեռնելու փոխարեն։ Այն **fail-open** է — հագեցած հերթը կամ timeout-ը շարունակվում է առանց slot-ի, այլ ոչ թե երբևէ մերժում է ուղարկելի հարցումը։ Միացումը/անջատումը՝ **Կարգավորումներ → Դիմացկունություն → Quota-share յուրաքանչյուր կապի միաժամանակություն** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, լռելյայն միացված)։ Առանց `max_concurrent` սահմանաչափի վարքագիծը անփոփոխ է։
+Երբ բաժնետոմսերի բաժնետոմսերի բաժնետոմսերը թիրախավորում են մի կապ, որը հայտարարում է դրական `max_concurrent`, դրան միաժամանակ դիմումներ են արվում** հաշիվ** սերիականացվում են յուրաքանչյուր միացման սեմաֆորի միջոցով (բանալի `qsconn:`). ավելորդ պահանջներ** սպասիր հերթում** հաշիվը հեղեղելու փոխարեն։ Դա է** ձախողել-բաց** — հագեցած հերթը կամ ժամանակի վերջնաժամկետը շարունակվում է առանց բացվածքի, այլ ոչ թե երբևէ մերժելու ենթակա հարցումը: Միացնել** Կարգավորումներ → Resilience → Quota-share per-connection concurrency** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, լռելյայն միացված): Առանց `max_concurrent` գլխարկի վարքագիծը անփոփոխ է:
-> Quota-share routing դարպասը (`selectQuotaShareTarget`, DRR + P2C) ինքնին fail-open է և միայն _իջեցնում է առաջնահերթությունը_ սահմանաչափին հասած կապի համար — մեկ կապից բաղկացած pool-ի դեպքում այն չի կարող կոշտ սահմանափակել, ուստի հենց այս սեմաֆորն է, որ իրականում զսպում է հոսքը։
+> Քվոտա-բաժնետոմսերի երթուղային դարպասը (`selectQuotaShareTarget`, DRR + P2C) ինքնին բաց է և միայն _deprioritizes_ at-cap կապը — մեկ կապի լողավազանով, որը չի կարող դժվար սահմանափակվել, ուստի այս սեմաֆորը իրականում պարունակում է ջրհեղեղ:
-### Կոմբոի cooldown-գիտակ կրկնափորձ
+### Նորից փորձեք համակցված սառեցման մասին
-Յուրաքանչյուր կոմբո ռազմավարության համար (երբ միացված է) հարցումը, որը ԿԱՐՃ ժամանակավոր cooldown-ի համար կձևավորեր 429, սպասում է դրա ավարտին և վերաուղարկվում է՝ 429 վերադարձնելու փոխարեն — սա ընդգրկում է Gemini-դասի TPM/RPM պատուհանները (~60վ retry-after) բազմամոդել կոմբոներում, օր.՝ երբ 2-մոդել կոմբոի երկու թիրախներն էլ հարվածում են մոդելի մակարդակի rate limit-ի։ Սահմանափակված է `comboCooldownWait`-ով (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) **Կարգավորումներ → Դիմացկունություն** բաժնում։ Այն երբեք չի սպասում `quota_exhausted`-ին (արգելափակված մինչև կեսգիշեր) կամ auth/not-found պատճառների։
+Յուրաքանչյուր համակցված ռազմավարության համար (երբ միացված է), հարցումը, որը կբյուրեղացներ 429-ը SHORT անցողիկ սառեցման համար, սպասում է այն և նորից ուղարկում 429 — վերադարձնելու փոխարեն, սա ներառում է Gemini-ի դասի TPM/RPM պատուհանները (~ 60-ականներին նորից փորձարկել-հետո) բազմամոդելային համակցված 2 թիրախների վրա, elektrik. սահմանափակում. Սահմանափակված է `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) մեջ** Կարգավորումներ → առաձգականություն** . Այն երբեք չի սպասում `quota_exhausted` ին (կողպված է մինչև կեսգիշեր) կամ auth/not-found պատճառներով:
-Նույն դարպասը ընդգրկում է նաև նախաուղարկման դեպքը (#16319). երբ կոմբոի բոլոր թիրախները բաց են թողնվում ցանկացած փորձից առաջ, քանի որ նրանց մոդելը կարճ ժամանակավոր արգելափակման մեջ է, զրո-փորձային ուղին սպասում է արգելափակման ավարտին նույն սահմանների ներքո և վերաուղարկվում է՝ հուշում չպարունակող `503 ALL_TARGETS_SKIPPED` պատասխանելու փոխարեն։ Երբ սպասումը թույլատրված չէ (սահմանաչափը, փորձերի թիվը կամ բյուջեն սպառված են, կամ հնարավորությունն անջատված է), վերջնական պատասխանը բարձրացվում է `429 rate_limit_error`-ի՝ կրելով `retry_after` / `reset_at` արժեքները ամենավաղ ժամանակավոր արգելափակման ավարտից. quota, auth և not-found արգելափակումները պահպանում են հուշում չպարունակող 503-ը։
+Կոմբինատը կարող է հրաժարվել `config.comboCooldownWaitEnabled: false` ից: Միայն բառացի `false` անջատում է այս համօգտագործվող համակցված սպասումները (հետուղարկային սառեցում և նախաուղարկվող circuit-open/model-lock սպասումներ) և դրանց սպասման բյուջեի ժամանակի ընդլայնումը: Բացակայում է կամ `true` պահպանում է գլոբալ քաղաքականությունը; `true` չի կարող միացնել գլոբալ անջատված սպասումը: Բացահայտ `targetTimeoutMs` դեռ հաղթում է: Այս հրաժարվելը չի փոխում առանձին բնիկ-Codex հերթափոխի նախաուղարկի սպասումը:
+
+Նույն դարպասն ընդգրկում է նախաուղարկի դեպքը (#16319). երբ կոմբինատի յուրաքանչյուր թիրախ բաց է թողնվում նախքան որևէ փորձ կատարելը, քանի որ դրա մոդելը գտնվում է կարճ անցողիկ կողպեքի մեջ, զրոյական փորձի ուղին սպասում է կողպեքին նույն առաստաղների տակ և նորից ուղարկում, փոխարենը պատասխանելու `503 ALL_TARGETS_SKIPPED` քիչ ակնարկ: Երբ սպասել չի թույլատրվում (առաստաղը, փորձը կամ բյուջեն սպառված է, կամ ֆունկցիան անջատված է), տերմինալի պատասխանը բարելավվում է `429 rate_limit_error`, որը կրում է `retry_after` / `reset_at` ամենավաղ անցողիկ կողպեքի ժամկետի ավարտից հետո. քվոտա, վավերական և չգտնված կողպեքները պահպանում են 503-ը:
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/hy/docs/guides/USER_GUIDE.md b/docs/i18n/hy/docs/guides/USER_GUIDE.md
index 20390a2b5c3e..5d9a23e46ea9 100644
--- a/docs/i18n/hy/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/hy/docs/guides/USER_GUIDE.md
@@ -612,57 +612,57 @@ post_install() {
## 📊 Հասանելի մոդելներ
-Դիտել բոլոր հասանելի մոդելները
+Դիտեք բոլոր առկա մոդելները
-> Ստորև բերված ցանկը կազմվել է `open-sse/config/providerRegistry.ts`-ից՝ v3.8.0-ի համար։ Ամպային կատալոգները (Gemini, OpenRouter և այլն) համաժամեցվում են դինամիկ կերպով — ամբողջական ակտիվ կատալոգի համար բացեք **Վահանակ → Մատակարարներ → [provider] → Հասանելի մոդելներ** կամ կանչեք `GET /api/models/catalog`։
+> Ստորև բերված ցանկը կազմված է `open-sse/config/providerRegistry.ts` ից v3.8.0-ի համար: Ամպային կատալոգները (Gemini, OpenRouter և այլն) դինամիկ կերպով համաժամացվում են — ամբողջական կենդանի կատալոգի բացման համար** Dashboard → Providers → [provider] → Հասանելի մոդելներ** կամ զանգել `GET /api/models/catalog`.
>
-> Եթե մատակարարի ներկառուցված ցանկը հնացել է, օգտագործեք այդ էջի **Ներմուծել /models-ից** տարբերակը (կամ միացրեք **Ավտոհամաժամեցումը**)՝ վերին աղբյուրի ակտիվ կատալոգը քաղելու համար։ Սա ստուգվել է v3.8.50-ում LLM7.io-ի (`gemini-3.1-flash-lite`) և UncloseAI-ի (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) համար. Pollinations-ի անանուն հասանելիությունը նույն փորձարկման ընթացքում մնացել է սահմանափակված վերին աղբյուրի կողմից։
+> Եթե մատակարարի ներկառուցված ցանկը շեղվել է, օգտագործեք** Ներմուծում /մոդելներից** այդ էջում (կամ միացնել** Ավտո-համաժամեցում** ) քաշեք ուղիղ հոսանքին հակառակ կատալոգը: Սա ստուգվել է v3.8.50-ում LLM7.io (`gemini-3.1-flash-lite`) և UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) համար; Փոշոտման անանուն մուտքը մնացել է սահմանափակ՝ նույն թեստավորման ընթացքում:
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude ծածկագիր (`cc/`)** — Pro/Max `cc/claude-opus-4-8` OAuth `cc/claude-opus-4-7` `cc/claude-opus-4-6` `cc/claude-opus-4-5-20251101` `cc/claude-sonnet-4-6` `cc/claude-sonnet-4-5-20250929` `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ ջանքի մակարդակներ. `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ ջանքերի աստիճաններ: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — ԱՆՎՃԱՐ OAuth: օգտագործեք **Վահանակ → Մատակարարներ → Kiro → Հասանելի մոդելներ** բաժնում ցուցադրվող ակտիվ կատալոգը։ Հասանելիությունը կախված է հաշվից և պլանից։
+**Kiro (`kr/`)** — FREE OAuth. օգտագործեք ստորև ներկայացված կենդանի կատալոգը** Վահանակ → Մատակարարներ → Kiro → Հասանելի մոդելներ** . Հասանելիությունը կախված է հաշվից և պլանից:
-**Qoder (`if/`)** — ԱՆՎՃԱՐ OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/ամիս ֆիքսված կամ ըստ օգտագործման. `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo հարթ կամ մեկ օգտագործման համար՝ `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — API բանալի. `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API բանալի՝ `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Գերհարաճ. `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Գերարագ՝ `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Բնիկ Grok. `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok բնիկ՝ `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Տեղակայված ԵՄ-ում. `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — ԵՄ հյուրընկալած՝ `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Որոնմամբ ընդլայնված. `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Շփոթմունք (`pplx/`)** — Որոնում-ավելացված՝ `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Բաց կոդով. `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (անվճար), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — Բաց աղբյուր՝ `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (անվճար), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Արագ ինֆերենս. `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Արագ եզրակացություն՝ `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Wafer-scale. `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Վաֆլի մասշտաբ՝ `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — RAG-կենտրոն. `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG-կենտրոնացված՝ `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Կորպորատիվ. `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Ձեռնարկություն՝ `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
-**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
+**Baidu Qianfan (`qianfan/`)** — ERNIE՝ `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** ՝ `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Համաժամեցվում է ակտիվ ռեժիմում Google-ից՝ ըստ յուրաքանչյուր API բանալու — ստատիկ ցանկ չկա։ Միացրեք բանալին **Վահանակ → Մատակարարներ** բաժնում, ապա օգտագործեք **Հասանելի մոդելներ**՝ ընթացիկ կատալոգը ներմուծելու համար (օր. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`)։
+**Gemini (Google Cloud `gemini/`)** Համաժամեցվում է ուղիղ եթերում API ստեղնով Google — առանց ստատիկ ցուցակի: Միացրեք բանալին** Վահանակ → Մատակարարներ** ապա օգտագործել** Հասանելի մոդելներ** ներմուծել ընթացիկ կատալոգը (օր. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`):
-**Այլ համատեղելի մատակարարներ** (ընտրված). `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (passthrough կատալոգ), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`։ Յուրաքանչյուրը պահում է մոդելների իր սեփական ցանկը `providerRegistry.ts`-ում և կարող է ավտոմատ համաժամեցվել, երբ մատակարարը տրամադրում է `/models` վերջակետ։
+**Այլ համատեղելի մատակարարներ** `vertex` `alibaba` `alibaba-cn` `openrouter` `bedrock` `cohere` `azure-ai` `databricks` `together` `snowflake` `siliconflow` `hyperbolic` `aws-bedrock` `huggingface` `featherless-ai` `cloudflare-ai` `scaleway` `deepinfra` `vercel-ai-gateway` `bazaarlink` `friendliai` `nous-research` `reka` `volcengine` `ai21` `gigachat` Յուրաքանչյուրը պահպանում է իր մոդելների ցանկը `providerRegistry.ts` ում և կարող է ավտոմատ կերպով համաժամացվել, երբ մատակարարը բացահայտում է `/models` վերջնակետը:
-**Նշում մոդելների ID-ների մասին.** OmniRoute-ը օգտագործում է մատակարարի բնիկ ID-ներ (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`)։ Որոշ ID-ներում տարբերակները գրվում են կետով, քանի որ վերին աղբյուրի API-ն այդ ձևով է սպասում դրանց։ Եթե մոդելը նշված չէ վերևում, գործարկեք `omniroute models --search ` կամ դիմեք `GET /api/models/catalog`-ին՝ հասանելիությունը հաստատելու համար։
+**Նշում IDs մոդելի մասին.** OmniRoute օգտագործում է մատակարար-հայրենի IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`): Որոշ IDs ներառում են կետավոր տարբերակներ, քանի որ այդպես է ակնկալում API վերին հոսանքը: Եթե մոդելը վերը նշված չէ, գործարկեք `omniroute models --search ` կամ սեղմեք `GET /api/models/catalog` ՝ առկայությունը հաստատելու համար:
diff --git a/docs/i18n/id/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/id/docs/architecture/RESILIENCE_GUIDE.md
index a12c9926f1f2..5c80869b779b 100644
--- a/docs/i18n/id/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/id/docs/architecture/RESILIENCE_GUIDE.md
@@ -281,25 +281,17 @@ aktif bersifat ephemeral.
---
-## 4. Kendali Konkurensi Quota-Share (v3.8.36)
+## 4. Kontrol Konkurensi Kuota-Bagikan (v3.8.36)
-Akun langganan (GLM, MiniMax, dll.) sering kali hanya menerima ~1–3 permintaan
-konkuren; melebihi batas itu memicu 429 dan cooldown. Hal ini sangat krusial pada
-kombo **quota-share** (`qtSd/…`), di mana beberapa API key berbagi satu akun
-upstream. Tiga lapisan menjaga akun bersama agar tidak kebanjiran.
+Akun langganan (GLM, MiniMax, dll.) sering kali hanya menerima ~ 1–3 permintaan bersamaan; melebihi itu akan memicu 429 detik dan cooldown. Ini akut di bawah** pembagian kuota** (`qtSd/…`) kombo, di mana beberapa kunci API berbagi satu akun upstream. Tiga lapisan menjaga akun bersama agar tidak kebanjiran.
### Batas konkurensi per koneksi (`max_concurrent`)
-Setiap koneksi provider dapat mendeklarasikan batas maksimum `max_concurrent`
-(`provider_connections.max_concurrent`, diatur di modal koneksi / API / DB).
-Biarkan kosong untuk tanpa batas. Ini adalah satu-satunya pengaturan yang
-menggerakkan lapisan serialisasi di bawah — atur sesuai konkurensi nyata akun
-(mis. GLM ~1, MiniMax ~2).
+Setiap koneksi penyedia dapat mendeklarasikan plafon `max_concurrent` (`provider_connections.max_concurrent`, diatur dalam modal koneksi / API / DB). Biarkan kosong tanpa batas. Ini adalah tombol tunggal yang menggerakkan lapisan serialisasi di bawah — mengaturnya ke konkurensi nyata akun (misalnya GLM ~ 1, MiniMax ~ 2).
### Batas konkurensi per model (`modelConcurrency`)
-Sebuah koneksi juga dapat mendeklarasikan batas konkurensi per model yang tepat
-di dalam map `rateLimitOverrides`-nya:
+Koneksi juga dapat mendeklarasikan batas konkurensi per model yang tepat di dalam peta `rateLimitOverrides` -nya:
```json
{
@@ -310,76 +302,32 @@ di dalam map `rateLimitOverrides`-nya:
}
```
-Atur di modal koneksi (**Rate limit overrides → Per-model
-concurrency caps**, satu `model=cap` per baris) atau melalui
-`PATCH /api/providers/[id]` dengan bentuk JSON yang sama. Semantik kunci:
-
-- **Cakupan koneksi vs spesifik model:** `maxConcurrent` tetap menjadi batas
- bersama untuk seluruh koneksi. Ketika keduanya berlaku, kedua gerbang
- diperoleh secara atomik dalam gerbang komposit yang sama
- (`global → provider → account → model`); perilaku efektifnya adalah batas
- yang lebih ketat di antara yang berlaku.
-- **Pencocokan kunci model secara persis:** kuncinya adalah string model yang
- diteruskan ke executor setelah resolusi routing — biasanya id model upstream
- apa adanya (`glm-5`), bukan alias `provider/model` sisi klien (`zai/glm-5`
- tidak cocok dengan `glm-5`). Nilainya adalah batas permintaan konkuren
- berupa bilangan bulat positif.
-- **Antrean lokal, tanpa discovery:** permintaan berlebih mengantre secara
- lokal dengan semantik antrean/timeout yang sudah ada (error admission bertipe
- `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). OmniRoute tidak menemukan atau
- menyimpulkan kebijakan upstream — ia menegakkan batas persis yang
- dikonfigurasikan operator. Gerbang model yang jenuh tidak pernah menonaktifkan
- provider dan tidak pernah membuat lockout model permanen; perilaku
- 429/cooldown/fallback upstream tetap menjadi pengaman error.
-- **Cakupan per koneksi, per proses:** batas berlaku per koneksi database dan
- disimpan di memori, sehingga dua koneksi yang memakai ulang API key upstream
- yang sama tidak saling berkoordinasi.
-- **Tidak dikonfigurasi berarti tidak berubah:** menghilangkan map (atau membiarkan
- kolom dashboard kosong) tidak menambahkan gerbang model. Contoh konfigurasi
- tanpa menyatakan batas provider universal apa pun:
+Atur di modal koneksi (** Batas nilai menggantikan → Batas konkurensi per model** , satu `model=cap` per baris) atau melalui `PATCH /api/providers/[id]` dengan bentuk JSON yang sama. Semantik kunci:
+
+- **Seluruh koneksi vs spesifik model:** `maxConcurrent` tetap menjadi batas atas koneksi bersama. Ketika keduanya diterapkan, kedua gerbang diperoleh secara atom dalam gerbang komposit yang sama (`global → provider → account → model`); perilaku efektif adalah batas ketat yang berlaku.
+- **Pencocokan model-kunci yang tepat:** kuncinya adalah string model yang diteruskan ke pelaksana setelah resolusi perutean — biasanya id model upstream kosong (`glm-5`), bukan alias `provider/model` sisi klien (`zai/glm-5` tidak cocok dengan `glm-5`). Nilai adalah batas atas permintaan bersamaan dengan bilangan bulat positif.
+- **Antrian lokal, tidak ada penemuan:** kelebihan antrian permintaan secara lokal dengan semantik queue/timeout yang ada (mengetik kesalahan penerimaan `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ). OmniRoute tidak menemukan atau menyimpulkan kebijakan hulu — ia menerapkan batas atas yang dikonfigurasikan oleh operator. Gerbang model jenuh tidak pernah menonaktifkan penyedia dan tidak pernah membuat penguncian model permanen; perilaku 429/cooldown/fallback hulu tetap menjadi penghalang kesalahan.
+- **Per koneksi, cakupan per proses:** batasnya adalah per koneksi database dan disimpan dalam memori, jadi dua koneksi yang menggunakan kembali kunci API upstream yang sama tidak berkoordinasi satu sama lain.
+- **Tidak dikonfigurasi berarti tidak berubah:** menghilangkan peta (atau membiarkan bidang dasbor kosong) tidak menambah gerbang model. Contoh konfigurasi tanpa menetapkan batas penyedia universal:
```text
glm-5=1
glm-4.7=3
```
-### Serialisasi permintaan quota-share
-
-Ketika dispatch quota-share menargetkan koneksi yang mendeklarasikan
-`max_concurrent` positif, permintaan konkuren ke **akun** tersebut diserialkan
-melalui semaphore per koneksi (kunci `qsconn:`): permintaan berlebih
-**menunggu dalam antrean** alih-alih membanjiri akun. Sifatnya **fail-open** —
-antrean yang jenuh atau timeout tetap melanjutkan tanpa slot, dan tidak pernah
-menolak permintaan yang dapat di-dispatch. Aktif/nonaktifkan di **Settings →
-Resilience → Quota-share per-connection concurrency**
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, default aktif). Tanpa
-batas `max_concurrent`, perilakunya tidak berubah.
-
-> Gerbang routing quota-share (`selectQuotaShareTarget`, DRR + P2C) sendiri
-> bersifat fail-open dan hanya _menurunkan prioritas_ koneksi yang mencapai batas
-> — dengan pool satu koneksi ia tidak bisa membatasi secara keras, sehingga
-> semaphore inilah yang sebenarnya membendung banjir permintaan.
-
-### Retry sadar cooldown pada kombo
-
-Untuk setiap strategi kombo (bila diaktifkan), permintaan yang akan mengkristalkan
-429 untuk cooldown transien SINGKAT akan menunggunya lalu melakukan dispatch ulang
-alih-alih mengembalikan 429 — ini mencakup jendela TPM/RPM kelas Gemini
-(retry-after ~60 detik) pada kombo multi-model, mis. kedua target kombo 2 model
-sama-sama terkena rate limit per model. Dibatasi oleh `comboCooldownWait`
-(`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) di **Settings → Resilience**.
-Ia tidak pernah menunggu pada `quota_exhausted` (terkunci hingga tengah malam)
-atau alasan auth/not-found.
-
-Gerbang yang sama mencakup kasus pra-dispatch (#16319): ketika setiap target
-kombo dilewati sebelum percobaan apa pun dilakukan karena modelnya berada dalam
-lockout transien singkat, jalur tanpa percobaan ini menunggu lockout tersebut
-di bawah batas yang sama lalu melakukan dispatch ulang, alih-alih menjawab
-`503 ALL_TARGETS_SKIPPED` tanpa petunjuk. Ketika penantian tidak diizinkan
-(batas, percobaan, atau bujet habis, atau fitur dimatikan), respons terminal
-ditingkatkan menjadi `429 rate_limit_error` yang membawa `retry_after` /
-`reset_at` dari kedaluwarsa lock transien paling awal; lock kuota, auth, dan
-not-found tetap menghasilkan 503 tanpa petunjuk.
+### Serialisasi permintaan pembagian kuota
+
+Ketika pengiriman pembagian kuota menargetkan koneksi yang mendeklarasikan `max_concurrent` positif, permintaan akan dilakukan secara bersamaan** akun** diserialkan melalui semaphore per koneksi (kunci `qsconn:`): permintaan berlebih** tunggu di antrian** daripada membanjiri akun. Dia** gagal-terbuka** — antrian jenuh atau batas waktu berlangsung tanpa slot daripada menolak permintaan yang dapat dikirim. Aktifkan** Pengaturan → Ketahanan → Pembagian kuota per konkurensi koneksi** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, default aktif). Tanpa batas `max_concurrent` perilakunya tidak akan berubah.
+
+> Gerbang perutean pembagian kuota (`selectQuotaShareTarget`, DRR + P2C) itu sendiri gagal dibuka dan hanya _deprioritizes_ koneksi at-cap — dengan kumpulan koneksi tunggal yang tidak dapat dibatasi secara ketat, jadi semaphore inilah yang sebenarnya mengandung banjir.
+
+### Coba lagi dengan sadar cooldown kombo
+
+Untuk setiap strategi kombo (bila diaktifkan), permintaan yang akan mengkristalkan 429 untuk cooldown sementara SHORT akan menunggunya dan mengirimkannya kembali alih-alih mengembalikan 429 — Ini mencakup jendela TPM/RPM kelas Gemini (~ 60s coba lagi setelahnya) pada kombo multi-model, misalnya kedua target dari kombo 2 model mencapai batas kecepatan per model. Dibatasi oleh `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) di** Pengaturan → Ketahanan** . Itu tidak pernah menunggu karena alasan `quota_exhausted` (terkunci sampai tengah malam) atau auth/not-found.
+
+Kombo dapat memilih untuk tidak ikut dengan `config.comboCooldownWaitEnabled: false`. Hanya `false` literal yang menonaktifkan penantian kombo bersama ini (cooldown pasca-pengiriman dan penantian circuit-open/model-lock pra-pengiriman) dan perpanjangan batas waktu tunggu anggarannya. Hilang atau `true` mempertahankan kebijakan global; `true` tidak dapat mengaktifkan penantian yang dinonaktifkan secara global. `targetTimeoutMs` eksplisit masih menang. Penyisihan ini tidak mengubah waktu tunggu pra-pengiriman turn-pin Codex asli yang terpisah.
+
+Gerbang yang sama mencakup kasus pra-pengiriman (#16319): ketika setiap target kombo dilewati sebelum upaya apa pun dilakukan karena modelnya berada dalam penguncian sementara yang singkat, jalur upaya nol menunggu penguncian di bawah langit-langit yang sama dan pengiriman ulang, alih-alih menjawab `503 ALL_TARGETS_SKIPPED` tanpa petunjuk. Ketika tidak ada waktu tunggu yang diizinkan (batas waktu, upaya atau anggaran habis, atau fitur nonaktif), respons terminal ditingkatkan menjadi `429 rate_limit_error` yang membawa `retry_after` / `reset_at` dari masa berlaku kunci sementara yang paling awal; kuota, autentikasi, dan kunci tidak ditemukan mempertahankan 503 tanpa petunjuk.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/id/docs/guides/USER_GUIDE.md b/docs/i18n/id/docs/guides/USER_GUIDE.md
index 399c8b90b1bf..b8e7b0b45411 100644
--- a/docs/i18n/id/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/id/docs/guides/USER_GUIDE.md
@@ -612,35 +612,35 @@ Untuk referensi lengkap variabel lingkungan, lihat [README](../README.md).
Lihat semua model yang tersedia
-> Daftar di bawah ini dikurasi dari `open-sse/config/providerRegistry.ts` untuk v3.8.0. Katalog cloud (Gemini, OpenRouter, dll.) disinkronkan secara dinamis — untuk katalog langsung yang lengkap, buka **Dasbor → Penyedia → [provider] → Model yang Tersedia** atau panggil `GET /api/models/catalog`.
+> Daftar di bawah ini dikurasi dari `open-sse/config/providerRegistry.ts` untuk v3.8.0. Katalog cloud (Gemini, OpenRouter, dll.) disinkronkan secara dinamis — untuk pembukaan katalog langsung penuh** Dasbor → Penyedia → [penyedia] → Model yang Tersedia** atau hubungi `GET /api/models/catalog`.
>
-> Jika daftar bawaan penyedia telah bergeser, gunakan **Impor dari /models** di halaman tersebut (atau aktifkan **Sinkronisasi Otomatis**) untuk menarik katalog upstream langsung. Ini telah diverifikasi pada v3.8.50 untuk LLM7.io (`gemini-3.1-flash-lite`) dan UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); akses anonim Pollinations tetap dibatasi dari sisi upstream selama rangkaian pengujian yang sama.
+> Jika daftar bawaan penyedia telah hilang, gunakan** Impor dari /models** di halaman itu (atau aktifkan** Sinkronisasi Otomatis** ) untuk menarik katalog hulu langsung. Ini telah diverifikasi di v3.8.50 untuk LLM7.io (`gemini-3.1-flash-lite`) dan UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Akses anonim penyerbukan tetap terbatas pada hulu selama pengujian yang sama.
-**Claude Code (`cc/`)** — OAuth Pro/Max: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Kode Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — OAuth Plus/Pro: `cx/gpt-5.5` (+ tingkat effort: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` ( tingkat upaya + : `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth GRATIS: gunakan katalog langsung yang ditampilkan di **Dasbor → Penyedia → Kiro → Model yang Tersedia**. Ketersediaan tergantung pada akun dan paket.
+**Kiro (`kr/`)** — FREE OAuth: gunakan katalog langsung yang ditunjukkan di bawah** Dashboard Penyedia → → Kiro → Model Tersedia** . Ketersediaan tergantung pada akun dan paket.
-**Qoder (`if/`)** — OAuth GRATIS: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/bln flat atau per pemakaian: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo datar atau per penggunaan: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — Kunci API: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — kunci API : `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
**Groq (`groq/`)** — Sangat cepat: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok native: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok asli: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Dihosting di UE: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — yang dihosting di UE: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Diperkaya pencarian: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Kebingungan (`pplx/`)** — Pencarian ditambah: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
**Together AI (`together/`)** — Sumber terbuka: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (gratis), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
@@ -648,19 +648,19 @@ Untuk referensi lengkap variabel lingkungan, lihat [README](../README.md).
**Cerebras (`cerebras/`)** — Skala wafer: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Fokus RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — berfokus pada RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Perusahaan: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Awan (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Disinkronkan langsung per kunci API dari Google — tanpa daftar statis. Hubungkan kunci di **Dasbor → Penyedia** lalu gunakan **Model yang Tersedia** untuk mengimpor katalog terkini (mis. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Awan `gemini/`)** : Disinkronkan langsung per kunci API dari Google — tanpa daftar statis. Hubungkan kunci masuk** Penyedia → Dasbor** lalu gunakan** Model yang Tersedia** untuk mengimpor katalog saat ini (misalnya `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Penyedia kompatibel lainnya** (pilihan): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (katalog passthrough), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Masing-masing memelihara daftar modelnya sendiri di `providerRegistry.ts` dan dapat disinkronkan secara otomatis ketika penyedia menyediakan endpoint `/models`.
+**Penyedia lain yang kompatibel** (dipilih): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (melalui `aws-bedrock`), `azure-ai`, `openrouter` (katalog passthrough), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Masing-masing mempertahankan daftar modelnya sendiri di `providerRegistry.ts` dan dapat disinkronkan secara otomatis ketika penyedia mengekspos titik akhir `/models`.
-**Catatan tentang ID model:** OmniRoute menggunakan ID native penyedia (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Beberapa ID menyertakan versi bertitik karena memang begitulah format yang diharapkan oleh API upstream. Jika suatu model tidak tercantum di atas, jalankan `omniroute models --search ` atau panggil `GET /api/models/catalog` untuk memastikan ketersediaannya.
+**Catatan tentang model IDs:** OmniRoute menggunakan IDs asli penyedia (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Beberapa IDs menyertakan versi bertitik karena itulah yang diharapkan oleh API hulu. Jika model tidak tercantum di atas, jalankan `omniroute models --search ` atau tekan `GET /api/models/catalog` untuk mengonfirmasi ketersediaan.
diff --git a/docs/i18n/ig/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/ig/docs/architecture/RESILIENCE_GUIDE.md
index 9d519d919f20..d2b79962288e 100644
--- a/docs/i18n/ig/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/ig/docs/architecture/RESILIENCE_GUIDE.md
@@ -281,17 +281,17 @@ mkpochi na-arụ ọrụ dị n'oge gachara.
---
-## 4. Njikwa Ọtụtụ Arịrị Otu Oge nke Quota-Share (v3.8.36)
+## 4. Njikwa nkwekọrịta nke oke oke (v3.8.36)
-Akaụntụ ndebanye aha (GLM, MiniMax, wdg.) na-anabatakarị naanị ~1–3 arịrị otu oge; ịgafere nke ahụ na-akpata 429 na oge cooldown. Nke a na-adị oke njọ n'okpuru combo **quota-share** (`qtSd/…`), ebe ọtụtụ igodo API na-ekekọrịta otu akaụntụ upstream. Ọkwa atọ na-egbochi ka arịrị jupụta akaụntụ ekerịta.
+Akaụntụ ndenye aha (GLM, MiniMax, wdg) na-anabatakarị naanị ~ 1-3 arịrịọ otu oge; gafere nke na-akpalite 429s na cooldowns. Nke a bụ nnukwu n'okpuru** oke-oke** (`qtSd/…`) combos, ebe ọtụtụ igodo API na-ekekọrịta otu akaụntụ elu. N'ígwé atọ na-eme ka idei mmiri ghara ikpuchi akaụntụ nkekọrịta.
-### Oke arịrị otu oge maka njikọ ọ bụla (`max_concurrent`)
+### Okpu nkwekọrịta otu njikọ (`max_concurrent`)
-Njikọ onye na-enye ọ bụla nwere ike ịkwupụta oke `max_concurrent` (`provider_connections.max_concurrent`, edobere na modal njikọ / API / DB). Hapụ ya oghere maka enweghị oke. Nke a bụ otu bọtịnụ ahụ na-achịkwa ọkwa ịdobe n'usoro dị n'okpuru — debe ya na ọnụọgụ arịrị otu oge n'ezie nke akaụntụ ahụ (dịka GLM ~1, MiniMax ~2).
+Njikọ ọ bụla na-enye ndị na-enye ọrụ nwere ike ikwupụta `max_concurrent` uko ụlọ (`provider_connections.max_concurrent`, setịpụrụ na njikọ modal / API / DB). Hapụ ya tọgbọrọ chakoo. Nke a bụ otu igodo na-ebugharị oyi akwa serialization dị n'okpuru — tọọ ya na ezigbo concurrency nke akaụntụ ahụ (dịka GLM ~ 1, MiniMax ~ 2).
-### Oke arịrị otu oge maka nlereanya ọ bụla (`modelConcurrency`)
+### Okpu concurrency nke ọ bụla (`modelConcurrency`)
-Njikọ nwere ike ịkwupụtakwa oke arịrị otu oge ziri ezi maka nlereanya ọ bụla n'ime map `rateLimitOverrides` ya:
+Njikọ nwekwara ike kwupụta kpọmkwem uko ụlọ concurrency nke ọ bụla n'ime maapụ `rateLimitOverrides` ya:
```json
{
@@ -302,30 +302,32 @@ Njikọ nwere ike ịkwupụtakwa oke arịrị otu oge ziri ezi maka nlereanya
}
```
-Debe ya na modal njikọ (**Ndọpụta oke ọnụego → Oke arịrị otu oge maka nlereanya ọ bụla**, otu `model=cap` n'ahịrị ọ bụla) ma ọ bụ site na `PATCH /api/providers/[id]` na otu ụdị JSON ahụ. Ọdịmma ndị igodo:
+Tọọ ya na usoro njikọ (** Oke ọnụego gabigara okpu concurrency nke → kwa-ụdị** , otu `model=cap` kwa ahịrị) ma ọ bụ site na `PATCH /api/providers/[id]` nwere otu ụdị JSON. Nkọwapụta isi:
-- **Nke njikọ dum vs nke nlereanya pụrụ iche:** `maxConcurrent` ka na-anọgide dị ka oke ekerịta nke njikọ dum. Mgbe ha abụọ na-adị irè, a na-enweta ụzọ abụọ ahụ otu oge n'otu ụzọ mejupụtara (`global → provider → account → model`); omume dị irè bụ oke kacha sie ike nke na-adị irè.
-- **Nnabata igodo-nlereanya ziri ezi:** igodo ahụ bụ eriri nlereanya e nyefere onye na-arụ ọrụ mgbe routing dochachara — n'ọtụtụ oge ọ bụ id nlereanya upstream dị larịị (`glm-5`), ọ bụghị aha ọzọ `provider/model` n'akụkụ onye ahịa (`zai/glm-5` adabaghị na `glm-5`). Ọnụ ọgụgụ ndị ahụ bụ oke arịrị otu oge nke ọnụọgụ ezi karịa efu.
-- **Nhazi ahịrị n'ebe ahụ, enweghị nchọpụta:** arịrị karịrị oke na-eche n'ahịrị n'ebe ahụ na ọdịmma ahịrị/timeout dị adị (njehie nnabata edepụtara `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). OmniRoute anaghị achọpụta ma ọ bụ nyochaa iwu upstream — ọ na-amanye oke ndị onye ọrụ haziri ziri ezi. Ụzọ nlereanya jupụtara anaghị agbanyụ onye na-enye ma ọ bụ mepụta mkpọchị nlereanya na-adịgide adịgide; omume upstream 429/cooldown/fallback ka na-anọgide dị ka nchekwa njehie ikpeazụ.
-- **Oke nke njikọ ọ bụla, usoro ọ bụla:** oke ndị ahụ bụ nke njikọ nchekwa data ọ bụla ma e jide ha n'echeta, ya mere njikọ abụọ na-eji otu igodo API upstream ahụ ọzọ anaghị arụkọ ọrụ ọnụ.
-- **Enweghị nhazi pụtara enweghị mgbanwe:** ịhapụ map ahụ (ma ọ bụ ịhapụ oghere dashboard n'efu) anaghị etinye ụzọ nlereanya ọ bụla. Nhazi nlereanya na-ekwupụtaghị oke ọ bụla zuru ụwa ọnụ nke onye na-enye:
+- **Njikọ-obosara vs ụdị-kpọmkwem:** `maxConcurrent` na-anọgide na-ekekọrịta njikọ-obosara uko ụlọ. Mgbe ha abụọ na-etinye, a na-enweta ọnụ ụzọ abụọ atomically n'otu ọnụ ụzọ ámá mejupụtara (`global → provider → account → model`); omume dị irè bụ oke ọdabara.
+- **Kpọmkwem egwuregwu igodo nlereanya:** isi ihe bụ eriri ihe atụ ahụ gafere n'aka onye mmebe mgbe emechara mkpebi — na-abụkarị id upstream model id (`glm-5`), ọ bụghị n'akụkụ `provider/model` nke onye ahịa (`zai/glm-5` adabaghị `glm-5`). Uru bụ uko ụlọ na-arịọ arịrịọ n'otu oge.
+- **Ahịrị n'ahịrị mpaghara, enweghị nchọpụta:** Arịrịọ ngafe kwụ n'ahịrị na mpaghara yana usoro mmụta queue/timeout dị ugbu a (ụdị mperi nnabata `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ). OmniRoute anaghị achọpụta ma ọ bụ chepụta amụma elu — ọ na-amanye kpọmkwem uko ụlọ onye ọrụ haziri. Ọnụ ụzọ ihe atụ juru eju adịghị eme ka onye na-eweta ya kwụsị ma ọ dịghị emepụta mkpọchi ihe nlereanya na-adịgide adịgide; omume 429/cooldown/fallback dị elu ka bụ njehie azụ azụ.
+- **Njikọ n'otu oge, oke usoro:** okpu bụ maka njikọ nchekwa data ma jide ya na ebe nchekwa, yabụ njikọ abụọ na-eji otu igodo API elu anaghị ejikọta ibe ha.
+- **Enweghị nhazi pụtara agbanweghị:** ịhapụ map ahụ (ma ọ bụ ịhapụ oghere dashboard ahụ efu) anaghị agbakwunye ọ nweghị ọnụ ụzọ ihe atụ. Nhazi ọmụmaatụ na-ekwupụtaghị oke ndị na-eweta ihe ọ bụla:
```text
glm-5=1
glm-4.7=3
```
-### Ịdobe arịrị Quota-share n'usoro
+### Arịrịọ nkekọrịta oke nsonazụ
-Mgbe nkesa quota-share lekwasịrị njikọ na-akpọsa `max_concurrent` dị mma, a na-edobe arịrị otu oge gaa na **akaụntụ** ahụ n'usoro site na semaphore nke njikọ ọ bụla (igodo `qsconn:`): arịrị karịrị oke **na-eche n'ahịrị** kama ịjupụta akaụntụ ahụ. Ọ bụ **fail-open** — ahịrị jupụtara ma ọ bụ timeout na-aga n'ihu na-enweghị ohere kama ịjụ arịrị nwere ike ịkesa ọ bụla. Gbanwee ya na **Ntọala → Nkwusi ike → Ọtụtụ arịrị otu oge nke njikọ ọ bụla nke Quota-share** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, ndabara bụ ọn). Na-enweghị oke `max_concurrent`, omume ahụ adịghị agbanwe.
+Mgbe nzipu oke-oke lekwasịrị anya njikọ na-ekwupụta `max_concurrent` dị mma, a na-arịọ arịrịọ ahụ n'otu oge.** akaụntụ** A na-edobe usoro site na semaphore njikọ ọ bụla (key `qsconn:`): arịrịọ ngafe** chere na kwụ n'ahịrị** kama ikpuchi akaụntụ ahụ. Ọ bụ** ada-emeghe** — kwụ n'ahịrị ma ọ bụ nkwụsị oge na-aga na-enweghị oghere karịa ịjụ arịrịọ enwere ike izipu. Banye** Ntọala → Resilience → Quota-share kwa njikọ njikọ** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, ndabara na). Na-enweghị okpu `max_concurrent` omume adịghị agbanwe agbanwe.
-> Ụzọ routing quota-share (`selectQuotaShareTarget`, DRR + P2C) n'onwe ya bụ fail-open ma ọ na-_belata mkpa_ naanị njikọ ruru oke — na pool nwere naanị otu njikọ, ọ nweghị ike ịnye oke siri ike, ya mere semaphore a ka bụ nke na-egbochi ide arịrị ahụ n'ezie.
+> Ọnụ ụzọ ụzọ nke oke oke (`selectQuotaShareTarget`, DRR + P2C) bụ n'onwe ya na-emeghe ma ọ bụ naanị _deprioritizes_ njikọ njikọ — nwere otu ọdọ mmiri ọ nweghị ike ịgbachi nkịtị, yabụ semaphore a bụ ihe nwere iju mmiri ahụ n'ezie.
-### Ịnwale ọzọ na-amata cooldown nke combo
+### Ngwakọta cooldown-marakwa ọzọ nwaa
-Maka atụmatụ combo ọ bụla (mgbe e gbasara ya), arịrị ga-akpụ 429 maka cooldown nwa oge na-agafe agafe na-eche ka ọ gafee ma kesaa ọzọ kama ịweghachite 429 ahụ — nke a na-ekpuchi windo TPM/RPM klaasị Gemini (~60s retry-after) na combo ọtụtụ nlereanya, dịka ebumnuche abụọ nke combo nlereanya 2 na-akụ oke ọnụego nke nlereanya ọ bụla. Oke ya bụ `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) na **Ntọala → Nkwusi ike**. Ọ naghị eche na `quota_exhausted` (ekpochiri ruo etiti abalị) ma ọ bụ ihe mere bụ auth/not-found.
+Maka atụmatụ ngwakọta ọ bụla (mgbe enyere ya aka), arịrịọ nke ga-eme ka 429 dị jụụ maka SHORT na-adịru nwa oge na-echere ya ma zigaghachi ya kama ịlaghachi 429 — nke a na-ekpuchi Gemini-class TPM/RPM windows (~ 60s retry-after) na multi-model combos, eg ma ihe mgbaru ọsọ nke ọnụ ọgụgụ 2-model. Ejiri `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) n'ime** Ntọala → Resilience** . Ọ dịghị mgbe ọ na-eche na `quota_exhausted` (akpọchiri ruo etiti abalị) ma ọ bụ auth/not-found ihe kpatara ya.
-Ụzọ ahụ ka ahụ na-ekpuchi ọnọdụ tupu ekesa (#16319): mgbe a na-agafe ebumnuche ọ bụla nke combo tupu e me nnwale ọ bụla n'ihi na nlereanya ya nọ n'ọnọdụ mkpọchị nwa oge na-agafe agafe, ụzọ na-enweghị nnwale ahụ na-eche ka mkpọchị ahụ gafee n'okpuru otu oke ahụ ma kesaa ọzọ, kama ịza `503 ALL_TARGETS_SKIPPED` na-enweghị ntụzịaka. Mgbe achọtaghị ịchere (oke, nnwale ma ọ bụ ego enyere ezuola, ma ọ bụ a gbanyụrụ atụmatụ ahụ), nzaghachi ikpeazụ na-arịgo na `429 rate_limit_error` na-ebu `retry_after` / `reset_at` site na oge njedebe mkpọchị na-agafe agafe kacha nta; mkpọchị quota, auth na not-found na-edebe 503 na-enweghị ntụzịaka.
+Ngwakọta nwere ike ịpụ na `config.comboCooldownWaitEnabled: false`. Naanị `false` nkịtị na-eme ka echere combo ndị a na-ekekọrịta (ntụziaka nzipu ozi na tupu izipu circuit-open/model-lock na-echere) yana ndọtị oge nkwụsị nke mmefu ego ha. Na-efu ma ọ bụ `true` na-echekwa amụma zuru ụwa ọnụ; `true` enweghị ike ime ka ndị nwere nkwarụ zuru ụwa ọnụ ichere. `targetTimeoutMs` doro anya ka na-emeri. Nbupu a anaghị agbanwe iche iche-Codex turn-pin tupu izipu echere.
+
+Otu ọnụ ụzọ ámá ahụ na-ekpuchi ikpe tupu izipu (#16319): mgbe a na-amapụ ihe ọ bụla e lekwasịrị anya nke combo tupu emee mgbalị ọ bụla n'ihi na ihe nlereanya ya na-anọdụ ala n'ime obere nkwụsị oge na-agafe agafe, ụzọ efu efu na-echere mkpọchi n'okpuru otu ụlọ elu ma na-ezigaghachi, kama ịza `503 ALL_TARGETS_SKIPPED` na-enweghị atụ. Mgbe anabataghị echere (elu ụlọ, mbọ ma ọ bụ mmefu ego agwụla, ma ọ bụ njirimara ahụ kwụsịrị), nzaghachi ọnụ na-ebuli `429 rate_limit_error` na-ebu `retry_after` / `reset_at` site na njedebe mkpọchi oge mbụ; oke, auth na mkpọchi a na-ahụbeghị na-edobe ihe ngosi-503.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/ig/docs/guides/USER_GUIDE.md b/docs/i18n/ig/docs/guides/USER_GUIDE.md
index 55f0ea836182..1d3242cbda2b 100644
--- a/docs/i18n/ig/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/ig/docs/guides/USER_GUIDE.md
@@ -607,60 +607,60 @@ Maka ntụaka zuru ezu gbasara mgbanwe gburugburu, lee [README](../README.md).
---
-## 📊 Model Ndị Dị
+## 📊 Ụdị dị
-Lee model niile dị
+Lelee ụdị niile dị
-> Ndepụta dị n'okpuru a bụ nke a họpụtara site na `open-sse/config/providerRegistry.ts` maka v3.8.0. A na-asịnc ndepụta cloud (Gemini, OpenRouter, wdg.) n'ụzọ na-akpaghị aka — maka ndepụta zuru ezu dị adị n'oge a, mepee **Dashboard → Ndị Nnyefe → [provider] → Model Ndị Dị** ma ọ bụ kpọọ `GET /api/models/catalog`.
+> Edepụtara ndepụta dị n'okpuru site na `open-sse/config/providerRegistry.ts` maka v3.8.0. A na-emekọrịta katalọgụ igwe ojii (Gemini, OpenRouter, wdg) — nke ọma maka oghere katalọgụ dị ndụ zuru oke.** Dashboard → Ndị na-enye → [onye na-eweta] → Ụdị dị** ma ọ bụ kpọọ `GET /api/models/catalog`.
>
-> Ọ bụrụ na ndepụta e wuru n'ime nke onye nnyefe agbanweela, jiri **Bubata site na /models** na peeji ahụ (ma ọ bụ mụọ **Sịnc na-akpaghị aka**) iji dọta ndepụta ndị mmalite dị adị. E kwadoro nke a na v3.8.50 maka LLM7.io (`gemini-3.1-flash-lite`) na UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); ohere ndị a na-amaghị ama nke Pollinations ka nọrọ n'ọnọdụ a gbochiri site n'aka ndị mmalite n'oge otu nnwale ahụ.
+> Ọ bụrụ na ndepụta arụnyere n'ime onye na-eweta agafela, jiri** Bubata site na/ụdị** na ibe ahụ (ma ọ bụ gbanye** Mmekọrịta akpaaka** ) iji dọpụta katalọgụ dị n'elu. A kwadoro nke a na v3.8.50 maka LLM7.io (`gemini-3.1-flash-lite`) na UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Nnweta mgbasa ozi na-amaghị aha ka nwere oke oke n'oge otu ngafe ule ahụ.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Koodu Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ ọkwa mbọ: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ mgbalị tiers: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth N'EFU: jiri ndepụta dị adị a gosipụtara n'okpuru **Dashboard → Ndị Nnyefe → Kiro → Model Ndị Dị**. Ịnwe ya dabere na akaụntụ na atụmatụ.
+**Kiro (`kr/`)** — FREE OAuth: jiri ndụ katalọgụ egosiri n'okpuru** Dashboard → Ndị na-enye → Kiro → Ụdị dị** . Nnweta dabere na akaụntụ na atụmatụ.
-**Qoder (`if/`)** — OAuth N'EFU: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9 kwa ọnwa n'ọnụahịa kwụsiri ike ma ọ bụ kwa ojiji: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo flat ma ọ bụ kwa-eji: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — Igodo API: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** API — : `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Ọsọ oke: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Ultra-ngwa ngwa: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok nke xAI: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok nwa afọ: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — E debere na EU: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU kwadoro: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Nke ọchụchọ kwalitere: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Ihe mgbagwoju anya (`pplx/`)** — Achọ-augmented: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Koodu mepere emepe: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (n'efu), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — mepere emepe: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (n'efu), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Nkwubi okwu ngwa ngwa: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — ngwa ngwa: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Nha wafer: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Wafer-ọnụọgụ: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — RAG bụ isi: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG lekwasịrị anya: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Ụlọ ọrụ: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: A na-asịnc ya ozugbo kwa igodo API site na Google — enweghị ndepụta kwụsiri ike. Jikọọ igodo na **Dashboard → Ndị Nnyefe** wee jiri **Model Ndị Dị** bubata ndepụta dị ugbu a (dị ka `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : synced ndụ kwa igodo API sitere na Google — enweghị ndepụta kwụ ọtọ. Jikọọ igodo banye** Dashboard → ndị na-enye** wee jiri** Ụdị dị** ibubata katalọgụ dị ugbu a (dịka `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Ndị nnyefe ndị ọzọ kwekọrịrị** (ndị a họpụtara): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (site na `aws-bedrock`), `azure-ai`, `openrouter` (ndepụta na-agafe ozugbo), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Nke ọ bụla na-edebe ndepụta model nke ya na `providerRegistry.ts`, ma enwere ike isịnc ya na-akpaghị aka mgbe onye nnyefe ahụ na-akpughe endpoint `/models`.
+**Ndị na-eweta ndị ọzọ dakọtara** (họrọ): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (passthrough katalọgụ), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `friendliai` `bazaarlink`, `nous-research` `volcengine` `reka`, `ai21` `gigachat` Onye ọ bụla na-edobe ndepụta ụdị nke ya na `providerRegistry.ts` ma nwee ike ịmekọrịta ya na-akpaghị aka mgbe onye na-eweta kpughee njedebe `/models`.
-**Ndetụna gbasara ID model:** OmniRoute na-eji ID nke ndị nnyefe n'ụdị mbụ ha (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Ụfọdụ ID gụnyere ụdị nwere ntụpọ n'ihi na ọ bụ otú API nke ndị mmalite si atụ anya ha. Ọ bụrụ na anaghị edepụta model n'elu a, gbaa `omniroute models --search ` ma ọ bụ kpọọ `GET /api/models/catalog` iji kwenye na ọ dị.
+**Rịba ama na ụdị IDs:** OmniRoute na-eji onye na-eweta-nwaafọ IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Ụfọdụ IDs gụnyere nsụgharị nwere ntụpọ n'ihi na ọ bụ otú ahụ ka API elu na-atụ anya ha. Ọ bụrụ na edepụtaghị ihe nlereanya n'elu, gbaa `omniroute models --search ` ma ọ bụ kụọ `GET /api/models/catalog` iji gosi na ọ dị.
diff --git a/docs/i18n/it/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/it/docs/architecture/RESILIENCE_GUIDE.md
index f0d177d3f971..c543babff7c6 100644
--- a/docs/i18n/it/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/it/docs/architecture/RESILIENCE_GUIDE.md
@@ -289,25 +289,17 @@ attivi è effimero.
---
-## 4. Controllo della concorrenza Quota-Share (v3.8.36)
+## 4. Controllo della concorrenza delle quote di condivisione (v3.8.36)
-Gli account in abbonamento (GLM, MiniMax, ecc.) spesso accettano solo ~1–3 richieste
-concorrenti; superare tale limite scatena errori 429 e cooldown. Il problema è particolarmente
-acuto con le combo **quota-share** (`qtSd/…`), in cui diverse chiavi API condividono un
-unico account upstream. Tre livelli impediscono che un account condiviso venga sommerso.
+Gli account di abbonamento (GLM, MiniMax, ecc.) spesso accettano solo ~ 1–3 richieste simultanee; il superamento di tale limite attiva 429 e tempi di recupero. Questo è acuto sotto** condivisione delle quote** (`qtSd/…`), in cui diverse chiavi API condividono un account upstream. Tre livelli impediscono che un account condiviso venga inondato.
### Limite di concorrenza per connessione (`max_concurrent`)
-Ogni connessione provider può dichiarare un tetto `max_concurrent`
-(`provider_connections.max_concurrent`, impostato nel modale di connessione / API / DB).
-Lasciarlo vuoto per nessun limite. Questa è la singola manopola che guida il livello di
-serializzazione descritto sotto — impostarlo sulla concorrenza reale dell'account
-(ad es. GLM ~1, MiniMax ~2).
+Ogni connessione del provider può dichiarare un tetto `max_concurrent` (`provider_connections.max_concurrent`, impostato nel collegamento modale / API / DB). Lascialo vuoto per nessun limite. Questa è l'unica manopola che guida il livello di serializzazione sotto — impostandolo sulla concorrenza reale dell'account (ad esempio GLM ~ 1, MiniMax ~ 2).
### Limiti di concorrenza per modello (`modelConcurrency`)
-Una connessione può inoltre dichiarare tetti di concorrenza esatti per modello
-all'interno della sua mappa `rateLimitOverrides`:
+Una connessione può inoltre dichiarare i limiti esatti di concorrenza per modello all'interno della sua mappa `rateLimitOverrides` :
```json
{
@@ -318,76 +310,32 @@ all'interno della sua mappa `rateLimitOverrides`:
}
```
-Impostarlo nel modale di connessione (**Rate limit overrides → Limiti di concorrenza
-per modello**, un `model=cap` per riga) o tramite
-`PATCH /api/providers/[id]` con la stessa struttura JSON. Semantica delle chiavi:
-
-- **A livello di connessione vs specifico per modello:** `maxConcurrent` rimane il
- tetto condiviso a livello di connessione. Quando entrambi si applicano, entrambi i
- gate vengono acquisiti atomicamente nello stesso gate composito
- (`global → provider → account → model`); il comportamento effettivo è quello del
- limite applicabile più restrittivo.
-- **Corrispondenza esatta della chiave del modello:** la chiave è la stringa del
- modello passata all'executor dopo la risoluzione del routing — normalmente l'id
- del modello upstream puro (`glm-5`), non un alias lato client `provider/model`
- (`zai/glm-5` non corrisponde a `glm-5`). I valori sono tetti di richieste
- concorrenti espressi come interi positivi.
-- **Accodamento locale, nessuna discovery:** le richieste in eccesso vengono accodate
- localmente con la semantica esistente di coda/timeout (errori di ammissione
- tipizzati `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). OmniRoute non rileva né
- deduce la policy upstream — applica esattamente i tetti configurati
- dall'operatore. Un gate di modello saturo non disabilita mai il provider e non crea
- mai un lockout permanente del modello; il comportamento upstream di
- 429/cooldown/fallback rimane la rete di sicurezza per gli errori.
-- **Ambito per connessione, per processo:** i tetti sono per connessione database e
- mantenuti in memoria, quindi due connessioni che riutilizzano la stessa chiave API
- upstream non si coordinano tra loro.
-- **Non configurato significa invariato:** omettere la mappa (o lasciare vuoto il
- campo della dashboard) non aggiunge alcun gate di modello. Esempio di configurazione
- senza dichiarare alcun limite universale del provider:
+Impostalo nella connessione modale (** Il limite di velocità sostituisce → Limiti di concorrenza per modello** , uno `model=cap` per riga) o tramite `PATCH /api/providers/[id]` con la stessa forma JSON. Semantica chiave:
+
+- **A livello di connessione e specifico del modello:** `maxConcurrent` rimane il soffitto condiviso a livello di connessione. Quando si applicano entrambi, entrambe le porte vengono acquisite atomicamente nella stessa porta composita (`global → provider → account → model`); il comportamento efficace è il limite applicabile più rigoroso.
+- **Corrispondenza esatta modello-chiave:** la chiave è la stringa del modello passata all'esecutore dopo la risoluzione del routing — normalmente l'ID del modello upstream nudo (`glm-5`), non un alias `provider/model` lato client (`zai/glm-5` non corrisponde `glm-5`). I valori rappresentano i limiti massimi di richieste simultanee con numeri interi positivi.
+- **Accodamento locale, nessuna scoperta:** le richieste in eccesso vengono accodate localmente con la semantica queue/timeout esistente (errori di ammissione `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` digitati). OmniRoute non scopre né deduce la politica a monte — applica i massimali esatti configurati dall'operatore. Un gate del modello saturo non disabilita mai il provider e non crea mai un blocco permanente del modello; il comportamento 429/cooldown/fallback a monte rimane il backstop dell'errore.
+- **Ambito per connessione e per processo:** i limiti sono per connessione al database e mantenuti in memoria, quindi due connessioni che riutilizzano la stessa chiave API upstream non si coordinano tra loro.
+- **Non configurato significa invariato:** omettere la mappa (o lasciare vuoto il campo del dashboard) non aggiunge alcun cancello al modello. Configurazione di esempio senza imporre alcun limite al provider universale:
```text
glm-5=1
glm-4.7=3
```
-### Serializzazione delle richieste quota-share
-
-Quando un dispatch quota-share punta a una connessione che dichiara un
-`max_concurrent` positivo, le richieste concorrenti verso quell'**account** vengono
-serializzate tramite un semaforo per connessione (chiave `qsconn:`): le
-richieste in eccesso **attendono in coda** invece di sommergere l'account. È
-**fail-open** — una coda satura o un timeout procede senza uno slot piuttosto che
-rifiutare mai una richiesta dispatchabile. Attivabile in **Impostazioni → Resilienza →
-Concorrenza per connessione quota-share**
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, attivo per impostazione
-predefinita). Senza un tetto `max_concurrent` il comportamento è invariato.
-
-> Il gate di routing quota-share (`selectQuotaShareTarget`, DRR + P2C) è esso stesso
-> fail-open e si limita a _deprioritizzare_ una connessione al limite — con un pool a
-> connessione singola non può imporre un limite rigido, quindi è questo semaforo a
-> contenere effettivamente il flusso.
-
-### Retry consapevole del cooldown per le combo
-
-Per ogni strategia combo (quando abilitata), una richiesta che produrrebbe un 429
-per un cooldown transitorio BREVE ne attende la scadenza e riesegue il dispatch
-invece di restituire il 429 — questo copre le finestre TPM/RPM di classe Gemini
-(~60s di retry-after) sulle combo multi-modello, ad es. entrambi i target di una
-combo a 2 modelli che colpiscono un rate limit per modello. Delimitato da
-`comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) in
-**Impostazioni → Resilienza**. Non attende mai su `quota_exhausted` (bloccato fino a
-mezzanotte) né per motivi di autenticazione/non trovato.
-
-Lo stesso gate copre il caso pre-dispatch (#16319): quando ogni target di una combo
-viene saltato prima che venga effettuato qualsiasi tentativo perché il suo modello si
-trova in un lockout transitorio breve, il percorso a zero tentativi attende la
-scadenza del lock entro gli stessi tetti e riesegue il dispatch, invece di rispondere
-con un `503 ALL_TARGETS_SKIPPED` privo di hint. Quando nessuna attesa è consentita
-(tetto, tentativi o budget esauriti, oppure funzione disattivata), la risposta
-terminale viene promossa a `429 rate_limit_error` con `retry_after` / `reset_at`
-dalla scadenza del lock transitorio più vicina; i lock per quota, autenticazione e
-non trovato mantengono il 503 privo di hint.
+### Serializzazione delle richieste di quota-share
+
+Quando un invio di quota-share prende di mira una connessione che dichiara un `max_concurrent` positivo, vengono inviate richieste simultanee** account** vengono serializzati tramite un semaforo per connessione (tasto `qsconn:`): richieste in eccesso** aspettare in coda** invece di inondare il conto. È** fail-open** — una coda saturata o un timeout procede senza uno slot anziché rifiutare mai una richiesta inviabile. Attiva** Impostazioni → Resilienza → Concorrenza di quota per connessione** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, attivo per impostazione predefinita). Senza `max_concurrent` cap il comportamento rimane invariato.
+
+> Il gate di routing della quota-share (`selectQuotaShareTarget`, DRR + P2C) è esso stesso fail-open e _deprioritizza_ solo una connessione at-cap — con un pool a connessione singola che non può limitare in modo rigido, quindi questo semaforo è ciò che contiene effettivamente il flusso.
+
+### Nuovo tentativo combinato con riconoscimento del tempo di recupero
+
+Per ogni strategia combinata (se abilitata), una richiesta che cristallizzerebbe un 429 per un tempo di recupero temporaneo SHORT attende che finisca e rispedisce invece di restituire il 429 — questo copre le finestre TPM/RPM di classe Gemini (~ 60s retry-after) su combo multi-modello, ad esempio entrambi i target di una combo a 2 modelli che raggiungono un limite di velocità per modello. Delimitato da `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) in** Impostazioni → Resilienza** . Non attende mai i motivi `quota_exhausted` (bloccato fino a mezzanotte) o auth/not-found.
+
+Una combo può rinunciare con `config.comboCooldownWaitEnabled: false`. Solo `false` letterale disabilita queste attese combinate condivise (attese circuit-open/model-lock post-invio e pre-invio) e la relativa estensione del timeout del budget di attesa. Mancante o `true` preserva la politica globale; `true` non può abilitare l'attesa disabilitata a livello globale. Uno `targetTimeoutMs` esplicito vince comunque. Questa rinuncia non modifica l'attesa pre-invio separata del turn-pin del Codex nativo.
+
+Lo stesso cancello copre il caso pre-dispatch (#16319): quando ogni bersaglio di una combo viene saltato prima che venga effettuato qualsiasi tentativo perché il suo modello si trova in un breve blocco transitorio, il percorso zero-tentativo attende il blocco sotto gli stessi limiti e riesegue, invece di rispondere a un `503 ALL_TARGETS_SKIPPED` senza suggerimento. Quando non è consentita alcuna attesa (tetto, tentativo o budget esauriti o funzionalità disattivata), la risposta del terminale viene aggiornata a `429 rate_limit_error` trasportando `retry_after` / `reset_at` dalla prima scadenza del blocco temporaneo; i blocchi quota, autenticazione e non trovato mantengono il 503 senza suggerimenti.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/it/docs/guides/USER_GUIDE.md b/docs/i18n/it/docs/guides/USER_GUIDE.md
index 0d9ab516e66d..a33b8029b278 100644
--- a/docs/i18n/it/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/it/docs/guides/USER_GUIDE.md
@@ -612,55 +612,55 @@ Per il riferimento completo delle variabili d'ambiente, consultare il [README](.
Visualizza tutti i modelli disponibili
-> L'elenco seguente è curato da `open-sse/config/providerRegistry.ts` per la v3.8.0. I cataloghi cloud (Gemini, OpenRouter, ecc.) sono sincronizzati dinamicamente — per il catalogo completo e aggiornato apri **Dashboard → Provider → [provider] → Modelli disponibili** oppure chiama `GET /api/models/catalog`.
+> L'elenco seguente è curato da `open-sse/config/providerRegistry.ts` per v3.8.0. I cataloghi cloud (Gemini, OpenRouter, ecc.) vengono sincronizzati dinamicamente — per l'intero catalogo live aperto** Dashboard → Fornitori → [provider] → Modelli disponibili** oppure chiama `GET /api/models/catalog`.
>
-> Se l'elenco integrato di un provider non è più allineato, usa **Importa da /models** in quella pagina (oppure abilita **Sincronizzazione automatica**) per scaricare il catalogo aggiornato dall'upstream. Questo è stato verificato nella v3.8.50 per LLM7.io (`gemini-3.1-flash-lite`) e UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); l'accesso anonimo a Pollinations è rimasto limitato lato upstream durante lo stesso ciclo di test.
+> Se l'elenco integrato di un provider è andato alla deriva, utilizzare** Importa da /modelli** in quella pagina (o abilita** Sincronizzazione automatica** ) per estrarre il catalogo upstream live. Ciò è stato verificato nella versione 3.8.50 per LLM7.io (`gemini-3.1-flash-lite`) e UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); L'accesso anonimo alle impollinazioni è rimasto limitato a monte durante lo stesso passaggio di prova.
-**Claude Code (`cc/`)** — OAuth Pro/Max: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Codice Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — OAuth Plus/Pro: `cx/gpt-5.5` (+ livelli di effort: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` ( livelli di impegno + : `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth GRATUITO: usa il catalogo aggiornato mostrato in **Dashboard → Provider → Kiro → Modelli disponibili**. La disponibilità dipende dall'account e dal piano.
+**Kiro (`kr/`)** — FREE OAuth: utilizza il catalogo live mostrato sotto** Dashboard Fornitori → → Kiro → Modelli disponibili** . La disponibilità dipende dall'account e dal piano.
-**Qoder (`if/`)** — OAuth GRATUITO: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mese flat o a consumo: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo flat o per uso: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — Chiave API: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** Tasto — API : `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Ultra-veloce: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Ultraveloce: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
**xAI (`xai/`)** — Grok nativo: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Hosting nell'UE: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — Ospitato nell'UE: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Con ricerca integrata: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Perplessità (`pplx/`)** — Ricerca potenziata: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
**Together AI (`together/`)** — Open source: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (gratuito), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
**Fireworks AI (`fireworks/`)** — Inferenza veloce: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Wafer-scale: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Scala wafer: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Orientato al RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — focalizzato su RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Azienda: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Nuvola (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Sincronizzato in tempo reale per chiave API da Google — nessun elenco statico. Collega una chiave in **Dashboard → Provider** e poi usa **Modelli disponibili** per importare il catalogo corrente (es. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Nuvola `gemini/`)** : sincronizzato in tempo reale per chiave API da Google — senza elenco statico. Collegare una chiave** Fornitori → della dashboard** quindi utilizzare** Modelli disponibili** per importare il catalogo corrente (es. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Altri provider compatibili** (selezione): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (tramite `aws-bedrock`), `azure-ai`, `openrouter` (catalogo passthrough), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Ognuno mantiene il proprio elenco di modelli in `providerRegistry.ts` e può essere sincronizzato automaticamente quando il provider espone un endpoint `/models`.
+**Altri fornitori compatibili** (selezionato): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (catalogo passthrough), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Ciascuno mantiene il proprio elenco di modelli in `providerRegistry.ts` e può essere sincronizzato automaticamente quando il provider espone un endpoint `/models`.
-**Nota sugli ID dei modelli:** OmniRoute usa gli ID nativi dei provider (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Alcuni ID includono versioni con punti perché è così che l'API upstream li richiede. Se un modello non è elencato sopra, esegui `omniroute models --search ` oppure chiama `GET /api/models/catalog` per confermarne la disponibilità.
+**Nota sul modello IDs:** OmniRoute utilizza IDs nativo del provider (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Alcuni IDs includono versioni punteggiate perché è così che le aspetta lo API upstream. Se un modello non è elencato sopra, esegui `omniroute models --search ` o premi `GET /api/models/catalog` per confermare la disponibilità.
diff --git a/docs/i18n/ja/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/ja/docs/architecture/RESILIENCE_GUIDE.md
index 05cbdb695e7d..0e495d331f96 100644
--- a/docs/i18n/ja/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/ja/docs/architecture/RESILIENCE_GUIDE.md
@@ -282,22 +282,17 @@ _設定_は永続化されますが、アクティブなロックアウトの_
---
-## 4. クォータシェア同時実行制御 (v3.8.36)
+## 4. クォータ共有同時実行制御 (v3.8.36)
-サブスクリプションアカウント(GLM、MiniMax など)は、多くの場合、同時リクエストを約 1〜3 件しか受け付けません。これを超えると 429 エラーやクールダウンが発生します。これは、複数の API キーが 1 つのアップストリームアカウントを共有する **クォータシェア**(`qtSd/…`)コンボでは特に深刻です。3 つのレイヤーが共有アカウントの過負荷を防ぎます。
+サブスクリプション アカウント (GLM、 MiniMaxなど) は、多くの場合、 ~ 1 ~ 3 の同時リクエストのみを受け入れます。それを超えると、429 秒とクールダウンがトリガーされます。これは深刻です**クォータシェア**(`qtSd/…`) コンボ。複数のAPIキーが 1 つのアップストリーム アカウントを共有します。 3 つの層により、共有アカウントの洪水を防ぎます。
-### 接続ごとの同時実行上限(`max_concurrent`)
+### 接続ごとの同時実行数の上限 (`max_concurrent`)
-各プロバイダー接続は `max_concurrent` の上限を宣言できます
-(`provider_connections.max_concurrent`。接続モーダル / API / DB で設定)。
-制限なしにするには空のままにします。これが下記のシリアライゼーションレイヤーを
-駆動する唯一の設定項目です。アカウントの実際の同時実行数に合わせて設定してください
-(例: GLM は約 1、MiniMax は約 2)。
+各プロバイダー接続は、 `max_concurrent`上限 (`provider_connections.max_concurrent`、接続モーダル / API / DBで設定) を宣言できます。制限を設けない場合は空のままにします。これは、 —の下のシリアル化レイヤーを駆動し、アカウントの実際の同時実行性に設定する単一のノブです (例: GLM ~ 1、 MiniMax ~ 2)。
-### モデルごとの同時実行上限(`modelConcurrency`)
+### モデルごとの同時実行数の上限 (`modelConcurrency`)
-接続はさらに、`rateLimitOverrides` マップ内でモデルごとの正確な同時実行上限を
-宣言できます:
+接続では、 `rateLimitOverrides`マップ内でモデルごとの正確な同時実行上限をさらに宣言できます。
```json
{
@@ -308,74 +303,32 @@ _設定_は永続化されますが、アクティブなロックアウトの_
}
```
-接続モーダル(**レート制限オーバーライド → モデルごとの同時実行上限**、
-1 行に 1 つの `model=cap`)で設定するか、同じ JSON 形式で
-`PATCH /api/providers/[id]` を使って設定します。主なセマンティクス:
-
-- **接続全体 vs モデル固有:** `maxConcurrent` は共有の接続全体の上限のままです。
- 両方が適用される場合、両方のゲートが同じ複合ゲート
- (`global → provider → account → model`)内でアトミックに取得されます。
- 実際の動作は、適用される制限のうちより厳しい方になります。
-- **モデルキーの完全一致:** キーはルーティング解決後にエグゼキューターに渡される
- モデル文字列です。通常はアップストリームのモデル ID そのもの(`glm-5`)であり、
- クライアント側の `provider/model` エイリアスではありません
- (`zai/glm-5` は `glm-5` に一致しません)。値は正の整数の同時リクエスト上限です。
-- **ローカルキューイング、ディスカバリなし:** 超過したリクエストは、既存の
- キュー/タイムアウトセマンティクス(型付き `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL` アドミッションエラー)でローカルにキューイングされます。
- OmniRoute はアップストリームのポリシーを検出・推測しません。オペレーターが
- 設定した正確な上限を強制するだけです。飽和状態のモデルゲートはプロバイダーを
- 無効化せず、永続的なモデルロックアウトを作成することもありません。
- アップストリームの 429/クールダウン/フォールバック動作が引き続きエラーの
- 最終防衛線となります。
-- **接続ごと・プロセスごとのスコープ:** 上限はデータベース接続ごとに
- メモリ内に保持されるため、同じアップストリーム API キーを再利用する
- 2 つの接続は互いに調整されません。
-- **未設定は変更なしを意味する:** マップを省略する(またはダッシュボードの
- フィールドを空のままにする)場合、モデルゲートは追加されません。
- 汎用的なプロバイダー制限を主張しない設定例:
+接続モーダルで設定します (**レート制限は→モデルごとの同時実行上限をオーバーライドします**、1 行に 1 つの`model=cap` )、または同じJSON形状の`PATCH /api/providers/[id]`経由。主要なセマンティクス:
+
+- **接続全体とモデル固有:** `maxConcurrent`引き続き接続全体の共有上限です。両方が適用される場合、両方のゲートは同じ複合ゲート (`global → provider → account → model`) でアトミックに取得されます。効果的な動作は、より厳しい適用制限です。
+- **モデルキーの正確な一致:**キーは、ルーティング解決—の後にエグゼキューターに渡されるモデル文字列です。通常は、クライアント側の`provider/model`エイリアスではなく、裸のアップストリーム モデル ID (`glm-5`) です (`zai/glm-5` `glm-5`と一致しません)。値は正の整数の同時リクエストの上限です。
+- **ローカルキューイング、検出なし:**過剰なリクエストは、既存のqueue/timeoutセマンティクス (型指定された`SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`アドミッション エラー) でローカルにキューに入れられます。 OmniRoute 、アップストリーム ポリシー—を検出または推論しません。オペレータが設定した正確な上限を強制します。飽和したモデル ゲートはプロバイダーを無効にすることはなく、永続的なモデル ロックアウトを作成することもありません。アップストリームの429/cooldown/fallback動作はエラー バックストップのままです。
+- **接続ごと、プロセスごとのスコープ:**キャップはデータベース接続ごとに設定され、メモリ内に保持されるため、同じ上流のAPIキーを再利用する 2 つの接続は相互に調整されません。
+- **未構成とは、変更されていないことを意味します。**マップを省略した場合 (またはダッシュボード フィールドを空白のままにした場合)、モデル ゲートは追加されません。ユニバーサルプロバイダーの制限を設定しない構成例:
```text
glm-5=1
glm-4.7=3
```
-### クォータシェアのリクエストシリアライゼーション
-
-クォータシェアディスパッチが正の `max_concurrent` を宣言する接続を対象とする場合、
-その **アカウント** への同時リクエストは接続ごとのセマフォ(キー
-`qsconn:`)を通じてシリアライズされます。超過したリクエストは
-アカウントに殺到する代わりに **キューで待機** します。これは **フェイルオープン**
-です。キューが飽和した場合やタイムアウトした場合でも、ディスパッチ可能な
-リクエストを拒否することはなく、スロットなしで続行します。**設定 → レジリエンス →
-クォータシェア接続ごとの同時実行** で切り替えます
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`、デフォルトはオン)。
-`max_concurrent` 上限がない場合、動作は変更されません。
-
-> クォータシェアルーティングゲート(`selectQuotaShareTarget`、DRR + P2C)は
-> それ自体がフェイルオープンであり、上限に達した接続の _優先度を下げる_
-> だけです。単一接続プールではハードリミットできないため、実際に殺到を
-> 食い止めるのはこのセマフォです。
-
-### コンボのクールダウン対応リトライ
-
-すべてのコンボ戦略で(有効な場合)、短い一時的なクールダウンで 429 が確定する
-はずのリクエストは、429 を返す代わりにクールダウンが終わるまで待機して
-再ディスパッチします。これは、マルチモデルコンボでの Gemini クラスの
-TPM/RPM ウィンドウ(約 60 秒の retry-after)をカバーします。たとえば、
-2 モデルコンボの両方のターゲットがモデルごとのレート制限に達した場合などです。
-**設定 → レジリエンス** の `comboCooldownWait`(`enabled`、`maxWaitMs`、
-`maxAttempts`、`budgetMs`)で制限されます。`quota_exhausted`(午前 0 時まで
-ロック)や認証/not-found の理由では決して待機しません。
-
-同じゲートがディスパッチ前のケース(#16319)もカバーします。コンボのすべての
-ターゲットが、そのモデルが短い一時的なロックアウト中であるため、試行が行われる
-前にスキップされた場合、ゼロ試行パスは同じ上限の下でロックが解除されるまで
-待機して再ディスパッチします。ヒントなしの `503 ALL_TARGETS_SKIPPED` を返す
-代わりです。待機が許可されない場合(上限、試行回数、またはバジェットの枯渇、
-あるいは機能がオフの場合)、最終レスポンスは、最も早い一時ロックの期限から
-`retry_after` / `reset_at` を含む `429 rate_limit_error` にアップグレード
-されます。クォータ、認証、not-found のロックはヒントなしの 503 のままです。
+### クォータ共有リクエストのシリアル化
+
+クォータ共有ディスパッチが肯定的な`max_concurrent`宣言する接続をターゲットにすると、その接続に対する同時リクエストが発生します。**アカウント**接続ごとのセマフォ (キー`qsconn:`) を通じてシリアル化されます: 過剰なリクエスト**列に並んで待つ**アカウントに洪水を起こす代わりに。それは**フェールオープン**—飽和キューまたはタイムアウトは、ディスパッチ可能なリクエストを拒否するのではなく、スロットなしで続行されます。トグルイン**設定→復元力→接続ごとのクォータシェアの同時実行性**(`resilienceSettings.quotaShareConcurrencyLimit.enabled`、デフォルトはオン)。 `max_concurrent`キャップがない場合、動作は変わりません。
+
+> クォータ共有ルーティング ゲート (`selectQuotaShareTarget`、 DRR + P2C) 自体はフェールオープンであり、ハード制限できない単一接続プールを持つ上限接続—のみ_優先順位を下げる_ため、このセマフォが実際にフラッドを含むものになります。
+
+### コンボクールダウンを考慮した再試行
+
+すべてのコンボ戦略 (有効な場合) で、 SHORT一時的なクールダウンの 429 を結晶化するリクエストは、429 —を返す代わりに待機して再ディスパッチされます。これは、マルチモデル コンボでの Gemini クラスのTPM/RPMウィンドウ (~ 60 秒の再試行後) をカバーします (たとえば、2 モデル コンボの両方のターゲットがモデルごとのレート制限に達するなど)。 `comboCooldownWait` (`enabled`、 `maxWaitMs`、 `maxAttempts`、 `budgetMs`) によって制限されます。**設定→レジリエンス**。 `quota_exhausted` (真夜中までロック) やauth/not-found理由で待機することはありません。
+
+コンボは`config.comboCooldownWaitEnabled: false`でオプトアウトできます。リテラル`false`のみが、これらの共有コンボ待機 (ディスパッチ後のクールダウンとディスパッチ前のcircuit-open/model-lock待機) およびその待機バジェット タイムアウトフロアの拡張を無効にします。欠落しているか、 `true`グローバル ポリシーを保持します。 `true` 、グローバルに無効な待機を有効にすることはできません。明示的な`targetTimeoutMs`依然として勝ちます。このオプトアウトは、個別のネイティブ Codex ターンピンのディスパッチ前待機を変更しません。
+
+同じゲートは、ディスパッチ前のケース (#16319) をカバーします。モデルが短い一時的なロックアウト状態にあるため、コンボのすべてのターゲットが試行前にスキップされる場合、ゼロ試行パスは、ヒントのない`503 ALL_TARGETS_SKIPPED`に応答する代わりに、同じ上限の下でロックアウトを待って再ディスパッチします。待機が許可されない場合 (上限、試行または予算が使い果たされた場合、または機能がオフになった場合)、端末応答は、最も早い一時ロックの有効期限から`retry_after` / `reset_at`を保持する`429 rate_limit_error`にアップグレードされます。クォータ、認証、および not-found ロックにより、ヒントなしの 503 が維持されます。
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/ja/docs/guides/USER_GUIDE.md b/docs/i18n/ja/docs/guides/USER_GUIDE.md
index 9cfea711e092..391ea58eb6c9 100644
--- a/docs/i18n/ja/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/ja/docs/guides/USER_GUIDE.md
@@ -605,60 +605,60 @@ post_install() {
---
-## 📊 利用可能なモデル
+## 📊利用可能なモデル
-利用可能な全モデルを表示
+利用可能なすべてのモデルを表示
-> 以下のリストは v3.8.0 時点の `open-sse/config/providerRegistry.ts` から厳選したものです。クラウドカタログ(Gemini、OpenRouter など)は動的に同期されます — 最新の完全なカタログは **Dashboard → Providers → [provider] → Available Models** を開くか、`GET /api/models/catalog` を呼び出してください。
+> 以下のリストは、v3.8.0 の`open-sse/config/providerRegistry.ts`から厳選されたものです。クラウド カタログ (Gemini、 OpenRouterなど) は、完全なライブ カタログを開いている間—で動的に同期されます。**ダッシュボード→プロバイダー→ [プロバイダー] →利用可能なモデル**または`GET /api/models/catalog`を呼び出します。
>
-> プロバイダーの組み込みリストが古くなっている場合は、そのページの **Import from /models** を使用する(または **Auto-Sync** を有効にする)ことで、最新の上流カタログを取得できます。これは v3.8.50 で LLM7.io(`gemini-3.1-flash-lite`)および UncloseAI(`solidrust/Hermes-3-Llama-3.1-8B-AWQ`)について検証済みです。同じテスト工程で、Pollinations の匿名アクセスは上流側の制限により制約されたままでした。
+> プロバイダーの組み込みリストがずれている場合は、次を使用します。** /models からインポート**そのページで (または有効にします)**自動同期**) ライブアップストリームカタログをプルします。これは、v3.8.50 のLLM7.io (`gemini-3.1-flash-lite`) およびUncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) で検証されました。同じテストパス中、受粉の匿名アクセスは上流に制限されたままでした。
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`、`cc/claude-opus-4-7`、`cc/claude-opus-4-6`、`cc/claude-opus-4-5-20251101`、`cc/claude-sonnet-4-6`、`cc/claude-sonnet-4-5-20250929`、`cc/claude-haiku-4-5-20251001`
+**Claudeコード (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`、 `cc/claude-opus-4-7`、 `cc/claude-opus-4-6`、 `cc/claude-opus-4-5-20251101`、 `cc/claude-sonnet-4-6`、 `cc/claude-sonnet-4-5-20250929`、 `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5`(+ effort ティア: `gpt-5.5-xhigh`、`gpt-5.5-high`、`gpt-5.5-medium`、`gpt-5.5-low`)、`cx/gpt-5.4`、`cx/gpt-5.4-mini`、`cx/gpt-5.3-codex`、`cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+エフォート層: `gpt-5.5-xhigh`、 `gpt-5.5-high`、 `gpt-5.5-medium`、 `gpt-5.5-low`)、 `cx/gpt-5.4`、 `cx/gpt-5.4-mini`、 `cx/gpt-5.3-codex`、 `cx/gpt-5.3-codex-spark`
-**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`、`gh/gpt-5.4`、`gh/gpt-5.4-mini`、`gh/gpt-5-mini`、`gh/gpt-5.3-codex`、`gh/claude-opus-4.7`、`gh/claude-opus-4.6`、`gh/claude-opus-4-5-20251101`、`gh/claude-sonnet-4.6`、`gh/claude-sonnet-4.5`、`gh/claude-haiku-4.5`、`gh/gemini-3.1-pro-preview`、`gh/gemini-3-flash-preview`、`gh/oswe-vscode-prime`
+**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — 無料 OAuth: **Dashboard → Providers → Kiro → Available Models** に表示される最新カタログを使用してください。利用可能なモデルはアカウントとプランによって異なります。
+**Kiro (`kr/`)** — FREE OAuth: 以下に示すライブ カタログを使用します。**ダッシュボード→プロバイダー→ Kiro →利用可能なモデル**。利用できるかどうかはアカウントとプランによって異なります。
-**Qoder (`if/`)** — 無料 OAuth: `if/qwen3.8-max-preview`、`if/qwen3.7-max`、`if/qwen3.7-plus`、`if/kimi-k3`、`if/kimi-k2.7-code`、`if/glm-5.2`、`if/deepseek-v4-pro`、`if/deepseek-v4-flash`、`if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
-**GLM (`glm/`、`glm-cn/`、`zai/`、`glmt/`)** — $0.2〜0.6/1M: `glm/glm-5.1`、`glm/glm-5`、`glm/glm-5-turbo`、`glm/glm-4.7`、`glm/glm-4.7-flash`、`glm/glm-4.6`、`glm/glm-4.6v`、`glm/glm-4.5`、`glm/glm-4.5v`、`glm/glm-4.5-air`
+**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
-**MiniMax (`minimax/`、`minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`、`minimax/MiniMax-M2.7-highspeed`、`minimax/MiniMax-M2.5`、`minimax/MiniMax-M2.5-highspeed`
+**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`、`kimi-coding/`、`kimi-coding-apikey/`)** — 月額 $9 定額または従量課金: `kimi/kimi-k2.6`、`kimi/kimi-k2.5`
+**Kimi (`kimi/`、 `kimi-coding/`、 `kimi-coding-apikey/`)** — $9/moフラットまたは使用ごと: `kimi/kimi-k2.6`、 `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — API キー: `ds/deepseek-v4-pro`、`ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — APIキー: `ds/deepseek-v4-pro`、 `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — 超高速: `groq/llama-3.3-70b-versatile`、`groq/meta-llama/llama-4-maverick-17b-128e-instruct`、`groq/qwen/qwen3-32b`、`groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** —超高速: `groq/llama-3.3-70b-versatile`、 `groq/meta-llama/llama-4-maverick-17b-128e-instruct`、 `groq/qwen/qwen3-32b`、 `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok ネイティブ: `xai/grok-4.3`、`xai/grok-4.20-multi-agent-0309`、`xai/grok-4.20-0309-reasoning`、`xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grokネイティブ: `xai/grok-4.3`、 `xai/grok-4.20-multi-agent-0309`、 `xai/grok-4.20-0309-reasoning`、 `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU ホスティング: `mistral/mistral-large-latest`、`mistral/mistral-medium-3-5`、`mistral/mistral-small-latest`、`mistral/devstral-latest`、`mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU ホスト: `mistral/mistral-large-latest`、 `mistral/mistral-medium-3-5`、 `mistral/mistral-small-latest`、 `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — 検索拡張: `pplx/sonar-deep-research`、`pplx/sonar-reasoning-pro`、`pplx/sonar-pro`、`pplx/sonar`
+**パープレキシティ (`pplx/`)** —検索拡張: `pplx/sonar-deep-research`、 `pplx/sonar-reasoning-pro`、 `pplx/sonar-pro`、 `pplx/sonar`
-**Together AI (`together/`)** — オープンソース: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free`(無料)、`together/meta-llama/Llama-Vision-Free`、`together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`、`together/deepseek-ai/DeepSeek-R1`、`together/Qwen/Qwen3-235B-A22B`、`together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** —オープンソース: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (無料)、 `together/meta-llama/Llama-Vision-Free`、 `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`、 `together/deepseek-ai/DeepSeek-R1`、 `together/Qwen/Qwen3-235B-A22B`、 `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — 高速推論: `fireworks/accounts/fireworks/models/kimi-k2p6`、`fireworks/accounts/fireworks/models/minimax-m2p7`、`fireworks/accounts/fireworks/models/qwen3p6-plus`、`fireworks/accounts/fireworks/models/glm-5p1`、`fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** —高速推論: `fireworks/accounts/fireworks/models/kimi-k2p6`、 `fireworks/accounts/fireworks/models/minimax-m2p7`、 `fireworks/accounts/fireworks/models/qwen3p6-plus`、 `fireworks/accounts/fireworks/models/glm-5p1`、 `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — ウェハースケール: `cerebras/zai-glm-4.7`、`cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** —ウェーハスケール: `cerebras/zai-glm-4.7`、 `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — RAG 特化: `cohere/command-a-reasoning-08-2025`、`cohere/command-a-vision-07-2025`、`cohere/command-a-03-2025`、`cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG 中心: `cohere/command-a-reasoning-08-2025`、 `cohere/command-a-vision-07-2025`、 `cohere/command-a-03-2025`、 `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — エンタープライズ: `nvidia/z-ai/glm-5.1`、`nvidia/minimaxai/minimax-m2.7`、`nvidia/google/gemma-4-31b-it`、`nvidia/mistralai/mistral-small-4-119b-2603`、`nvidia/mistralai/mistral-large-3-675b-instruct-2512`、`nvidia/qwen/qwen3.5-397b-a17b`、`nvidia/deepseek-ai/deepseek-v4-pro`、`nvidia/openai/gpt-oss-120b`、`nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** —エンタープライズ: `nvidia/z-ai/glm-5.1`、 `nvidia/minimaxai/minimax-m2.7`、 `nvidia/google/gemma-4-31b-it`、 `nvidia/mistralai/mistral-small-4-119b-2603`、 `nvidia/mistralai/mistral-large-3-675b-instruct-2512`、 `nvidia/qwen/qwen3.5-397b-a17b`、 `nvidia/deepseek-ai/deepseek-v4-pro`、 `nvidia/openai/gpt-oss-120b`、 `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
-**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`、`qianfan/ernie-5.0-thinking-latest`、`qianfan/ernie-x1.1`
+**Baiduチェンファン (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`、 `qianfan/ernie-5.0-thinking-latest`、 `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`、`ollama-cloud/deepseek-v4-flash`、`ollama-cloud/kimi-k2.6`、`ollama-cloud/glm-5.1`、`ollama-cloud/minimax-m2.7`、`ollama-cloud/gemma4:31b`、`ollama-cloud/qwen3.5:397b`
+**Ollamaクラウド (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`、 `ollama-cloud/deepseek-v4-flash`、 `ollama-cloud/kimi-k2.6`、 `ollama-cloud/glm-5.1`、 `ollama-cloud/minimax-m2.7`、 `ollama-cloud/gemma4:31b`、 `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: API キーごとに Google からリアルタイムで同期されます — 静的なリストはありません。**Dashboard → Providers** でキーを接続し、**Available Models** を使って最新のカタログをインポートしてください(例: `gemini/gemini-3-pro`、`gemini/gemini-3-flash`)。
+**Gemini (Googleクラウド`gemini/`)** : Google —静的リストからAPIキーごとにライブで同期されました。キーを接続します**ダッシュボード→プロバイダー**それから使用します**利用可能なモデル**現在のカタログ (例: `gemini/gemini-3-pro`、 `gemini/gemini-3-flash`) をインポートします。
-**その他の互換プロバイダー**(抜粋): `cohere`、`databricks`、`snowflake`、`together`、`vertex`、`alibaba`、`alibaba-cn`、`bedrock`(`aws-bedrock` 経由)、`azure-ai`、`openrouter`(パススルーカタログ)、`siliconflow`、`hyperbolic`、`huggingface`、`featherless-ai`、`cloudflare-ai`、`scaleway`、`deepinfra`、`vercel-ai-gateway`、`bazaarlink`、`friendliai`、`nous-research`、`reka`、`volcengine`、`ai21`、`gigachat`。各プロバイダーは `providerRegistry.ts` 内で独自のモデルリストを管理しており、プロバイダーが `/models` エンドポイントを公開している場合は自動同期が可能です。
+**その他の互換性のあるプロバイダー**(選択): `cohere`、 `databricks`、 `snowflake`、 `together`、 `vertex`、 `alibaba`、 `alibaba-cn`、 `bedrock` ( `aws-bedrock`)、 `azure-ai`、 `openrouter` (パススルー カタログ)、 `siliconflow`、 `hyperbolic`、 `huggingface`、 `featherless-ai`、 `cloudflare-ai`、 `scaleway`、 `deepinfra`、 `vercel-ai-gateway`、 `bazaarlink`、 `friendliai`、 `nous-research`、 `reka`、 `volcengine`、 `ai21`、 `gigachat`。それぞれが`providerRegistry.ts`に独自のモデル リストを維持し、プロバイダーが`/models`エンドポイントを公開すると自動同期できます。
-**モデル ID に関する注意:** OmniRoute はプロバイダーネイティブの ID(`claude-opus-4-8`、`gpt-5.5`、`glm-5.1`、`MiniMax-M2.7`、`kimi-k2.5`、`grok-4.20-0309-reasoning`)を使用します。一部の ID にドット区切りのバージョンが含まれているのは、上流の API がその形式を要求するためです。上記に記載されていないモデルがある場合は、`omniroute models --search ` を実行するか、`GET /api/models/catalog` にアクセスして利用可否を確認してください。
+**モデルIDsに関する注意:** OmniRouteプロバイダーネイティブのIDs (`claude-opus-4-8`、 `gpt-5.5`、 `glm-5.1`、 `MiniMax-M2.7`、 `kimi-k2.5`、 `grok-4.20-0309-reasoning`) を使用します。一部のIDsにはドット付きバージョンが含まれています。これは、上流のAPIドット付きバージョンを予期しているためです。モデルが上記にリストされていない場合は、 `omniroute models --search `を実行するか、 `GET /api/models/catalog`を押して可用性を確認してください。
diff --git a/docs/i18n/ka/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/ka/docs/architecture/RESILIENCE_GUIDE.md
index cd8dcf4492ad..05f7a3c1d6bc 100644
--- a/docs/i18n/ka/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/ka/docs/architecture/RESILIENCE_GUIDE.md
@@ -283,25 +283,17 @@ combo სამიზნის წარმატებაზე `open-sse/servi
---
-## 4. Quota-share პარალელურობის კონტროლი (v3.8.36)
+## 4. Quota-Share Concurrency Control (v3.8.36)
-სააბონენტო ანგარიშები (GLM, MiniMax და ა.შ.) ხშირად იღებენ მხოლოდ ~1–3 ერთდროულ
-მოთხოვნას; ამ ზღვრის გადაჭარბება იწვევს 429 შეცდომებსა და cooldown-ებს. ეს განსაკუთრებით მწვავეა
-**quota-share** (`qtSd/…`) კომბოების შემთხვევაში, სადაც რამდენიმე API გასაღები ერთ აპსტრიმ
-ანგარიშს იზიარებს. სამი ფენა იცავს გაზიარებულ ანგარიშს გადატვირთვისგან.
+სააბონენტო ანგარიშები (GLM, MiniMax და ა.შ.) ხშირად იღებენ მხოლოდ ~ 1–3 ერთდროულ მოთხოვნას; ამის გადაჭარბება იწვევს 429-ს და გაგრილებას. ეს არის მწვავე ქვეშ** კვოტა-წილი** (`qtSd/…`) კომბინაციები, სადაც რამდენიმე API კლავიატურა იზიარებს ერთ ზედა ნაკადის ანგარიშს. სამი ფენა იცავს საერთო ანგარიშს დატბორვისგან.
-### თითო კავშირის პარალელურობის ზღვარი (`max_concurrent`)
+### თითო კავშირის კონკურენტულობის ქუდი (`max_concurrent`)
-თითოეულ პროვაიდერის კავშირს შეუძლია გამოაცხადოს `max_concurrent` ზღვარი
-(`provider_connections.max_concurrent`, იყენება კავშირის მოდალში / API-ში / DB-ში).
-დატოვეთ ცარიელი ლიმიტის არქონისთვის. ეს არის ერთადერთი რეგულატორი, რომელიც მართავს
-ქვემოთ აღწერილ სერიალიზაციის ფენას — დააყენეთ იგი ანგარიშის რეალურ
-პარალელურობაზე (მაგ. GLM ~1, MiniMax ~2).
+თითოეულ პროვაიდერ კავშირს შეუძლია გამოაცხადოს `max_concurrent` ჭერი (`provider_connections.max_concurrent`, დაყენებულია კავშირში modal / API / DB). დატოვეთ ცარიელი უსაზღვროდ. ეს არის ერთი ღილაკი, რომელიც მართავს სერიალიზაციის ფენას — ქვემოთ, დააყენეთ იგი ანგარიშის რეალურ კონკურენტულობაზე (მაგ. GLM ~ 1, MiniMax ~ 2).
-### თითო მოდელის პარალელურობის ზღვრები (`modelConcurrency`)
+### თითო მოდელის კონკურენტული ქუდები (`modelConcurrency`)
-კავშირს დამატებით შეუძლია გამოაცხადოს ზუსტი თითო მოდელის პარალელურობის
-ზღვრები თავის `rateLimitOverrides` რუკაში:
+კავშირს შეუძლია დამატებით გამოაცხადოს ზუსტი თითო მოდელის კონკურენტულობის ჭერი მისი `rateLimitOverrides` რუკაში:
```json
{
@@ -312,77 +304,32 @@ combo სამიზნის წარმატებაზე `open-sse/servi
}
```
-დააყენეთ იგი კავშირის მოდალში (**Rate limit-ის გადაფარვები → თითო მოდელის
-პარალელურობის ზღვრები**, თითო `model=cap` თითო ხაზზე) ან
-`PATCH /api/providers/[id]`-ით იგივე JSON ფორმით. ძირითადი სემანტიკა:
-
-- **მთელი კავშირის vs მოდელ-სპეციფიკური:** `maxConcurrent` რჩება მთელი
- კავშირის გაზიარებულ ზღვრად. როდესაც ორივე მოქმედებს, ორივე კარი
- ატომურად ითხოვება ერთი და იგივე კომპოზიტური კარიდან
- (`global → provider → account → model`); ეფექტური ქცევა არის
- უფრო მკაცრი გამოყენებადი ლიმიტი.
-- **მოდელის გასაღების ზუსტი დამთხვევა:** გასაღები არის მოდელის სტრიქონი, რომელიც
- გადაეცემა შემსრულებელს მარშრუტიზაციის გარჩევის შემდეგ — ჩვეულებრივ,
- აპსტრიმ მოდელის „სუფთა" id
- (`glm-5`), და არა კლიენტის მხარის `provider/model` ალიასი (`zai/glm-5` არ
- ემთხვევა `glm-5`-ს). მნიშვნელობები არის დადებითი მთელი რიცხვის სახის
- ერთდროული მოთხოვნების ზღვრები.
-- **ლოკალური რიგი, აღმოჩენის გარეშე:** ზედმეტი მოთხოვნები ლოკალურად რიგში დგებიან
- არსებული რიგის/timeout-ის სემანტიკით (ტიპიზებული `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL` დაშვების შეცდომებით). OmniRoute არ აღმოაჩენს და არ
- გამოიტანს აპსტრიმ პოლიტიკას — ის აღასრულებს ზუსტად იმ ზღვრებს, რომლებიც
- ოპერატორმა დააკონფიგურირა. გაჯერებული მოდელის კარი არასოდეს თიშავს პროვაიდერს
- და არასოდეს ქმნის მოდელის მუდმივ ლოკაუტს; აპსტრიმ 429/cooldown/fallback
- ქცევა რჩება შეცდომების საყრდენად.
-- **თითო კავშირის, თითო პროცესის ფარგლები:** ზღვრები მოქმედებს მონაცემთა ბაზის
- თითო კავშირზე და ინახება მეხსიერებაში, ამიტომ ორი კავშირი, რომლებიც ერთსა და
- იმავე აპსტრიმ API გასაღებს იყენებენ, ერთმანეთთან არ კოორდინრდება.
-- **უკონფიგურაციო ნიშნავს უცვლელს:** რუკის გამოტოვება (ან დეშბორდის ველის
- ცარიელად დატოვება) არ ამატებს მოდელის კარს. კონფიგურაციის მაგალითი
- რაიმე უნივერსალური პროვაიდერის ლიმიტის მტკიცების გარეშე:
+დააყენეთ კავშირის მოდალში (** ტარიფის ლიმიტი არღვევს → თითო მოდელის კონკურენტულ ზღვრებს** , ერთი `model=cap` სტრიქონზე) ან `PATCH /api/providers/[id]` მეშვეობით იგივე JSON ფორმის. ძირითადი სემანტიკა:
+
+- **კავშირის მასშტაბი და მოდელის სპეციფიკური:** `maxConcurrent` რჩება საერთო კავშირის ჭერად. როდესაც ორივე გამოიყენება, ორივე კარიბჭე მიიღება ატომურად იმავე კომპოზიციურ კარიბჭეში (`global → provider → account → model`); ეფექტური ქცევა არის უფრო მკაცრი მოქმედი ლიმიტი.
+- **მოდელი-გასაღების ზუსტი დამთხვევა:** მთავარია მოდელის სტრიქონი, რომელიც გადაეცემა შემსრულებელს — გარჩევადობის მარშრუტიზაციის შემდეგ, ჩვეულებრივ, შიშველი ზემოთ მოყვანილი მოდელის id (`glm-5`) და არა კლიენტის მხარეს `provider/model` ალიასი (`zai/glm-5` არ ემთხვევა `glm-5`). მნიშვნელობები არის დადებითი მთელი რიცხვის თანმხლები მოთხოვნის ჭერი.
+- **ლოკალური რიგი, აღმოჩენა არ არის:** ზედმეტი მოთხოვნები ლოკალურად დგას არსებული queue/timeout სემანტიკით (აკრეფილი `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` დაშვების შეცდომები). OmniRoute არ აღმოაჩენს ან არ გამოიტანს დასკვნას ზემოთ ნაკადის პოლიტიკაზე — ის ახორციელებს ოპერატორის მიერ კონფიგურირებულ ზუსტ ჭერებს. გაჯერებული მოდელის კარიბჭე არასოდეს გამორთავს პროვაიდერს და არასოდეს ქმნის მოდელის მუდმივ ჩაკეტვას; ზემოთ 429/cooldown/fallback ქცევა რჩება შეცდომა backstop.
+- **თითო კავშირი, თითო პროცესის ფარგლები:** caps არის მონაცემთა ბაზის კავშირზე და ინახება მეხსიერებაში, ასე რომ, ორი კავშირი, რომლებიც ხელახლა იყენებენ იგივე API კლავიშს, არ კოორდინირებულია ერთმანეთთან.
+- **არაკონფიგურირებული ნიშნავს უცვლელს:** რუკის გამოტოვება (ან დაფის ველის ცარიელი დატოვება) არ ამატებს მოდელის კარიბჭეს. კონფიგურაციის მაგალითი უნივერსალური პროვაიდერის ლიმიტის დამტკიცების გარეშე:
```text
glm-5=1
glm-4.7=3
```
-### Quota-share მოთხოვნების სერიალიზაცია
-
-როდესაც quota-share დისპეტჩი მიზნად ისახავს კავშირს, რომელიც აცხადებს დადებით
-`max_concurrent`-ს, ამ **ანგარიშზე** ერთდროული მოთხოვნები სერიალიზდება
-თითო კავშირის სემაფორით (გასაღები `qsconn:`): ზედმეტი მოთხოვნები
-**ელოდებიან რიგში** ანგარიშის გადატვირთვის ნაცვლად. ის **fail-open**-ია —
-გაჯერებული რიგის ან timeout-ის შემთხვევაში მოთხოვნა გრძელდება სლოტის გარეშე, ვიდრე
-ოდესმე უარს იტყოდეს დისპეტჩის ღირს მოთხოვნაზე. გადართეთ
-**პარამეტრები → მდგრადობა → Quota-share თითო კავშირის პარალელურობა**-ში
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, ნაგულისხმევად ჩართულია).
-`max_concurrent` ზღვრის გარეშე ქცევა უცვლელი რჩება.
-
-> Quota-share მარშრუტიზაციის კარი (`selectQuotaShareTarget`, DRR + P2C) თავისთავად
-> fail-open-ია და მხოლოდ _ამცირებს პრიორიტეტს_ ლიმიტზე მყოფი კავშირისთვის —
-> ერთკავშირიანი პულით მას არ შეუძლია მკაცრი შეზღუდვა, ამიტომ სწორედ ეს სემაფორია
-> ის, რაც რეალურად თრგუნავს წარღვნას.
-
-### კომბოს cooldown-ზე ინფორმირებული ხელახალი ცდა
-
-ყველა კომბო სტრატეგიისთვის (როცა ჩართულია), მოთხოვნა, რომელიც მოკლე გარდამავალი
-cooldown-ის გამო 429-ად დაიფიქსირებოდა, ელოდება მის გასვლას და ხელახლა იგზავნება
-429-ის დაბრუნების ნაცვლად — ეს მოიცავს Gemini-კლასის TPM/RPM ფანჯრებს (~60წმ
-retry-after) მრავალმოდელიან კომბოებში, მაგ. 2-მოდელიანი კომბოს ორივე მიზნის
-მოხვედრას მოდელზე დაწესებულ rate limit-ში. შეზღუდულია `comboCooldownWait`-ით
-(`enabled`, `maxWaitMs`, `maxAttempts`,
-`budgetMs`) **პარამეტრები → მდგრადობა**-ში. ის არასოდეს ელოდება
-`quota_exhausted`-ს (შუაღამემდე დაბლოკილი) ან auth/not-found მიზეზებს.
-
-იგივე კარი მოიცავს დისპეტჩამდის შემთხვევას (#16319): როდესაც კომბოს
-ყველა მიზანი გამოტოვებულია ნებისმიერი მცდელობის განხორციელებამდე, რადგან მისი მოდელი
-მოკლე გარდამავალ ლოკაუტშია, ნულოვანი მცდელობის გზა იგივე ზღვრებით ელოდება
-ლოკის გასვლას და ხელახლა იგზავნება, მინიშნებების გარეშე
-`503 ALL_TARGETS_SKIPPED`-ით პასუხის ნაცვლად. როდესაც ლოდინი დაუშვებელია
-(ზღვარი, მცდელობა ან ბიუჯეტი ამოწურულია, ან ფუნქცია გამორთულია),
-საბოლოო პასუხი აიწევს `429 rate_limit_error`-მდე, რომელიც შეიცავს
-`retry_after` / `reset_at`-ს ყველაზე ადრეული გარდამავალი ლოკის ვადის
-გასვლიდან; quota, auth და not-found ლოკები ინარჩუნებენ მინიშნების გარეშე 503-ს.
+### კვოტის გაზიარების მოთხოვნის სერიალიზაცია
+
+როდესაც კვოტის წილის გაგზავნა მიზნად ისახავს კავშირს, რომელიც აცხადებს პოზიტიურ `max_concurrent`, ამას ერთდროულად ითხოვს** ანგარიში** სერიული ხდება თითო კავშირის სემაფორის საშუალებით (გასაღები `qsconn:`): ზედმეტი მოთხოვნები** დაველოდოთ რიგში** ანგარიშის დატბორვის ნაცვლად. ეს არის** fail-open** — გაჯერებული რიგი ან ვადის ამოწურვა მიმდინარეობს სლოტის გარეშე, ვიდრე ოდესმე უარყოს გაგზავნადი მოთხოვნა. გადართვა** პარამეტრები → Resilience → Quota-share per-connection concurrency** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, ნაგულისხმევი ჩართული). `max_concurrent` ქუდის გარეშე ქცევა უცვლელია.
+
+> კვოტის გაზიარების მარშრუტიზაციის კარიბჭე (`selectQuotaShareTarget`, DRR + P2C) თავისთავად არის მარცხი გახსნილი და მხოლოდ _ ამცირებს ქუდის კავშირს — ერთი შეერთების აუზით, რომელიც მას არ შეუძლია შეზღუდოს, ამიტომ ეს სემაფორი არის ის, რაც რეალურად შეიცავს წყალდიდობას.
+
+### Combo cooldown-aware ხელახლა ცდა
+
+ყოველი კომბინირებული სტრატეგიისთვის (როდესაც ჩართულია), მოთხოვნა, რომელიც დააკრისტალებს 429-ს SHORT გარდამავალი გაგრილებისთვის, ელოდება მას და ხელახლა აგზავნის 429 — ის დაბრუნების ნაცვლად, ეს მოიცავს Gemini-ის კლასის TPM/RPM ფანჯრებს (~ 60-ის ხელახალი ცდა-შემდეგ) მრავალ მოდელის hi-model-ის კომბინირებული სიხშირე, eg. ლიმიტი. შემოსაზღვრულია `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) in** პარამეტრები → გამძლეობა** . ის არასოდეს ელოდება `quota_exhausted` (დაბლოკილია შუაღამემდე) ან auth/not-found მიზეზებზე.
+
+კომბინაციას შეუძლია უარი თქვას `config.comboCooldownWaitEnabled: false` სთან ერთად. მხოლოდ ლიტერატურული `false` გამორთავს ამ გაზიარებულ კომბინირებულ მოლოდინებს (გაგზავნის შემდგომი გაგრილება და წინასწარი გაგზავნის circuit-open/model-lock ლოდინი) და მათ ლოდინის ბიუჯეტის დროის ამოწურვა-სართულის გაფართოება. დაკარგული ან `true` ინარჩუნებს გლობალურ პოლიტიკას; `true` ვერ ჩართავს გლობალურად გამორთული ლოდინი. აშკარა `targetTimeoutMs` მაინც იმარჯვებს. ეს გამორთვა არ ცვლის ცალკეული native-Codex-ის მიბრუნების პინის წინასწარ გაგზავნის ლოდინს.
+
+იგივე კარიბჭე ფარავს წინასწარ გაგზავნის შემთხვევას (#16319): როდესაც კომბინაციის ყველა სამიზნე გამოტოვებულია რაიმე მცდელობამდე, რადგან მისი მოდელი ზის მოკლე დროებით ჩაკეტვაში, ნულოვანი მცდელობის გზა ელოდება საკეტს იმავე ჭერის ქვეშ და ხელახლა აგზავნის, ნაცვლად იმისა, რომ უპასუხოს მინიშნებას ნაკლები `503 ALL_TARGETS_SKIPPED`. როდესაც ლოდინი არ არის დაშვებული (ჭერი, მცდელობა ან ბიუჯეტი ამოწურულია, ან ფუნქცია გამორთულია), ტერმინალის პასუხი განახლდება `429 rate_limit_error`, რომელიც ატარებს `retry_after` / `reset_at` ყველაზე ადრეული გარდამავალი საკეტის ვადის გასვლიდან; კვოტა, ავტორიზაცია და არ აღმოჩენილი საკეტები ინარჩუნებს მინიშნებას 503-ს.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/ka/docs/guides/USER_GUIDE.md b/docs/i18n/ka/docs/guides/USER_GUIDE.md
index 4fb1ee014949..d376ffa0c1a5 100644
--- a/docs/i18n/ka/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/ka/docs/guides/USER_GUIDE.md
@@ -612,57 +612,57 @@ post_install() {
## 📊 ხელმისაწვდომი მოდელები
-ყველა ხელმისაწვდომი მოდელის ნახვა
+იხილეთ ყველა ხელმისაწვდომი მოდელი
-> ქვემოთ მოცემული სია შედგენილია `open-sse/config/providerRegistry.ts`-დან v3.8.0-ისთვის. ღრუბლოვანი კატალოგები (Gemini, OpenRouter და ა.შ.) სინქრონიზდება დინამიურად — სრული მიმდინარე კატალოგისთვის გახსენით **დეშბორდი → პროვაიდერები → [provider] → ხელმისაწვდომი მოდელები** ან გამოიძახეთ `GET /api/models/catalog`.
+> ქვემოთ მოყვანილი სია შედგენილია `open-sse/config/providerRegistry.ts` დან v3.8.0-ისთვის. ღრუბლოვანი კატალოგები (Gemini, OpenRouter და ა.შ.) სინქრონიზებულია დინამიურად — სრული ცოცხალი კატალოგისთვის ღიაა** დაფა → პროვაიდერები → [პროვაიდერი] → ხელმისაწვდომი მოდელები** ან დარეკეთ `GET /api/models/catalog`.
>
-> თუ პროვაიდერის ჩაშენებული სია მოძველდა, იმ გვერდზე გამოიყენეთ **იმპორტი /models-დან** (ან ჩართეთ **ავტო-სინქრონიზაცია**) მიმდინარე upstream კატალოგის მისაღებად. ეს გადამოწმდა v3.8.50-ში LLM7.io-სთვის (`gemini-3.1-flash-lite`) და UncloseAI-სთვის (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Pollinations-ის ანონიმური წვდომა იგივე ტესტირების ციკლში კვლავ შეზღუდული რჩებოდა upstream-ის მხრიდან.
+> თუ პროვაიდერის ჩაშენებული სია შეიცვალა, გამოიყენეთ** იმპორტი / მოდელებიდან** ამ გვერდზე (ან ჩართეთ** ავტომატური სინქრონიზაცია** ) პირდაპირი დინების კატალოგების ამოსაღებად. ეს დამოწმებული იყო v3.8.50-ში LLM7.io (`gemini-3.1-flash-lite`) და UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); დამბინძურებლების ანონიმური წვდომა რჩებოდა ზემოთ-შეზღუდული იმავე ტესტის დროს.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude კოდი (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort-ის დონეები: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ ძალისხმევის დონეები: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — უფასო OAuth: გამოიყენეთ მიმდინარე კატალოგი, ნაჩვენები **დეშბორდი → პროვაიდერები → Kiro → ხელმისაწვდომი მოდელები** განყოფილებაში. ხელმისაწვდომობა დამოკიდებულია ანგარიშსა და ტარიფზე.
+**Kiro (`kr/`)** — FREE OAuth: გამოიყენეთ ცოცხალი კატალოგი, რომელიც ნაჩვენებია ქვემოთ** დაფა → პროვაიდერები → Kiro → ხელმისაწვდომი მოდელები** . ხელმისაწვდომობა დამოკიდებულია ანგარიშზე და გეგმაზე.
-**Qoder (`if/`)** — უფასო OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/თვე ფიქსირებული ან გამოყენების მიხედვით: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo ბინა ან ერთჯერადი გამოყენება: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — API გასაღები: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — ულტრასწრაფი: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — ულტრა სწრაფი: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok ნატივური: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok მშობლიური: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — ევროკავშირში ჰოსტინგით: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — ევროკავშირის მასპინძლობს: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — ძიებით გაძლიერებული: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**გაურკვევლობა (`pplx/`)** — ძიება-გადიდებული: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — ღია კოდი: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (უფასო), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — ღია წყარო: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (უფასო), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — სწრაფი ინფერენცია: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — სწრაფი დასკვნა: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — ვეიფერ-მასშტაბის: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — ვაფლის მასშტაბი: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
**Cohere (`cohere/`)** — RAG-ზე ორიენტირებული: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — საწარმოო დონის: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: სინქრონიზდება მიმდინარედ, თითოეული API გასაღებისთვის, Google-დან — სტატიკური სია არ არსებობს. დააკავშირეთ გასაღები **დეშბორდი → პროვაიდერები** განყოფილებაში, შემდეგ გამოიყენეთ **ხელმისაწვდომი მოდელები** მიმდინარე კატალოგის იმპორტისთვის (მაგ. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google ღრუბელი `gemini/`)** : პირდაპირი სინქრონიზაცია API კლავიშზე Google — სტატიკური სიიდან არ არის. შეაერთეთ გასაღები** დაფის → პროვაიდერები** შემდეგ გამოიყენეთ** ხელმისაწვდომი მოდელები** მიმდინარე კატალოგის იმპორტისთვის (მაგ. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**სხვა თავსებადი პროვაიდერები** (არჩეული): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (`aws-bedrock`-ის მეშვეობით), `azure-ai`, `openrouter` (გადამცემი კატალოგი), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. თითოეული მათგანი ინახავს საკუთარ მოდელების სიას `providerRegistry.ts`-ში და შეიძლება ავტომატურად სინქრონიზდეს, როდესაც პროვაიდერი ამჟღავნებს `/models` ენდპოინტს.
+**სხვა თავსებადი პროვაიდერები** (არჩეული): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` ( `aws-bedrock`) , `azure-ai`, `openrouter` (გასასვლელი კატალოგი), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `friendliai` `vercel-ai-gateway` `bazaarlink`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. თითოეულ მათგანს აქვს საკუთარი მოდელების სია `providerRegistry.ts` ში და შეიძლება ავტომატურად სინქრონიზდეს, როდესაც პროვაიდერი გამოავლენს `/models` საბოლოო წერტილს.
-**შენიშვნა მოდელის ID-ების შესახებ:** OmniRoute იყენებს პროვაიდერის ნატივურ ID-ებს (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). ზოგიერთი ID შეიცავს წერტილიან ვერსიებს, რადგან upstream API სწორედ ამ ფორმატს მოელის. თუ მოდელი ზემოთ ჩამოთვლილი არ არის, გაუშვით `omniroute models --search ` ან მიმართეთ `GET /api/models/catalog` ხელმისაწვდომობის დასადასტურებლად.
+**შენიშვნა IDs მოდელზე:** OmniRoute იყენებს პროვაიდერის მშობლიურ IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). ზოგიერთი IDs შეიცავს წერტილოვან ვერსიებს, რადგან ასე მოელის მათ ზედა დინების API. თუ მოდელი არ არის ჩამოთვლილი ზემოთ, გაუშვით `omniroute models --search ` ან დააჭირეთ `GET /api/models/catalog` ხელმისაწვდომობის დასადასტურებლად.
diff --git a/docs/i18n/km/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/km/docs/architecture/RESILIENCE_GUIDE.md
index dd063f5af480..e8de44844af8 100644
--- a/docs/i18n/km/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/km/docs/architecture/RESILIENCE_GUIDE.md
@@ -285,17 +285,17 @@ DB ទេ — វាបាត់នៅពេល restart ។ _ការកំណ
---
-## 4. ការគ្រប់គ្រង Concurrency របស់ Quota-Share (v3.8.36)
+## 4. ការគ្រប់គ្រងការចែករំលែកកូតា (v3.8.36)
-គណនីកម្រិតជាវ (GLM, MiniMax ជាដើម) ភាគច្រើនទទួលបានតែសំណើ concurrent ប្រហែល ~1–3 ប៉ុណ្ណោះ បើលើសពីនេះនឹងបង្កឲ្យមាន 429 និង cooldown។ បញ្ហានេះកាន់តែធ្ងន់ធ្ងរនៅក្រោម combo **quota-share** (`qtSd/…`) ដែលគ្លី API ជាច្រើនចែករំលែកគណនី upstream តែមួយ។ ស្រទាប់ទាំងបីខាងក្រោមជួយការពារមិនឲ្យគណនីដែលចែករំលែកគ្នាត្រូវលិចលង់។
+គណនីជាវ (GLM, MiniMax, ល) ជាញឹកញាប់ទទួលយកតែសំណើស្របគ្នា ~ 1-3 លើសពីនោះធ្វើឱ្យ 429s និង cooldowns ។ នេះគឺស្រួចស្រាវនៅក្រោម** ការចែករំលែកកូតា** (`qtSd/…`) បន្សំ ដែលគ្រាប់ចុច API ជាច្រើនចែករំលែកគណនីខាងលើមួយ។ ស្រទាប់បីរក្សាគណនីរួមគ្នាពីការជន់លិច។
-### ដែនកំណត់ Concurrency ក្នុងមួយ Connection (`max_concurrent`)
+### មូលធននីយកម្មក្នុងមួយការតភ្ជាប់ (`max_concurrent`)
-Connection របស់ provider នីមួយៗអាចប្រកាសដែនកំណត់ `max_concurrent` (`provider_connections.max_concurrent` កំណត់នៅក្នុង connection modal / API / DB)។ ទុកឲ្យវាទទេ ប្រសិនបើមិនចង់មានដែនកំណត់។ នេះជាប៊ូតុងតែមួយគត់ដែលបញ្ជាស្រទាប់ serialization ខាងក្រោម — កំណត់វាទៅតាម concurrency ពិតប្រាកដរបស់គណនី (ឧ. GLM ~1, MiniMax ~2)។
+ការតភ្ជាប់អ្នកផ្តល់សេវានីមួយៗអាចប្រកាសពិដាន `max_concurrent` (`provider_connections.max_concurrent` កំណត់ក្នុងម៉ូឌុលការតភ្ជាប់ / API / DB) ។ ទុកវាឱ្យនៅទទេដោយគ្មានដែនកំណត់។ នេះគឺជាកូនសោតែមួយដែលជំរុញស្រទាប់សៀរៀលខាងក្រោម — កំណត់វាទៅជារូបិយប័ណ្ណរួមពិតរបស់គណនី (ឧទាហរណ៍ GLM ~ 1, MiniMax ~ 2) ។
-### ដែនកំណត់ Concurrency ក្នុងមួយ Model (`modelConcurrency`)
+### មួករូបិយប័ណ្ណក្នុងមួយគំរូ (`modelConcurrency`)
-Connection ក៏អាចប្រកាសដែនកំណត់ concurrency ច្បាស់លាស់ក្នុងមួយ model បន្ថែមទៀត នៅក្នុង map `rateLimitOverrides` របស់វា៖
+ការតភ្ជាប់ក៏អាចប្រកាសអំពីពិដានស្របគ្នានៃគំរូនីមួយៗនៅក្នុងផែនទី `rateLimitOverrides` របស់វាផងដែរ៖
```json
{
@@ -306,30 +306,32 @@ Connection ក៏អាចប្រកាសដែនកំណត់ concurrency
}
```
-កំណត់វានៅក្នុង connection modal (**Rate limit overrides → ដែនកំណត់ concurrency ក្នុងមួយ model**, មួយ `model=cap` ក្នុងមួយបន្ទាត់) ឬតាម `PATCH /api/providers/[id]` ដោយប្រើរូបរាង JSON ដូចគ្នា។ ន័យសំខាន់ៗ៖
+កំណត់វានៅក្នុងម៉ូឌុលការតភ្ជាប់ (** ដែនកំណត់អត្រាបដិសេធ → Per-model concurrency caps** មួយ `model=cap` ក្នុងមួយជួរ) ឬតាមរយៈ `PATCH /api/providers/[id]` ដែលមានរាង JSON ដូចគ្នា។ ពាក្យគន្លឹះ៖
-- **ទូទាំង connection បញ្ជៀបនឹង ជាក់លាក់តាម model:** `maxConcurrent` នៅតែជាដែនកំណត់រួមទូទាំង connection។ នៅពេលទាំងពីរមានប្រសិទ្ធភាព gate ទាំងពីរត្រូវបានចាប់យកជាមួយគ្នាបែប atomic នៅក្នុង composite gate ដូចគ្នា (`global → provider → account → model`); អាកប្បកិរិយាពិតប្រាកដគឺជាដែនកំណត់ដែលតឹងរ៉ឹងជាងគេ។
-- **ការផ្គូផ្គង model-key ច្បាស់លាស់:** key គឺជា string របស់ model ដែលត្រូវបានបញ្ជូនទៅ executor បន្ទាប់ពីការដោះស្រាយ routing — ធម្មតាជា id របស់ model upstream សុទ្ធ (`glm-5`) មិនមែនជា alias `provider/model` ពីខាង client ទេ (`zai/glm-5` មិនផ្គូផ្គងនឹង `glm-5`)។ តម្លៃគឺជាដែនកំណត់ចំនួនសំណើ concurrent ជាចំនួនគត់វិជ្ជមាន។
-- **តម្រង់ជួរនៅមូលដ្ឋាន គ្មានការស្វែងរក:** សំណើដែលលើសត្រូវបានតម្រង់ជួរនៅមូលដ្ឋាន ដោយប្រើន័យ queue/timeout ដែលមានស្រាប់ (កំហុស admission ដែលមានប្រភេទ `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`)។ OmniRoute មិនស្វែងរក ឬសន្និដ្ឋាន policy របស់ upstream ទេ — វាគ្រាន់តែអនុវត្តដែនកំណត់ច្បាស់លាស់ដែល operator បានកំណត់ប៉ុណ្ណោះ។ gate របស់ model ដែលពេញមិនដែលបិទ provider និងមិនដែលបង្កើតការចាក់សោ model ជាអចិន្ត្រៃយ៍ទេ; អាកប្បកិរិយា 429/cooldown/fallback របស់ upstream នៅតែជា error backstop។
-- **វិសាលភាពក្នុងមួយ connection ក្នុងមួយ process:** ដែនកំណត់គឺក្នុងមួយ connection របស់ database ហើយត្រូវបានរក្សាទុកក្នុង memory ដូច្នេះ connection ពីរដែលប្រើគ្លី API upstream ដូចគ្នានឹងមិនសម្របសម្រួលជាមួយគ្នាទេ។
-- **មិនបានកំណត់ មានន័យថា គ្មានការផ្លាស់ប្តូរ:** ការមិនដាក់ map (ឬទុកឲ្យវាល dashboard ទទេ) មិនបន្ថែម model gate ណាមួយទេ។ ឧទាហរណ៍ការកំណត់ដោយមិនបានប្រកាសដែនកំណត់ជាសកលរបស់ provider ណាមួយ៖
+- **ការតភ្ជាប់ធំទូលាយធៀបនឹងម៉ូដែលជាក់លាក់៖** `maxConcurrent` នៅតែជាពិដានការតភ្ជាប់ធំទូលាយ។ នៅពេលអនុវត្តទាំងពីរ ច្រកទាំងពីរត្រូវបានទទួលដោយអាតូមនៅក្នុងច្រកទ្វារសមាសធាតុដូចគ្នា (`global → provider → account → model`); ឥរិយាបទដែលមានប្រសិទ្ធភាពគឺជាដែនកំណត់ដែលអាចអនុវត្តបានកាន់តែតឹងរ៉ឹង។
+- **ការផ្គូផ្គងគន្លឹះគំរូជាក់លាក់៖** គន្លឹះគឺជាខ្សែអក្សរគំរូដែលបានបញ្ជូនទៅកាន់ប្រតិបត្តិករបន្ទាប់ពីការកំណត់ផ្លូវដោះស្រាយ — ជាធម្មតា លេខសម្គាល់គំរូខាងលើទទេ (`glm-5`) មិនមែនជាឈ្មោះជំនួស `provider/model` ខាងអតិថិជន (`zai/glm-5` មិនផ្គូផ្គង `glm-5`) ។ តម្លៃគឺជាពិដានសំណើស្របគ្នាចំនួនវិជ្ជមាន។
+- **ការតម្រង់ជួរក្នុងតំបន់ គ្មានការរកឃើញទេ៖** សំណើលើសតម្រង់ជួរក្នុងមូលដ្ឋានជាមួយនឹងអត្ថន័យ queue/timeout ដែលមានស្រាប់ (វាយបញ្ចូល `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` កំហុសចូល) ។ OmniRoute មិនបានរកឃើញ ឬសន្និដ្ឋានគោលការណ៍ខាងលើ — វាអនុវត្តពិដានពិតប្រាកដដែលប្រតិបត្តិករបានកំណត់រចនាសម្ព័ន្ធ។ ច្រកទ្វារគំរូឆ្អែត មិនដែលបិទអ្នកផ្តល់សេវា និងមិនដែលបង្កើតការចាក់សោគំរូអចិន្ត្រៃយ៍ឡើយ។ ឥរិយាបថ 429/cooldown/fallback ខាងលើនៅតែជាកំហុស backstop ។
+- **ក្នុងមួយការតភ្ជាប់ វិសាលភាពនៃដំណើរការ៖** caps គឺក្នុងមួយការតភ្ជាប់មូលដ្ឋានទិន្នន័យ និងរក្សាទុកក្នុងអង្គចងចាំ ដូច្នេះការតភ្ជាប់ពីរដែលប្រើគ្រាប់ចុច API ខាងលើដូចគ្នាមិនសម្របសម្រួលជាមួយគ្នាទេ។
+- **Unconfigured មានន័យថាមិនផ្លាស់ប្តូរ៖** ការលុបផែនទី (ឬទុកវាលផ្ទាំងគ្រប់គ្រងទទេ) មិនបន្ថែមច្រកទ្វារគំរូទេ។ ការកំណត់រចនាសម្ព័ន្ធឧទាហរណ៍ដោយមិនអះអាងដែនកំណត់អ្នកផ្តល់សេវាសកលណាមួយ៖
```text
glm-5=1
glm-4.7=3
```
-### ការធ្វើ Serialization សំណើ Quota-Share
+### សៀរៀលសំណើចែករំលែកកូតា
-នៅពេល dispatch របស់ quota-share គោលដៅទៅលើ connection ដែលប្រកាស `max_concurrent` ជាវិជ្ជមាន សំណើ concurrent ទៅកាន់ **គណនី** នោះត្រូវបានធ្វើ serialization តាម semaphore ក្នុងមួយ connection (key `qsconn:`): សំណើដែលលើស **រង់ចាំនៅក្នុងជួរ** ជំនួសឲ្យការលិចលង់គណនី។ វាជា **fail-open** — ជួរដែលពេញ ឬ timeout នឹងបន្តទៅមុខដោយគ្មាន slot ជាជាងបដិសេធសំណើដែលអាច dispatch បាន។ បិទ/បើកនៅ **Settings → Resilience → Concurrency ក្នុងមួយ connection របស់ quota-share** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, លំនាំដើមបើក)។ បើគ្មានដែនកំណត់ `max_concurrent` ទេ អាកប្បកិរិយានៅដដែល។
+នៅពេលដែលការចែកចាយការចែករំលែកកូតាកំណត់គោលដៅការតភ្ជាប់ដែលប្រកាស `max_concurrent` វិជ្ជមាន សំណើស្របគ្នានឹងវា** គណនី** ត្រូវបានធ្វើជាសៀរៀលតាមរយៈការតភ្ជាប់មួយ semaphore (គន្លឹះ `qsconn:`): សំណើលើស** រង់ចាំក្នុងជួរ** ជំនួសឱ្យការជន់លិចគណនី។ វាគឺ** បរាជ័យ - បើក** — ជួរដែលឆ្អែត ឬអស់ពេលដំណើរការដោយគ្មានរន្ធដោត ជាជាងការបដិសេធសំណើដែលអាចបញ្ជូនបាន។ បិទ/បើក** ការកំណត់ → Resilience → Quota-share per-connection concurrency** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, លំនាំដើមនៅលើ) ។ បើគ្មានមួក `max_concurrent` ឥរិយាបទមិនផ្លាស់ប្តូរទេ។
-> gate routing របស់ quota-share (`selectQuotaShareTarget`, DRR + P2C) ខ្លួនវាផ្ទាល់គឺ fail-open ហើយគ្រាន់តែ _បញ្ចុះអាទិភាព_ connection ដែលដល់ដែនកំណត់ប៉ុណ្ណោះ — ជាមួយ pool ដែលមាន connection តែមួយ វាមិនអាចកំណត់ដាច់ខាតបានទេ ដូច្នេះ semaphore នេះទើបជាអ្វីដែលទប់ទឹកជំនន់ពិតប្រាកដ។
+> ច្រកផ្លូវចែករំលែកកូតា (`selectQuotaShareTarget`, DRR + P2C) គឺខ្លួនវាមិនបានបើក ហើយមានតែ _deprioritizes_ ការតភ្ជាប់ at-cap — ជាមួយនឹងអាងតភ្ជាប់តែមួយ វាមិនអាចកំណត់រឹងបាន ដូច្នេះ semaphore នេះគឺជាអ្វីដែលពិតជាមានទឹកជំនន់។
-### ការព្យាយាមម្តងទៀតដែលយល់ពី Cooldown របស់ Combo
+### ព្យាយាមម្តងទៀតដោយដឹងពីការចុះត្រជាក់រួម
-សម្រាប់យុទ្ធសាស្ត្រ combo ទាំងអស់ (នៅពេលបើក) សំណើដែលនឹងបង្កើត 429 សម្រាប់ cooldown បណ្តោះអាសន្នខ្លី នឹងរង់ចាំរហូតអស់ រួច dispatch ម្តងទៀត ជំនួសឲ្យការត្រឡប់ 429 — នេះគ្របដណ្តប់បង្អួច TPM/RPM ប្រភេទ Gemini (~60s retry-after) នៅលើ combo ពហុ model ឧ. គោលដៅទាំងពីរនៃ combo 2-model ជាប់ rate limit ក្នុងមួយ model។ វាត្រូវបានកំណត់ដោយ `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) នៅ **Settings → Resilience**។ វាមិនដែលរង់ចាំលើ `quota_exhausted` (ចាក់សោរហូតដល់ពាក់កណ្តាលយប់) ឬមូលហេតុ auth/not-found ទេ។
+សម្រាប់រាល់យុទ្ធសាស្ត្របន្សំ (នៅពេលបើកដំណើរការ) សំណើដែលនឹងធ្វើឱ្យគ្រីស្តាល់ 429 សម្រាប់ការ cooldown បណ្តោះអាសន្ន SHORT រង់ចាំវាចេញ ហើយបញ្ជូនឡើងវិញជំនួសឱ្យការត្រឡប់ 429 — នេះគ្របដណ្តប់លើបង្អួច TPM/RPM ថ្នាក់ Gemini (~ 60s retry-after) លើបន្សំពហុម៉ូដែល ឧ. អត្រាការវាយលុកក្នុងកម្រិត 2. bodel ក្នុងមួយ កំណត់ដោយ `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) ក្នុង** ការកំណត់ → ភាពធន់** . វាមិនដែលរង់ចាំ `quota_exhausted` (ចាក់សោរហូតដល់ពាក់កណ្តាលអធ្រាត្រ) ឬហេតុផល auth/not-found ។
-gate ដូចគ្នានេះក៏គ្របដណ្តប់ករណី pre-dispatch ផងដែរ (#16319): នៅពេលគោលដៅទាំងអស់នៃ combo ត្រូវបានរំលងមុនពេលមានការព្យាយាមណាមួយ ដោយសារ model របស់វាស្ថិតក្នុងការចាក់សោបណ្តោះអាសន្នខ្លី path ដែលគ្មានការព្យាយាមនឹងរង់ចាំសោឲ្យអស់ក្រោមដែនកំណត់ដូចគ្នា រួច dispatch ម្តងទៀត ជំនួសឲ្យការឆ្លើយតបដោយ `503 ALL_TARGETS_SKIPPED` ដែលគ្មាន hint។ នៅពេលមិនអនុញ្ញាតឲ្យរង់ចាំ (ដែនកំណត់ ចំនួនការព្យាយាម ឬថវិកាអស់ ឬមុខងារត្រូវបានបិទ) ចម្លើយចុងក្រោយត្រូវបានបង្កើនកម្រិតទៅជា `429 rate_limit_error` ដែលផ្ទុក `retry_after` / `reset_at` ពីការផុតកំណត់នៃសោបណ្តោះអាសន្នដំបូងបង្អស់; សោ quota, auth និង not-found រក្សា 503 ដែលគ្មាន hint នៅដដែល។
+បន្សំអាចបដិសេធជាមួយ `config.comboCooldownWaitEnabled: false`។ មានតែ `false` តាមព្យញ្ជនៈប៉ុណ្ណោះដែលបិទការរង់ចាំបន្សំដែលបានចែករំលែកទាំងនេះ (ការពន្យារពេលក្រោយការបញ្ជូន និងការរង់ចាំ circuit-open/model-lock ជាមុន) និងផ្នែកបន្ថែមពេលវេលានៃការរង់ចាំថវិការបស់ពួកគេ។ បាត់ ឬ `true` រក្សាគោលនយោបាយសកល។ `true` មិនអាចបើកការរង់ចាំដែលបិទជាសកលបានទេ។ `targetTimeoutMs` ច្បាស់លាស់នៅតែឈ្នះ។ ការបដិសេធនេះមិនផ្លាស់ប្តូរការរង់ចាំការបញ្ជូនជាមុនកូដកូដដើមកំណើតដាច់ដោយឡែកពីគ្នានោះទេ។
+
+ច្រកដូចគ្នាគ្របដណ្តប់ករណីបញ្ជូនមុន (#16319): នៅពេលដែលរាល់គោលដៅនៃបន្សំមួយត្រូវបានរំលង មុនពេលការប៉ុនប៉ងណាមួយត្រូវបានធ្វើឡើង ដោយសារតែគំរូរបស់វាស្ថិតនៅក្នុងការចាក់សោរបណ្តោះអាសន្នខ្លី ផ្លូវព្យាយាមសូន្យនឹងរង់ចាំការចាក់សោរនៅក្រោមពិដានដូចគ្នា ហើយបញ្ជូនម្តងទៀត ជំនួសឱ្យការឆ្លើយ `503 ALL_TARGETS_SKIPPED` តិច។ នៅពេលដែលគ្មានការរង់ចាំត្រូវបានអនុញ្ញាត (ពិដាន ការប៉ុនប៉ង ឬថវិកាអស់ ឬមុខងារបិទ) ការឆ្លើយតបរបស់ស្ថានីយនឹងដំឡើងកំណែទៅ `429 rate_limit_error` ដែលផ្ទុក `retry_after` / `reset_at` ពីការផុតកំណត់នៃការចាក់សោបណ្តោះអាសន្នដំបូងបំផុត; កូតា ការផ្ទៀងផ្ទាត់ និងសោមិនបានរកឃើញ រក្សាព័ត៌មានជំនួយតិច 503។
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/km/docs/guides/USER_GUIDE.md b/docs/i18n/km/docs/guides/USER_GUIDE.md
index 45466c9a7cca..11dc8145d049 100644
--- a/docs/i18n/km/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/km/docs/guides/USER_GUIDE.md
@@ -609,57 +609,57 @@ post_install() {
## 📊 ម៉ូដែលដែលមាន
-មើលម៉ូដែលដែលមានទាំងអស់
+មើលម៉ូដែលដែលមានទាំងអស់។
-> បញ្ជីខាងក្រោមត្រូវបានរៀបចំឡើងពី `open-sse/config/providerRegistry.ts` សម្រាប់ v3.8.0។ កាតាឡុកក្លោដ (Gemini, OpenRouter ជាដើម) ត្រូវបានធ្វើសមកាលកម្មដោយថាមវន្ត — សម្រាប់កាតាឡុកផ្ទាល់ពេញលេញ សូមបើក **Dashboard → Providers → [provider] → Available Models** ឬហៅ `GET /api/models/catalog`។
+> បញ្ជីខាងក្រោមត្រូវបានជ្រើសរើសពី `open-sse/config/providerRegistry.ts` សម្រាប់ v3.8.0 ។ កាតាឡុកពពក (Gemini, OpenRouter, ល។ ) ត្រូវបានធ្វើសមកាលកម្ម — ថាមវន្តសម្រាប់កាតាឡុកផ្សាយបន្តផ្ទាល់ពេញលេញ** ផ្ទាំងគ្រប់គ្រង → អ្នកផ្គត់ផ្គង់ → [អ្នកផ្តល់] → ម៉ូដែលដែលមាន** ឬទូរស័ព្ទទៅ `GET /api/models/catalog`។
>
-> បើបញ្ជីដែលមានស្រាប់របស់អ្នកផ្តល់សេវាបានខ្វែងពីការពិត សូមប្រើ **Import from /models** នៅលើទំព័រនោះ (ឬបើក **Auto-Sync**) ដើម្បីទាញយកកាតាឡុកផ្ទាល់ពី upstream។ រឿងនេះត្រូវបានផ្ទៀងផ្ទាត់ក្នុង v3.8.50 សម្រាប់ LLM7.io (`gemini-3.1-flash-lite`) និង UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); ចំណែកការចូលប្រើអនាមិករបស់ Pollinations នៅតែមានកម្រិតដោយ upstream ក្នុងអំឡុងការសាកល្បងដដែល។
+> ប្រសិនបើបញ្ជីភ្ជាប់មកជាមួយរបស់អ្នកផ្តល់សេវាបានរសាត់ សូមប្រើ** នាំចូលពី / ម៉ូដែល** នៅលើទំព័រនោះ (ឬបើក** ធ្វើសមកាលកម្មដោយស្វ័យប្រវត្តិ** ) ដើម្បីទាញកាតាឡុកបន្តផ្ទាល់។ នេះត្រូវបានផ្ទៀងផ្ទាត់នៅក្នុង v3.8.50 សម្រាប់ LLM7.io (`gemini-3.1-flash-lite`) និង UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); ការចូលប្រើប្រាស់ដោយអនាមិក ការបំពុលនៅតែត្រូវបានកម្រិតក្នុងកំឡុងពេលធ្វើតេស្តដូចគ្នា។
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**កូដ Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ កម្រិត effort៖ `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ កិច្ចខិតខំប្រឹងប្រែង៖ `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth ឥតគិតថ្លៃ៖ សូមប្រើកាតាឡុកផ្ទាល់ដែលបង្ហាញនៅក្រោម **Dashboard → Providers → Kiro → Available Models**។ ភាពអាចរកបានអាស្រ័យលើគណនី និងផែនការ។
+**Kiro (`kr/`)** — FREE OAuth: ប្រើកាតាឡុកបន្តផ្ទាល់ដែលបង្ហាញខាងក្រោម** ផ្ទាំងគ្រប់គ្រង → អ្នកផ្តល់ → Kiro → ម៉ូដែលដែលមាន** . ភាពអាចរកបានអាស្រ័យលើគណនី និងគម្រោង។
-**Qoder (`if/`)** — OAuth ឥតគិតថ្លៃ៖ `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
-**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M៖ `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
+**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
-**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M៖ `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
+**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/ខែ តម្លៃថេរ ឬបង់តាមការប្រើប្រាស់៖ `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo flat ឬ per-use: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — កូនសោ API៖ `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API គន្លឹះ៖ `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
**Groq (`groq/`)** — លឿនបំផុត៖ `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
**xAI (`xai/`)** — Grok ដើម៖ `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — ហោសនៅ EU៖ `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — ដែលរៀបចំដោយសហភាពអឺរ៉ុប៖ `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — បំពាក់បន្ថែមដោយការស្វែងរក៖ `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**ភាពច្របូកច្របល់ (`pplx/`)** — ស្វែងរកបន្ថែម៖ `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — កូដចំហ៖ `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ឥតគិតថ្លៃ), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — ប្រភពបើកចំហ៖ `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ឥតគិតថ្លៃ), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — inference លឿន៖ `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — ការសន្និដ្ឋានរហ័ស៖ `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — មាត្រដ្ឋាន wafer៖ `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Wafer-scale៖ `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — ផ្តោតលើ RAG៖ `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG ផ្តោតលើ៖ `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — សម្រាប់សហគ្រាស៖ `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** សហគ្រាស — ៖ `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama ពពក (`ollama-cloud/`)** ៖ `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**៖ ធ្វើសមកាលកម្មផ្ទាល់តាមកូនសោ API នីមួយៗពី Google — គ្មានបញ្ជីថេរទេ។ ភ្ជាប់កូនសោនៅក្នុង **Dashboard → Providers** រួចប្រើ **Available Models** ដើម្បីនាំចូលកាតាឡុកបច្ចុប្បន្ន (ឧ. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`)។
+**Gemini (Google Cloud `gemini/`)** ៖ បានធ្វើសមកាលកម្មផ្ទាល់ក្នុងមួយគ្រាប់ចុច API ពី Google — គ្មានបញ្ជីឋិតិវន្ត។ ភ្ជាប់សោចូល** ផ្ទាំងគ្រប់គ្រង → អ្នកផ្តល់សេវា** បន្ទាប់មកប្រើ** ម៉ូដែលដែលមាន** ដើម្បីនាំចូលកាតាឡុកបច្ចុប្បន្ន (ឧទាហរណ៍ `gemini/gemini-3-pro`, `gemini/gemini-3-flash`) ។
-**អ្នកផ្តល់សេវាដែលឆ្គួតគ្នាផ្សេងទៀត** (ជម្រើស)៖ `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (តាមរយៈ `aws-bedrock`), `azure-ai`, `openrouter` (កាតាឡុក passthrough), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`។ នីមួយៗរក្សាបញ្ជីម៉ូដែលផ្ទាល់ខ្លួននៅក្នុង `providerRegistry.ts` ហើយអាចធ្វើសមកាលកម្មស្វ័យប្រវត្តិបាន នៅពេលអ្នកផ្តល់សេវាបង្ហាញ endpoint `/models`។
+**អ្នកផ្តល់សេវាដែលត្រូវគ្នាផ្សេងទៀត។** (បានជ្រើសរើស): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (តាមរយៈ `aws-bedrock`), `azure-ai`, `openrouter` `reka` ឆ្លងកាត់កាតាឡុក), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink` `nous-research` `friendliai`, `volcengine`, `ai21` `gigachat` នីមួយៗរក្សាបញ្ជីគំរូរបស់ខ្លួននៅក្នុង `providerRegistry.ts` ហើយអាចធ្វើសមកាលកម្មដោយស្វ័យប្រវត្តិនៅពេលអ្នកផ្តល់សេវាបង្ហាញចំណុចបញ្ចប់ `/models` ។
-**ចំណាំអំពី ID ម៉ូដែល៖** OmniRoute ប្រើ ID ជាក់លាក់របស់អ្នកផ្តល់សេវា (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`)។ ID ខ្លះមានកំណែដែលមានចុច ព្រោះនោះជារបៀបដែល API upstream រំពឹងទុក។ បើម៉ូដែលមិនមានក្នុងបញ្ជីខាងលើទេ សូមដំណើរការ `omniroute models --search ` ឬហៅ `GET /api/models/catalog` ដើម្បីបញ្ជាក់ភាពអាចរកបាន។
+**ចំណាំនៅលើម៉ូដែល IDs:** OmniRoute ប្រើ IDs ដើមអ្នកផ្តល់សេវា (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`) ។ IDs ខ្លះរួមបញ្ចូលកំណែចំនុច ពីព្រោះនោះជារបៀបដែល API ខាងលើរំពឹងពួកគេ។ ប្រសិនបើម៉ូដែលមួយមិនត្រូវបានរាយក្នុងបញ្ជីខាងលើ សូមដំណើរការ `omniroute models --search ` ឬចុច `GET /api/models/catalog` ដើម្បីបញ្ជាក់ភាពអាចរកបាន។
diff --git a/docs/i18n/kn/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/kn/docs/architecture/RESILIENCE_GUIDE.md
index 9db72b530fdb..ddd51559800d 100644
--- a/docs/i18n/kn/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/kn/docs/architecture/RESILIENCE_GUIDE.md
@@ -250,26 +250,17 @@ UI: ಮಾನಿಟರಿಂಗ್ → ಕೂಲ್ಡೌನ್ ಮ್ಯಾನ
---
-## 4. ಕೋಟಾ-ಶೇರ್ ಸಮವರ್ತಿ ನಿಯಂತ್ರಣ (v3.8.36)
+## 4. ಕೋಟಾ-ಹಂಚಿಕೆ ಏಕಕಾಲಿಕ ನಿಯಂತ್ರಣ (v3.8.36)
-ಚಂದಾದಾರಿಕೆ ಖಾತೆಗಳು (GLM, MiniMax ಇತ್ಯಾದಿ) ಸಾಮಾನ್ಯವಾಗಿ ಕೇವಲ ~1–3 ಸಮವರ್ತಿ
-ವಿನಂತಿಗಳನ್ನು ಮಾತ್ರ ಸ್ವೀಕರಿಸುತ್ತವೆ; ಅದನ್ನು ಮೀರಿದರೆ 429 ಗಳು ಮತ್ತು ಕೂಲ್ಡೌನ್ಗಳು
-ಉಂಟಾಗುತ್ತವೆ. ಇದು **ಕೋಟಾ-ಶೇರ್** (`qtSd/…`) ಕಾಂಬೋಗಳಲ್ಲಿ ವಿಶೇಷವಾಗಿ ತೀವ್ರವಾಗಿದೆ,
-ಇಲ್ಲಿ ಹಲವಾರು API ಕೀಗಳು ಒಂದೇ ಅಪ್ಸ್ಟ್ರೀಮ್ ಖಾತೆಯನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತವೆ. ಹಂಚಿಕೊಂಡ
-ಖಾತೆಯು ಪ್ರವಾಹಕ್ಕೆ ಒಳಗಾಗದಂತೆ ಮೂರು ಪದರಗಳು ತಡೆಯುತ್ತವೆ.
+ಚಂದಾದಾರಿಕೆ ಖಾತೆಗಳು (GLM, MiniMax, ಇತ್ಯಾದಿ) ಸಾಮಾನ್ಯವಾಗಿ ~ 1-3 ಏಕಕಾಲೀನ ವಿನಂತಿಗಳನ್ನು ಮಾತ್ರ ಸ್ವೀಕರಿಸುತ್ತವೆ; ಮೀರಿದರೆ 429ಗಳು ಮತ್ತು ಕೂಲ್ಡೌನ್ಗಳನ್ನು ಪ್ರಚೋದಿಸುತ್ತದೆ. ಇದು ಅಡಿಯಲ್ಲಿ ತೀವ್ರವಾಗಿರುತ್ತದೆ** ಕೋಟಾ-ಪಾಲು** (`qtSd/…`) ಕಾಂಬೊಗಳು, ಅಲ್ಲಿ ಹಲವಾರು API ಕೀಗಳು ಒಂದು ಅಪ್ಸ್ಟ್ರೀಮ್ ಖಾತೆಯನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತವೆ. ಮೂರು ಲೇಯರ್ಗಳು ಹಂಚಿದ ಖಾತೆಯನ್ನು ಪ್ರವಾಹಕ್ಕೆ ಒಳಗಾಗದಂತೆ ಇರಿಸುತ್ತವೆ.
-### ಪ್ರತಿ-ಸಂಪರ್ಕ ಸಮವರ್ತಿ ಮಿತಿ (`max_concurrent`)
+### ಪ್ರತಿ-ಸಂಪರ್ಕ ಏಕಕಾಲಿಕ ಕ್ಯಾಪ್ (`max_concurrent`)
-ಪ್ರತಿ ಪ್ರೊವೈಡರ್ ಸಂಪರ್ಕವು `max_concurrent` ಮಿತಿಯನ್ನು ಘೋಷಿಸಬಹುದು
-(`provider_connections.max_concurrent`, ಸಂಪರ್ಕ ಮೋಡಲ್ / API / DB ಯಲ್ಲಿ ಹೊಂದಿಸಬಹುದು).
-ಯಾವುದೇ ಮಿತಿ ಬೇಡವಿದ್ದರೆ ಅದನ್ನು ಖಾಲಿ ಬಿಡಿ. ಇದು ಕೆಳಗಿನ ಸರಣೀಕರಣ ಪದರವನ್ನು ಚಲಾಯಿಸುವ
-ಏಕೈಕ ನಾಬ್ ಆಗಿದೆ — ಅದನ್ನು ಖಾತೆಯ ನಿಜವಾದ ಸಮವರ್ತಿತೆಗೆ ಹೊಂದಿಸಿ (ಉದಾ. GLM ~1,
-MiniMax ~2).
+ಪ್ರತಿ ಪೂರೈಕೆದಾರ ಸಂಪರ್ಕವು `max_concurrent` ಸೀಲಿಂಗ್ ಅನ್ನು ಘೋಷಿಸಬಹುದು (`provider_connections.max_concurrent`, ಸಂಪರ್ಕ ಮಾದರಿಯಲ್ಲಿ ಹೊಂದಿಸಲಾಗಿದೆ / API / DB). ಯಾವುದೇ ಮಿತಿಯಿಲ್ಲದೆ ಅದನ್ನು ಖಾಲಿ ಬಿಡಿ. ಇದು — ಕೆಳಗಿನ ಧಾರಾವಾಹಿ ಲೇಯರ್ ಅನ್ನು ಚಾಲನೆ ಮಾಡುವ ಏಕೈಕ ನಾಬ್ ಆಗಿದ್ದು ಅದನ್ನು ಖಾತೆಯ ನೈಜ ಏಕಕಾಲಿಕತೆಗೆ ಹೊಂದಿಸುತ್ತದೆ (ಉದಾ GLM ~ 1, MiniMax ~ 2).
-### ಪ್ರತಿ-ಮಾದರಿ ಸಮವರ್ತಿ ಮಿತಿಗಳು (`modelConcurrency`)
+### ಪ್ರತಿ ಮಾದರಿಯ ಏಕಕಾಲಿಕ ಕ್ಯಾಪ್ಸ್ (`modelConcurrency`)
-ಒಂದು ಸಂಪರ್ಕವು ಹೆಚ್ಚುವರಿಯಾಗಿ ತನ್ನ `rateLimitOverrides` ಮ್ಯಾಪ್ನಲ್ಲಿ ನಿಖರವಾದ
-ಪ್ರತಿ-ಮಾದರಿ ಸಮವರ್ತಿ ಮಿತಿಗಳನ್ನು ಘೋಷಿಸಬಹುದು:
+ಸಂಪರ್ಕವು ಅದರ `rateLimitOverrides` ನಕ್ಷೆಯೊಳಗೆ ನಿಖರವಾದ ಪ್ರತಿ-ಮಾದರಿ ಏಕಕಾಲಿಕ ಸೀಲಿಂಗ್ಗಳನ್ನು ಹೆಚ್ಚುವರಿಯಾಗಿ ಘೋಷಿಸಬಹುದು:
```json
{
@@ -280,81 +271,32 @@ MiniMax ~2).
}
```
-ಇದನ್ನು ಸಂಪರ್ಕ ಮೋಡಲ್ನಲ್ಲಿ ಹೊಂದಿಸಿ (**ದರ ಮಿತಿ ಅತಿಕ್ರಮಣಗಳು → ಪ್ರತಿ-ಮಾದರಿ
-ಸಮವರ್ತಿ ಮಿತಿಗಳು**, ಪ್ರತಿ ಸಾಲಿಗೆ ಒಂದು `model=cap`) ಅಥವಾ ಅದೇ JSON ಆಕಾರದೊಂದಿಗೆ
-`PATCH /api/providers/[id]` ಮೂಲಕ. ಮುಖ್ಯ ನಿಯಮಗಳು:
-
-- **ಸಂಪರ್ಕ-ವ್ಯಾಪಿ vs ಮಾದರಿ-ನಿರ್ದಿಷ್ಟ:** `maxConcurrent` ಹಂಚಿಕೊಂಡ
- ಸಂಪರ್ಕ-ವ್ಯಾಪಿ ಮಿತಿಯಾಗಿ ಉಳಿಯುತ್ತದೆ. ಎರಡೂ ಅನ್ವಯಿಸಿದಾಗ, ಎರಡೂ ಗೇಟ್ಗಳನ್ನು
- ಒಂದೇ ಸಂಯುಕ್ತ ಗೇಟ್ನಲ್ಲಿ ಅವಿಭಾಜ್ಯವಾಗಿ ಪಡೆಯಲಾಗುತ್ತದೆ
- (`global → provider → account → model`); ಪರಿಣಾಮಕಾರಿ ನಡವಳಿಕೆಯು ಹೆಚ್ಚು
- ಕಟ್ಟುನಿಟ್ಟಾದ ಅನ್ವಯವಾಗುವ ಮಿತಿಯಾಗಿರುತ್ತದೆ.
-- **ನಿಖರ ಮಾದರಿ-ಕೀ ಹೊಂದಾಣಿಕೆ:** ಕೀ ಎಂಬುದು ರೌಟಿಂಗ್ ನಿರ್ಣಯದ ನಂತರ
- ಎಕ್ಸಿಕ್ಯೂಟರ್ಗೆ ರವಾನಿಸಲಾದ ಮಾದರಿ ಸ್ಟ್ರಿಂಗ್ ಆಗಿದೆ — ಸಾಮಾನ್ಯವಾಗಿ ಬರೇ
- ಅಪ್ಸ್ಟ್ರೀಮ್ ಮಾದರಿ id (`glm-5`), ಕ್ಲಯಂಟ್-ಸೈಡ್ `provider/model` ಅಲಿಯಾಸ್
- ಅಲ್ಲ (`zai/glm-5` ಎಂಬುದು `glm-5` ಗೆ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ). ಮೌಲ್ಯಗಳು ಧನಾತ್ಮಕ
- ಪೂರ್ಣಾಂಕ ಸಮವರ್ತಿ-ವಿನಂತಿ ಮಿತಿಗಳು.
-- **ಸ್ಥಳೀಯ ಕ್ಯೂಯಿಂಗ್, ಡಿಸ್ಕವರಿ ಇಲ್ಲ:** ಹೆಚ್ಚುವರಿ ವಿನಂತಿಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ
- ಕ್ಯೂ/ಟೈಮ್ಔಟ್ ಅರ್ಥನೀತಿಯೊಂದಿಗೆ ಸ್ಥಳೀಯವಾಗಿ ಕ್ಯೂ ಆಗುತ್ತವೆ (ಟೈಪ್ ಮಾಡಲಾದ
- `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ಪ್ರವೇಶ ದೋಷಗಳು). OmniRoute
- ಅಪ್ಸ್ಟ್ರೀಮ್ ನೀತಿಯನ್ನು ಕಂಡುಹಿಡಿಯುವುದಿಲ್ಲ ಅಥವಾ ಊಹಿಸುವುದಿಲ್ಲ — ಇದು ಆಪರೇಟರ್
- ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ ನಿಖರ ಮಿತಿಗಳನ್ನು ಜಾರಿಗೊಳಿಸುತ್ತದೆ. ತುಂಬಿಹೋಗಿದ ಮಾದರಿ ಗೇಟ್
- ಪ್ರೊವೈಡರ್ ಅನ್ನು ಎಂದಿಗೂ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವುದಿಲ್ಲ ಮತ್ತು ಶಾಶ್ವತ ಮಾದರಿ
- ಲಾಕ್ಔಟ್ ಅನ್ನು ಎಂದಿಗೂ ರಚಿಸುವುದಿಲ್ಲ; ಅಪ್ಸ್ಟ್ರೀಮ್ 429/ಕೂಲ್ಡೌನ್/ಫಾಲ್ಬ್ಯಾಕ್
- ನಡವಳಿಕೆಯು ದೋಷ ಬ್ಯಾಕ್ಸ್ಟಾಪ್ ಆಗಿ ಉಳಿಯುತ್ತದೆ.
-- **ಪ್ರತಿ-ಸಂಪರ್ಕ, ಪ್ರತಿ-ಪ್ರಕ್ರಿಯೆ ವ್ಯಾಪ್ತಿ:** ಮಿತಿಗಳು ಪ್ರತಿ ಡೇಟಾಬೇಸ್
- ಸಂಪರ್ಕಕ್ಕೆ ಸಂಬಂಧಿಸಿದವು ಮತ್ತು ಮೆಮೊರಿಯಲ್ಲಿ ಇರಿಸಲಾಗುತ್ತವೆ, ಆದ್ದರಿಂದ ಒಂದೇ
- ಅಪ್ಸ್ಟ್ರೀಮ್ API ಕೀಯನ್ನು ಮರುಬಳಸುವ ಎರಡು ಸಂಪರ್ಕಗಳು ಪರಸ್ಪರ ಸಂಯೋಜಿಸುವುದಿಲ್ಲ.
-- **ಕಾನ್ಫಿಗರ್ ಮಾಡದಿದ್ದರೆ ಬದಲಾವಣೆಯಿಲ್ಲ:** ಮ್ಯಾಪ್ ಅನ್ನು ಬಿಟ್ಟುಬಿಡುವುದು (ಅಥವಾ
- ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಫೀಲ್ಡ್ ಅನ್ನು ಖಾಲಿ ಬಿಡುವುದು) ಯಾವುದೇ ಮಾದರಿ ಗೇಟ್ ಅನ್ನು
- ಸೇರಿಸುವುದಿಲ್ಲ. ಯಾವುದೇ ಸಾರ್ವತ್ರಿಕ ಪ್ರೊವೈಡರ್ ಮಿತಿಯನ್ನು ಘೋಷಿಸದ ಉದಾಹರಣೆ
- ಕಾನ್ಫಿಗರೇಶನ್:
+ಸಂಪರ್ಕ ಮಾದರಿಯಲ್ಲಿ ಹೊಂದಿಸಿ (** ದರ ಮಿತಿಯು → ಪ್ರತಿ-ಮಾದರಿ ಏಕಕಾಲಿಕ ಕ್ಯಾಪ್ಗಳನ್ನು ಅತಿಕ್ರಮಿಸುತ್ತದೆ** , ಪ್ರತಿ ಸಾಲಿಗೆ ಒಂದು `model=cap` ) ಅಥವಾ ಅದೇ JSON ಆಕಾರದೊಂದಿಗೆ `PATCH /api/providers/[id]` ಮೂಲಕ. ಪ್ರಮುಖ ಶಬ್ದಾರ್ಥಗಳು:
+
+- **ಸಂಪರ್ಕ-ವ್ಯಾಪಕ ಮತ್ತು ಮಾದರಿ-ನಿರ್ದಿಷ್ಟ:** `maxConcurrent` ಹಂಚಿಕೆಯ ಸಂಪರ್ಕ-ವಿಶಾಲ ಸೀಲಿಂಗ್ ಆಗಿ ಉಳಿದಿದೆ. ಎರಡೂ ಅನ್ವಯಿಸಿದಾಗ, ಎರಡೂ ಗೇಟ್ಗಳನ್ನು ಒಂದೇ ಸಂಯೋಜಿತ ಗೇಟ್ನಲ್ಲಿ (`global → provider → account → model`) ಪರಮಾಣುವಾಗಿ ಪಡೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ; ಪರಿಣಾಮಕಾರಿ ನಡವಳಿಕೆಯು ಕಟ್ಟುನಿಟ್ಟಾದ ಅನ್ವಯವಾಗುವ ಮಿತಿಯಾಗಿದೆ.
+- **ನಿಖರವಾದ ಮಾದರಿ-ಕೀ ಹೊಂದಾಣಿಕೆ:** ಕೀಲಿಯೆಂದರೆ — ರೆಸಲ್ಯೂಶನ್ ಅನ್ನು ರೂಟಿಂಗ್ ಮಾಡಿದ ನಂತರ ಎಕ್ಸಿಕ್ಯೂಟರ್ಗೆ ರವಾನಿಸಲಾದ ಮಾದರಿ ಸ್ಟ್ರಿಂಗ್ ಸಾಮಾನ್ಯವಾಗಿ ಬೇರ್ ಅಪ್ಸ್ಟ್ರೀಮ್ ಮಾಡೆಲ್ ಐಡಿ (`glm-5`), ಕ್ಲೈಂಟ್-ಸೈಡ್ `provider/model` ಅಲಿಯಾಸ್ ಅಲ್ಲ (`zai/glm-5` `glm-5` ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ). ಮೌಲ್ಯಗಳು ಧನಾತ್ಮಕ-ಪೂರ್ಣಾಂಕ ಏಕಕಾಲೀನ-ವಿನಂತಿ ಸೀಲಿಂಗ್ಗಳಾಗಿವೆ.
+- **ಸ್ಥಳೀಯ ಸರತಿ ಸಾಲಿನಲ್ಲಿ, ಯಾವುದೇ ಅನ್ವೇಷಣೆ ಇಲ್ಲ:** ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ queue/timeout ಸೆಮ್ಯಾಂಟಿಕ್ಸ್ನೊಂದಿಗೆ ಹೆಚ್ಚುವರಿ ವಿನಂತಿಗಳು ಸ್ಥಳೀಯವಾಗಿ ಸರದಿಯಲ್ಲಿವೆ (ಟೈಪ್ ಮಾಡಿದ `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ಪ್ರವೇಶ ದೋಷಗಳು). OmniRoute ಅಪ್ಸ್ಟ್ರೀಮ್ ನೀತಿಯನ್ನು ಕಂಡುಹಿಡಿಯುವುದಿಲ್ಲ ಅಥವಾ ಊಹಿಸುವುದಿಲ್ಲ — ಇದು ಆಪರೇಟರ್ ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ ನಿಖರವಾದ ಸೀಲಿಂಗ್ಗಳನ್ನು ಜಾರಿಗೊಳಿಸುತ್ತದೆ. ಸ್ಯಾಚುರೇಟೆಡ್ ಮಾಡೆಲ್ ಗೇಟ್ ಒದಗಿಸುವವರನ್ನು ಎಂದಿಗೂ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವುದಿಲ್ಲ ಮತ್ತು ಶಾಶ್ವತ ಮಾದರಿ ಲಾಕ್ಔಟ್ ಅನ್ನು ಎಂದಿಗೂ ರಚಿಸುವುದಿಲ್ಲ; ಅಪ್ಸ್ಟ್ರೀಮ್ 429/cooldown/fallback ವರ್ತನೆಯು ದೋಷ ಬ್ಯಾಕ್ಸ್ಟಾಪ್ ಆಗಿ ಉಳಿದಿದೆ.
+- **ಪ್ರತಿ ಸಂಪರ್ಕ, ಪ್ರತಿ ಪ್ರಕ್ರಿಯೆಯ ವ್ಯಾಪ್ತಿ:** ಕ್ಯಾಪ್ಸ್ ಪ್ರತಿ ಡೇಟಾಬೇಸ್ ಸಂಪರ್ಕ ಮತ್ತು ಮೆಮೊರಿಯಲ್ಲಿ ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳುತ್ತದೆ, ಆದ್ದರಿಂದ ಒಂದೇ ಅಪ್ಸ್ಟ್ರೀಮ್ API ಕೀಯನ್ನು ಮರುಬಳಕೆ ಮಾಡುವ ಎರಡು ಸಂಪರ್ಕಗಳು ಪರಸ್ಪರ ಹೊಂದಾಣಿಕೆಯಾಗುವುದಿಲ್ಲ.
+- **ಕಾನ್ಫಿಗರ್ ಮಾಡದಿರುವುದು ಎಂದರೆ ಬದಲಾಗದೆ:** ನಕ್ಷೆಯನ್ನು ಬಿಟ್ಟುಬಿಡುವುದು (ಅಥವಾ ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಕ್ಷೇತ್ರವನ್ನು ಖಾಲಿ ಬಿಡುವುದು) ಯಾವುದೇ ಮಾದರಿ ಗೇಟ್ ಅನ್ನು ಸೇರಿಸುವುದಿಲ್ಲ. ಯಾವುದೇ ಸಾರ್ವತ್ರಿಕ ಪೂರೈಕೆದಾರರ ಮಿತಿಯನ್ನು ಪ್ರತಿಪಾದಿಸದೆಯೇ ಉದಾಹರಣೆ ಕಾನ್ಫಿಗರೇಶನ್:
```text
glm-5=1
glm-4.7=3
```
-### ಕೋಟಾ-ಶೇರ್ ವಿನಂತಿ ಸರಣೀಕರಣ
-
-ಕೋಟಾ-ಶೇರ್ ಡಿಸ್ಪ್ಯಾಚ್ ಧನಾತ್ಮಕ `max_concurrent` ಅನ್ನು ಘೋಷಿಸುವ ಸಂಪರ್ಕವನ್ನು
-ಗುರಿಯಾಗಿಸಿದಾಗ, ಆ **ಖಾತೆ**ಗೆ ಹೋಗುವ ಸಮವರ್ತಿ ವಿನಂತಿಗಳನ್ನು ಪ್ರತಿ-ಸಂಪರ್ಕ ಸೆಮಾಫೋರ್
-ಮೂಲಕ (ಕೀ `qsconn:`) ಸರಣೀಕರಿಸಲಾಗುತ್ತದೆ: ಹೆಚ್ಚುವರಿ ವಿನಂತಿಗಳು
-ಖಾತೆಯನ್ನು ಪ್ರವಾಹದಿಂದ ತುಂಬಿಸುವ ಬದಲು **ಕ್ಯೂನಲ್ಲಿ ಕಾಯುತ್ತವೆ**. ಇದು
-**ಫೇಲ್-ಓಪನ್** — ತುಂಬಿದ ಕ್ಯೂ ಅಥವಾ ಟೈಮ್ಔಟ್ ಆದರೆ, ಡಿಸ್ಪ್ಯಾಚ್ ಮಾಡಬಹುದಾದ
-ವಿನಂತಿಯನ್ನು ಎಂದಿಗೂ ತಿರಸ್ಕರಿಸದೆ ಸ್ಲಾಟ್ ಇಲ್ಲದೆಯೇ ಮುಂದುವರೆಯುತ್ತದೆ.
-**ಸೆಟ್ಟಿಂಗ್ಗಳು → ಸ್ಥಿತಿಸ್ಥಾಪಕತೆ → ಕೋಟಾ-ಶೇರ್ ಪ್ರತಿ-ಸಂಪರ್ಕ ಸಮವರ್ತಿ** ಯಲ್ಲಿ
-ಟಾಗಲ್ ಮಾಡಿ (`resilienceSettings.quotaShareConcurrencyLimit.enabled`,
-ಪೂರ್ವನಿಯೋಜಿತ ಆನ್). `max_concurrent` ಮಿತಿ ಇಲ್ಲದಿದ್ದರೆ ನಡವಳಿಕೆಯು
-ಬದಲಾಗುವುದಿಲ್ಲ.
-
-> ಕೋಟಾ-ಶೇರ್ ರೌಟಿಂಗ್ ಗೇಟ್ (`selectQuotaShareTarget`, DRR + P2C) ಸ್ವತಃ
-> ಫೇಲ್-ಓಪನ್ ಆಗಿದೆ ಮತ್ತು ಮಿತಿ ತಲುಪಿದ ಸಂಪರ್ಕವನ್ನು ಕೇವಲ _ಆದ್ಯತೆ ಇಳಿಕೆ_
-> ಮಾಡುತ್ತದೆ — ಏಕ-ಸಂಪರ್ಕ ಪೂಲ್ನೊಂದಿಗೆ ಅದು ಕಠಿಣ ಮಿತಿ ಹೇರಲು ಸಾಧ್ಯವಿಲ್ಲ,
-> ಆದ್ದರಿಂದ ಪ್ರವಾಹವನ್ನು ನಿಜವಾಗಿಯೂ ನಿಯಂತ್ರಿಸುವುದು ಈ ಸೆಮಾಫೋರ್.
-
-### ಕಾಂಬೋ ಕೂಲ್ಡೌನ್-ಅರಿವುಳ್ಳ ಮರುಪ್ರಯತ್ನ
-
-ಪ್ರತಿ ಕಾಂಬೋ ತಂತ್ರಕ್ಕಾಗಿ (ಸಕ್ರಿಯಗೊಳಿಸಿದಾಗ), ಸ್ವಲ್ಪಕಾಲದ ಕ್ಷಣಿಕ ಕೂಲ್ಡೌನ್ಗಾಗಿ
-429 ಅನ್ನು ಸ್ಥಿರಗೊಳಿಸುವ ವಿನಂತಿಯು, 429 ಅನ್ನು ಹಿಂದಿರುಗಿಸುವ ಬದಲು ಅದು ಮುಗಿಯುವವರೆಗೆ
-ಕಾಯುತ್ತದೆ ಮತ್ತು ಮರು-ಡಿಸ್ಪ್ಯಾಚ್ ಮಾಡುತ್ತದೆ — ಇದು ಬಹು-ಮಾದರಿ ಕಾಂಬೋಗಳಲ್ಲಿ
-Gemini-ವರ್ಗದ TPM/RPM ವಿಂಡೋಗಳನ್ನು (~60s retry-after) ಒಳಗೊಂಡಿದೆ, ಉದಾ.
-2-ಮಾದರಿ ಕಾಂಬೋದ ಎರಡೂ ಗುರಿಗಳು ಪ್ರತಿ-ಮಾದರಿ ದರ ಮಿತಿಯನ್ನು ತಲುಪಿದಾಗ. **ಸೆಟ್ಟಿಂಗ್ಗಳು
-→ ಸ್ಥಿತಿಸ್ಥಾಪಕತೆ** ಯಲ್ಲಿರುವ `comboCooldownWait` (`enabled`, `maxWaitMs`,
-`maxAttempts`, `budgetMs`) ಮೂಲಕ ಮಿತಿಗೊಳಿಸಲಾಗಿದೆ. ಇದು `quota_exhausted`
-(ಮಧ್ಯರಾತ್ರಿಯವರೆಗೆ ಲಾಕ್ ಆಗಿದೆ) ಅಥವಾ auth/not-found ಕಾರಣಗಳಿಗಾಗಿ ಎಂದಿಗೂ
-ಕಾಯುವುದಿಲ್ಲ.
-
-ಅದೇ ಗೇಟ್ ಪ್ರಿ-ಡಿಸ್ಪ್ಯಾಚ್ ಸಂದರ್ಭವನ್ನು (#16319) ಒಳಗೊಂಡಿದೆ: ಕಾಂಬೋದ ಪ್ರತಿ
-ಗುರಿಯೂ, ಅದರ ಮಾದರಿ ಸ್ವಲ್ಪಕಾಲದ ಕ್ಷಣಿಕ ಲಾಕ್ಔಟ್ನಲ್ಲಿ ಇರುವ ಕಾರಣದಿಂದ ಯಾವುದೇ
-ಪ್ರಯತ್ನ ಮಾಡುವ ಮೊದಲೇ ಬಿಟ್ಟುಬಿಡಲಾದಾಗ, ಶೂನ್ಯ-ಪ್ರಯತ್ನ ಮಾರ್ಗವು ಸುಳಿವುರಹಿತ
-`503 ALL_TARGETS_SKIPPED` ಎಂದು ಉತ್ತರಿಸುವ ಬದಲು ಅದೇ ಮಿತಿಗಳಡಿಯಲ್ಲಿ ಲಾಕ್
-ಮುಗಿಯುವವರೆಗೆ ಕಾಯುತ್ತದೆ ಮತ್ತು ಮರು-ಡಿಸ್ಪ್ಯಾಚ್ ಮಾಡುತ್ತದೆ. ಯಾವುದೇ ಕಾಯುವಿಕೆಗೆ
-ಅನುಮತಿ ಇಲ್ಲದಿದ್ದಾಗ (ಮಿತಿ, ಪ್ರಯತ್ನ ಅಥವಾ ಬಜೆಟ್ ಮುಗಿದಿದ್ದಾಗ, ಅಥವಾ ಫೀಚರ್ ಆಫ್
-ಆಗಿದ್ದಾಗ), ಅಂತಿಮ ಪ್ರತಿಕ್ರಿಯೆಯು `429 rate_limit_error` ಗೆ ಅಪ್ಗ್ರೇಡ್ ಆಗುತ್ತದೆ
-ಮತ್ತು ಅತ್ಯಂತ ಬೇಗ ಮುಗಿಯುವ ಕ್ಷಣಿಕ ಲಾಕ್ ಮುಕ್ತಾಯದಿಂದ `retry_after` / `reset_at`
-ಅನ್ನು ಹೊತ್ತುಕೊಂಡು ಹೋಗುತ್ತದೆ; ಕೋಟಾ, auth ಮತ್ತು not-found ಲಾಕ್ಗಳು
-ಸುಳಿವುರಹಿತ 503 ಅನ್ನು ಹಾಗೆಯೇ ಇರಿಸಿಕೊಳ್ಳುತ್ತವೆ.
+### ಕೋಟಾ-ಹಂಚಿಕೆ ವಿನಂತಿ ಧಾರಾವಾಹಿ
+
+ಕೋಟಾ-ಹಂಚಿಕೆ ರವಾನೆಯು ಧನಾತ್ಮಕ `max_concurrent` ಘೋಷಿಸುವ ಸಂಪರ್ಕವನ್ನು ಗುರಿಪಡಿಸಿದಾಗ, ಅದಕ್ಕೆ ಏಕಕಾಲಿಕ ವಿನಂತಿಗಳು** ಖಾತೆ** ಪ್ರತಿ-ಕನೆಕ್ಷನ್ ಸೆಮಾಫೋರ್ (ಕೀ `qsconn:`) ಮೂಲಕ ಧಾರಾವಾಹಿ ಮಾಡಲಾಗುತ್ತದೆ: ಹೆಚ್ಚುವರಿ ವಿನಂತಿಗಳು** ಸರದಿಯಲ್ಲಿ ಕಾಯಿರಿ** ಬದಲಿಗೆ ಖಾತೆಗೆ ಪ್ರವಾಹ. ಇದು** ವಿಫಲ-ತೆರೆದ** — ಒಂದು ಸ್ಯಾಚುರೇಟೆಡ್ ಕ್ಯೂ ಅಥವಾ ಟೈಮ್ಔಟ್ ಸ್ಲಾಟ್ ಇಲ್ಲದೆ ಮುಂದುವರಿಯುತ್ತದೆ ಬದಲಿಗೆ ಕಳುಹಿಸಬಹುದಾದ ವಿನಂತಿಯನ್ನು ತಿರಸ್ಕರಿಸುತ್ತದೆ. ಟಾಗಲ್ ಇನ್ ಮಾಡಿ** ಸೆಟ್ಟಿಂಗ್ಗಳು → ಸ್ಥಿತಿಸ್ಥಾಪಕತ್ವ → ಕೋಟಾ-ಹಂಚಿಕೆ ಪ್ರತಿ-ಸಂಪರ್ಕ ಏಕಕಾಲಿಕತೆ** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, ಡೀಫಾಲ್ಟ್ ಆನ್). `max_concurrent` ಕ್ಯಾಪ್ ಇಲ್ಲದೆ ವರ್ತನೆಯು ಬದಲಾಗುವುದಿಲ್ಲ.
+
+> ಕೋಟಾ-ಶೇರ್ ರೂಟಿಂಗ್ ಗೇಟ್ (`selectQuotaShareTarget`, DRR + P2C) ಸ್ವತಃ ವಿಫಲವಾಗಿದೆ-ತೆರೆದಿದೆ ಮತ್ತು ಏಕ-ಸಂಪರ್ಕ ಪೂಲ್ನೊಂದಿಗೆ ಅಟ್-ಕ್ಯಾಪ್ ಸಂಪರ್ಕ — ಅನ್ನು ಮಾತ್ರ _deprioritizes_ ಇದು ಕಠಿಣ-ಮಿತಿಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ, ಆದ್ದರಿಂದ ಈ ಸೆಮಾಫೋರ್ ನಿಜವಾಗಿ ಪ್ರವಾಹವನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ.
+
+### ಕಾಂಬೊ ಕೂಲ್ಡೌನ್-ಅರಿವು ಮರುಪ್ರಯತ್ನಿಸಿ
+
+ಪ್ರತಿ ಕಾಂಬೊ ತಂತ್ರಕ್ಕೆ (ಸಕ್ರಿಯಗೊಳಿಸಿದಾಗ), SHORT ಅಸ್ಥಿರ ಕೂಲ್ಡೌನ್ಗಾಗಿ 429 ಅನ್ನು ಸ್ಫಟಿಕೀಕರಿಸುವ ವಿನಂತಿಯು ಅದನ್ನು ಕಾಯುತ್ತದೆ ಮತ್ತು 429 — ಅನ್ನು ಹಿಂತಿರುಗಿಸುವ ಬದಲು ಮರು-ರವಾನೆ ಮಾಡುತ್ತದೆ, ಇದು ಜೆಮಿನಿ-ಕ್ಲಾಸ್ TPM/RPM ವಿಂಡೋಗಳನ್ನು (~ 60s ಮರುಪ್ರಯತ್ನದ ನಂತರ) ಬಹು-ಮಾದರಿ 2 ಹಿಟ್ ಕಾಂಬೋಸ್ನ ಕಾಂಬೊಸ್-ಎರಡೂ ಟಾರ್ಗೆಟ್ಮೊಗಳಲ್ಲಿ ಪ್ರತಿ ಮಾದರಿ ದರ ಮಿತಿ. ರಲ್ಲಿ `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) ನಿಂದ ಸುತ್ತುವರಿದಿದೆ** ಸೆಟ್ಟಿಂಗ್ಗಳು → ಸ್ಥಿತಿಸ್ಥಾಪಕತ್ವ** . ಇದು ಎಂದಿಗೂ `quota_exhausted` (ಮಧ್ಯರಾತ್ರಿಯವರೆಗೆ ಲಾಕ್) ಅಥವಾ auth/not-found ಕಾರಣಗಳಿಗಾಗಿ ಕಾಯುವುದಿಲ್ಲ.
+
+`config.comboCooldownWaitEnabled: false` ನೊಂದಿಗೆ ಕಾಂಬೊ ಆಯ್ಕೆಯಿಂದ ಹೊರಗುಳಿಯಬಹುದು. ಅಕ್ಷರಶಃ `false` ಮಾತ್ರ ಈ ಹಂಚಿದ ಕಾಂಬೊ ವೇಯ್ಟ್ಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ (ಪೋಸ್ಟ್ ಡಿಸ್ಪ್ಯಾಚ್ ಕೂಲ್ಡೌನ್ ಮತ್ತು ಪ್ರಿ-ಡಿಸ್ಪ್ಯಾಚ್ circuit-open/model-lock ವೇಟ್ಸ್) ಮತ್ತು ಅವರ ವೇಯ್ಟ್-ಬಜೆಟ್ ಟೈಮ್ಔಟ್-ಫ್ಲೋರ್ ಎಕ್ಸ್ಟೆನ್ಶನ್. ಕಾಣೆಯಾಗಿದೆ ಅಥವಾ `true` ಜಾಗತಿಕ ನೀತಿಯನ್ನು ಸಂರಕ್ಷಿಸುತ್ತದೆ; `true` ಜಾಗತಿಕವಾಗಿ ಅಶಕ್ತಗೊಂಡ ಕಾಯುವಿಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಸ್ಪಷ್ಟವಾದ `targetTimeoutMs` ಇನ್ನೂ ಗೆಲ್ಲುತ್ತದೆ. ಈ ಆಯ್ಕೆಯಿಂದ ಹೊರಗುಳಿಯುವಿಕೆಯು ಪ್ರತ್ಯೇಕ ಸ್ಥಳೀಯ-ಕೋಡೆಕ್ಸ್ ಟರ್ನ್-ಪಿನ್ ಪೂರ್ವ-ರವಾನೆ ಕಾಯುವಿಕೆಯನ್ನು ಬದಲಾಯಿಸುವುದಿಲ್ಲ.
+
+ಅದೇ ಗೇಟ್ ಪ್ರೀ-ಡಿಸ್ಪ್ಯಾಚ್ ಕೇಸ್ (#16319) ಅನ್ನು ಆವರಿಸುತ್ತದೆ: ಯಾವುದೇ ಪ್ರಯತ್ನವನ್ನು ಮಾಡುವ ಮೊದಲು ಕಾಂಬೊದ ಪ್ರತಿಯೊಂದು ಗುರಿಯನ್ನು ಸ್ಕಿಪ್ ಮಾಡಿದಾಗ, ಅದರ ಮಾದರಿಯು ಒಂದು ಸಣ್ಣ ತಾತ್ಕಾಲಿಕ ಲಾಕ್ಔಟ್ನಲ್ಲಿ ಕುಳಿತುಕೊಳ್ಳುತ್ತದೆ, ಶೂನ್ಯ-ಪ್ರಯತ್ನದ ಮಾರ್ಗವು ಸುಳಿವು-ಕಡಿಮೆ `503 ALL_TARGETS_SKIPPED` ಉತ್ತರಿಸುವ ಬದಲು ಅದೇ ಸೀಲಿಂಗ್ಗಳ ಅಡಿಯಲ್ಲಿ ಲಾಕ್ ಔಟ್ ಅನ್ನು ಕಾಯುತ್ತದೆ ಮತ್ತು ಮರು-ರವಾನೆ ಮಾಡುತ್ತದೆ. ಯಾವುದೇ ಕಾಯುವಿಕೆಯನ್ನು ಅನುಮತಿಸದಿದ್ದಾಗ (ಸೀಲಿಂಗ್, ಪ್ರಯತ್ನ ಅಥವಾ ಬಜೆಟ್ ಖಾಲಿಯಾಗಿದೆ, ಅಥವಾ ವೈಶಿಷ್ಟ್ಯವು ಆಫ್ ಆಗಿದೆ), ಟರ್ಮಿನಲ್ ಪ್ರತಿಕ್ರಿಯೆಯು `429 rate_limit_error` ಸಾಗಿಸುವ `retry_after` / `reset_at` ಗೆ ಆರಂಭಿಕ ಅಸ್ಥಿರ ಲಾಕ್ ಮುಕ್ತಾಯದಿಂದ ನವೀಕರಿಸುತ್ತದೆ; ಕೋಟಾ, ದೃಢೀಕರಣ ಮತ್ತು ಕಂಡುಬಂದಿಲ್ಲದ ಲಾಕ್ಗಳು ಸುಳಿವು-ಕಡಿಮೆ 503 ಅನ್ನು ಇರಿಸುತ್ತವೆ.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/kn/docs/guides/USER_GUIDE.md b/docs/i18n/kn/docs/guides/USER_GUIDE.md
index 2825a1c4ab8f..dd929a6ebc08 100644
--- a/docs/i18n/kn/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/kn/docs/guides/USER_GUIDE.md
@@ -610,57 +610,57 @@ post_install() {
## 📊 ಲಭ್ಯವಿರುವ ಮಾದರಿಗಳು
-ಎಲ್ಲಾ ಲಭ್ಯವಿರುವ ಮಾದರಿಗಳನ್ನು ನೋಡಿ
+ಲಭ್ಯವಿರುವ ಎಲ್ಲಾ ಮಾದರಿಗಳನ್ನು ವೀಕ್ಷಿಸಿ
-> ಕೆಳಗಿನ ಪಟ್ಟಿಯನ್ನು v3.8.0 ಗಾಗಿ `open-sse/config/providerRegistry.ts` ನಿಂದ ಸಂಗ್ರಹಿಸಲಾಗಿದೆ. ಕ್ಲೌಡ್ ಕ್ಯಾಟಲಾಗ್ಗಳು (Gemini, OpenRouter, ಇತ್ಯಾದಿ) ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಸಿಂಕ್ ಆಗುತ್ತವೆ — ಪೂರ್ಣ ಲೈವ್ ಕ್ಯಾಟಲಾಗ್ಗಾಗಿ **ಡ್ಯಾಶ್ಬೋರ್ಡ್ → Providers → [provider] → ಲಭ್ಯವಿರುವ ಮಾದರಿಗಳು** ತೆರೆಯಿರಿ ಅಥವಾ `GET /api/models/catalog` ಅನ್ನು ಕರೆಯಿರಿ.
+> ಕೆಳಗಿನ ಪಟ್ಟಿಯನ್ನು v3.8.0 ಗಾಗಿ `open-sse/config/providerRegistry.ts` ನಿಂದ ಸಂಗ್ರಹಿಸಲಾಗಿದೆ. ಕ್ಲೌಡ್ ಕ್ಯಾಟಲಾಗ್ಗಳು (Gemini, OpenRouter, ಇತ್ಯಾದಿ) ಪೂರ್ಣ ಲೈವ್ ಕ್ಯಾಟಲಾಗ್ ತೆರೆಯಲು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ — ಸಿಂಕ್ ಮಾಡಲಾಗುತ್ತದೆ** ಡ್ಯಾಶ್ಬೋರ್ಡ್ → ಪೂರೈಕೆದಾರರು → [ಒದಗಿಸುವವರು] → ಲಭ್ಯವಿರುವ ಮಾದರಿಗಳು** ಅಥವಾ `GET /api/models/catalog` ಗೆ ಕರೆ ಮಾಡಿ.
>
-> ಪ್ರೊವೈಡರ್ನ ಅಂತರ್ನಿರ್ಮಿತ ಪಟ್ಟಿಯು ಬದಲಾಗಿದ್ದರೆ, ಲೈವ್ ಅಪ್ಸ್ಟ್ರೀಮ್ ಕ್ಯಾಟಲಾಗ್ ಅನ್ನು ಪಡೆಯಲು ಆ ಪುಟದಲ್ಲಿರುವ **/models ನಿಂದ ಆಮದು ಮಾಡಿ** ಅನ್ನು ಬಳಸಿ (ಅಥವಾ **ಸ್ವಯಂ-ಸಿಂಕ್** ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ). ಇದನ್ನು v3.8.50 ನಲ್ಲಿ LLM7.io (`gemini-3.1-flash-lite`) ಮತ್ತು UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) ಗಾಗಿ ಪರಿಶೀಲಿಸಲಾಗಿದೆ; ಅದೇ ಪರೀಕ್ಷಾ ಹಂತದಲ್ಲಿ Pollinations ನ ಅನಾಮಧೇಯ ಪ್ರವೇಶವು ಅಪ್ಸ್ಟ್ರೀಮ್-ಸೀಮಿತವಾಗಿಯೇ ಮುಂದುವರಿದಿತು.
+> ಪೂರೈಕೆದಾರರ ಅಂತರ್ನಿರ್ಮಿತ ಪಟ್ಟಿಯು ತೇಲುತ್ತಿದ್ದರೆ, ಬಳಸಿ** /ಮಾದರಿಗಳಿಂದ ಆಮದು ಮಾಡಿಕೊಳ್ಳಿ** ಆ ಪುಟದಲ್ಲಿ (ಅಥವಾ ಸಕ್ರಿಯಗೊಳಿಸಿ** ಸ್ವಯಂ ಸಿಂಕ್** ) ಲೈವ್ ಅಪ್ಸ್ಟ್ರೀಮ್ ಕ್ಯಾಟಲಾಗ್ ಅನ್ನು ಎಳೆಯಲು. ಇದನ್ನು LLM7.io (`gemini-3.1-flash-lite`) ಮತ್ತು UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) ಗಾಗಿ v3.8.50 ರಲ್ಲಿ ಪರಿಶೀಲಿಸಲಾಗಿದೆ; ಅದೇ ಪರೀಕ್ಷಾ ಪಾಸ್ ಸಮಯದಲ್ಲಿ ಪರಾಗಸ್ಪರ್ಶ ಅನಾಮಧೇಯ ಪ್ರವೇಶವು ಅಪ್ಸ್ಟ್ರೀಮ್-ಸೀಮಿತವಾಗಿ ಉಳಿಯಿತು.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude ಕೋಡ್ (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort ಮಟ್ಟಗಳು: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ ಪ್ರಯತ್ನ ಶ್ರೇಣಿಗಳು: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — ಉಚಿತ OAuth: **ಡ್ಯಾಶ್ಬೋರ್ಡ್ → Providers → Kiro → ಲಭ್ಯವಿರುವ ಮಾದರಿಗಳು** ಅಡಿಯಲ್ಲಿ ತೋರಿಸಿರುವ ಲೈವ್ ಕ್ಯಾಟಲಾಗ್ ಅನ್ನು ಬಳಸಿ. ಲಭ್ಯತೆಯು ಖಾತೆ ಮತ್ತು ಪ್ಲ್ಯಾನ್ ಅನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ.
+**Kiro (`kr/`)** — FREE OAuth: ಕೆಳಗೆ ತೋರಿಸಿರುವ ಲೈವ್ ಕ್ಯಾಟಲಾಗ್ ಅನ್ನು ಬಳಸಿ** ಡ್ಯಾಶ್ಬೋರ್ಡ್ → ಪೂರೈಕೆದಾರರು → Kiro → ಲಭ್ಯವಿರುವ ಮಾದರಿಗಳು** . ಲಭ್ಯತೆಯು ಖಾತೆ ಮತ್ತು ಯೋಜನೆಯನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ.
-**Qoder (`if/`)** — ಉಚಿತ OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/ತಿಂಗಳು ಫ್ಲಾಟ್ ಅಥವಾ ಬಳಕೆ-ಆಧಾರಿತ: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo ಫ್ಲಾಟ್ ಅಥವಾ ಪ್ರತಿ ಬಳಕೆ: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — API ಕೀ: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — ಅತಿ-ವೇಗದ: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — ಅಲ್ಟ್ರಾ-ಫಾಸ್ಟ್: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok ನೇಟಿವ್: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok ಸ್ಥಳೀಯ: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU-ಯಲ್ಲಿ ಹೋಸ್ಟ್ ಮಾಡಲಾದ: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU- ಹೋಸ್ಟ್: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — ಹುಡುಕಾಟ-ವರ್ಧಿತ: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**ಗೊಂದಲ (`pplx/`)** — ಹುಡುಕಾಟ-ವರ್ಧಿತ: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — ಓಪನ್-ಸೋರ್ಸ್: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ಉಚಿತ), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — ಮುಕ್ತ ಮೂಲ: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ಉಚಿತ), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — ವೇಗದ ಇನ್ಫರೆನ್ಸ್: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — ವೇಗದ ನಿರ್ಣಯ: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
**Cerebras (`cerebras/`)** — ವೇಫರ್-ಸ್ಕೇಲ್: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — RAG-ಕೇಂದ್ರೀತ: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG-ಕೇಂದ್ರಿತ: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
**NVIDIA NIM (`nvidia/`)** — ಎಂಟರ್ಪ್ರೈಸ್: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama ಮೇಘ (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: ಪ್ರತಿ API ಕೀಗೆ Google ನಿಂದ ಲೈವ್ ಸಿಂಕ್ ಆಗುತ್ತದೆ — ಸ್ಥಿರ ಪಟ್ಟಿಯಿಲ್ಲ. **ಡ್ಯಾಶ್ಬೋರ್ಡ್ → Providers** ನಲ್ಲಿ ಕೀ ಅನ್ನು ಸಂಪರ್ಕಿಸಿ ಮತ್ತು ಪ್ರಸ್ತುತ ಕ್ಯಾಟಲಾಗ್ ಅನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳಲು **ಲಭ್ಯವಿರುವ ಮಾದರಿಗಳು** ಅನ್ನು ಬಳಸಿ (ಉದಾ. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google ಮೇಘ `gemini/`)** : Google — ಯಾವುದೇ ಸ್ಟ್ಯಾಟಿಕ್ ಪಟ್ಟಿಯಿಂದ ಪ್ರತಿ API ಕೀಗೆ ಲೈವ್ ಸಿಂಕ್ ಮಾಡಲಾಗಿದೆ. ಒಂದು ಕೀಲಿಯನ್ನು ಸಂಪರ್ಕಿಸಿ** ಡ್ಯಾಶ್ಬೋರ್ಡ್ → ಪೂರೈಕೆದಾರರು** ನಂತರ ಬಳಸಿ** ಲಭ್ಯವಿರುವ ಮಾದರಿಗಳು** ಪ್ರಸ್ತುತ ಕ್ಯಾಟಲಾಗ್ ಅನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳಲು (ಉದಾ `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**ಇತರ ಹೊಂದಾಣಿಕೆಯ ಪ್ರೊವೈಡರ್ಗಳು** (ಆಯ್ದವು): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (`aws-bedrock` ಮೂಲಕ), `azure-ai`, `openrouter` (ಪಾಸ್ಥ್ರೂ ಕ್ಯಾಟಲಾಗ್), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. ಪ್ರತಿಯೊಂದೂ `providerRegistry.ts` ನಲ್ಲಿ ತನ್ನದೇ ಆದ ಮಾದರಿ ಪಟ್ಟಿಯನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರೊವೈಡರ್ `/models` ಎಂಡ್ಪಾಯಿಂಟ್ ಅನ್ನು ಒದಗಿಸಿದಾಗ ಸ್ವಯಂ-ಸಿಂಕ್ ಮಾಡಬಹುದು.
+**Other compatible providers** (selected): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (passthrough catalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Each maintains its own model list in `providerRegistry.ts` and can be auto-synced when the provider exposes a `/models` endpoint.
-**ಮಾದರಿ ID ಗಳ ಬಗ್ಗೆ ಗಮನಿಸಿ:** OmniRoute ಪ್ರೊವೈಡರ್-ನೇಟಿವ್ ID ಗಳನ್ನು ಬಳಸುತ್ತದೆ (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). ಕೆಲವು ID ಗಳು ಚುಕ್ಕೆಯುಳ್ಳ ಆವೃತ್ತಿಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ ಏಕೆಂದರೆ ಅಪ್ಸ್ಟ್ರೀಮ್ API ಅವುಗಳನ್ನು ಆ ರೀತಿಯಲ್ಲಿಯೇ ನಿರೀಕ್ಷಿಸುತ್ತದೆ. ಯಾವುದಾದರೂ ಮಾದರಿಯು ಮೇಲೆ ಪಟ್ಟಿ ಮಾಡಲಾಗಿಲ್ಲದಿದ್ದರೆ, ಲಭ್ಯತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು `omniroute models --search ` ಅನ್ನು ಚಲಾಯಿಸಿ ಅಥವಾ `GET /api/models/catalog` ಅನ್ನು ಬಳಸಿ.
+**IDs ಮಾದರಿಯಲ್ಲಿ ಗಮನಿಸಿ:** OmniRoute ಪೂರೈಕೆದಾರ-ಸ್ಥಳೀಯ IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`) ಅನ್ನು ಬಳಸುತ್ತದೆ. ಕೆಲವು IDs ಚುಕ್ಕೆಗಳ ಆವೃತ್ತಿಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ ಏಕೆಂದರೆ ಅಪ್ಸ್ಟ್ರೀಮ್ API ಅವುಗಳನ್ನು ಹೇಗೆ ನಿರೀಕ್ಷಿಸುತ್ತದೆ. ಒಂದು ಮಾದರಿಯನ್ನು ಮೇಲೆ ಪಟ್ಟಿ ಮಾಡದಿದ್ದರೆ, ಲಭ್ಯತೆಯನ್ನು ಖಚಿತಪಡಿಸಲು `omniroute models --search ` ರನ್ ಮಾಡಿ ಅಥವಾ `GET /api/models/catalog` ಒತ್ತಿರಿ.
diff --git a/docs/i18n/ko/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/ko/docs/architecture/RESILIENCE_GUIDE.md
index b7e206b7f7cc..81827762464e 100644
--- a/docs/i18n/ko/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/ko/docs/architecture/RESILIENCE_GUIDE.md
@@ -283,18 +283,17 @@ OAuth / API-key `connectionCooldown` 기본 쿨다운 및 최대 백오프 단
---
-## 4. Quota-Share 동시성 제어 (v3.8.36)
+## 4. 할당량-공유 동시성 제어(v3.8.36)
-구독형 계정(GLM, MiniMax 등)은 보통 동시 요청을 ~1–3개만 허용하며, 이를 초과하면 429와 쿨다운이 발생합니다. 이 문제는 여러 API 키가 하나의 업스트림 계정을 공유하는 **quota-share**(`qtSd/…`) 콤보에서 특히 심각합니다. 세 개의 계층이 공유 계정이 폭주하지 않도록 막아줍니다.
+구독 계정(GLM, MiniMax 등)은 종종 ~ 1~3개의 동시 요청만 허용합니다. 이를 초과하면 429초와 재사용 대기시간이 발생합니다. 이것은 아래에서 심각하다** 할당량 공유** (`qtSd/…`) 콤보. 여러 API 키가 하나의 업스트림 계정을 공유합니다. 세 가지 계층으로 공유 계정이 침수되는 것을 방지합니다.
-### 연결별 동시성 상한 (`max_concurrent`)
+### 연결당 동시성 한도(`max_concurrent`)
-각 프로바이더 연결은 `max_concurrent` 상한을 선언할 수 있습니다
-(`provider_connections.max_concurrent`, 연결 모달 / API / DB에서 설정). 비워 두면 제한이 없습니다. 이것이 아래의 직렬화 계층을 구동하는 유일한 설정값입니다 — 계정의 실제 동시성에 맞춰 설정하세요 (예: GLM ~1, MiniMax ~2).
+각 공급자 연결은 `max_concurrent` 한도(`provider_connections.max_concurrent`, 연결 모달 / API / DB 에 설정)를 선언할 수 있습니다. 제한 없이 비워 두세요. 이는 — 아래의 직렬화 레이어를 구동하여 계정의 실제 동시성(예: GLM ~ 1, MiniMax ~ 2)으로 설정하는 단일 손잡이입니다.
-### 모델별 동시성 상한 (`modelConcurrency`)
+### 모델별 동시성 한도(`modelConcurrency`)
-연결은 추가로 `rateLimitOverrides` 맵 안에 정확한 모델별 동시성 상한을 선언할 수 있습니다:
+연결은 `rateLimitOverrides` 맵 내에서 정확한 모델별 동시성 한도를 추가로 선언할 수 있습니다.
```json
{
@@ -305,37 +304,32 @@ OAuth / API-key `connectionCooldown` 기본 쿨다운 및 최대 백오프 단
}
```
-연결 모달(**Rate limit overrides → Per-model concurrency caps**, 한 줄에 `model=cap` 하나씩)에서 설정하거나, 동일한 JSON 형태로
-`PATCH /api/providers/[id]`를 통해 설정할 수 있습니다. 핵심 의미는 다음과 같습니다:
+연결 모달(** 속도 제한은 → 모델별 동시성 한도보다 우선 적용됩니다.** , 한 줄에 하나의 `model=cap` ) 또는 동일한 JSON 모양의 `PATCH /api/providers/[id]` 통해. 주요 의미:
-- **연결 전체 vs 모델별:** `maxConcurrent`는 공유되는 연결 전체 상한으로 유지됩니다. 둘 다 적용되는 경우, 두 게이트는 동일한 복합 게이트
- (`global → provider → account → model`)에서 원자적으로 획득되며, 실효 동작은 적용 가능한 것 중 더 엄격한 제한이 됩니다.
-- **정확한 모델 키 일치:** 키는 라우팅 해석 후 실행기(executor)에 전달되는 모델 문자열입니다 — 일반적으로 클라이언트 측 `provider/model` 별칭이 아닌 순수 업스트림 모델 id(`glm-5`)입니다 (`zai/glm-5`는
- `glm-5`와 일치하지 않습니다). 값은 양의 정수 동시 요청 상한입니다.
-- **로컬 큐잉, 디스커버리 없음:** 초과 요청은 기존 큐/타임아웃 의미(타입화된 `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL` 수락 오류)에 따라 로컬에서 큐잉됩니다. OmniRoute는 업스트림 정책을 탐지하거나 추론하지 않습니다 — 운영자가 구성한 정확한 상한만을 강제합니다. 포화된 모델 게이트는 프로바이더를 비활성화하지 않으며 영구적인 모델 잠금을 만들지도 않습니다; 업스트림 429/쿨다운/폴백 동작이 오류 안전장치로 남아 있습니다.
-- **연결별, 프로세스별 범위:** 상한은 데이터베이스 연결별이며 인메모리에 유지되므로, 동일한 업스트림 API 키를 재사용하는 두 연결은 서로 조율하지 않습니다.
-- **미구성은 변경 없음:** 맵을 생략하거나(또는 대시보드 필드를 비워 두면) 모델 게이트가 추가되지 않습니다. 보편적인 프로바이더 제한을 단정하지 않는 구성 예시:
+- **연결 전체 및 모델별:** `maxConcurrent` 공유 연결 전체 한도를 유지합니다. 둘 다 적용하면 두 게이트 모두 동일한 복합 게이트(`global → provider → account → model`)에서 원자적으로 획득됩니다. 효과적인 동작은 적용 가능한 한도가 더 엄격하다는 것입니다.
+- **정확한 모델 키 일치:** 키는 라우팅 확인 — 후 실행기에 전달된 모델 문자열입니다. 일반적으로 클라이언트 측 `provider/model` 별칭(`zai/glm-5` `glm-5` 일치하지 않음)이 아닌 순수 업스트림 모델 ID(`glm-5`)입니다. 값은 양의 정수 동시 요청 한도입니다.
+- **로컬 대기열, 검색 없음:** 초과 요청은 기존 queue/timeout 의미 체계를 사용하여 로컬로 대기열에 추가됩니다( `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` 승인 오류 입력). OmniRoute 업스트림 정책 — 를 발견하거나 추론하지 않으며 운영자가 구성한 정확한 한도를 적용합니다. 포화된 모델 게이트는 공급자를 비활성화하지 않으며 영구적인 모델 잠금을 생성하지 않습니다. 업스트림 429/cooldown/fallback 동작은 오류 백스톱으로 남아 있습니다.
+- **연결별, 프로세스별 범위:** 대문자는 데이터베이스 연결당이며 메모리에 보관되므로 동일한 업스트림 API 키를 재사용하는 두 연결은 서로 조정되지 않습니다.
+- **구성되지 않음은 변경되지 않았음을 의미합니다.** 맵을 생략하거나 대시보드 필드를 비워두면 모델 게이트가 추가되지 않습니다. 범용 공급자 제한을 주장하지 않는 구성 예:
```text
glm-5=1
glm-4.7=3
```
-### Quota-share 요청 직렬화
+### 할당량 공유 요청 직렬화
-quota-share 디스패치가 양의 `max_concurrent`를 선언한 연결을 대상으로 할 때, 해당 **계정**에 대한 동시 요청은 연결별 세마포어(키 `qsconn:`)를 통해 직렬화됩니다: 초과 요청은 계정을 폭주시키는 대신 **큐에서 대기**합니다. 이는 **fail-open**입니다 — 큐가 포화되거나 타임아웃이 발생해도 디스패치 가능한 요청을 거절하지 않고 슬롯 없이 진행합니다. **Settings → Resilience → Quota-share per-connection concurrency**에서 토글하세요 (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, 기본값 켜짐). `max_concurrent` 상한이 없으면 동작은 변경되지 않습니다.
+할당량 공유 디스패치가 양수 `max_concurrent` 선언하는 연결을 대상으로 하는 경우 해당 연결에 대한 동시 요청** 계정** 연결별 세마포어(키 `qsconn:`)를 통해 직렬화됩니다. 초과 요청** 대기열에서 기다리다** 계정이 넘쳐나는 대신. 그것은** 페일오픈** — 포화 대기열 또는 시간 초과는 디스패치 가능한 요청을 거부하는 대신 슬롯 없이 진행됩니다. 전환** 설정 → 복원력 → 할당량 공유 연결당 동시성** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, 기본값은 켜짐). `max_concurrent` 캡이 없으면 동작이 변경되지 않습니다.
-> quota-share 라우팅 게이트(`selectQuotaShareTarget`, DRR + P2C) 자체는 fail-open이며 상한에 도달한 연결을 _우선순위에서 밀어낼_ 뿐입니다 — 단일 연결 풀에서는 하드 제한을 할 수 없으므로, 실제로 폭주를 억제하는 것은 이 세마포어입니다.
+> 할당량 공유 라우팅 게이트(`selectQuotaShareTarget`, DRR + P2C) 자체는 페일오픈이며 단일 연결 풀이 있는 최대 연결 — 만 _우선 순위 해제_하므로 하드 제한할 수 없으므로 이 세마포가 실제로 플러드를 포함합니다.
-### 콤보 쿨다운 인지 재시도
+### 콤보 쿨다운 인식 재시도
-(활성화된 경우) 모든 콤보 전략에 대해, 짧은(SHORT) 일시적 쿨다운에 대해 429를 확정시킬 요청은 429를 반환하는 대신 기다렸다가 재디스패치합니다 — 이는 멀티모델 콤보에서 Gemini급 TPM/RPM 윈도우(~60초 retry-after)를 커버하며, 예를 들어 2-모델 콤보의 두 타깃이 모두 모델별 레이트 리밋에 걸리는 경우에 해당합니다. **Settings → Resilience**의 `comboCooldownWait`(`enabled`, `maxWaitMs`, `maxAttempts`,
-`budgetMs`)로 상한이 정해집니다. `quota_exhausted`(자정까지 잠금)나 인증/찾을 수 없음 사유에 대해서는 절대 기다리지 않습니다.
+모든 콤보 전략(활성화된 경우)에 대해 SHORT 일시적 쿨다운을 위해 429를 결정화하는 요청은 429 — 를 반환하는 대신 기다렸다가 다시 디스패치합니다. 이는 다중 모델 콤보의 Gemini급 TPM/RPM 창(~ 60s 재시도 후)을 포함합니다. 예를 들어 2모델 콤보의 두 대상 모두 모델별 속도 제한에 도달합니다. `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`)에 의해 제한됨** 설정 → 탄력성** . `quota_exhausted` (자정까지 잠김) 또는 auth/not-found 이유를 기다리지 않습니다.
-동일한 게이트가 디스패치 전 사례(#16319)도 커버합니다: 콤보의 모든 타깃이 시도가 이루어지기 전에 모델이 짧은 일시적 잠금 상태에 있어 스킵될 때, 제로-시도 경로는 힌트 없는
-`503 ALL_TARGETS_SKIPPED`로 응답하는 대신 동일한 상한 아래에서 잠금이 풀릴 때까지 기다렸다가 재디스패치합니다. 대기가 허용되지 않는 경우(상한, 시도 횟수 또는 예산 소진, 또는 기능 꺼짐), 최종 응답은 가장 빠른 일시적 잠금 만료 시점의 `retry_after` / `reset_at`을 담은
-`429 rate_limit_error`로 업그레이드됩니다; 쿼터, 인증, 찾을 수 없음 잠금은 힌트 없는 503을 유지합니다.
+콤보는 `config.comboCooldownWaitEnabled: false` 로 선택 해제할 수 있습니다. 리터럴 `false` 만이 이러한 공유 콤보 대기(디스패치 후 쿨다운 및 사전 디스패치 circuit-open/model-lock 대기)와 대기 예산 제한 시간 연장을 비활성화합니다. 누락 또는 `true` 전역 정책을 유지합니다. `true` 전역적으로 비활성화된 대기를 활성화할 수 없습니다. 명시적인 `targetTimeoutMs` 여전히 승리합니다. 이 거부는 별도의 기본 Codex 턴핀 사전 디스패치 대기를 변경하지 않습니다.
+
+동일한 게이트가 디스패치 전 사례(#16319)를 다룹니다. 모델이 짧은 일시적 잠금 상태에 있기 때문에 시도가 이루어지기 전에 콤보의 모든 대상을 건너뛰는 경우 제로 시도 경로는 힌트가 없는 `503 ALL_TARGETS_SKIPPED` 에 응답하는 대신 동일한 한도 하에서 잠금을 기다렸다가 다시 디스패치합니다. 대기가 허용되지 않으면(한도, 시도 또는 예산이 소진되거나 기능이 꺼짐) 터미널 응답은 가장 빠른 임시 잠금 만료부터 `retry_after` / `reset_at` 를 전달하는 `429 rate_limit_error` 로 업그레이드됩니다. 할당량, 인증 및 찾을 수 없는 잠금은 힌트 없는 503을 유지합니다.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/ko/docs/guides/USER_GUIDE.md b/docs/i18n/ko/docs/guides/USER_GUIDE.md
index aace7a3b4c40..1bff59887586 100644
--- a/docs/i18n/ko/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/ko/docs/guides/USER_GUIDE.md
@@ -612,25 +612,25 @@ post_install() {
사용 가능한 모든 모델 보기
-> 아래 목록은 v3.8.0 기준 `open-sse/config/providerRegistry.ts`에서 선별한 것입니다. 클라우드 카탈로그(Gemini, OpenRouter 등)는 동적으로 동기화됩니다 — 전체 실시간 카탈로그는 **대시보드 → 프로바이더 → [provider] → 사용 가능한 모델**에서 확인하거나 `GET /api/models/catalog`를 호출하세요.
+> 아래 목록은 v3.8.0용 `open-sse/config/providerRegistry.ts` 에서 선별되었습니다. 클라우드 카탈로그(Gemini, OpenRouter 등)는 전체 라이브 카탈로그 오픈을 위해 — 동적으로 동기화됩니다.** 대시보드 → 공급자 → [공급자] → 사용 가능한 모델** 또는 `GET /api/models/catalog` 로 전화하세요.
>
-> 프로바이더의 기본 내장 목록이 최신과 달라진 경우, 해당 페이지에서 **/models에서 가져오기**를 사용하거나 **자동 동기화**를 활성화하여 실시간 업스트림 카탈로그를 가져오세요. 이는 v3.8.50에서 LLM7.io(`gemini-3.1-flash-lite`)와 UncloseAI(`solidrust/Hermes-3-Llama-3.1-8B-AWQ`)에 대해 검증되었으며, Pollinations 익명 액세스는 동일한 테스트 과정에서 업스트림 제한 상태를 유지했습니다.
+> 공급자의 기본 제공 목록이 표류한 경우 다음을 사용하세요.** /models에서 가져오기** 해당 페이지에서 (또는 활성화** 자동 동기화** ) 라이브 업스트림 카탈로그를 가져옵니다. 이는 v3.8.50에서 LLM7.io(`gemini-3.1-flash-lite`) 및 UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`)에 대해 확인되었습니다. 동일한 테스트가 진행되는 동안 수분 익명 액세스는 업스트림 제한으로 유지되었습니다.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude 코드(`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort 단계: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ 계층: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — 무료 OAuth: **대시보드 → 프로바이더 → Kiro → 사용 가능한 모델**에 표시되는 실시간 카탈로그를 사용하세요. 사용 가능 여부는 계정 및 요금제에 따라 달라집니다.
+**Kiro (`kr/`)** — FREE OAuth: 아래에 표시된 라이브 카탈로그를 사용합니다.** 대시보드 → 공급자 → Kiro → 사용 가능한 모델** . 가용성은 계정 및 계획에 따라 다릅니다.
-**Qoder (`if/`)** — 무료 OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — 월 $9 정액제 또는 사용량 기반: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo 플랫 또는 사용별: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — API 키: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
@@ -638,29 +638,29 @@ post_install() {
**xAI (`xai/`)** — Grok 네이티브: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU 호스팅: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU 호스팅: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — 검색 증강: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**당혹감(`pplx/`)** — 검색 확장: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
**Together AI (`together/`)** — 오픈 소스: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (무료), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — 고속 추론: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — 빠른 추론: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — 웨이퍼 스케일: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — 웨이퍼 규모: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — RAG 특화: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG 중심: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
**NVIDIA NIM (`nvidia/`)** — 엔터프라이즈: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama 클라우드(`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: API 키별로 Google에서 실시간으로 동기화됩니다 — 정적 목록이 없습니다. **대시보드 → 프로바이더**에서 키를 연결한 후 **사용 가능한 모델**을 사용하여 현재 카탈로그를 가져오세요 (예: `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google 클라우드 `gemini/`)** : Google — 의 API 키별로 실시간 동기화되며 정적 목록이 없습니다. 키를 연결하세요** 대시보드 → 공급자** 그런 다음 사용** 사용 가능한 모델** 현재 카탈로그(예: `gemini/gemini-3-pro`, `gemini/gemini-3-flash`)를 가져옵니다.
-**기타 호환 프로바이더** (일부 선별): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (`aws-bedrock` 경유), `azure-ai`, `openrouter` (패스스루 카탈로그), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. 각 프로바이더는 `providerRegistry.ts`에 자체 모델 목록을 유지하며, 프로바이더가 `/models` 엔드포인트를 제공하는 경우 자동 동기화할 수 있습니다.
+**기타 호환 제공업체** (선택됨): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` ( `aws-bedrock` 통해 ), `azure-ai`, `openrouter` (통과 카탈로그), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. 각각은 `providerRegistry.ts` 에서 자체 모델 목록을 유지하며 공급자가 `/models` 끝점을 노출할 때 자동 동기화될 수 있습니다.
-**모델 ID 참고 사항:** OmniRoute는 프로바이더 고유 ID(`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`)를 사용합니다. 일부 ID에 점이 포함된 버전이 있는 것은 업스트림 API가 그 형식을 요구하기 때문입니다. 위에 나열되지 않은 모델은 `omniroute models --search `을 실행하거나 `GET /api/models/catalog`를 호출하여 사용 가능 여부를 확인하세요.
+**모델 IDs 에 대한 참고 사항:** OmniRoute 공급자 기본 IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`)를 사용합니다. 일부 IDs 에는 점으로 구분된 버전이 포함되어 있습니다. 왜냐하면 업스트림 API 예상하는 방식이기 때문입니다. 모델이 위에 나열되지 않은 경우 `omniroute models --search ` 실행하거나 `GET /api/models/catalog` 눌러 가용성을 확인하세요.
diff --git a/docs/i18n/lt/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/lt/docs/architecture/RESILIENCE_GUIDE.md
index d9e3c20fb4ea..565ab346e85d 100644
--- a/docs/i18n/lt/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/lt/docs/architecture/RESILIENCE_GUIDE.md
@@ -286,21 +286,17 @@ _būsena_ yra laikina.
---
-## 4. Kvotų dalijimosi lygiagretumo valdymas (v3.8.36)
+## 4. Kvotos pasidalijimo lygiagretumo valdymas (v3.8.36)
-Prenumeratos paskyros (GLM, MiniMax ir kt.) dažnai priima tik ~1–3 lygiagrečias užklausas; viršijus šį skaičių, suaktyvinamos 429 klaidos ir atvėsimai. Tai ypač opu **kvotų dalijimosi** (`qtSd/…`) kombinacijose, kai keli API raktai dalijasi viena upstream paskyra. Trys sluoksniai apsaugo bendrą paskyrą nuo užtvindymo.
+Prenumeratos paskyros (GLM, MiniMax ir kt.) dažnai priima tik ~ 1–3 vienu metu vykstančias užklausas; viršijus tai suaktyvina 429s ir atvėsimus. Tai ūmus pagal** kvotos dalis** (`qtSd/…`) deriniai, kai keli API klavišai dalijasi viena išankstine paskyra. Trys sluoksniai apsaugo bendrinamą paskyrą nuo užtvindymo.
-### Lygiagretumo riba vienam prisijungimui (`max_concurrent`)
+### Vieno ryšio lygiagretumo riba (`max_concurrent`)
-Kiekvienas teikėjo prisijungimas gali deklaruoti `max_concurrent` lubas
-(`provider_connections.max_concurrent`, nustatomas prisijungimo modale / API / DB).
-Palikite tuščią, jei ribos nereikia. Tai vienintelė rankenėlė, valdanti žemiau aprašomą
-serializavimo sluoksnį — nustatykite ją pagal realų paskyros lygiagretumą (pvz., GLM ~1, MiniMax ~2).
+Kiekvienas teikėjo ryšys gali deklaruoti `max_concurrent` lubas (`provider_connections.max_concurrent`, nustatytas ryšio modal / API / DB). Palikite tuščią be jokių apribojimų. Tai vienintelė rankenėlė, kuri valdo serializacijos sluoksnį, esantį žemiau — nustato jį į tikrąją paskyros sugretinimą (pvz., GLM ~ 1, MiniMax ~ 2).
-### Lygiagretumo ribos pagal modelį (`modelConcurrency`)
+### Vienalaikio modelio viršutinės ribos (`modelConcurrency`)
-Prisijungimas papildomai gali deklaruoti tikslias lygiagretumo lubas kiekvienam modeliui
-savo `rateLimitOverrides` žemėlapyje:
+Ryšys gali papildomai nurodyti tikslias vieno modelio lygiagretumo ribas savo `rateLimitOverrides` žemėlapyje:
```json
{
@@ -311,73 +307,32 @@ savo `rateLimitOverrides` žemėlapyje:
}
```
-Nustatykite jį prisijungimo modale (**Dažnio ribų perrašymai → Lygiagretumo ribos pagal modelį**, po vieną `model=cap` eilutėje) arba per
-`PATCH /api/providers/[id]` su ta pačia JSON struktūra. Pagrindinė semantika:
-
-- **Viso prisijungimo ir konkretaus modelio ribos:** `maxConcurrent` išlieka bendra
- viso prisijungimo riba. Kai taikomos abi, abu šliuzai užimami
- atomiškai tame pačiame sudėtiniame šliuze
- (`global → provider → account → model`); efektyvioji elgsena atitinka
- griežtesnę taikomą ribą.
-- **Tikslus modelio rakto atitikimas:** raktas yra modelio eilutė, perduodama
- vykdytojui po maršruto išskyrimo — paprastai grynasis upstream modelio ID
- (`glm-5`), o ne kliento pusės `provider/model` slapyvardis (`zai/glm-5` neatitinka
- `glm-5`). Reikšmės yra teigiami sveikieji skaičiai — lygiagrečių užklausų lubos.
-- **Vietinė laukimo eilė, be automatinio aptikimo:** perteklinės užklausos laukia vietinėje
- eilėje pagal esamą eilės / laiko limito semantiką (tipizuotos `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL` priėmimo klaidos). OmniRoute pats neatranda ir
- nenusprendžia upstream politikos — jis vykdo tikslias operatoriaus
- sukonfiguruotas lubas. Prisotinęs modelio šliuzas niekada neišjungia teikėjo ir niekada
- nesukuria nuolatinio modelio blokavimo; upstream 429 / atvėsimo / atsarginio (fallback)
- elgsena išlieka klaidų paskutine gynyba.
-- **Vieno prisijungimo, vieno proceso apimtis:** ribos taikomos kiekvienam duomenų bazės
- prisijungimui atskirai ir laikomos operatyviojoje atmintyje, todėl du prisijungimai, naudojantys tą patį
- upstream API raktą, tarpusavyje nekoordinuoja.
-- **Nekonfigūruota reiškia nepakeistą elgseną:** praleidus žemėlapį (arba palikus
- skydelio lauką tuščią) modelio šliuzas nepridedamas. Konfigūracijos pavyzdys,
- nedeklaruojantis jokios universalios teikėjo ribos:
+Nustatykite jį ryšio modale (** Kainos limitas nepaiso → Kiekvienam modeliui taikomų lygiagrečiųjų ribų** , vienas `model=cap` eilutėje) arba per `PATCH /api/providers/[id]` su ta pačia JSON forma. Pagrindinė semantika:
+
+- **Viso ryšio ir konkretaus modelio:** `maxConcurrent` išlieka bendro ryšio lubos. Kai taikomi abu, abu vartai atomiškai įgyjami tuose pačiuose sudėtiniuose vartuose (`global → provider → account → model`); efektyvus elgesys yra griežtesnė taikoma riba.
+- **Tiksli modelio ir rakto atitiktis:** raktas yra modelio eilutė, perduodama vykdytojui po maršruto parinkimo rezoliucijos — paprastai yra atviras priešsrovinio modelio ID (`glm-5`), o ne kliento pusės `provider/model` slapyvardis (`zai/glm-5` neatitinka `glm-5`). Vertės yra teigiamų sveikųjų skaičių vienu metu teikiamos užklausos viršutinės ribos.
+- **Vietinė eilė, jokių atradimų:** perteklinių užklausų eilė vietoje su esama queue/timeout semantika (įvestos `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` priėmimo klaidos). OmniRoute neaptinka ir nenurodo ankstesnės politikos — ji įgyvendina tikslias operatoriaus sukonfigūruotas ribas. Prisotintas modelio vartai niekada neišjungia teikėjo ir nesukuria nuolatinio modelio blokavimo; prieš srovę 429/cooldown/fallback elgesys išlieka klaida.
+- **Kiekvienam ryšiui, vienam procesui:** viršutinės ribos yra duomenų bazės ryšiui ir laikomos atmintyje, todėl du ryšiai, pakartotinai naudojantys tą patį API raktą, nederina vienas kito.
+- **Nekonfigūruota reiškia nepakeista:** praleidžiant žemėlapį (arba palikus prietaisų skydelio lauką tuščią), modelio vartai nepridedami. Konfigūracijos pavyzdys, nenurodant jokio universalaus teikėjo apribojimo:
```text
glm-5=1
glm-4.7=3
```
-### Kvotų dalijimosi užklausų serializavimas
-
-Kai kvotų dalijimosi išsiuntimas nukreipiamas į prisijungimą, deklaruojantį teigiamą
-`max_concurrent`, lygiagrečios užklausos į tą **paskyrą** serializuojamos per
-prisijungimo semaforą (raktas `qsconn:`): perteklinės užklausos **laukia
-eilėje**, užuot užtvindžiusios paskyrą. Jis veikia **fail-open** (atviro gedimo)
-principu — prisotinus eilę arba suėjus laiko limitui, užklausa leidžiama be vietos,
-o niekada neatmetama, jei ji apskritai gali būti išsiųsta. Perjungiama
-**Nustatymai → Atsparumas → Kvotų dalijimosi lygiagretumo riba pagal prisijungimą**
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, pagal numatymą įjungta).
-Be `max_concurrent` ribos elgsena nepakitusi.
-
-> Pats kvotų dalijimosi maršruto šliuzas (`selectQuotaShareTarget`, DRR + P2C) taip pat
-> yra fail-open ir tik _sumažina prioritetą_ ribą pasiekusiam prisijungimui — turint
-> vieno prisijungimo telkinį jis negali riboti griežtai, todėl būtent šis semaforas
-> realiai sulaiko antvandį.
-
-### Į atvėsimą reaguojantis kombinacijų pakartotinis bandymas
-
-Kiekvienai kombinacijos strategijai (kai funkcija įjungta) užklausa, kuri sukristalizuotų 429
-klaidą dėl TRUMPO laikino atvėsimo, jį palaukia ir yra išsiunčiama iš naujo, užuot
-grąžinusi 429 — tai apima Gemini klasės TPM/RPM langus (~60 s retry-after)
-kelių modelių kombinacijose, pvz., kai abu dviejų modelių kombinacijos taikiniai
-atsitrenkia į konkretaus modelio dažnio ribą. Ribojama `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`,
-`budgetMs`) skiltyje **Nustatymai → Atsparumas**. Jis niekada nelaukia dėl `quota_exhausted`
-(užrakinta iki vidurnakčio) arba autentifikavimo / „nerasta" (not-found) priežasčių.
-
-Tas pats šliuzas apima ir prieš išsiuntimą esantį atvejį (#16319): kai visi
-kombinacijos taikiniai praleidžiami dar prieš bet kokį bandymą, nes jų modelis yra trumpame
-laikiname užrakte, kelias be bandymų palaukia užrakto pabaigos pagal tas pačias
-lubas ir išsiunčia iš naujo, užuot atsakęs be užuominų
-`503 ALL_TARGETS_SKIPPED`. Kai laukti neleidžiama (pasiektos lubos, išsemti bandymai
-ar biudžetas arba funkcija išjungta), galutinis atsakas pakeliamas į
-`429 rate_limit_error`, nešantį `retry_after` / `reset_at` iš ankstyviausio
-laikinio užrakto galiojimo pabaigos; kvotų, autentifikavimo ir „nerasta" užraktai
-išlaiko beužuomininį 503.
+### Kvotos pasidalijimo užklausos serializavimas
+
+Kai kvotos pasidalijimo siuntimas nukreipiamas į ryšį, kuris deklaruoja teigiamą `max_concurrent`, tuo pačiu metu pateikiamos užklausos** sąskaitą** yra suskirstyti per kiekvieno ryšio semaforą (raktas `qsconn:`): perteklinės užklausos** laukti eilėje** užuot užtvindę sąskaitą. Tai yra** nesėkmingas** — užpildyta eilė arba skirtasis laikas tęsiasi be tarpo, o ne kada nors atmetus siunčiamą užklausą. Įjungti** Parametrai → Atsparumas → Kvotos dalies vieno ryšio lygiagretumas** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, numatytasis įjungtas). Be `max_concurrent` ribos elgesys nesikeičia.
+
+> Kvotos pasidalijimo maršruto parinkimo vartai (`selectQuotaShareTarget`, DRR + P2C) pats savaime yra neatidarytas ir tik _atima pirmenybę_ didelės apimties ryšiui — su vieno ryšio telkiniu, kurio negali griežtai apriboti, todėl šis semaforas iš tikrųjų yra potvynis.
+
+### Kombinuotas atšalimo bandymas dar kartą
+
+Kiekvienoje kombinuotojo strategijoje (jei įjungta) užklausa, kuri išryškintų 429 SHORT trumpalaikiam atšalimui, laukia ir išsiunčiama iš naujo, o ne grąžina 429 — tai apima Dvynių klasės TPM/RPM langus (~ 60s rery-af) kelių modelių kombinacijose, pvz., pasiekia 2 modelio taikinių ribas. Apribota `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`)** Nustatymai → Atsparumas** . Jis niekada nelaukia `quota_exhausted` (užrakintas iki vidurnakčio) arba auth/not-found priežasčių.
+
+Kombinuotame variante galima atsisakyti su `config.comboCooldownWaitEnabled: false`. Tik pažodinis `false` išjungia šias bendrinamas kombinuotas laukimas (atšalimas po išsiuntimo ir circuit-open/model-lock laukimas prieš išsiuntimą) ir jų laukimo biudžeto skirtojo laiko pratęsimas. Trūksta arba `true` išsaugo pasaulinę politiką; `true` negali įjungti visuotinai išjungto laukimo. Aiškus `targetTimeoutMs` vis tiek laimi. Šis atsisakymas nekeičia atskiro vietinio kodo pasukimo laukimo prieš išsiuntimą.
+
+Tie patys vartai dengia išankstinį išsiuntimo atvejį (#16319): kai kiekvienas kombinacijos taikinys praleidžiamas prieš bet kokį bandymą, nes jo modelis yra trumpame laikiname blokavime, nulinio bandymo kelias laukia užrakinimo po tomis pačiomis lubomis ir išsiunčiamas iš naujo, užuot atsakęs į be užuominų `503 ALL_TARGETS_SKIPPED`. Kai laukti neleidžiama (lubos, bandymas ar biudžetas išnaudotas arba funkcija išjungta), terminalo atsakas atnaujinamas į `429 rate_limit_error` pernešantį `retry_after` / `reset_at` nuo anksčiausio pereinamojo užrakto galiojimo pabaigos; kvota, autentifikavimas ir nerasta užraktai išlaiko užuominą be užuominų 503.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/lt/docs/guides/USER_GUIDE.md b/docs/i18n/lt/docs/guides/USER_GUIDE.md
index c49ae5195c24..96f835c64095 100644
--- a/docs/i18n/lt/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/lt/docs/guides/USER_GUIDE.md
@@ -612,57 +612,57 @@ Visą aplinkos kintamųjų žinyną rasite [README](../README.md).
## 📊 Galimi modeliai
-Peržiūrėti visus galimus modelius
+Peržiūrėkite visus galimus modelius
-> Žemiau pateiktas sąrašas sudarytas iš `open-sse/config/providerRegistry.ts`, skirtas v3.8.0. Debesų katalogai (Gemini, OpenRouter ir kt.) sinchronizuojami dinamiškai — norėdami pamatyti visą tiesioginį katalogą, atidarykite **Valdymo skydas → Teikėjai → [teikėjas] → Galimi modeliai** arba iškvieskite `GET /api/models/catalog`.
+> Toliau pateiktas sąrašas sudarytas iš `open-sse/config/providerRegistry.ts`, skirta v3.8.0. Debesų katalogai (Gemini, OpenRouter ir kt.) dinamiškai sinchronizuojami —, kad būtų atidarytas visas tiesioginis katalogas** Dashboard → Providers → [provider] → Galimi modeliai** arba skambinkite `GET /api/models/catalog`.
>
-> Jei teikėjo integruotas sąrašas paseno, tame puslapyje naudokite **Importuoti iš /models** (arba įjunkite **Automatinį sinchronizavimą**), kad atsiųstumėte tiesioginį pirminį katalogą. Tai patvirtinta v3.8.50 versijoje su LLM7.io (`gemini-3.1-flash-lite`) ir UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Pollinations anoniminė prieiga to paties testavimo metu išliko apribota pirminio šaltinio.
+> Jei paslaugų teikėjo integruotas sąrašas nukrypo, naudokite** Importuoti iš /models** tame puslapyje (arba įgalinkite** Automatinis sinchronizavimas** ), kad ištrauktumėte tiesioginį katalogą. Tai buvo patikrinta 3.8.50 versijose LLM7.io (`gemini-3.1-flash-lite`) ir UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Apdulkinimo anoniminė prieiga buvo apribota prieš srovę to paties bandymo metu.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude kodas (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ pastangų lygiai: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ pastangų pakopos: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — NEMOKAMAS OAuth: naudokite tiesioginį katalogą, rodomą **Valdymo skydas → Teikėjai → Kiro → Galimi modeliai**. Prieinamumas priklauso nuo paskyros ir plano.
+**Kiro (`kr/`)** — FREE OAuth: naudokite tiesioginį katalogą, parodytą žemiau** Prietaisų skydelis → Tiekėjai → Kiro → Galimi modeliai** . Prieinamumas priklauso nuo paskyros ir plano.
-**Qoder (`if/`)** — NEMOKAMAS OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mėn. fiksuota kaina arba mokėjimas pagal naudojimą: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo butas arba vienam naudojimui: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — API raktas: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API klavišas: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Ypač greitas: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — itin greitas: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok tiesiogiai: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok gimtoji: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Talpinama ES: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — ES priglobta: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Papildyta paieška: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**sumišimas (`pplx/`)** — išplėstinė paieška: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Atvirojo kodo: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (nemokama), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — atvirojo kodo: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (nemokamas), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Greita inferencija: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Greita išvada: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Plokštės (wafer) mastelio: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Vaflių skalė: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Orientuota į RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — orientuotas į RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Įmonėms: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — įmonė: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Sinchronizuojama tiesiogiai pagal API raktą iš Google — statinio sąrašo nėra. Prijunkite raktą **Valdymo skydas → Teikėjai**, tada naudokite **Galimi modeliai**, kad importuotumėte dabartinį katalogą (pvz., `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : Sinchronizuota tiesiogiai per API klavišą iš Google — be statinio sąrašo. Prijunkite raktą** Prietaisų skydelio → teikėjai** tada naudokite** Galimi modeliai** importuoti esamą katalogą (pvz., `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Kiti suderinami teikėjai** (atrinkti): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (per `aws-bedrock`), `azure-ai`, `openrouter` (perduodamas katalogas), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Kiekvienas palaiko savo modelių sąrašą faile `providerRegistry.ts` ir gali būti automatiškai sinchronizuojamas, kai teikėjas atskleidžia `/models` galinį tašką.
+**Kiti suderinami tiekėjai** (pasirinkta): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (per `aws-bedrock`), `azure-ai`, `openrouter` (praėjimo katalogas), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai` `nous-research` `reka`, `volcengine`, `ai21` `gigachat` Kiekvienas iš jų turi savo modelių sąrašą `providerRegistry.ts` ir gali būti automatiškai sinchronizuojamas, kai teikėjas atskleidžia `/models` galinį tašką.
-**Pastaba dėl modelių ID:** OmniRoute naudoja teikėjų vietinius ID (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Kai kuriuose ID yra taškinių versijų, nes būtent taip jų tikisi pirminė API. Jei modelio nėra aukščiau pateiktame sąraše, paleiskite `omniroute models --search ` arba iškvieskite `GET /api/models/catalog`, kad patvirtintumėte prieinamumą.
+**Pastaba dėl modelio IDs:** OmniRoute naudoja savąjį teikėjo IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Kai kurios IDs apima taškuotas versijas, nes taip jų tikisi prieš srovę esantis API. Jei modelis nepateiktas aukščiau, paleiskite `omniroute models --search ` arba paspauskite `GET /api/models/catalog`, kad patvirtintumėte prieinamumą.
diff --git a/docs/i18n/lv/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/lv/docs/architecture/RESILIENCE_GUIDE.md
index 51d76461000a..5d078e0cdfd5 100644
--- a/docs/i18n/lv/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/lv/docs/architecture/RESILIENCE_GUIDE.md
@@ -281,27 +281,17 @@ bloķēšanas _stāvoklis_ ir īslaicīgs.
---
-## 4. Quota-share režīma vienlaicīguma kontrole (v3.8.36)
+## 4. Kvotas koplietošanas vienlaicības kontrole (v3.8.36)
-Abonementa konti (GLM, MiniMax u.c.) bieži pieņem tikai ~1–3 vienlaicīgus
-pieprasījumus; to pārsniegšana izraisa 429 kļūdas un atdzišanas periodus. Tas
-ir īpaši aktuāli **quota-share** (`qtSd/…`) kombinācijās, kurās vairākas API
-atslēgas koplieto vienu upstream kontu. Trīs slāņi pasargā koplietoto kontu no
-pārplūdināšanas.
+Abonēšanas konti (GLM, MiniMax utt.) bieži vien pieņem tikai ~ 1–3 vienlaicīgus pieprasījumus; pārsniegšana izraisa 429s un atdzišanu. Tas ir akūts zem** kvotas daļa** (`qtSd/…`) kombinācijas, kur vairākiem API taustiņiem ir kopīgs viens augšupējais konts. Trīs slāņi neļauj koplietotajam kontam tikt appludinātam.
-### Vienlaicīguma griesti katram savienojumam (`max_concurrent`)
+### Vienlaicības ierobežojums katram savienojumam (`max_concurrent`)
-Katrs sniedzēja savienojums var deklarēt `max_concurrent` griestus
-(`provider_connections.max_concurrent`, iestatāms savienojuma modālajā logā /
-API / datubāzē). Atstājiet to tukšu, ja ierobežojums nav vajadzīgs. Šis ir
-vienīgais regulators, kas darbina zemāk aprakstīto serializācijas slāni —
-iestatiet to atbilstoši konta reālajam vienlaicīgumam (piem., GLM ~1,
-MiniMax ~2).
+Katrs pakalpojumu sniedzēja savienojums var deklarēt `max_concurrent` griestus (`provider_connections.max_concurrent`, kas iestatīts savienojumā modāls / API / DB). Atstājiet to tukšu bez ierobežojumiem. Šī ir vienīgā poga, kas vada serializācijas slāni zem — iestata to uz konta reālo vienlaicību (piemēram GLM ~ 1, MiniMax ~ 2).
-### Vienlaicīguma griesti katram modelim (`modelConcurrency`)
+### Vienlaicības ierobežojumi katram modelim (`modelConcurrency`)
-Savienojums papildus var deklarēt precīzus vienlaicīguma griestus katram
-modelim savā `rateLimitOverrides` kartē:
+Savienojums savā `rateLimitOverrides` kartē var papildus deklarēt precīzus katra modeļa vienlaicīguma griestus:
```json
{
@@ -312,78 +302,32 @@ modelim savā `rateLimitOverrides` kartē:
}
```
-Iestatiet to savienojuma modālajā logā (**Pieprasījumu biežuma
-pārdefinējumi → Vienlaicīguma griesti pa modeļiem**, viens `model=cap` katrā
-rindā) vai ar `PATCH /api/providers/[id]`, izmantojot tādu pašu JSON struktūru.
-Galvenā semantika:
-
-- **Visam savienojumam pret konkrētu modeli:** `maxConcurrent` paliek kopīgie
- visa savienojuma griesti. Ja abi ir spēkā, abi vārti tiek iegūti atomiski
- vienā un tajā pašā saliktajā vārtu ķēdē
- (`global → provider → account → model`); faktiskā uzvedība atbilst
- stingrākajam piemērojamajam ierobežojumam.
-- **Precīza modeļa atslēgas atbilstība:** atslēga ir modeļa virkne, kas pēc
- maršrutēšanas izšķiršanas tiek nodota izpildītājam — parasti tīrs upstream
- modeļa identifikators (`glm-5`), nevis klientpuses `provider/model`
- aizstājējnosaukums (`zai/glm-5` neatbilst `glm-5`). Vērtības ir pozitīvi
- veseli skaitļi — vienlaicīgo pieprasījumu griesti.
-- **Lokāla rindēšana, bez automātiskas noteikšanas:** liekie pieprasījumi tiek
- rindoti lokāli ar esošo rindas/noilguma semantiku (tipizētas
- `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` uzņemšanas kļūdas). OmniRoute
- neatklāj un neizsecina upstream politiku — tas īsteno tieši tos griestus,
- kurus konfigurējis operators. Piesātināti modeļa vārti nekad neatspējo
- sniedzēju un neizveido pastāvīgu modeļa bloķēšanu; upstream
- 429/atdzišanas/fallback uzvedība paliek kļūdu pēdējais aizsargmehānisms.
-- **Darbības joma — pa savienojumiem un procesiem:** griesti ir definēti
- katram datubāzes savienojumam un tiek glabāti atmiņā, tāpēc divi
- savienojumi, kas izmanto vienu un to pašu upstream API atslēgu, savstarpēji
- nekoordinējas.
-- **Nekonfigurēts nozīmē nemainītu:** ja karte nav norādīta (vai paneļa lauks
- atstāts tukšs), modeļa vārti netiek pievienoti. Konfigurācijas piemērs bez
- jebkāda universāla sniedzēja ierobežojuma deklarēšanas:
+Iestatiet to savienojuma modālā (** Likmes ierobežojums ignorē → Vienlaicības ierobežojumus katram modelim** , viens `model=cap` katrā rindā) vai caur `PATCH /api/providers/[id]` ar tādu pašu JSON formu. Galvenā semantika:
+
+- **Visā savienojumā salīdzinājumā ar modeli:** `maxConcurrent` joprojām ir koplietošanas savienojuma griesti. Ja tiek piemēroti abi, abi vārti tiek iegūti atomiski tajos pašos saliktajos vārtos (`global → provider → account → model`); efektīva rīcība ir stingrāka piemērojamā robeža.
+- **Precīza modeļa un atslēgas atbilstība:** galvenais ir modeļa virkne, kas tiek nodota izpildītājam pēc maršrutēšanas izšķirtspējas — parasti tukšais augšpus modeļa ID (`glm-5`), nevis klienta puses `provider/model` aizstājvārds (`zai/glm-5` neatbilst `glm-5`). Vērtības ir pozitīvu veselu skaitļu vienlaicīga pieprasījuma griesti.
+- **Vietējā rinda, bez atklāšanas:** lieko pieprasījumu rinda lokāli ar esošo queue/timeout semantiku (ierakstītas `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` uzņemšanas kļūdas). OmniRoute neatklāj vai neizsecina augšupējo politiku. — tā ievieš precīzus operatora konfigurētos griestus. Piesātināta modeļa vārti nekad neatspējo pakalpojumu sniedzēju un nerada pastāvīgu modeļa bloķēšanu; augšpus 429/cooldown/fallback uzvedība joprojām ir kļūdas bloķētājs.
+- **Katram savienojumam, katram procesam:** vāciņi ir katram datu bāzes savienojumam un tiek turēti atmiņā, tāpēc divi savienojumi, kas atkārtoti izmanto vienu un to pašu augšupējo API taustiņu, nesaskaņojas viens ar otru.
+- **Nekonfigurēts nozīmē nemainīts:** izlaižot karti (vai atstājot informācijas paneļa lauku tukšu), modeļa vārti netiek pievienoti. Konfigurācijas piemērs, nenosakot nekādu universālo pakalpojumu sniedzēja ierobežojumu:
```text
glm-5=1
glm-4.7=3
```
-### Pieprasījumu serializācija quota-share režīmā
-
-Kad quota-share nosūtīšana ir vērsta uz savienojumu, kurā deklarēts pozitīvs
-`max_concurrent`, vienlaicīgie pieprasījumi uz šo **kontu** tiek serializēti,
-izmantojot katra savienojuma semaforu (atslēga `qsconn:`): liekie
-pieprasījumi **gaida rindā**, nevis pārpludina kontu. Tas darbojas **fail-open**
-režīmā — piesātināta rinda vai noilgums turpina izpildi bez slota, nevis jebkad
-noraida nosūtāmu pieprasījumu. Pārslēdzams sadaļā **Iestatījumi → Noturība →
-Quota-share vienlaicīgums pa savienojumiem**
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, pēc noklusējuma
-ieslēgts). Ja `max_concurrent` griesti nav iestatīti, uzvedība paliek nemainīta.
-
-> Quota-share maršrutēšanas vārti (`selectQuotaShareTarget`, DRR + P2C) paši ir
-> fail-open un tikai _deprioritizē_ savienojumu, kas sasniedzis griestus — ar
-> viena savienojuma kopu tie nespēj stingri ierobežot, tāpēc tieši šis semafors
-> faktiski aptur plūdus.
-
-### Kombināciju atkārtošana, ņemot vērā atdzišanas periodus
-
-Katrā kombinācijas stratēģijā (ja tā ieslēgta) pieprasījums, kas ĪSA pārejoša
-atdzišanas perioda dēļ izraisītu 429 kļūdu, to izgaida un tiek nosūtīts
-atkārtoti, nevis atgriež 429 — tas attiecas uz Gemini klases TPM/RPM logiem
-(~60 s retry-after) vairāku modeļu kombinācijās, piemēram, ja abi 2 modeļu
-kombinācijas mērķi trāpa modeļa līmeņa biežuma ierobežojumā. To ierobežo
-`comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) sadaļā
-**Iestatījumi → Noturība**. Tas nekad negaida `quota_exhausted` gadījumā
-(bloķēts līdz pusnaktij) vai autentifikācijas/nav-atrasts iemeslu dēļ.
-
-Tie paši vārti sedz pirmsnosūtīšanas gadījumu (#16319): kad visi kombinācijas
-mērķi tiek izlaisti pirms jebkāda mēģinājuma, jo to modelis atrodas īsā
-pārejošā bloķēšanā, nulles mēģinājumu ceļš izgaida bloķēšanu tajos pašos
-griestos un nosūta atkārtoti, nevis atbild ar `503 ALL_TARGETS_SKIPPED` bez
-papildu norāžu. Ja gaidīšana nav atļauta (izsmelti griesti, mēģinājumi vai
-budžets, vai arī funkcija ir izslēgta), galīgā atbilde kļūst par
-`429 rate_limit_error`, nesot `retry_after` / `reset_at` no agrākā pārejošās
-bloķēšanas beigu brīža; kvotas, autentifikācijas un nav-atrasts bloķēšanas
-saglabā 503 bez papildu norāžu.
+### Kvotas dalīšanas pieprasījuma serializācija
+
+Ja kvotas sadales nosūtīšanas mērķis ir savienojums, kas deklarē pozitīvu `max_concurrent`, tam tiek nosūtīti vienlaicīgi pieprasījumi** kontu** tiek serializēti, izmantojot katra savienojuma semaforu (taustiņu `qsconn:`): lieki pieprasījumi** gaidiet rindā** tā vietā, lai pārpludinātu kontu. Tā ir** neveiksmīgs** — piesātināta rinda vai taimauts turpinās bez slota, nevis nekad noraidītu nosūtāmu pieprasījumu. Pārslēgt** Iestatījumi → Noturība → Kvotas koplietošanas viena savienojuma vienlaicīgums** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, noklusējuma ieslēgts). Bez `max_concurrent` vāciņa uzvedība nemainās.
+
+> Kvotas koplietošanas maršrutēšanas vārti (`selectQuotaShareTarget`, DRR + P2C) pati par sevi ir atvērti kļūmēm un tikai _atšķiras no prioritātēm_ at-cap savienojumam — ar viena savienojuma kopu, ko nevar stingri ierobežot, tāpēc šis semafors ir tas, kas faktiski satur plūdus.
+
+### Atkārtots mēģinājums pēc atdzišanas
+
+Katrai kombinācijas stratēģijai (ja ir iespējota) pieprasījums, kas izkristalizētu 429 SHORT pārejošai atdzišanai, gaida to un tiek nosūtīts atkārtoti, nevis atgriež 429 — tas attiecas uz Gemini klases TPM/RPM logiem (~ 60s atkārtots mēģinājums pēc) vairāku modeļu kombinācijas, piemēram, ķemmes 2 mērķa trāpīšanas ātrums katram modelim. Ierobežo `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`)** Iestatījumi → Resilience** . Tas nekad negaida `quota_exhausted` (bloķēts līdz pusnaktij) vai auth/not-found iemeslu dēļ.
+
+Kombinācijā var atteikties ar `config.comboCooldownWaitEnabled: false`. Tikai burtiskā `false` atspējo šīs koplietotās kombinētās gaidīšanas (pēc nosūtīšanas atdzesēšanas un pirmsnosūtīšanas circuit-open/model-lock gaidīšanas) un to gaidīšanas budžeta noildzes un grīdas pagarinājumu. Trūkst vai `true` saglabā globālo politiku; `true` nevar iespējot globāli atspējotu gaidīšanu. Skaidrs `targetTimeoutMs` joprojām uzvar. Šī atteikšanās nemaina atsevišķu vietējā Codex pagriežamo pirmsnosūtīšanas gaidīšanu.
+
+Tie paši vārti aptver pirmsnosūtīšanas gadījumu (#16319): ja katrs kombinācijas mērķis tiek izlaists pirms jebkāda mēģinājuma, jo tā modelis atrodas īsā pārejā bloķētā stāvoklī, nulles mēģinājuma ceļš gaida bloķēšanu zem tiem pašiem griestiem un tiek nosūtīts atkārtoti, tā vietā, lai atbildētu uz `503 ALL_TARGETS_SKIPPED` bez mājiena. Ja nav atļauts gaidīt (griesti, mēģinājums vai budžets ir izsmelts vai funkcija ir izslēgta), termināļa atbilde tiek atjaunināta uz `429 rate_limit_error` kas pārnēsā `retry_after` / `reset_at` no agrākās īslaicīgās slēdzenes derīguma termiņa beigām; Kvotas, autentifikācijas un neatrastas slēdzenes saglabā 503. izmantošanu bez mājiena.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/lv/docs/guides/USER_GUIDE.md b/docs/i18n/lv/docs/guides/USER_GUIDE.md
index eebefe984d83..9a562e22cf23 100644
--- a/docs/i18n/lv/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/lv/docs/guides/USER_GUIDE.md
@@ -605,60 +605,60 @@ Par pilnu vides mainīgo atsauci skatiet [README](../README.md).
---
-## 📊 Pieejamie modeļi
+## 📊 pieejamie modeļi
Skatīt visus pieejamos modeļus
-> Tālāk sniegtais saraksts ir apkopots no `open-sse/config/providerRegistry.ts` versijai v3.8.0. Mākoņpakalpojumu katalogi (Gemini, OpenRouter u.c.) tiek sinhronizēti dinamiski — pilno reāllaika katalogu atveriet sadaļā **Vadības panelis → Pakalpojumu sniedzēji → [pakalpojumu sniedzējs] → Pieejamie modeļi** vai izsauciet `GET /api/models/catalog`.
+> Tālāk esošais saraksts ir izveidots no `open-sse/config/providerRegistry.ts` versijai 3.8.0. Mākoņkatalogi (Gemini, OpenRouter u.c.) tiek dinamiski sinhronizēti —, lai atvērtu pilnu tiešraides katalogu** Dashboard → Providers → [provider] → Pieejamie modeļi** vai zvaniet uz `GET /api/models/catalog`.
>
-> Ja pakalpojumu sniedzēja iebūvētais saraksts ir novecojis, izmantojiet tajā lapā opciju **Importēt no /models** (vai iespējojiet **Automātisko sinhronizāciju**), lai iegūtu aktuālo augšplūsmas katalogu. Tas tika pārbaudīts versijā v3.8.50 pakalpojumiem LLM7.io (`gemini-3.1-flash-lite`) un UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Pollinations anonīmā piekļuve tajā pašā testēšanas ciklā joprojām bija ierobežota no augšplūsmas puses.
+> Ja pakalpojumu sniedzēja iebūvētais saraksts ir novirzījies, izmantojiet** Importēt no /models** šajā lapā (vai iespējojiet** Automātiskā sinhronizācija** ), lai izvilktu tiešraides augšupvērsto katalogu. Tas tika pārbaudīts 3.8.50 versijā LLM7.io (`gemini-3.1-flash-lite`) un UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Apputeksnēšanas anonīmā piekļuve saglabājās ierobežota augštecē tās pašas pārbaudes laikā.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude kods (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ piepūles līmeņi: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — BEZMAKSAS OAuth: izmantojiet reāllaika katalogu, kas redzams sadaļā **Vadības panelis → Pakalpojumu sniedzēji → Kiro → Pieejamie modeļi**. Pieejamība ir atkarīga no konta un plāna.
+**Kiro (`kr/`)** — FREE OAuth: izmantojiet tiešsaistes katalogu, kas parādīts zemāk** Informācijas panelis → nodrošinātāji → Kiro → Pieejamie modeļi** . Pieejamība ir atkarīga no konta un plāna.
-**Qoder (`if/`)** — BEZMAKSAS OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mēn. fiksēti vai pēc lietojuma: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo dzīvoklis vai vienai lietošanai: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — API atslēga: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Īpaši ātrs: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — īpaši ātrs: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok natīvie modeļi: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok dzimtā: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Mitināts ES: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — ES mitināts: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Ar meklēšanas papildinājumu: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**apjukums (`pplx/`)** — paplašinātā meklēšana: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Atvērtā koda: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (bezmaksas), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — atvērtā koda: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (bezmaksas), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Ātra secināšana: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Ātrs secinājums: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Plāksnes mēroga: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Vafeļu mērogs: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Uz RAG orientēts: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG fokusēts: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Korporatīvais: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Reāllaikā sinhronizēts no Google katrai API atslēgai atsevišķi — statiska saraksta nav. Pievienojiet atslēgu sadaļā **Vadības panelis → Pakalpojumu sniedzēji** un pēc tam izmantojiet **Pieejamie modeļi**, lai importētu pašreizējo katalogu (piem., `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : sinhronizēts tiešraidē ar API taustiņu no Google — bez statiskā saraksta. Pievienojiet atslēgu** Informācijas paneļa → nodrošinātāji** tad izmantojiet** Pieejamie modeļi** lai importētu pašreizējo katalogu (piemēram, `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Citi saderīgie pakalpojumu sniedzēji** (izvēlētie): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (caur `aws-bedrock`), `azure-ai`, `openrouter` (caurlaides katalogs), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Katrs no tiem uztur savu modeļu sarakstu failā `providerRegistry.ts`, un to var automātiski sinhronizēt, ja pakalpojumu sniedzējs nodrošina `/models` galapunktu.
+**Citi saderīgi pakalpojumu sniedzēji** (atlasīts): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (izmantojot `aws-bedrock`), `azure-ai` `nous-research` `openrouter` (caurlaides katalogs), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `reka`, `volcengine`, `ai21` `gigachat` Katrs uztur savu modeļu sarakstu `providerRegistry.ts`, un to var automātiski sinhronizēt, kad pakalpojumu sniedzējs atklāj `/models` galapunktu.
-**Piezīme par modeļu ID:** OmniRoute izmanto pakalpojumu sniedzēja natīvos ID (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Daži ID ietver versijas ar punktiem, jo tieši tā tos sagaida augšplūsmas API. Ja modelis nav minēts iepriekšējā sarakstā, palaidiet `omniroute models --search ` vai izsauciet `GET /api/models/catalog`, lai pārliecinātos par pieejamību.
+**Piezīme par modeli IDs:** OmniRoute izmanto nodrošinātāja vietējo IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Dažās IDs ir iekļautas punktētas versijas, jo tieši tā tās sagaida API. Ja modelis nav norādīts iepriekš, palaidiet `omniroute models --search ` vai nospiediet `GET /api/models/catalog`, lai apstiprinātu pieejamību.
diff --git a/docs/i18n/ml/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/ml/docs/architecture/RESILIENCE_GUIDE.md
index 74e5e467bb36..24dd310d4725 100644
--- a/docs/i18n/ml/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/ml/docs/architecture/RESILIENCE_GUIDE.md
@@ -254,26 +254,17 @@ UI: Monitoring → Cooldown Manager (`src/app/(dashboard)/dashboard/resilience/c
---
-## 4. ക്വോട്ട-ഷെയർ കൺകറൻസി നിയന്ത്രണം (v3.8.36)
+## 4. ക്വാട്ട-ഷെയർ കൺകറൻസി കൺട്രോൾ (v3.8.36)
-സബ്സ്ക്രിപ്ഷൻ അക്കൗണ്ടുകൾ (GLM, MiniMax മുതലായവ) പലപ്പോഴും ~1–3 കൺകറന്റ്
-റിക്വസ്റ്റുകൾ മാത്രമേ സ്വീകരിക്കൂ; അതിൽ കവിഞ്ഞാൽ 429-കളും കൂൾഡൗണുകളും ഉണ്ടാകും.
-ഒന്നിലധികം API കീകൾ ഒരു അപ്സ്ട്രീം അക്കൗണ്ട് പങ്കിടുന്ന **ക്വോട്ട-ഷെയർ**
-(`qtSd/…`) കോമ്പോകളിൽ ഇത് പ്രത്യേകിച്ച് ഗുരുതരമാണ്. ഒരു പങ്കിട്ട അക്കൗണ്ട്
-കവിഞ്ഞൊഴുകുന്നതിൽ നിന്ന് സംരക്ഷിക്കാൻ മൂന്ന് പാളികൾ ഉണ്ട്.
+സബ്സ്ക്രിപ്ഷൻ അക്കൗണ്ടുകൾ (GLM, MiniMax, മുതലായവ) പലപ്പോഴും ~ 1-3 സമകാലിക അഭ്യർത്ഥനകൾ മാത്രമേ സ്വീകരിക്കൂ; അത് കവിയുന്നത് 429-ഉം കൂൾഡൗണുകളും ട്രിഗർ ചെയ്യുന്നു. ഇത് നിശിതമാണ്** ക്വാട്ട-വിഹിതം** (`qtSd/…`) കോമ്പോകൾ, ഇവിടെ നിരവധി API കീകൾ ഒരു അപ്സ്ട്രീം അക്കൗണ്ട് പങ്കിടുന്നു. മൂന്ന് ലെയറുകൾ ഒരു പങ്കിട്ട അക്കൗണ്ടിനെ വെള്ളപ്പൊക്കത്തിൽ നിന്ന് സംരക്ഷിക്കുന്നു.
-### കണക്ഷൻ-തല കൺകറൻസി പരിധി (`max_concurrent`)
+### ഓരോ കണക്ഷനും കൺകറൻസി ക്യാപ് (`max_concurrent`)
-ഓരോ പ്രൊവൈഡർ കണക്ഷനും ഒരു `max_concurrent` പരിധി പ്രഖ്യാപിക്കാം
-(`provider_connections.max_concurrent`, കണക്ഷൻ മോഡൽ / API / DB-യിൽ സജ്ജീകരിക്കാം).
-പരിധി വേണ്ടെങ്കിൽ ഇത് ശൂന്യമായി വിടുക. താഴെ വിവരിക്കുന്ന സീരിയലൈസേഷൻ പാളിയെ
-നയിക്കുന്ന ഏക നിയന്ത്രണമാണിത് — ഇത് അക്കൗണ്ടിന്റെ യഥാർത്ഥ കൺകറൻസിയിലേക്ക്
-സജ്ജീകരിക്കുക (ഉദാ. GLM ~1, MiniMax ~2).
+ഓരോ പ്രൊവൈഡർ കണക്ഷനും ഒരു `max_concurrent` സീലിംഗ് പ്രഖ്യാപിക്കാൻ കഴിയും (`provider_connections.max_concurrent`, കണക്ഷൻ മോഡൽ / API / DB ൽ സജ്ജീകരിച്ചിരിക്കുന്നു). പരിധിയില്ലാതെ ശൂന്യമായി വിടുക. — താഴെയുള്ള സീരിയലൈസേഷൻ ലെയറിനെ ഡ്രൈവ് ചെയ്യുന്ന സിംഗിൾ നോബാണിത്, ഇത് അക്കൗണ്ടിൻ്റെ യഥാർത്ഥ കൺകറൻസിയിലേക്ക് സജ്ജമാക്കുന്നു (ഉദാ. GLM ~ 1, MiniMax ~ 2).
-### മോഡൽ-തല കൺകറൻസി പരിധികൾ (`modelConcurrency`)
+### ഓരോ മോഡൽ കൺകറൻസി ക്യാപ്സ് (`modelConcurrency`)
-ഒരു കണക്ഷന് അതിന്റെ `rateLimitOverrides` മാപ്പിനുള്ളിൽ കൃത്യമായ മോഡൽ-തല
-കൺകറൻസി പരിധികൾ കൂടുതലായി പ്രഖ്യാപിക്കാം:
+ഒരു കണക്ഷന് അതിൻ്റെ `rateLimitOverrides` മാപ്പിനുള്ളിൽ ഓരോ മോഡലിനും കൃത്യമായ കൺകറൻസി സീലിംഗ് പ്രഖ്യാപിക്കാനാകും:
```json
{
@@ -284,77 +275,32 @@ UI: Monitoring → Cooldown Manager (`src/app/(dashboard)/dashboard/resilience/c
}
```
-ഇത് കണക്ഷൻ മോഡലിൽ സജ്ജീകരിക്കാം (**റേറ്റ് ലിമിറ്റ് ഓവർറൈഡുകൾ → മോഡൽ-തല
-കൺകറൻസി പരിധികൾ**, ഓരോ വരിയിലും ഒരു `model=cap` വീതം) അല്ലെങ്കിൽ അതേ JSON
-രൂപത്തോടെ `PATCH /api/providers/[id]` വഴി സജ്ജീകരിക്കാം. പ്രധാന അർത്ഥതലങ്ങൾ:
-
-- **കണക്ഷൻ-വ്യാപകം vs മോഡൽ-നിർദ്ദിഷ്ടം:** `maxConcurrent` പങ്കിട്ട
- കണക്ഷൻ-വ്യാപക പരിധിയായി തുടരും. രണ്ടും ബാധകമാകുമ്പോൾ, രണ്ട് ഗേറ്റുകളും ഒരേ
- സംയുക്ത ഗേറ്റിൽ (`global → provider → account → model`) ആണവികമായി നേടുന്നു;
- ഫലപ്രദമായ പെരുമാറ്റം ബാധകമായതിൽ കൂടുതൽ കർശനമായ പരിധിയായിരിക്കും.
-- **കൃത്യമായ മോഡൽ-കീ പൊരുത്തം:** റൂട്ടിംഗ് റെസലൂഷന് ശേഷം എക്സിക്യൂട്ടറിലേക്ക്
- കൈമാറുന്ന മോഡൽ സ്ട്രിംഗാണ് കീ — സാധാരണയായി അപ്സ്ട്രീം മോഡൽ ഐഡി മാത്രം
- (`glm-5`), ക്ലയന്റ്-സൈഡ് `provider/model` അപരനാമമല്ല (`zai/glm-5` എന്നത്
- `glm-5`-മായി പൊരുത്തപ്പെടില്ല). മൂല്യങ്ങൾ പോസിറ്റീവ്-പൂർണ്ണസംഖ്യാ
- കൺകറന്റ്-റിക്വസ്റ്റ് പരിധികളാണ്.
-- **ലോക്കൽ ക്യൂവിംഗ്, ഡിസ്കവറി ഇല്ല:** അധിക റിക്വസ്റ്റുകൾ നിലവിലുള്ള ക്യൂ/ടൈംഔട്ട്
- അർത്ഥതലങ്ങളോടെ (ടൈപ്പ് ചെയ്ത `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`
- പ്രവേശന പിശകുകൾ) ലോക്കലായി ക്യൂവിൽ കാത്തിരിക്കും. അപ്സ്ട്രീം നയം OmniRoute
- കണ്ടെത്തുകയോ അനുമാനിക്കുകയോ ചെയ്യുന്നില്ല — ഓപ്പറേറ്റർ കോൺഫിഗർ ചെയ്ത കൃത്യമായ
- പരിധികൾ ഇത് നടപ്പിലാക്കുന്നു. നിറഞ്ഞ ഒരു മോഡൽ ഗേറ്റ് ഒരിക്കലും പ്രൊവൈഡറെ
- പ്രവർത്തനരഹിതമാക്കില്ല, സ്ഥിരമായ മോഡൽ ലോക്കൗട്ട് സൃഷ്ടിക്കുകയുമില്ല;
- അപ്സ്ട്രീം 429/കൂൾഡൗൺ/ഫോൾബാക്ക് പെരുമാറ്റം പിശക് ബാക്ക്സ്റ്റോപ്പായി തുടരും.
-- **കണക്ഷൻ-തല, പ്രോസസ്-തല സ്കോപ്പ്:** പരിധികൾ ഡാറ്റാബേസ് കണക്ഷൻ അടിസ്ഥാനത്തിലുള്ളതും
- മെമ്മറിയിൽ സൂക്ഷിക്കുന്നതുമാണ്, അതിനാൽ ഒരേ അപ്സ്ട്രീം API കീ പുനരുപയോഗിക്കുന്ന
- രണ്ട് കണക്ഷനുകൾ പരസ്പരം ഏകോകിപ്പിക്കില്ല.
-- **കോൺഫിഗർ ചെയ്യാത്തതിനാൽ മാറ്റമില്ല:** മാപ്പ് ഒഴിവാക്കുന്നത് (അല്ലെങ്കിൽ
- ഡാഷ്ബോർഡ് ഫീൽഡ് ശൂന്യമായി വിടുന്നത്) മോഡൽ ഗേറ്റ് ചേർക്കുന്നില്ല. സാർവത്രിക
- പ്രൊവൈഡർ പരിധി ഒന്നും അവകാശപ്പെടാത്ത ഉദാഹരണ കോൺഫിഗറേഷൻ:
+കണക്ഷൻ മോഡലിൽ ഇത് സജ്ജമാക്കുക (** നിരക്ക് പരിധി → ഓരോ മോഡൽ കൺകറൻസി ക്യാപ്സ് അസാധുവാക്കുന്നു** , ഒരു വരിയിൽ ഒരു `model=cap` ) അല്ലെങ്കിൽ അതേ JSON ആകൃതിയിലുള്ള `PATCH /api/providers/[id]` വഴി. പ്രധാന അർത്ഥശാസ്ത്രം:
+
+- **കണക്ഷൻ-വൈഡ് vs മോഡൽ-നിർദ്ദിഷ്ടം:** `maxConcurrent` പങ്കിട്ട കണക്ഷൻ-വൈഡ് സീലിംഗായി തുടരുന്നു. രണ്ടും പ്രയോഗിക്കുമ്പോൾ, രണ്ട് ഗേറ്റുകളും ഒരേ സംയോജിത ഗേറ്റിൽ (`global → provider → account → model`) ആറ്റോമികമായി നേടുന്നു; ഫലപ്രദമായ പെരുമാറ്റം എന്നത് കർശനമായ ബാധകമായ പരിധിയാണ്.
+- **കൃത്യമായ മോഡൽ-കീ പൊരുത്തം:** റെസല്യൂഷൻ — `glm-5` ചെയ്ത ശേഷം`zai/glm-5` കൈമാറിയ മോഡൽ `provider/model` കീ `glm-5` മൂല്യങ്ങൾ പോസിറ്റീവ്-ഇൻ്റജർ കൺകറൻ്റ് അഭ്യർത്ഥന പരിധികളാണ്.
+- **പ്രാദേശിക ക്യൂയിംഗ്, കണ്ടെത്തലുകളൊന്നുമില്ല:** നിലവിലുള്ള queue/timeout സെമാൻ്റിക്സ് (ടൈപ്പ് ചെയ്ത `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` പ്രവേശന പിശകുകൾ) ഉപയോഗിച്ച് അധിക അഭ്യർത്ഥനകൾ പ്രാദേശികമായി ക്യൂവാകുന്നു. OmniRoute അപ്സ്ട്രീം പോളിസി — കണ്ടെത്തുകയോ അനുമാനിക്കുകയോ ചെയ്യുന്നില്ല, ഇത് ഓപ്പറേറ്റർ കോൺഫിഗർ ചെയ്ത കൃത്യമായ പരിധികൾ നടപ്പിലാക്കുന്നു. ഒരു പൂരിത മോഡൽ ഗേറ്റ് ഒരിക്കലും ദാതാവിനെ അപ്രാപ്തമാക്കുന്നില്ല, ഒരു സ്ഥിരമായ മോഡൽ ലോക്കൗട്ട് സൃഷ്ടിക്കുന്നില്ല; അപ്സ്ട്രീം 429/cooldown/fallback സ്വഭാവം പിശക് ബാക്ക്സ്റ്റോപ്പായി തുടരുന്നു.
+- **ഓരോ കണക്ഷനും, ഓരോ പ്രോസസ് സ്കോപ്പ്:** ക്യാപ്സ് ഓരോ ഡാറ്റാബേസ് കണക്ഷനും മെമ്മറിയിൽ സൂക്ഷിച്ചിരിക്കുന്നതുമാണ്, അതിനാൽ ഒരേ അപ്സ്ട്രീം API കീ വീണ്ടും ഉപയോഗിക്കുന്ന രണ്ട് കണക്ഷനുകൾ പരസ്പരം ഏകോപിപ്പിക്കില്ല.
+- **കോൺഫിഗർ ചെയ്യാത്തത് എന്നാൽ മാറ്റമില്ലാത്തത് എന്നാണ് അർത്ഥമാക്കുന്നത്:** മാപ്പ് ഒഴിവാക്കുന്നത് (അല്ലെങ്കിൽ ഡാഷ്ബോർഡ് ഫീൽഡ് ശൂന്യമായി വിടുന്നത്) മോഡൽ ഗേറ്റ് ചേർക്കുന്നില്ല. ഏതെങ്കിലും സാർവത്രിക ദാതാവിൻ്റെ പരിധി ഉറപ്പിക്കാതെയുള്ള കോൺഫിഗറേഷൻ ഉദാഹരണം:
```text
glm-5=1
glm-4.7=3
```
-### ക്വോട്ട-ഷെയർ റിക്വസ്റ്റ് സീരിയലൈസേഷൻ
-
-പോസിറ്റീവ് `max_concurrent` പ്രഖ്യാപിക്കുന്ന ഒരു കണക്ഷനെ ക്വോട്ട-ഷെയർ ഡിസ്പാച്ച്
-ലക്ഷ്യമിടുമ്പോൾ, ആ **അക്കൗണ്ടിലേക്കുള്ള** കൺകറന്റ് റിക്വസ്റ്റുകൾ ഒരു കണക്ഷൻ-തല
-സെമാഫോർ വഴി (കീ `qsconn:`) സീരിയലൈസ് ചെയ്യപ്പെടുന്നു: അധിക
-റിക്വസ്റ്റുകൾ അക്കൗണ്ട് കവിഞ്ഞൊഴുക്കുന്നതിന് പകരം **ക്യൂവിൽ കാത്തിരിക്കും**. ഇത്
-**ഫെയിൽ-ഓപ്പൺ** ആണ് — ഡിസ്പാച്ച് ചെയ്യാവുന്ന ഒരു റിക്വസ്റ്റിനെ ഒരിക്കലും
-നിരസിക്കുന്നതിന് പകരം, നിറഞ്ഞ ക്യൂവോ ടൈംഔട്ടോ സ്ലോട്ട് ഇല്ലാതെ തുടരും.
-**സെറ്റിംഗ്സ് → റെസിലിയൻസ് → ക്വോട്ട-ഷെയർ കണക്ഷൻ-തല കൺകറൻസി**-യിൽ ടോഗിൾ ചെയ്യാം
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, സ്ഥിരസ്ഥിതി ഓൺ).
-`max_concurrent` പരിധി ഇല്ലാത്തിടത്തോളം പെരുമാറ്റം മാറ്റമില്ലാത്തതാണ്.
-
-> ക്വോട്ട-ഷെയർ റൂട്ടിംഗ് ഗേറ്റ് (`selectQuotaShareTarget`, DRR + P2C) തന്നെ
-> ഫെയിൽ-ഓപ്പൺ ആണ്, പരിധിയിലെത്തിയ ഒരു കണക്ഷനെ _താഴ്ന്ന മുൻഗണനയിലേക്ക്_ മാത്രമേ
-> മാറ്റൂ — ഒറ്റ-കണക്ഷൻ പൂളിൽ അതിന് കർശനമായി പരിമിതപ്പെടുത്താൻ കഴിയില്ല, അതിനാൽ
-> ഈ സെമാഫോറാണ് യഥാർത്ഥത്തിൽ കവിഞ്ഞൊഴുക്കം തടഞ്ഞുനിർത്തുന്നത്.
-
-### കോമ്പോ കൂൾഡൗൺ-അവെയർ റിട്രൈ
-
-ഓരോ കോമ്പോ തന്ത്രത്തിലും (പ്രവർത്തനക്ഷമമാകുമ്പോൾ), ഒരു ഹ്രസ്വ താൽക്കാലിക
-കൂൾഡൗണിന് ഒരു 429 ഉറപ്പിക്കേണ്ട റിക്വസ്റ്റ്, 429 തിരികെ നൽകുന്നതിന് പകരം അത്
-കഴിയുന്നതുവരെ കാത്തിരിച്ച് വീണ്ടും ഡിസ്പാച്ച് ചെയ്യുന്നു — ഇത് മൾട്ടി-മോഡൽ
-കോമ്പോകളിലെ Gemini-തരം TPM/RPM വിൻഡോകളെ (~60s retry-after) ഉൾക്കൊള്ളുന്നു,
-ഉദാ. 2-മോഡൽ കോമ്പോയുടെ രണ്ട് ടാർഗറ്റുകളും മോഡൽ-തല റേറ്റ് ലിമിറ്റിൽ എത്തുന്ന
-സാഹചര്യം. **സെറ്റിംഗ്സ് → റെസിലിയൻസ്**-ലുള്ള `comboCooldownWait` (`enabled`,
-`maxWaitMs`, `maxAttempts`, `budgetMs`) കൊണ്ട് ഇത് പരിമിതപ്പെടുത്തിയിരിക്കുന്നു.
-`quota_exhausted`-ൽ (അർദ്ധരാത്രി വരെ ലോക്ക് ചെയ്തിരിക്കുന്നു) അല്ലെങ്കിൽ
-ഓത്ത്/നോട്ട്-ഫൗണ്ട് കാരണങ്ങളിൽ ഇത് ഒരിക്കലും കാത്തിരിക്കില്ല.
-
-അതേ ഗേറ്റ് പ്രീ-ഡിസ്പാച്ച് സന്ദർഭവും (#16319) ഉൾക്കൊള്ളുന്നു: ഒരു കോമ്പോയുടെ
-ഓരോ ടാർഗറ്റും അതിന്റെ മോഡൽ ഒരു ഹ്രസ്വ താൽക്കാലിക ലോക്കൗട്ടിലായതിനാൽ, യാതൊരു
-ശ്രമവും നടത്തുന്നതിന് മുമ്പ് ഒഴിവാക്കപ്പെടുമ്പോൾ, സീറോ-അറ്റംപ്റ്റ് പാത്ത് അതേ
-പരിധികൾക്ക് കീഴിൽ ലോക്ക് കഴിയുന്നതുവരെ കാത്തിരിച്ച് വീണ്ടും ഡിസ്പാച്ച് ചെയ്യുന്നു,
-സൂചനയില്ലാത്ത `503 ALL_TARGETS_SKIPPED` എന്ന് മറുപടി നൽകുന്നതിന് പകരം.
-കാത്തിരിപ്പ് അനുവദനീയമല്ലാത്തപ്പോൾ (പരിധി, ശ്രമം അല്ലെങ്കിൽ ബജറ്റ് തീർന്നപ്പോൾ,
-അല്ലെങ്കിൽ ഫീച്ചർ ഓഫ് ആയപ്പോൾ), ടർമിനൽ പ്രതികരണം ഏറ്റവും നേരത്തേ
-കാലഹരണപ്പെടുന്ന താൽക്കാലിക ലോക്കിലെ `retry_after` / `reset_at` വഹിക്കുന്ന
-`429 rate_limit_error` ആയി അപ്ഗ്രേഡ് ചെയ്യപ്പെടുന്നു; ക്വോട്ട, ഓത്ത്,
-നോട്ട്-ഫൗണ്ട് ലോക്കുകൾ സൂചനയില്ലാത്ത 503 ആയി നിലനിൽക്കും.
+### ക്വാട്ട പങ്കിടൽ അഭ്യർത്ഥന സീരിയലൈസേഷൻ
+
+ഒരു ക്വോട്ട-ഷെയർ ഡിസ്പാച്ച് പോസിറ്റീവ് `max_concurrent` പ്രഖ്യാപിക്കുന്ന ഒരു കണക്ഷനെ ടാർഗെറ്റുചെയ്യുമ്പോൾ, അതിനുള്ള ഒരേസമയം അഭ്യർത്ഥനകൾ** അക്കൗണ്ട്** ഒരു കണക്ഷൻ സെമാഫോർ (കീ `qsconn:`) വഴിയാണ് ക്രമീകരിച്ചിരിക്കുന്നത്: അധിക അഭ്യർത്ഥനകൾ** ക്യൂവിൽ കാത്തിരിക്കുക** അക്കൗണ്ടിൽ വെള്ളം നിറയ്ക്കുന്നതിന് പകരം. അത്** പരാജയം-ഓപ്പൺ** — ഒരു അയയ്ക്കാവുന്ന അഭ്യർത്ഥന നിരസിക്കുന്നതിനുപകരം ഒരു പൂരിത ക്യൂ അല്ലെങ്കിൽ ടൈംഔട്ട് സ്ലോട്ട് ഇല്ലാതെ തുടരുന്നു. ടോഗിൾ ഇൻ ചെയ്യുക** ക്രമീകരണങ്ങൾ → റെസിലിയൻസ് → ക്വാട്ട-ഷെയർ പെർ-കണക്ഷൻ കൺകറൻസി** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, ഡിഫോൾട്ട് ഓൺ). ഒരു `max_concurrent` തൊപ്പി ഇല്ലാതെ സ്വഭാവം മാറ്റമില്ല.
+
+> ക്വാട്ട-ഷെയർ റൂട്ടിംഗ് ഗേറ്റ് (`selectQuotaShareTarget`, DRR + P2C) തന്നെ പരാജയം-തുറന്നതാണ്, മാത്രമല്ല ഒറ്റ-കണക്ഷൻ പൂൾ ഉള്ള ഒരു അറ്റ്-ക്യാപ് കണക്ഷൻ — മാത്രം _deprioritize_ ചെയ്യുന്നു, അതിന് കഠിനമായി പരിമിതപ്പെടുത്താൻ കഴിയില്ല, അതിനാൽ ഈ സെമാഫോർ ആണ് യഥാർത്ഥത്തിൽ വെള്ളപ്പൊക്കം ഉൾക്കൊള്ളുന്നത്.
+
+### കോംബോ കൂൾഡൗൺ-അവെയർ വീണ്ടും ശ്രമിക്കുക
+
+ഓരോ കോംബോ സ്ട്രാറ്റജിക്കും (പ്രാപ്തമാക്കിയിരിക്കുമ്പോൾ), ഒരു SHORT ക്ഷണികമായ കൂൾഡൗണിനായി 429 ക്രിസ്റ്റലൈസ് ചെയ്യുന്ന ഒരു അഭ്യർത്ഥന കാത്തിരിക്കുകയും 429 — തിരികെ നൽകുന്നതിന് പകരം വീണ്ടും അയയ്ക്കുകയും ചെയ്യുന്നു, ഇത് ജെമിനി-ക്ലാസ് TPM/RPM വിൻഡോകൾ (~ 60s retry-after) ഒരു കോമ്പോ 2 ഹിറ്റ് ടാർഗെറ്റിംഗ് കോമ്പോസിൻ്റെ മൾട്ടി-ഉദാഹരണത്തിന്, രണ്ട് ടാർഗെറ്റ് മോഡലുകളിൽ. ഓരോ മോഡലിനും നിരക്ക് പരിധി. `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) എന്നിവയാൽ ബന്ധിപ്പിച്ചിരിക്കുന്നു** ക്രമീകരണങ്ങൾ → റെസിലിയൻസ്** . ഇത് ഒരിക്കലും `quota_exhausted` (അർദ്ധരാത്രി വരെ ലോക്ക് ചെയ്തിരിക്കുന്നു) അല്ലെങ്കിൽ auth/not-found കാരണങ്ങളിൽ കാത്തിരിക്കില്ല.
+
+`config.comboCooldownWaitEnabled: false` ഉപയോഗിച്ച് ഒരു കോംബോ ഒഴിവാക്കാനാകും. ലിറ്ററൽ `false` മാത്രമേ ഈ പങ്കിട്ട കോംബോ കാത്തിരിപ്പുകളും (പോസ്റ്റ്-ഡിസ്പാച്ച് കൂൾഡൗണും പ്രീ-ഡിസ്പാച്ച് circuit-open/model-lock വെയിറ്റുകളും) അവയുടെ കാത്തിരിപ്പ്-ബജറ്റ് ടൈംഔട്ട്-ഫ്ലോർ എക്സ്റ്റൻഷനും പ്രവർത്തനരഹിതമാക്കുന്നു. മിസ്സിംഗ് അല്ലെങ്കിൽ `true` ആഗോള നയം സംരക്ഷിക്കുന്നു; `true` ആഗോളതലത്തിൽ അപ്രാപ്തമാക്കിയ കാത്തിരിപ്പ് പ്രവർത്തനക്ഷമമാക്കാൻ കഴിയില്ല. വ്യക്തമായ ഒരു `targetTimeoutMs` ഇപ്പോഴും വിജയിക്കുന്നു. ഈ ഒഴിവാക്കൽ പ്രത്യേക നേറ്റീവ്-കോഡെക്സ് ടേൺ-പിൻ പ്രീ-ഡിസ്പാച്ച് കാത്തിരിപ്പിനെ മാറ്റില്ല.
+
+അതേ ഗേറ്റ് പ്രീ-ഡിസ്പാച്ച് കേസ് (#16319) ഉൾക്കൊള്ളുന്നു: ഒരു കോംബോയുടെ എല്ലാ ടാർഗെറ്റും അതിൻ്റെ മോഡൽ ഒരു ചെറിയ താൽക്കാലിക ലോക്കൗട്ടിൽ ഇരിക്കുന്നതിനാൽ ഏതെങ്കിലും ശ്രമത്തിന് മുമ്പ് ഒഴിവാക്കപ്പെടുമ്പോൾ, സീറോ-അറ്റംപ്റ്റ് പാത്ത്, സൂചനയില്ലാത്ത `503 ALL_TARGETS_SKIPPED` ന് ഉത്തരം നൽകുന്നതിനുപകരം, അതേ സീലിംഗിന് കീഴിൽ ലോക്കൗട്ട് കാത്തിരിക്കുകയും വീണ്ടും അയയ്ക്കുകയും ചെയ്യുന്നു. കാത്തിരിപ്പ് അനുവദിക്കാത്തപ്പോൾ (സീലിംഗ്, ശ്രമം അല്ലെങ്കിൽ ബഡ്ജറ്റ് തീർന്നു, അല്ലെങ്കിൽ ഫീച്ചർ ഓഫാണ്), ആദ്യകാല താൽക്കാലിക ലോക്ക് കാലഹരണപ്പെടുമ്പോൾ മുതൽ ടെർമിനൽ പ്രതികരണം `retry_after` / `reset_at` വഹിക്കുന്ന `429 rate_limit_error` ലേക്ക് അപ്ഗ്രേഡ് ചെയ്യുന്നു; ക്വാട്ട, ആധികാരികത, കണ്ടെത്താത്ത ലോക്കുകൾ എന്നിവ സൂചന-കുറവ് 503 നിലനിർത്തുന്നു.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/ml/docs/guides/USER_GUIDE.md b/docs/i18n/ml/docs/guides/USER_GUIDE.md
index cb08cda2a239..2d12de7f3fac 100644
--- a/docs/i18n/ml/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/ml/docs/guides/USER_GUIDE.md
@@ -615,55 +615,55 @@ post_install() {
ലഭ്യമായ എല്ലാ മോഡലുകളും കാണുക
-> താഴെയുള്ള ലിസ്റ്റ് v3.8.0-നായി `open-sse/config/providerRegistry.ts`-ൽ നിന്ന് ക്യൂറേറ്റ് ചെയ്തതാണ്. ക്ലൗഡ് കാറ്റലോഗുകൾ (Gemini, OpenRouter മുതലായവ) ഡൈനാമിക്കായി സിങ്ക് ചെയ്യപ്പെടുന്നു — പൂർണ്ണമായ ലൈവ് കാറ്റലോഗിനായി **ഡാഷ്ബോർഡ് → പ്രൊവൈഡറുകൾ → [provider] → ലഭ്യമായ മോഡലുകൾ** തുറക്കുക അല്ലെങ്കിൽ `GET /api/models/catalog` വിളിക്കുക.
+> താഴെയുള്ള ലിസ്റ്റ് v3.8.0-നായി `open-sse/config/providerRegistry.ts` യിൽ നിന്ന് ക്യൂറേറ്റ് ചെയ്തതാണ്. ക്ലൗഡ് കാറ്റലോഗുകൾ (Gemini, OpenRouter, മുതലായവ) പൂർണ്ണ തത്സമയ കാറ്റലോഗ് ഓപ്പണിനായി ചലനാത്മകമായി — സമന്വയിപ്പിച്ചിരിക്കുന്നു** ഡാഷ്ബോർഡ് → ദാതാക്കൾ → [ദാതാവ്] → ലഭ്യമായ മോഡലുകൾ** അല്ലെങ്കിൽ `GET /api/models/catalog` എന്ന് വിളിക്കുക.
>
-> ഒരു പ്രൊവൈഡറുടെ ബിൽറ്റ്-ഇൻ ലിസ്റ്റിൽ മാറ്റം വന്നിട്ടുണ്ടെങ്കിൽ, ലൈവ് അപ്സ്ട്രീം കാറ്റലോഗ് നേടാൻ ആ പേജിലെ **/models-ൽ നിന്ന് ഇമ്പോർട്ട് ചെയ്യുക** ഉപയോഗിക്കുക (അല്ലെങ്കിൽ **ഓട്ടോ-സിങ്ക്** പ്രാപ്തമാക്കുക). ഇത് v3.8.50-ൽ LLM7.io (`gemini-3.1-flash-lite`), UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) എന്നിവയ്ക്കായി പരിശോധിച്ചുറപ്പിച്ചിട്ടുണ്ട്; അതേ ടെസ്റ്റ് പാസ്സിൽ Pollinations-ന്റെ അനോണിമസ് ആക്സസ് അപ്സ്ട്രീം-പരിമിതമായി തുടർന്നു.
+> ഒരു ദാതാവിൻ്റെ ബിൽറ്റ്-ഇൻ ലിസ്റ്റ് ഡ്രിഫ്റ്റ് ചെയ്തിട്ടുണ്ടെങ്കിൽ, ഉപയോഗിക്കുക** / മോഡലുകളിൽ നിന്ന് ഇറക്കുമതി ചെയ്യുക** ആ പേജിൽ (അല്ലെങ്കിൽ പ്രവർത്തനക്ഷമമാക്കുക** യാന്ത്രിക സമന്വയം** ) തത്സമയ അപ്സ്ട്രീം കാറ്റലോഗ് പിൻവലിക്കാൻ. ഇത് LLM7.io (`gemini-3.1-flash-lite`), UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) എന്നിവയ്ക്കായി v3.8.50-ൽ പരിശോധിച്ചു; അതേ ടെസ്റ്റ് പാസ് സമയത്ത് പരാഗണങ്ങളുടെ അജ്ഞാത ആക്സസ് അപ്സ്ട്രീം-പരിമിതമായി തുടർന്നു.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude കോഡ് (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ എഫർട്ട് ടിയറുകൾ: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ പരിശ്രമ ശ്രേണികൾ: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — സൗജന്യ OAuth: **ഡാഷ്ബോർഡ് → പ്രൊവൈഡറുകൾ → Kiro → ലഭ്യമായ മോഡലുകൾ** എന്നതിന് കീഴിൽ കാണിക്കുന്ന ലൈവ് കാറ്റലോഗ് ഉപയോഗിക്കുക. ലഭ്യത അക്കൗണ്ടിനെയും പ്ലാനിനെയും ആശ്രയിച്ചിരിക്കുന്നു.
+**Kiro (`kr/`)** — FREE OAuth: താഴെ കാണിച്ചിരിക്കുന്ന ലൈവ് കാറ്റലോഗ് ഉപയോഗിക്കുക** ഡാഷ്ബോർഡ് → ദാതാക്കൾ → Kiro → ലഭ്യമായ മോഡലുകൾ** . അക്കൗണ്ടിനെയും പ്ലാനിനെയും ആശ്രയിച്ചിരിക്കും ലഭ്യത.
-**Qoder (`if/`)** — സൗജന്യ OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/മാസം ഫ്ലാറ്റ് അല്ലെങ്കിൽ ഉപയോഗം അനുസരിച്ച്: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo ഫ്ലാറ്റ് അല്ലെങ്കിൽ ഓരോ ഉപയോഗത്തിനും: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — API കീ: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — അൾട്രാ-ഫാസ്റ്റ്: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — അൾട്രാ ഫാസ്റ്റ്: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
**xAI (`xai/`)** — Grok നേറ്റീവ്: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU-ഹോസ്റ്റഡ്: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU-ഹോസ്റ്റുചെയ്തത്: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — സെർച്ച്-ഓഗ്മെൻ്റഡ്: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**ആശയക്കുഴപ്പം (`pplx/`)** — തിരയൽ-വർദ്ധിപ്പിച്ചത്: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — ഓപ്പൺ-സോഴ്സ്: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (സൗജന്യം), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — ഓപ്പൺ സോഴ്സ്: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (സൗജന്യ), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — വേഗതയേറിയ ഇൻഫറൻസ്: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — വേഗത്തിലുള്ള അനുമാനം: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — വേഫർ-സ്കെയിൽ: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — വേഫർ സ്കെയിൽ: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — RAG-ഫോക്കസ്ഡ്: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG-കേന്ദ്രീകൃതം: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — എന്റർപ്രൈസ്: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — എൻ്റർപ്രൈസ്: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama ക്ലൗഡ് (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Google-ൽ നിന്ന് API കീ അനുസരിച്ച് ലൈവായി സിങ്ക് ചെയ്യുന്നു — സ്റ്റാറ്റിക് ലിസ്റ്റ് ഇല്ല. **ഡാഷ്ബോർഡ് → പ്രൊവൈഡറുകൾ**-ൽ ഒരു കീ കണക്ട് ചെയ്ത ശേഷം നിലവിലെ കാറ്റലോഗ് ഇമ്പോർട്ട് ചെയ്യാൻ **ലഭ്യമായ മോഡലുകൾ** ഉപയോഗിക്കുക (ഉദാ. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google ക്ലൗഡ് `gemini/`)** : Google — ൽ നിന്ന് ഒരു API കീയിൽ തത്സമയം സമന്വയിപ്പിച്ചു, സ്റ്റാറ്റിക് ലിസ്റ്റില്ല. ഒരു കീ ബന്ധിപ്പിക്കുക** ഡാഷ്ബോർഡ് → ദാതാക്കൾ** എന്നിട്ട് ഉപയോഗിക്കുക** ലഭ്യമായ മോഡലുകൾ** നിലവിലെ കാറ്റലോഗ് ഇറക്കുമതി ചെയ്യാൻ (ഉദാ. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**മറ്റ് അനുയോജ്യമായ പ്രൊവൈഡറുകൾ** (തിരഞ്ഞെടുത്തവ): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (`aws-bedrock` വഴി), `azure-ai`, `openrouter` (പാസ്ത്രൂ കാറ്റലോഗ്), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. ഓരോന്നും `providerRegistry.ts`-ൽ സ്വന്തം മോഡൽ ലിസ്റ്റ് പരിപാലിക്കുന്നു, കൂടാതെ പ്രൊവൈഡർ ഒരു `/models` എൻഡ്പോയിന്റ് നൽകുമ്പോൾ ഓട്ടോ-സിങ്ക് ചെയ്യാനും കഴിയും.
+**മറ്റ് അനുയോജ്യമായ ദാതാക്കൾ** (തിരഞ്ഞെടുത്തത്): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` ( `aws-bedrock` വഴി `nous-research`, `azure-ai`, `openrouter` ( `friendliai` കാറ്റലോഗ്), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `reka`, `volcengine`, `ai21` `gigachat` ഓരോന്നിനും അതിൻ്റേതായ മോഡൽ ലിസ്റ്റ് `providerRegistry.ts` ൽ നിലനിർത്തുന്നു, കൂടാതെ ദാതാവ് ഒരു `/models` എൻഡ്പോയിൻ്റ് വെളിപ്പെടുത്തുമ്പോൾ സ്വയമേവ സമന്വയിപ്പിക്കാനും കഴിയും.
-**മോഡൽ ID-കളെക്കുറിച്ചുള്ള കുറിപ്പ്:** OmniRoute പ്രൊവൈഡർ-നേറ്റീവ് ID-കൾ ഉപയോഗിക്കുന്നു (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). ചില ID-കളിൽ ഡോട്ടഡ് വേർഷനുകൾ ഉൾപ്പെടുന്നത് അപ്സ്ട്രീം API അവയെ ആ രീതിയിലാണ് പ്രതീക്ഷിക്കുന്നത് എന്നതിനാലാണ്. ഒരു മോഡൽ മുകളിൽ ലിസ്റ്റ് ചെയ്തിട്ടില്ലെങ്കിൽ, ലഭ്യത ഉറപ്പാക്കാൻ `omniroute models --search ` റൺ ചെയ്യുക അല്ലെങ്കിൽ `GET /api/models/catalog` വിളിക്കുക.
+**IDs മോഡലിനെക്കുറിച്ചുള്ള കുറിപ്പ്:** OmniRoute പ്രൊവൈഡർ-നേറ്റീവ് IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`) ഉപയോഗിക്കുന്നു. ചില IDs ഡോട്ട് പതിപ്പുകൾ ഉൾപ്പെടുന്നു, കാരണം അപ്സ്ട്രീം API അവ പ്രതീക്ഷിക്കുന്നത് അങ്ങനെയാണ്. ഒരു മോഡൽ മുകളിൽ പട്ടികപ്പെടുത്തിയിട്ടില്ലെങ്കിൽ, ലഭ്യത സ്ഥിരീകരിക്കുന്നതിന് `omniroute models --search ` പ്രവർത്തിപ്പിക്കുക അല്ലെങ്കിൽ `GET /api/models/catalog` അമർത്തുക.
diff --git a/docs/i18n/mr/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/mr/docs/architecture/RESILIENCE_GUIDE.md
index 4f4948529701..0e12062d4fc4 100644
--- a/docs/i18n/mr/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/mr/docs/architecture/RESILIENCE_GUIDE.md
@@ -244,25 +244,17 @@ UI: मॉनिटरिंग → Cooldown Manager (`src/app/(dashboard)/dashb
---
-## 4. कोटा-शेअर कॉनकरन्सी नियंत्रण (v3.8.36)
+## 4. कोटा-शेअर करन्सी कंट्रोल (v3.8.36)
-सबस्क्रिप्शन खाती (GLM, MiniMax इ.) बहुधा फक्त ~1–3 एकसमकालिक विनंत्या स्वीकारतात;
-त्या मर्यादा ओलांडल्यास 429 त्रुटी आणि कूलडाउन सुरू होतात. **कोटा-शेअर**
-(`qtSd/…`) कॉम्बोखाली ही समस्या गंभीर असते, जिथे अनेक API की एकच अपस्ट्रीम खाते
-शेअर करतात. शेअर केलेले खाते ओव्हरफ्लो होण्यापासून रोखण्यासाठी तीन स्तर आहेत.
+सदस्यता खाती (GLM, MiniMax, इ.) अनेकदा फक्त ~ 1–3 समवर्ती विनंत्या स्वीकारतात; पेक्षा जास्त 429s आणि cooldowns ट्रिगर करते. या अंतर्गत तीव्र आहे** कोटा-शेअर** (`qtSd/…`) कॉम्बोज, जेथे अनेक API की एक अपस्ट्रीम खाते सामायिक करतात. तीन स्तर पूर येण्यापासून सामायिक खाते ठेवतात.
-### प्रति-कनेक्शन कॉनकरन्सी मर्यादा (`max_concurrent`)
+### प्रति-कनेक्शन कॉन्करन्सी कॅप (`max_concurrent`)
-प्रत्येक प्रोव्हायडर कनेक्शन `max_concurrent` मर्यादा घोषित करू शकते
-(`provider_connections.max_concurrent`, कनेक्शन मोडल / API / DB मध्ये सेट करा).
-मर्यादा नको असल्यास रिकामे ठेवा. खालील सीरिअलायझेशन स्तर चालवणारा हा एकच मुख्य
-नियंत्रक आहे — तो खात्याच्या प्रत्यक्ष कॉनकरन्सीवर सेट करा (उदा. GLM ~1,
-MiniMax ~2).
+प्रत्येक प्रदाता कनेक्शन `max_concurrent` मर्यादा घोषित करू शकते (`provider_connections.max_concurrent`, कनेक्शन मोडल / API / DB मध्ये सेट केलेले). कोणत्याही मर्यादेसाठी ते रिक्त सोडा. हे एकल नॉब आहे जे — खाली अनुक्रमिकरण स्तर चालवते ते खात्याच्या वास्तविक समरूपतेवर सेट करते (उदा. GLM ~ 1, MiniMax ~ 2).
-### प्रति-मॉडेल कॉनकरन्सी मर्यादा (`modelConcurrency`)
+### प्रति-मॉडेल कॉन्करन्सी कॅप्स (`modelConcurrency`)
-कनेक्शन त्याच्या `rateLimitOverrides` मॅपमध्ये अचूक प्रति-मॉडेल कॉनकरन्सी
-मर्यादाही घोषित करू शकते:
+कनेक्शन अतिरिक्तपणे त्याच्या `rateLimitOverrides` नकाशामध्ये अचूक प्रति-मॉडेल समवर्ती मर्यादा घोषित करू शकते:
```json
{
@@ -273,74 +265,32 @@ MiniMax ~2).
}
```
-ते कनेक्शन मोडलमध्ये सेट करा (**Rate limit overrides → Per-model
-concurrency caps**, प्रत्येक ओळीवर एक `model=cap`) किंवा त्याच JSON
-स्वरूपासह `PATCH /api/providers/[id]` द्वारे. मुख्य अर्थ:
-
-- **कनेक्शन-व्यापी विरुद्ध मॉडेल-विशिष्ट:** `maxConcurrent` ही शेअर केलेली
- कनेक्शन-व्यापी मर्यादाच राहते. दोन्ही लागू असताना, दोन्ही गेट्स एकाच
- कम्पोझिट गेटमध्ये अणुक्रमाने (atomically) मिळवले जातात
- (`global → provider → account → model`); प्रभावी वर्तन म्हणजे लागू असलेली
- कडक मर्यादा.
-- **अचूक मॉडेल-की जुळणी:** की ही रूटिंग रिझोल्यूशननंतर एक्झिक्युटरला दिलेली
- मॉडेल स्ट्रिंग असते — सामान्यतः केवळ अपस्ट्रीम मॉडेल आयडी (`glm-5`),
- क्लायंट-बाजूचा `provider/model` उपनाम नाही (`zai/glm-5` हे `glm-5` शी
- जुळत नाही). मूल्ये म्हणजे धनात्मक-पूर्णांक एकसमकालिक-विनंती मर्यादा.
-- **स्थानिक रांग, शोध नाही:** अतिरिक्त विनंत्या विद्यमान रांग/टाइमआउट
- अर्थव्यवस्थेनुसार स्थानिकरित्या रांगेत राहतात (टाइप्ड `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL` प्रवेश त्रुटी). OmniRoute अपस्ट्रीम धोरण शोधत नाही
- किंवा अंदाज लावत नाही — ते ऑपरेटरने कॉन्फिगर केलेल्या अचूक मर्यादा लागू
- करते. भरलेले मॉडेल गेट कधीही प्रोव्हायडर अक्षम करत नाही आणि कायमचा मॉडेल
- लॉकआउटही निर्माण करत नाही; अपस्ट्रीम 429/कूलडाउन/फॉलबॅक वर्तन हेच त्रुटींचा
- अंतिम आधार राहते.
-- **प्रति-कनेक्शन, प्रति-प्रोसेस व्याप्ती:** मर्यादा प्रत्येक डेटाबेस
- कनेक्शनसाठी असतात आणि मेमरीत ठेवल्या जातात, त्यामुळे एकच अपस्ट्रीम API की
- पुन्हा वापरणारी दोन कनेक्शन्स एकमेकांशी समन्वय साधत नाहीत.
-- **कॉन्फिगर न केलेले म्हणजे बदल नाही:** मॅप वगळल्यास (किंवा डॅशबोर्ड फील्ड
- रिकामे ठेवल्यास) मॉडेल गेट जोडले जात नाही. कोणत्याही सार्वत्रिक प्रोव्हायडर
- मर्यादेचा दावा न करता उदाहरण कॉन्फिगरेशन:
+ते कनेक्शन मॉडेलमध्ये सेट करा (** दर मर्यादा → प्रति-मॉडेल समवर्ती कॅप्स ओव्हरराइड करते** , प्रति ओळ एक `model=cap` ) किंवा समान JSON आकारासह `PATCH /api/providers/[id]` द्वारे. मुख्य शब्दार्थ:
+
+- **कनेक्शन-विस्तृत वि मॉडेल-विशिष्ट:** `maxConcurrent` ही सामायिक कनेक्शन-विस्तृत कमाल मर्यादा आहे. जेव्हा दोन्ही लागू होतात तेव्हा दोन्ही गेट्स एकाच संमिश्र गेटमध्ये आण्विकरित्या प्राप्त केले जातात (`global → provider → account → model`); प्रभावी वर्तन ही कठोर लागू मर्यादा आहे.
+- **अचूक मॉडेल-की जुळणी:** मुख्य म्हणजे — रूटिंग रिझोल्यूशन नंतर एक्झिक्यूटरला दिलेली मॉडेल स्ट्रिंग आहे सामान्यतः बेअर अपस्ट्रीम मॉडेल आयडी (`glm-5`), क्लायंट-साइड `provider/model` उर्फ नाही (`zai/glm-5` `glm-5` शी जुळत नाही). मूल्ये ही धन-पूर्णांक समवर्ती-विनंती मर्यादा आहेत.
+- **स्थानिक रांग, शोध नाही:** विद्यमान queue/timeout शब्दार्थांसह (टाइप केलेल्या `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` प्रवेश त्रुटी) स्थानिक पातळीवर जादा विनंत्या रांगेत आहेत. OmniRoute अपस्ट्रीम पॉलिसी शोधत नाही किंवा अनुमान लावत नाही — ते ऑपरेटरने कॉन्फिगर केलेली अचूक मर्यादा लागू करते. संतृप्त मॉडेल गेट कधीही प्रदाता अक्षम करत नाही आणि कायम मॉडेल लॉकआउट तयार करत नाही; अपस्ट्रीम 429/cooldown/fallback वर्तन त्रुटी बॅकस्टॉप राहते.
+- **प्रति-कनेक्शन, प्रति-प्रक्रिया व्याप्ती:** कॅप्स प्रति डेटाबेस कनेक्शन असतात आणि मेमरीमध्ये ठेवल्या जातात, त्यामुळे समान अपस्ट्रीम API की पुन्हा वापरणारे दोन कनेक्शन एकमेकांशी समन्वय साधत नाहीत.
+- **कॉन्फिगर न केलेले म्हणजे अपरिवर्तित:** नकाशा वगळणे (किंवा डॅशबोर्ड फील्ड रिक्त सोडणे) मॉडेल गेट जोडत नाही. कोणत्याही सार्वत्रिक प्रदात्याची मर्यादा न सांगता कॉन्फिगरेशनचे उदाहरण:
```text
glm-5=1
glm-4.7=3
```
-### कोटा-शेअर विनंती सीरिअलायझेशन
-
-जेव्हा कोटा-शेअर डिस्पॅच धनात्मक `max_concurrent` घोषित करणाऱ्या कनेक्शनला
-लक्ष्य करते, तेव्हा त्या **खात्याकडे** जाणाऱ्या एकसमकालिक विनंत्या प्रति-कनेक्शन
-सेमाफोअरद्वारे (की `qsconn:`) सीरिअलाइझ होतात: अतिरिक्त विनंत्या
-खाते ओव्हरफ्लो करण्याऐवजी **रांगेत वाट पाहतात**. ते **फेल-ओपन** आहे — भरलेली रांग
-किंवा टाइमआउट झाल्यास विनंती स्लॉटशिवाय पुढे जाते, डिस्पॅच करण्यायोग्य विनंती
-कधीही नाकारली जात नाही. **Settings → Resilience → Quota-share per-connection
-concurrency** मध्ये टॉगल करा (`resilienceSettings.quotaShareConcurrencyLimit.enabled`,
-डीफॉल्ट चालू). `max_concurrent` मर्यादा नसल्यास वर्तन बदलत नाही.
-
-> कोटा-शेअर रूटिंग गेट (`selectQuotaShareTarget`, DRR + P2C) स्वतः फेल-ओपन
-> असते आणि फक्त क्षमता-पूर्ण कनेक्शनला _कमी प्राधान्य_ देते — एकाच कनेक्शनच्या
-> पूलसह ते कडक मर्यादा घालू शकत नाही, त्यामुळे ओव्हरफ्लो खरोखर रोखणारा हा
-> सेमाफोअरच आहे.
-
-### कॉम्बो कूलडाउन-जागरूक पुनःप्रयत्न
-
-प्रत्येक कॉम्बो स्ट्रॅटेजीसाठी (सक्षम असताना), जी विनंती छोट्या कालावधीच्या
-तात्पुरत्या कूलडाउनसाठी 429 निश्चित करेल, अशी विनंती 429 परत करण्याऐवजी ती वाट
-पाहून पुन्हा डिस्पॅच होते — यामध्ये मल्टि-मॉडेल कॉम्बोंवरील Gemini-वर्गीय
-TPM/RPM विंडोज (~60s retry-after) समाविष्ट आहेत, उदा. 2-मॉडेल कॉम्बोचे दोन्ही
-टार्गेट्स प्रति-मॉडेल रेट लिमिटला भेडसावताना. **Settings → Resilience** मधील
-`comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) द्वारे
-मर्यादित. ते कधीही `quota_exhausted` (मध्यरात्रीपर्यंत लॉक) किंवा
-ऑथ/नॉट-फाउंड कारणांसाठी वाट पाहत नाही.
-
-तेच गेट प्री-डिस्पॅच प्रकरणालाही (#16319) लागू होते: जेव्हा कॉम्बोचे प्रत्येक
-टार्गेट कोणताही प्रयत्न होण्यापूर्वीच वगळले जाते कारण त्याचे मॉडेल छोट्या
-तात्पुरत्या लॉकआउटमध्ये असते, तेव्हा शून्य-प्रयत्न मार्ग त्याच मर्यादांखाली
-लॉक संपेपर्यंत वाट पाहतो आणि पुन्हा डिस्पॅच करतो, हिंट-विरहित
-`503 ALL_TARGETS_SKIPPED` उत्तर देण्याऐवजी. जेव्हा वाट पाहण्यास परवानगी नसते
-(मर्यादा, प्रयत्न किंवा बजेट संपले, किंवा फीचर बंद), तेव्हा अंतिम प्रतिसाद
-सर्वात लवकर संपणाऱ्या तात्पुरत्या लॉकची मुदत समाप्तीतील `retry_after` /
-`reset_at` घेऊन `429 rate_limit_error` वर अपग्रेड होतो; कोटा, ऑथ आणि
-नॉट-फाउंड लॉक्स हिंट-विरहित 503 च कायम ठेवतात.
+### कोटा-शेअर विनंती अनुक्रमांक
+
+जेव्हा कोटा-शेअर डिस्पॅच सकारात्मक `max_concurrent` घोषित करणारे कनेक्शन लक्ष्य करते, तेव्हा त्यास समवर्ती विनंत्या** खाते** प्रति-कनेक्शन सेमाफोर (की `qsconn:`) द्वारे अनुक्रमित केले जातात: अतिरिक्त विनंत्या** रांगेत थांबा** खाते भरण्याऐवजी. आहे** फेल-ओपन** — एक संतृप्त रांग किंवा टाइमआउट कधीही पाठवण्यायोग्य विनंती नाकारण्याऐवजी स्लॉटशिवाय पुढे जाते. टॉगल इन करा** सेटिंग्ज → लवचिकता → कोटा-शेअर प्रति-कनेक्शन कॉन्करन्सी** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, डीफॉल्ट चालू). `max_concurrent` कॅपशिवाय वर्तन अपरिवर्तित आहे.
+
+> कोटा-शेअर राउटिंग गेट (`selectQuotaShareTarget`, DRR + P2C) हे स्वतःच फेल-ओपन आहे आणि फक्त _deprioritizes_ at-cap कनेक्शन — एकल-कनेक्शन पूलसह ते हार्ड-लिमिट करू शकत नाही, त्यामुळे या सेमाफोरमध्ये प्रत्यक्षात पूर समाविष्ट आहे.
+
+### कॉम्बो कूलडाउन-अवेअर पुन्हा प्रयत्न
+
+For every combo strategy (when enabled), a request that would crystallize a 429 for a SHORT transient cooldown waits it out and re-dispatches instead of returning the 429 — this covers Gemini-class TPM/RPM windows (~60s retry-after) on multi-model combos, e.g. both targets of a 2-model combo hitting a per-model rate limit. Bounded by `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) in **Settings → Resilience**. It never waits on `quota_exhausted` (locked until midnight) or auth/not-found reasons.
+
+कॉम्बो `config.comboCooldownWaitEnabled: false` सह निवड रद्द करू शकतो. केवळ शाब्दिक `false` या सामायिक कॉम्बो वेट्स (पोस्ट-डिस्पॅच कूलडाउन आणि प्री-डिस्पॅच circuit-open/model-lock वेट्स) आणि त्यांचे प्रतीक्षा-बजेट कालबाह्य-फ्लोर विस्तार अक्षम करते. गहाळ किंवा `true` जागतिक धोरण राखून ठेवते; `true` जागतिक स्तरावर अक्षम प्रतीक्षा सक्षम करू शकत नाही. एक स्पष्ट `targetTimeoutMs` अजूनही जिंकतो. हे निवड रद्द केल्याने वेगळे मूळ-कोडेक्स टर्न-पिन प्री-डिस्पॅच प्रतीक्षा बदलत नाही.
+
+हेच गेट प्री-डिस्पॅच केस (#16319) कव्हर करते: जेव्हा कॉम्बोचे प्रत्येक लक्ष्य कोणताही प्रयत्न करण्यापूर्वी वगळले जाते कारण त्याचे मॉडेल लहान क्षणिक लॉकआउटमध्ये बसते, तेव्हा शून्य-प्रयत्न मार्ग समान मर्यादांखाली लॉक आउटची वाट पाहतो आणि इशारा-रहित `503 ALL_TARGETS_SKIPPED` ला उत्तर देण्याऐवजी पुन्हा-डिस्पॅच करतो. जेव्हा प्रतीक्षा करण्याची परवानगी दिली जात नाही (सीलिंग, प्रयत्न किंवा बजेट संपले किंवा वैशिष्ट्य बंद), टर्मिनल प्रतिसाद लवकरात लवकर चंचल लॉक एक्सपायरीपासून `retry_after` / `reset_at` घेऊन जाणाऱ्या `429 rate_limit_error` वर अपग्रेड होतो; कोटा, प्रमाणीकरण आणि न सापडलेले लॉक हिंट-लेस 503 ठेवतात.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/mr/docs/guides/USER_GUIDE.md b/docs/i18n/mr/docs/guides/USER_GUIDE.md
index d90410301cfa..fcd2f5a0edf2 100644
--- a/docs/i18n/mr/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/mr/docs/guides/USER_GUIDE.md
@@ -607,60 +607,60 @@ post_install() {
---
-## 📊 उपलब्ध मॉडेल्स
+## 📊 उपलब्ध मॉडेल
-सर्व उपलब्ध मॉडेल्स पहा
+सर्व उपलब्ध मॉडेल पहा
-> खालील यादी v3.8.0 साठी `open-sse/config/providerRegistry.ts` मधून संकलित केली आहे. क्लाउड कॅटलॉग (Gemini, OpenRouter इ.) डायनॅमिकली सिंक केले जातात — संपूर्ण थेट कॅटलॉगसाठी **डॅशबोर्ड → प्रोव्हायडर → [provider] → उपलब्ध मॉडेल्स** उघडा किंवा `GET /api/models/catalog` कॉल करा.
+> खाली दिलेली यादी v3.8.0 साठी `open-sse/config/providerRegistry.ts` वरून तयार केली आहे. क्लाउड कॅटलॉग (Gemini, OpenRouter, इ.) संपूर्ण थेट कॅटलॉग उघडण्यासाठी डायनॅमिकली — समक्रमित केले जातात** डॅशबोर्ड → प्रदाता → [प्रदाता] → उपलब्ध मॉडेल** किंवा `GET /api/models/catalog` वर कॉल करा.
>
-> जर प्रोव्हायडरची अंगभूत यादी बदलली असेल, तर थेट अपस्ट्रीम कॅटलॉग आणण्यासाठी त्या पृष्ठावरील **/models वरून आयात करा** वापरा (किंवा **ऑटो-सिंक** सक्षम करा). हे v3.8.50 मध्ये LLM7.io (`gemini-3.1-flash-lite`) आणि UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) साठी सत्यापित करण्यात आले; त्याच चाचणी फेरीदरम्यान Pollinations अनामिक प्रवेश अपस्ट्रीम-मर्यादितच राहिला.
+> प्रदात्याची अंगभूत यादी वाहून गेली असल्यास, वापरा** /मॉडेल्समधून आयात करा** त्या पृष्ठावर (किंवा सक्षम करा** स्वयं-सिंक** ) थेट अपस्ट्रीम कॅटलॉग खेचण्यासाठी. हे LLM7.io (`gemini-3.1-flash-lite`) आणि UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) साठी v3.8.50 मध्ये सत्यापित केले गेले; त्याच चाचणी पास दरम्यान परागकण अनामित प्रवेश अपस्ट्रीम-मर्यादित राहिला.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude कोड (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort स्तर: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ प्रयत्न स्तर: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — मोफत OAuth: **डॅशबोर्ड → प्रोव्हायडर → Kiro → उपलब्ध मॉडेल्स** अंतर्गत दाखवलेली थेट यादी वापरा. उपलब्धता खाते आणि प्लॅनवर अवलंबून असते.
+**Kiro (`kr/`)** — FREE OAuth: खाली दर्शविलेले थेट कॅटलॉग वापरा** डॅशबोर्ड → प्रदाता → Kiro → उपलब्ध मॉडेल** . उपलब्धता खाते आणि योजनेवर अवलंबून असते.
-**Qoder (`if/`)** — मोफत OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/महिना फ्लॅट किंवा प्रति-वापर: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo फ्लॅट किंवा प्रति-वापर: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — API key: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API : `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — अत्यंत वेगवान: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — अल्ट्रा-फास्ट: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok नेटिव्ह: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok मूळ: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU-होस्टेड: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU-होस्ट केलेले: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — शोध-वर्धित: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**गोंधळ (`pplx/`)** — शोध-वर्धित: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — ओपन-सोर्स: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (मोफत), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — मुक्त-स्रोत: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (मुक्त), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — जलद इन्फरन्स: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — जलद अनुमान: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
**Cerebras (`cerebras/`)** — वेफर-स्केल: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
**Cohere (`cohere/`)** — RAG-केंद्रित: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — एंटरप्राइज: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama क्लाउड (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Google कडून प्रत्येक API key साठी थेट सिंक केले जाते — स्थिर यादी नाही. **डॅशबोर्ड → प्रोव्हायडर** मध्ये key कनेक्ट करा आणि मग वर्तमान कॅटलॉग आयात करण्यासाठी **उपलब्ध मॉडेल्स** वापरा (उदा. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google क्लाउड `gemini/`)** : Google — वरून लाइव्ह प्रति API की नाही स्थिर सूची समक्रमित. मध्ये एक की कनेक्ट करा** डॅशबोर्ड → प्रदाता** नंतर वापरा** उपलब्ध मॉडेल्स** वर्तमान कॅटलॉग आयात करण्यासाठी (उदा. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**इतर सुसंगत प्रोव्हायडर** (निवडक): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (`aws-bedrock` मार्फत), `azure-ai`, `openrouter` (पासथ्रू कॅटलॉग), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. प्रत्येक प्रोव्हायडर `providerRegistry.ts` मध्ये स्वतःची मॉडेल यादी राखतो आणि प्रोव्हायडर `/models` एंडपॉइंट उपलब्ध करून देतो तेव्हा ऑटो-सिंक केले जाऊ शकते.
+**इतर सुसंगत प्रदाता** (निवडलेले): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` ( `aws-bedrock`), `azure-ai`, `openrouter` (पासथ्रू कॅटलॉग), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai` `scaleway`, `deepinfra`, `friendliai`, `vercel-ai-gateway`, `bazaarlink`, `nous-research`, `reka`, `volcengine`, `ai21` `gigachat` प्रत्येक `providerRegistry.ts` मध्ये स्वतःची मॉडेल सूची राखतो आणि जेव्हा प्रदाता `/models` एंडपॉइंट उघड करतो तेव्हा स्वयं-समक्रमित केले जाऊ शकते.
-**मॉडेल ID बद्दल टीप:** OmniRoute प्रोव्हायडर-नेटिव्ह ID वापरते (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). काही ID मध्ये बिंदुयुक्त आवृत्त्या असतात कारण अपस्ट्रीम API त्या तशाच अपेक्षित करते. जर एखादे मॉडेल वर सूचीबद्ध केलेले नसेल, तर उपलब्धता निश्चित करण्यासाठी `omniroute models --search ` चालवा किंवा `GET /api/models/catalog` वापरा.
+**मॉडेल IDs वर टीप:** OmniRoute प्रदाता-नेटिव्ह IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`) वापरते. काही IDs मध्ये ठिपके असलेल्या आवृत्त्या समाविष्ट आहेत कारण अपस्ट्रीम API त्यांच्याकडून अशीच अपेक्षा करते. मॉडेल वर सूचीबद्ध नसल्यास, `omniroute models --search ` चालवा किंवा उपलब्धतेची पुष्टी करण्यासाठी `GET /api/models/catalog` दाबा.
diff --git a/docs/i18n/ms/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/ms/docs/architecture/RESILIENCE_GUIDE.md
index ec0182a66811..fe69ba439562 100644
--- a/docs/i18n/ms/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/ms/docs/architecture/RESILIENCE_GUIDE.md
@@ -283,26 +283,17 @@ _keadaan_ sekatan aktif bersifat efemeral.
---
-## 4. Kawalan Keserentakan Quota-Share (v3.8.36)
+## 4. Kawalan Serentak Perkongsian Kuota (v3.8.36)
-Akaun langganan (GLM, MiniMax, dll.) selalunya hanya menerima ~1–3 permintaan
-serentak; melebihi had itu akan mencetuskan 429 dan tempoh cooldown. Keadaan ini
-amat ketara dalam kombo **quota-share** (`qtSd/…`), di mana beberapa kunci API
-berkongsi satu akaun huluan. Tiga lapisan menghalang akaun kongsi daripada
-dibanjiri.
+Akaun langganan (GLM, MiniMax, dsb.) selalunya menerima hanya ~ 1–3 permintaan serentak; melebihi itu mencetuskan 429s dan cooldown. Ini adalah akut di bawah** perkongsian kuota** (`qtSd/…`) kombo, di mana beberapa kunci API berkongsi satu akaun huluan. Tiga lapisan mengekalkan akaun kongsi daripada dibanjiri.
-### Had keserentakan setiap sambungan (`max_concurrent`)
+### Had konkurensi setiap sambungan (`max_concurrent`)
-Setiap sambungan penyedia boleh mengisytiharkan siling `max_concurrent`
-(`provider_connections.max_concurrent`, ditetapkan dalam modal sambungan / API /
-pangkalan data). Biarkan kosong untuk tiada had. Ini ialah satu-satunya tombol
-yang menggerakkan lapisan penyirian di bawah — tetapkannya kepada keserentakan
-sebenar akaun (cth. GLM ~1, MiniMax ~2).
+Setiap sambungan pembekal boleh mengisytiharkan siling `max_concurrent` (`provider_connections.max_concurrent`, ditetapkan dalam mod sambungan / API / DB). Biarkan kosong tanpa had. Ini ialah tombol tunggal yang memacu lapisan bersiri di bawah — tetapkannya kepada konkurensi sebenar akaun (cth GLM ~ 1, MiniMax ~ 2).
-### Had keserentakan setiap model (`modelConcurrency`)
+### Had konkurensi setiap model (`modelConcurrency`)
-Sesebuah sambungan juga boleh mengisytiharkan siling keserentakan tepat setiap
-model di dalam peta `rateLimitOverrides` miliknya:
+Sambungan juga boleh mengisytiharkan siling konkurensi setiap model tepat di dalam peta `rateLimitOverrides` :
```json
{
@@ -313,78 +304,32 @@ model di dalam peta `rateLimitOverrides` miliknya:
}
```
-Tetapkannya dalam modal sambungan (**Pintasan had kadar → Had keserentakan
-setiap model**, satu `model=cap` setiap baris) atau melalui
-`PATCH /api/providers/[id]` dengan bentuk JSON yang sama. Semantik utama:
-
-- **Seluruh sambungan lwn khusus model:** `maxConcurrent` kekal sebagai siling
- kongsi seluruh sambungan. Apabila kedua-duanya terpakai, kedua-dua pintu
- diperoleh secara atomik dalam pintu komposit yang sama
- (`global → provider → account → model`); tingkah laku efektifnya ialah had
- yang lebih ketat di kalangan yang terpakai.
-- **Padanan tepat kunci model:** kuncinya ialah rentetan model yang diserahkan
- kepada pelaksana selepas penyelesaian penghalaan — biasanya ID model huluan
- asal (`glm-5`), bukan alias `provider/model` di sisi klien (`zai/glm-5` tidak
- sepadan dengan `glm-5`). Nilainya ialah siling permintaan serentak berbentuk
- integer positif.
-- **Giliran setempat, tiada penemuan:** permintaan berlebihan beratur secara
- setempat dengan semantik baris gilir/tamat masa sedia ada (ralat kemasukan
- bertaip `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). OmniRoute tidak
- mengesan atau menyimpulkan dasar huluan — ia menguatkuasakan siling tepat
- yang dikonfigurasikan oleh pengendali. Pintu model yang tepu tidak pernah
- melumpuhkan penyedia mahupun mewujudkan sekatan model yang kekal; tingkah
- laku 429/cooldown/fallback huluan kekal sebagai benteng terakhir untuk ralat.
-- **Skop setiap sambungan, setiap proses:** had adalah mengikut sambungan
- pangkalan data dan dipegang dalam ingatan, jadi dua sambungan yang
- menggunakan semula kunci API huluan yang sama tidak berkoordinasi antara satu
- sama lain.
-- **Tidak dikonfigurasi bermakna tidak berubah:** mengabaikan peta (atau
- membiarkan medan papan pemuka kosong) tidak menambah sebarang pintu model.
- Contoh konfigurasi tanpa menetapkan sebarang had penyedia universal:
+Tetapkannya dalam modal sambungan (** Had kadar mengatasi → Had konkurensi setiap model** , satu `model=cap` setiap baris) atau melalui `PATCH /api/providers/[id]` dengan bentuk JSON yang sama. Semantik utama:
+
+- **Seluruh sambungan vs khusus model:** `maxConcurrent` kekal sebagai siling seluruh sambungan dikongsi. Apabila kedua-duanya digunakan, kedua-dua get diperolehi secara atom dalam get komposit yang sama (`global → provider → account → model`); tingkah laku yang berkesan ialah had yang lebih ketat.
+- **Padanan model-kunci yang tepat:** kuncinya ialah rentetan model yang dihantar kepada pelaksana selepas penghalaan resolusi — biasanya id model huluan kosong (`glm-5`), bukan alias `provider/model` sebelah klien (`zai/glm-5` tidak sepadan dengan `glm-5`). Nilai ialah siling permintaan serentak integer positif.
+- **Beratur tempatan, tiada penemuan:** lebihan permintaan beratur secara setempat dengan semantik queue/timeout sedia ada (taip `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ralat kemasukan). OmniRoute tidak menemui atau membuat kesimpulan dasar huluan — ia menguatkuasakan siling tepat yang dikonfigurasikan oleh operator. Gerbang model tepu tidak sekali-kali melumpuhkan pembekal dan tidak pernah mencipta kunci keluar model kekal; Tingkah laku 429/cooldown/fallback hulu kekal sebagai hentian belakang ralat.
+- **Skop per sambungan, setiap proses:** topi adalah setiap sambungan pangkalan data dan disimpan dalam memori, jadi dua sambungan yang menggunakan semula kunci API huluan yang sama tidak menyelaras antara satu sama lain.
+- **Tidak dikonfigurasikan bermaksud tidak berubah:** meninggalkan peta (atau membiarkan medan papan pemuka kosong) tidak menambah gerbang model. Contoh konfigurasi tanpa menegaskan sebarang had pembekal sejagat:
```text
glm-5=1
glm-4.7=3
```
-### Penyirian permintaan quota-share
-
-Apabila penghantaran quota-share menyasarkan sambungan yang mengisytiharkan
-`max_concurrent` positif, permintaan serentak ke **akaun** itu disirikan melalui
-semafor setiap sambungan (kunci `qsconn:`): permintaan berlebihan
-**menunggu dalam baris gilir** dan bukannya membanjiri akaun. Ia bersifat
-**fail-open** — baris gilir yang tepu atau tamat masa akan diteruskan tanpa
-slot, dan tidak sekali-kali menolak permintaan yang boleh dihantar. Togol dalam
-**Tetapan → Resiliensi → Keserentakan setiap sambungan quota-share**
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, lalai aktif). Tanpa
-had `max_concurrent`, tingkah laku kekal tidak berubah.
-
-> Pintu penghalaan quota-share (`selectQuotaShareTarget`, DRR + P2C) itu
-> sendiri bersifat fail-open dan hanya _menyahutamakan_ sambungan yang telah
-> mencapai had — dengan kumpulan sambungan tunggal ia tidak dapat mengehadkan
-> secara mutlak, jadi semafor inilah yang sebenarnya membendung banjir itu.
-
-### Cubaan semula peka cooldown kombo
-
-Untuk setiap strategi kombo (apabila didayakan), permintaan yang sepatutnya
-menghasilkan 429 untuk cooldown sementara yang SINGKAT akan menunggu sehingga
-tamat dan menghantar semula, dan bukannya memulangkan 429 — ini merangkumi
-tetingkap TPM/RPM kelas Gemini (~60s retry-after) pada kombo berbilang model,
-cth. apabila kedua-dua sasaran kombo 2 model terkena had kadar setiap model.
-Dibatasi oleh `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`,
-`budgetMs`) dalam **Tetapan → Resiliensi**. Ia tidak pernah menunggu untuk
-`quota_exhausted` (dikunci sehingga tengah malam) atau sebab pengesahan/tidak
-dijumpai.
-
-Pintu yang sama merangkumi kes pra-penghantaran (#16319): apabila setiap
-sasaran kombo dilangkau sebelum sebarang percubaan dibuat kerana modelnya
-berada dalam sekatan sementara singkat, laluan sifar percubaan akan menunggu
-sekatan itu tamat di bawah siling yang sama dan menghantar semula, dan bukannya
-menjawab `503 ALL_TARGETS_SKIPPED` tanpa petunjuk. Apabila tiada penantian
-dibenarkan (siling, percubaan atau bajet telah habis, atau ciri dimatikan),
-respons terminal dinaik taraf kepada `429 rate_limit_error` yang membawa
-`retry_after` / `reset_at` daripada waktu tamat sekatan sementara paling awal;
-sekatan kuota, pengesahan dan tidak dijumpai mengekalkan 503 tanpa petunjuk.
+### Siri permintaan perkongsian kuota
+
+Apabila penghantaran perkongsian kuota menyasarkan sambungan yang mengisytiharkan `max_concurrent` positif , permintaan serentak untuk itu** akaun** disirikan melalui semafor per sambungan (kunci `qsconn:`): permintaan berlebihan** tunggu dalam barisan** bukannya membanjiri akaun. Ia adalah** gagal-terbuka** — baris gilir tepu atau tamat masa diteruskan tanpa slot dan bukannya menolak permintaan yang boleh dihantar. Togol masuk** Tetapan → Ketahanan → Perkongsian kuota setiap sambungan serentak** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, lalai hidup). Tanpa topi `max_concurrent` tingkah laku tidak berubah.
+
+> Gerbang penghalaan perkongsian kuota (`selectQuotaShareTarget`, DRR + P2C) itu sendiri gagal-terbuka dan hanya _mendeprioritaskan_ — sambungan pada had dengan kolam sambungan tunggal yang tidak boleh dihadkan, jadi semafor inilah yang sebenarnya mengandungi banjir.
+
+### Combo cooldown-aware cuba semula
+
+Untuk setiap strategi kombo (apabila didayakan), permintaan yang akan mengkristalkan 429 untuk cooldown sementara SHORT menunggunya dan menghantar semula dan bukannya mengembalikan 429 — ini meliputi tingkap TPM/RPM kelas Gemini (~ 60s cuba semula selepas) pada kombo berbilang model, cth kedua-dua sasaran pada kadar kombo 2 model yang menghadkan. Dibatasi oleh `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) dalam** Tetapan → Ketahanan** . Ia tidak pernah menunggu pada `quota_exhausted` (dikunci sehingga tengah malam) atau sebab auth/not-found.
+
+Kombo boleh memilih keluar dengan `config.comboCooldownWaitEnabled: false`. Hanya `false` literal yang melumpuhkan tunggu kombo kongsi ini (bertenang selepas penghantaran dan menunggu circuit-open/model-lock prapenghantaran) dan lanjutan tingkat masa tunggu belanjawan mereka. Hilang atau `true` mengekalkan dasar global; `true` tidak boleh mendayakan menunggu dilumpuhkan secara global. `targetTimeoutMs` eksplisit masih menang. Tarik diri ini tidak mengubah penantian pra-penghantaran pin giliran asli-Codex yang berasingan.
+
+Gerbang yang sama meliputi bekas pra-penghantaran (#16319): apabila setiap sasaran kombo dilangkau sebelum sebarang percubaan dibuat kerana modelnya berada dalam kunci keluar sementara yang singkat, laluan percubaan sifar menunggu kunci keluar di bawah siling yang sama dan menghantar semula, bukannya menjawab `503 ALL_TARGETS_SKIPPED` tanpa petunjuk. Apabila tiada tunggu dibenarkan (siling, percubaan atau belanjawan habis, atau ciri dimatikan), tindak balas terminal dinaik taraf kepada `429 rate_limit_error` membawa `retry_after` / `reset_at` daripada kunci sementara yang paling awal tamat; kuota, kesahihan dan kunci yang tidak ditemui mengekalkan petunjuk-kurang 503.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/ms/docs/guides/USER_GUIDE.md b/docs/i18n/ms/docs/guides/USER_GUIDE.md
index 3ec9247d6a1b..004e221a7f7a 100644
--- a/docs/i18n/ms/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/ms/docs/guides/USER_GUIDE.md
@@ -608,37 +608,37 @@ Untuk rujukan lengkap pemboleh ubah persekitaran, lihat [README](../README.md).
## 📊 Model Tersedia
-Lihat semua model tersedia
+Lihat semua model yang tersedia
-> Senarai di bawah disusun daripada `open-sse/config/providerRegistry.ts` untuk v3.8.0. Katalog awan (Gemini, OpenRouter, dll.) disegerakkan secara dinamik — untuk katalog langsung penuh, buka **Papan Pemuka → Pembekal → [provider] → Model Tersedia** atau panggil `GET /api/models/catalog`.
+> Senarai di bawah dipilih susun daripada `open-sse/config/providerRegistry.ts` untuk v3.8.0. Katalog awan (Gemini, OpenRouter, dsb.) disegerakkan secara dinamik — untuk katalog langsung penuh terbuka** Papan pemuka → Pembekal → [penyedia] → Model Tersedia** atau hubungi `GET /api/models/catalog`.
>
-> Jika senarai terbina dalam sesebuah pembekal telah menyimpang, gunakan **Import daripada /models** pada halaman tersebut (atau aktifkan **Auto-Sync**) untuk menarik katalog hulu langsung. Ini telah disahkan dalam v3.8.50 untuk LLM7.io (`gemini-3.1-flash-lite`) dan UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); akses tanpa nama Pollinations kekal terhad di hulu semasa pusingan ujian yang sama.
+> Jika senarai terbina dalam pembekal telah hanyut, gunakan** Import daripada /models** pada halaman itu (atau dayakan** Auto-Segerak** ) untuk menarik katalog huluan langsung. Ini telah disahkan dalam v3.8.50 untuk LLM7.io (`gemini-3.1-flash-lite`) dan UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Akses tanpa nama pendebungaan kekal terhad di hulu semasa lulus ujian yang sama.
-**Claude Code (`cc/`)** — OAuth Pro/Max: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Kod Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — OAuth Plus/Pro: `cx/gpt-5.5` (+ tahap effort: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` ( peringkat usaha + : `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth PERCUMA: gunakan katalog langsung yang dipaparkan di bawah **Papan Pemuka → Pembekal → Kiro → Model Tersedia**. Ketersediaan bergantung pada akaun dan pelan.
+**Kiro (`kr/`)** — FREE OAuth: gunakan katalog langsung yang ditunjukkan di bawah** Papan pemuka → Pembekal → Kiro → Model Tersedia** . Ketersediaan bergantung pada akaun dan pelan.
-**Qoder (`if/`)** — OAuth PERCUMA: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/bulan rata atau mengikut penggunaan: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo rata atau setiap guna: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — Kunci API: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** kunci — API `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Ultra pantas: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Sangat pantas: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok natif: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok asli: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Dihoskan di EU: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — dihoskan EU: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Diperkukuh carian: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Kebingungan (`pplx/`)** — Carian-ditambah: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
**Together AI (`together/`)** — Sumber terbuka: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (percuma), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
@@ -646,19 +646,19 @@ Untuk rujukan lengkap pemboleh ubah persekitaran, lihat [README](../README.md).
**Cerebras (`cerebras/`)** — Skala wafer: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Berfokus RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG-fokus: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Awan (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Disegerakkan langsung mengikut kunci API daripada Google — tiada senarai statik. Sambungkan kunci dalam **Papan Pemuka → Pembekal** kemudian gunakan **Model Tersedia** untuk mengimport katalog semasa (cth. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Awan `gemini/`)** : Disegerakkan secara langsung setiap kunci API daripada Google — tiada senarai statik. Sambungkan kunci masuk** Pembekal → papan pemuka** kemudian gunakan** Model Tersedia** untuk mengimport katalog semasa (cth `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Pembekal serasi lain** (pilihan): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (melalui `aws-bedrock`), `azure-ai`, `openrouter` (katalog passthrough), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Setiap satu mengekalkan senarai modelnya sendiri dalam `providerRegistry.ts` dan boleh disegerakkan secara automatik apabila pembekal mendedahkan endpoint `/models`.
+**Pembekal lain yang serasi** (dipilih): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (melalui `aws-bedrock`), `azure-ai`, `openrouter` (katalog laluan), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research` `reka`, `volcengine`, `ai21`, `gigachat`. Setiap satu mengekalkan senarai modelnya sendiri dalam `providerRegistry.ts` dan boleh disegerakkan secara automatik apabila pembekal mendedahkan titik akhir `/models`.
-**Nota mengenai ID model:** OmniRoute menggunakan ID asli pembekal (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Sesetengah ID mengandungi versi bertitik kerana itulah format yang dijangkakan oleh API hulu. Jika sesuatu model tidak disenaraikan di atas, jalankan `omniroute models --search ` atau panggil `GET /api/models/catalog` untuk mengesahkan ketersediaan.
+**Nota pada model IDs:** OmniRoute menggunakan IDs asal pembekal (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Sesetengah IDs menyertakan versi bertitik kerana itulah yang diharapkan oleh API huluan. Jika model tidak disenaraikan di atas, jalankan `omniroute models --search ` atau tekan `GET /api/models/catalog` untuk mengesahkan ketersediaan.
diff --git a/docs/i18n/mt/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/mt/docs/architecture/RESILIENCE_GUIDE.md
index 7cb33aea57e0..acd16e490aaa 100644
--- a/docs/i18n/mt/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/mt/docs/architecture/RESILIENCE_GUIDE.md
@@ -247,22 +247,17 @@ L-issettjar jippersisti permezz tal-ħażna normali tal-issettjar u jiġi vvalid
---
-## 4. Kontroll tal-Konkurrenza Quota-Share (v3.8.36)
+## 4. Kontroll tal-Konkorrenza tal-Kwoti-Sehem (v3.8.36)
-Kontijiet ta' abbonament (GLM, MiniMax, eċċ.) spiss jaċċettaw biss madwar 1–3 talbiet konkurrenti; li tgħaddi minn dan jiskatta żbalji 429 u cooldowns. Dan huwa akut taħt combos **quota-share** (`qtSd/…`), fejn diversi API keys jaqsmu kont upstream wieħed. Tliet saffi jipprevjenu li kont kondiviż jiġi mgħerraq.
+Kontijiet ta' abbonament (GLM, MiniMax, eċċ.) ħafna drabi jaċċettaw biss ~ 1–3 talbiet konkorrenti; jaqbeż dak iqajjem 429s u cooldowns. Dan huwa akut taħt** sehem tal-kwota** (`qtSd/…`) combos, fejn diversi ċwievet API jaqsmu kont wieħed upstream. Tliet saffi jżommu kont kondiviż milli jiġi mgħarraq.
-### Limitu tal-konkurrenza għal kull konnessjoni (`max_concurrent`)
+### Limitu tal-konkorrenza għal kull konnessjoni (`max_concurrent`)
-Kull konnessjoni ta' provider tista' tiddikjara limitu massimu `max_concurrent`
-(`provider_connections.max_concurrent`, issettjat fil-modal tal-konnessjoni / API / DB).
-Ħallih vojt biex ma jkunx hemm limitu. Dan huwa l-uniku kontroll li jmexxi s-saff
-tas-serjalizzazzjoni hawn taħt — issettjah skont il-konkurrenza reali tal-kont
-(eż. GLM ~1, MiniMax ~2).
+Kull konnessjoni tal-fornitur tista 'tiddikjara limitu `max_concurrent` (`provider_connections.max_concurrent`, stabbilit fil-modal ta' konnessjoni / API / DB). Ħalliha vojta għall-ebda limitu. Dan huwa l-pum wieħed li jmexxi s-saff tas-serializzazzjoni taħt — issettjah għall-konkorrenza reali tal-kont (eż. GLM ~ 1, MiniMax ~ 2).
-### Limiti tal-konkurrenza għal kull mudell (`modelConcurrency`)
+### Limiti tal-konkorrenza għal kull mudell (`modelConcurrency`)
-Konnessjoni tista' wkoll tiddikjara limiti eżatti tal-konkurrenza għal kull mudell
-ġol-mappa `rateLimitOverrides` tagħha:
+Konnessjoni tista' wkoll tiddikjara limiti ta' konkorrenza eżatti għal kull mudell ġewwa l-mappa `rateLimitOverrides` tagħha:
```json
{
@@ -273,76 +268,32 @@ Konnessjoni tista' wkoll tiddikjara limiti eżatti tal-konkurrenza għal kull mu
}
```
-Issettjah fil-modal tal-konnessjoni (**Rate limit overrides → Limiti tal-konkurrenza
-għal kull mudell**, `model=cap` wieħed f'kull linja) jew permezz ta'
-`PATCH /api/providers/[id]` bl-istess struttura JSON. Semantika tal-keys:
-
-- **Fuq il-konnessjoni kollha vs speċifiku għal mudell:** `maxConcurrent` jibqa'
- l-limitu kondiviż fuq il-konnessjoni kollha. Meta jitkabbel it-tnejn, iż-żewġ
- gates jinkisbu b'mod atomiku fl-istess gate kompost
- (`global → provider → account → model`); l-imġieba effettiva hija l-limitu
- l-aktar strett applikabbli.
-- **Korrispondenza eżatta tal-key tal-mudell:** il-key hija s-string tal-mudell
- li tgħaddi lill-executor wara r-riżoluzzjoni tar-rotta — normalment l-id
- sempliċi tal-mudell upstream (`glm-5`), mhux alias `provider/model` min-naħa
- tal-klijent (`zai/glm-5` ma jaqbilx ma' `glm-5`). Il-valuri huma limiti ta'
- talbiet konkurrenti espressi b'numri sħaħ pożittivi.
-- **Kjuwi lokali, ebda discovery:** it-talbiet żejjed jidħlu fil-kju lokalment
- bis-semantika eżistenti tal-kju/timeout (żbalji ta' ammissjoni tat-tip
- `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). OmniRoute ma jiskopri u lanqas
- jiddeżduċi l-politika upstream — jinfurza l-limiti eżatti li l-operatur ikun
- ikkonfigura. Gate ta' mudell saturat qatt ma jiddiżattiva l-provider u qatt ma
- joħloq lockout permanenti tal-mudell; l-imġieba upstream ta'
- 429/cooldown/fallback tibqa' l-aħħar difiża għall-iżbalji.
-- **Ambitu għal kull konnessjoni u għal kull proċess:** il-limiti huma għal kull
- konnessjoni fid-database u jinżammu fil-memorja, għalhekk żewġ konnessjonijiet
- li jużaw mill-ġdid l-istess API key upstream ma jikkoordinawx ma' xulxin.
-- **Mhux ikkonfigurat ifisser l-ebda bidla:** li tiġi moħlika l-mappa (jew li
- l-kamp tad-dashboard jitħalla vojt) ma żżid l-ebda gate tal-mudell.
- Konfigurazzjoni ta' eżempju mingħajr ma tiġi asserita ebda limitu universali
- tal-provider:
+Issettjah fil-modal tal-konnessjoni (** Il-limitu tar-rata jegħleb → -limiti tal-konkorrenza għal kull mudell** , `model=cap` wieħed għal kull linja) jew permezz ta `PATCH /api/providers/[id]` bl-istess forma JSON. Semantika ewlenija:
+
+- **Konnessjoni kollha vs mudell speċifiku:** `maxConcurrent` jibqa l-limitu tal-konnessjoni mifruxa. Meta t-tnejn japplikaw, iż-żewġ gradi huma akkwistati atomikament fl-istess xatba kompost (`global → provider → account → model`); l-imġiba effettiva hija l-limitu applikabbli aktar strett.
+- **Taqbila eżatta mudell-ċavetta:** iċ-ċavetta hija s-sekwenza tal-mudell mgħoddija lill-eżekutur wara r-riżoluzzjoni tar-routing — normalment l-id tal-mudell upstream vojt (`glm-5`), mhux alias `provider/model` min-naħa tal-klijent (`zai/glm-5` ma jaqbilx ma `glm-5`). Il-valuri huma limiti ta' rikjesta konkorrenti b'numri interi pożittivi.
+- **Kju lokali, l-ebda skoperta:** talbiet żejjed jagħmlu kju lokalment bis-semantika queue/timeout eżistenti (iżbalji ta' ammissjoni `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ittajpjati). OmniRoute ma jiskoprix jew ma jiddeduċix politika upstream — jinforza l-limiti eżatti li kkonfigura l-operatur. Gejt tal-mudell saturat qatt ma jiskonnettja lill-fornitur u qatt ma joħloq lockout permanenti tal-mudell; imġieba upstream 429/cooldown/fallback tibqa 'backstop ta' żball.
+- **Għal kull konnessjoni, ambitu għal kull proċess:** il-limiti huma għal kull konnessjoni tad-database u miżmuma fil-memorja, għalhekk żewġ konnessjonijiet li jużaw mill-ġdid l-istess ċavetta API upstream ma jikkoordinawx ma 'xulxin.
+- **Mhux ikkonfigurat ifisser mhux mibdul:** jekk tħalli barra l-mappa (jew tħalli l-qasam tad-dashboard vojt) ma żżid l-ebda bieb mudell. Eżempju ta' konfigurazzjoni mingħajr ma jiġi affermat l-ebda limitu universali tal-fornitur:
```text
glm-5=1
glm-4.7=3
```
-### Serjalizzazzjoni tat-talbiet quota-share
-
-Meta dispatch quota-share jimmira lejn konnessjoni li tiddikjara `max_concurrent`
-pożittiv, it-talbiet konkurrenti lejn dak il-**kont** jiġu serjalizzati permezz
-ta' semaphore għal kull konnessjoni (key `qsconn:`): it-talbiet
-żejjed **jistennnew fil-kju** minflok jegħrqu l-kont. Huwa **fail-open** — kju
-saturat jew timeout jipproċedi mingħajr slot minflok li qatt jirrifjuta talba li
-tista' tintbagħat. Ixgħel jew itfi minn **Settings → Resilience → Konkurrenza
-quota-share għal kull konnessjoni** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`,
-mixgħul b'mod default). Mingħajr limitu `max_concurrent`, l-imġieba ma tinbidelx.
-
-> Il-gate tar-rotta quota-share (`selectQuotaShareTarget`, DRR + P2C) huwa nnifsu
-> fail-open u biss _jbaxxi l-prijorità_ ta' konnessjoni li waslet fil-limitu
-> tagħha — b'pool ta' konnessjoni waħda ma jistax jimponi limitu assolut,
-> għalhekk dan is-semaphore huwa li fil-fatt jikkontieni l-għargħar.
-
-### Retry konxju tal-cooldown għal combos
-
-Għal kull strateġija combo (meta tkun attivata), talba li kienet se tikkristalizza
-429 minħabba cooldown tranżitorju QASIR tistennieh jgħaddi u terġa' tibgħat
-minflok tirritorna l-429 — dan jkopri twieqi TPM/RPM ta' klassi Gemini (~60s
-retry-after) fuq combos ta' diversi mudelli, eż. meta ż-żewġ targets ta' combo
-ta' 2 mudelli jitolbu limitu tar-rata għal kull mudell. Limitat minn
-`comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) fi
-**Settings → Resilience**. Qatt ma jistenna fuq `quota_exhausted` (imblukkat
-sal-lejl) jew raġunijiet ta' awtentikazzjoni/mhux misjub.
-
-L-istess gate jkopri l-każ ta' qabel id-dispatch (#16319): meta kull target ta'
-combo jiġi mqabeż qabel ma jsir ebda tentattiv minħabba li l-mudell tiegħu jinsab
-f'lockout tranżitorju qasir, il-mogħdija ta' żero tentattivi tistenna li jgħaddi
-l-lockout taħt l-istess limiti u terġa' tibgħat, minflok twieġeb
-`503 ALL_TARGETS_SKIPPED` mingħajr ebda ħjiel. Meta ma tkunx permessa ebda
-stennija (limitu massimu, tentattivi jew baġit eżawriti, jew il-funzjonalità
-mitfija), ir-risposta terminali tittejjeb għal `429 rate_limit_error` li ġġib
-magħha `retry_after` / `reset_at` mill-eqdem skadenza ta' lock tranżitorju;
-il-locks tal-kwota, awtentikazzjoni u mhux-misjub iżommu l-503 mingħajr ħjiel.
+### Serializzazzjoni tat-talba għal qsim tal-kwota
+
+Meta dispaċċ ta' kwota-share jimmira konnessjoni li tiddikjara `max_concurrent` pożittiva, talbiet konkorrenti għal dik** kont** huma serializzati permezz ta' semaforu għal kull konnessjoni (ċavetta `qsconn:`): talbiet żejda** stenna fil-kju** minflok għargħar il-kont. Huwa** fail-miftuħ** — kju saturat jew timeout jipproċedi mingħajr slot aktar milli qatt ma tiċħad talba li tista' tintbagħat. Toggle in** Settings → Reżiljenza → Konkorrenza tal-kwota għal kull konnessjoni** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, default on). Mingħajr limitu `max_concurrent` l-imġieba mhix mibdula.
+
+> Il-bieb tar-routing tal-kwota-share (`selectQuotaShareTarget`, DRR + P2C) huwa nnifsu huwa fail-open u _deprioritizes_ biss konnessjoni at-cap — b'pool ta 'konnessjoni waħda ma jistax jillimita iebes, għalhekk dan is-semafor huwa dak li fil-fatt fih l-għargħar.
+
+### Ipprova mill-ġdid Combo cooldown konxju
+
+Għal kull strateġija combo (meta tkun attivata), talba li tikkristallizza 429 għal cooldown temporanju SHORT tistennieha u tibgħat mill-ġdid minflok ma terġa 'lura l-429 — dan ikopri twieqi TPM/RPM tal-klassi Gemini (~ 60s retry-after) fuq multi-mudell combos ta' mudelli, eż. limitu. Marbut bi `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) fi** Settings → Reżiljenza** . Qatt ma jistenna fuq `quota_exhausted` (imsakkar sa nofs il-lejl) jew raġunijiet auth/not-found.
+
+A combo tista 'tagħżel barra ma' `config.comboCooldownWaitEnabled: false`. `false` letterali biss jiskonnettja dawn il-combo waits kondiviżi (wara d-dispatch cooldown u qabel id-dispatch circuit-open/model-lock waits) u l-estensjoni tal-floor tal-wait-budget timeout tagħhom. Nieqes jew `true` jippreserva l-politika globali; `true` ma jistax jippermetti stennija b'diżabbiltà globali. `targetTimeoutMs` espliċitu xorta jirbaħ. Din l-opt-out ma tbiddilx l-istennija separata native-Codex turn-pin qabel id-dispaċċ.
+
+L-istess gate jkopri l-każ ta 'qabel id-dispaċċ (#16319): meta kull mira ta' combo tinqabeż qabel ma jsir kwalunkwe tentattiv minħabba li l-mudell tiegħu joqgħod f'lockout temporanju qasir, il-mogħdija ta 'zero-attempt tistenna l-lock out taħt l-istess limiti u terġa' tibgħat, minflok ma twieġeb `503 ALL_TARGETS_SKIPPED` mingħajr ħjiel. Meta l-ebda stennija ma tkun permessa (il-limitu, l-attentat jew il-baġit eżawriti, jew il-karatteristika mitfija), ir-rispons tat-terminal jaġġorna għal `429 rate_limit_error` li jġorr `retry_after` / `reset_at` mill-iskadenza tal-lock temporanju l-aktar kmieni; kwota, awth u serraturi mhux misjuba jżommu l-ħjiel inqas 503.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/mt/docs/guides/USER_GUIDE.md b/docs/i18n/mt/docs/guides/USER_GUIDE.md
index d9c02ded8a00..bb4557985f20 100644
--- a/docs/i18n/mt/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/mt/docs/guides/USER_GUIDE.md
@@ -607,57 +607,57 @@ Għar-riferenza sħiħa tal-varjabbli tal-ambjent, ara l-[README](../README.md).
## 📊 Mudelli Disponibbli
-Ara l-mudelli disponibbli kollha
+Ara l-mudelli kollha disponibbli
-> Il-lista hawn taħt hija magħżula minn `open-sse/config/providerRegistry.ts` għal v3.8.0. Il-katalgi tal-cloud (Gemini, OpenRouter, eċċ.) jiġu sinkronizzati b'mod dinamiku — għall-katalogu live sħiħ iftaħ **Dashboard → Providers → [provider] → Available Models** jew sejjaħ `GET /api/models/catalog`.
+> Il-lista t'hawn taħt hija kkurata minn `open-sse/config/providerRegistry.ts` għal v3.8.0. Il-katalgi tas-sħab (Gemini, OpenRouter, eċċ.) huma sinkronizzati b'mod dinamiku — għall-katalgu live sħiħ miftuħ** Dashboard → Fornituri → [fornitur] → Mudelli Disponibbli** jew ċempel `GET /api/models/catalog`.
>
-> Jekk il-lista integrata ta' provider tkun inbiddlet, uża **Import from /models** f'dik il-paġna (jew attiva **Auto-Sync**) biex tiġbed il-katalogu live ta' upstream. Dan ġie vverifikat f'v3.8.50 għal LLM7.io (`gemini-3.1-flash-lite`) u UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); l-aċċess anonimu ta' Pollinations baqa' limitat minn upstream matul l-istess pass ta' ttestjar.
+> Jekk il-lista inkorporata ta' fornitur tgħaddi, uża** Importazzjoni minn / mudelli** fuq dik il-paġna (jew abilita** Is-sinkronizzazzjoni awtomatika** ) biex tiġbed il-katalgu live upstream. Dan ġie vverifikat f'v3.8.50 għal LLM7.io (`gemini-3.1-flash-lite`) u UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); L-aċċess anonimu għall-pollinazzjonijiet baqa' limitat upstream matul l-istess pass tat-test.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Kodiċi Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ livelli ta' effort: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort tiers: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth B'XEJN: uża l-katalogu live muri taħt **Dashboard → Providers → Kiro → Available Models**. Id-disponibbiltà tiddependi fuq il-kont u l-pjan.
+**Kiro (`kr/`)** — FREE OAuth: uża l-katalgu dirett muri taħt** Dashboard → Fornituri → Kiro → Disponibbli** . Id-disponibbiltà tiddependi fuq il-kont u l-pjan.
-**Qoder (`if/`)** — OAuth B'XEJN: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo b'rata fissa jew skond l-użu: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo ċatt jew għal kull użu: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — API key: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API ċavetta: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
**Groq (`groq/`)** — Ultra-veloċi: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok nattiv: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok indiġeni: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Ospitat fl-UE: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — ospitat fl-UE: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Msaħħaħ bit-tfittxija: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Perplexity (`pplx/`)** — Fittex miżjud: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Sors miftuħ: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (b'xejn), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — Open-source: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (b'xejn), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Inferenza veloċi: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Inferenza mgħaġġla: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Skala ta' wafer: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Wafer-scale: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Fokusat fuq RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — Iffukat fuq RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Sinkronizzat live għal kull API key minn Google — l-ebda lista statika. Qabbad key f'**Dashboard → Providers** imbagħad uża **Available Models** biex timporta l-katalogu kurrenti (eż. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : Sinkronizzat live għal kull ċavetta API minn Google — ebda lista statika. Qabbad ċavetta ġewwa** Dashboard → Fornituri** imbagħad uża** Mudelli Disponibbli** biex timporta l-katalgu kurrenti (eż. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Providuri kompatibbli oħra** (magħżula): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (permezz ta' `aws-bedrock`), `azure-ai`, `openrouter` (katalogu passthrough), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Kull wieħed iżomm il-lista tal-mudelli tiegħu stess f'`providerRegistry.ts` u jista' jiġi sinkronizzat awtomatikament meta l-provider jespont endpoint `/models`.
+**Fornituri oħra kompatibbli** (magħżula): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (passthrough catalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra` `friendliai` `vercel-ai-gateway` `bazaarlink`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Kull wieħed iżomm il-lista tal-mudelli tiegħu stess `providerRegistry.ts` u jista' jiġi sinkronizzat awtomatikament meta l-fornitur jesponi endpoint `/models`.
-**Nota dwar l-IDs tal-mudelli:** OmniRoute juża IDs nattivi tal-provider (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Xi IDs jinkludu verżjonijiet bit-tikki għaliex hekk jistennihom l-API upstream. Jekk mudell mhuwiex elenkat hawn fuq, mexxi `omniroute models --search ` jew aċċessa `GET /api/models/catalog` biex tikkonferma d-disponibbiltà.
+**Nota fuq il-mudell IDs:** OmniRoute juża IDs nattiv tal-fornitur (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Xi IDs jinkludu verżjonijiet bit-tikek għax hekk jistennihom API upstream. Jekk mudell mhux elenkat hawn fuq, ħaddem `omniroute models --search ` jew agħfas `GET /api/models/catalog` biex tikkonferma d-disponibbiltà.
diff --git a/docs/i18n/my/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/my/docs/architecture/RESILIENCE_GUIDE.md
index daddafa239b1..c7969aa25337 100644
--- a/docs/i18n/my/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/my/docs/architecture/RESILIENCE_GUIDE.md
@@ -300,17 +300,17 @@ persist လုပ်သော်လည်း လတ်တလော lockout _stat
---
-## 4. Quota-Share တစ်ပြိုင်နက်တည်းအသုံးပြုမှု (Concurrency) ထိန်းချုပ်ခြင်း (v3.8.36)
+## 4. Quota-Share Concurrency Control (v3.8.36)
-Subscription account များ (GLM, MiniMax စသည်) သည် တစ်ပြိုင်နက်တည်း တောင်းဆိုမှု ~1–3 ခုခန့်သာ လက်ခံတတ်ကြပြီး၊ ထိုအရေအတွက်ထက် ကျော်လွန်ပါက 429 များနှင့် cooldown များ ဖြစ်စေသည်။ API key အများအပြားက upstream account တစ်ခုတည်းကို မျှဝေအသုံးပြုသည့် **quota-share** (`qtSd/…`) combo များတွင် ဤပြဿနာသည် အထူးပြင်းထန်သည်။ မျှဝေအသုံးပြုထားသော account တစ်ခု တောင်းဆိုမှုများနှင့် ပြည့်နှက်သွားခြင်းမှ ကာကွယ်ရန် အလွှာသုံးခု ရှိသည်။
+စာရင်းသွင်းအကောင့်များ (GLM၊ MiniMax၊ စသည်ဖြင့်) သည် ~ 1-3 တစ်ပြိုင်နက် တောင်းဆိုမှုများကိုသာ လက်ခံလေ့ရှိသည်။ ၎င်းထက်ကျော်လွန်ပါက 429s နှင့် cooldowns တို့ကို အစပြုသည်။ ဤသည် စူးရှသောအော** ခွဲတမ်းခွဲတမ်း** API သော့အများအပြားသည် အထက်ရေစီးကြောင်းအကောင့်တစ်ခုအား မျှဝေသည့် (`qtSd/…`) ပေါင်းစပ်မှုများ။ အလွှာသုံးလွှာသည် မျှဝေထားသောအကောင့်ကို ရေလွှမ်းမိုးခြင်းမှ ကင်းဝေးစေသည်။
-### Connection အလိုက် concurrency cap (`max_concurrent`)
+### ချိတ်ဆက်မှုတစ်ခုချင်း ပေါင်းစပ်ငွေကြေးထုပ် (`max_concurrent`)
-Provider connection တစ်ခုချင်းစီသည် `max_concurrent` ceiling ကို ကြေညာနိုင်သည် (`provider_connections.max_concurrent`၊ connection modal / API / DB တွင် သတ်မှတ်ပါ)။ ကန့်သတ်ချက်မထားလိုပါက ဗလာထားပါ။ ဤသည်မှာ အောက်ပါ serialization layer ကို မောင်းနှင်စေသော ခလုတ်တစ်ခုတည်း ဖြစ်သည် — ၎င်းကို account ၏ အမှန်တကယ် concurrency (ဥပမာ GLM ~1, MiniMax ~2) သို့ သတ်မှတ်ပါ။
+ပံ့ပိုးသူချိတ်ဆက်မှုတစ်ခုစီသည် `max_concurrent` မျက်နှာကျက် (`provider_connections.max_concurrent`၊ ချိတ်ဆက်မှုပုံစံ / API / DB) တွင် သတ်မှတ်ထားသည်။ အကန့်အသတ်မရှိ အလွတ်ထားလိုက်ပါ။ ၎င်းသည် — အောက်တွင် နံပါတ်စဉ်အလိုက် အလွှာကို မောင်းနှင်ပေးသည့် တစ်ခုတည်းသော ခလုတ်ဖြစ်ပြီး ၎င်းကို အကောင့်၏ တူညီသောငွေကြေး (ဥပမာ GLM ~ 1၊ MiniMax ~ 2) သို့ မောင်းနှင်ပေးသည်။
-### Model အလိုက် concurrency cap များ (`modelConcurrency`)
+### မော်ဒယ်အလိုက် တွဲဖက်ငွေထုပ်များ (`modelConcurrency`)
-Connection တစ်ခုသည် ၎င်း၏ `rateLimitOverrides` map အတွင်းတွင် model တစ်ခုချင်းစီအတွက် အတိအကျ concurrency ceiling များကို ထပ်မံကြေညာနိုင်သည်။
+ချိတ်ဆက်မှုတစ်ခုသည် ၎င်း၏ `rateLimitOverrides` မြေပုံအတွင်း၌ မော်ဒယ်အလိုက် တူညီသော ငွေကြေးမျက်နှာကျက်များကို ထပ်မံကြေငြာနိုင်သည်-
```json
{
@@ -321,30 +321,32 @@ Connection တစ်ခုသည် ၎င်း၏ `rateLimitOverrides` map အ
}
```
-၎င်းကို connection modal (**Rate limit overrides → Model အလိုက် concurrency cap များ**၊ တစ်လိုင်းချင်းစီတွင် `model=cap` တစ်ခု) တွင် သတ်မှတ်နိုင်သည်၊ သို့မဟုတ် တူညီသော JSON ပုံစံဖြင့် `PATCH /api/providers/[id]` မှတစ်ဆင့် သတ်မှတ်နိုင်သည်။ အဓိက semantics များ−
+၎င်းကို ချိတ်ဆက်မှုပုံစံတွင် သတ်မှတ်ပါ (** နှုန်းကန့်သတ်ချက်သည် → မော်ဒယ်တစ်ခုချင်းစီအလိုက် ငွေကြေးထုပ်များကို အစားထိုးသည်။** တစ်ကြောင်းလျှင် `model=cap` တစ်ခု) သို့မဟုတ် တူညီသော JSON ပုံသဏ္ဍာန်ဖြင့် `PATCH /api/providers/[id]` မှတဆင့်။ အဓိက ဝေါဟာရ-
-- **Connection အလုံးစုံ နှင့် model သီးသန့်:** `maxConcurrent` သည် မျှဝေသုံး connection အလုံးစုံ ceiling အဖြစ် ဆက်လက်တည်ရှိသည်။ နှစ်ခုလုံး သက်ဆိုင်သောအခါ၊ gate နှစ်ခုလုံးကို composite gate တစ်ခုတည်း (`global → provider → account → model`) အတွင်း atomically ရယူသည်။ ထိရောက်သော အပြုအမူမှာ ပိုမိုတင်းကြပ်သော သက်ဆိုင်ရာ ကန့်သတ်ချက် ဖြစ်သည်။
-- **Model-key အတိအကျ ကိုက်ညီမှု:** key သည် routing resolution ပြီးနောက် executor သို့ ပေးပို့သော model string ဖြစ်သည် — ပုံမှန်အားဖြင့် bare upstream model id (`glm-5`) ဖြစ်ပြီး client-side `provider/model` alias မဟုတ်ပါ (`zai/glm-5` သည် `glm-5` နှင့် မကိုက်ညီပါ)။ တန်ဖိုးများမှာ positive-integer တစ်ပြိုင်နက်တည်း တောင်းဆိုမှု ceiling များ ဖြစ်သည်။
-- **Local queueing၊ discovery မပြုခြင်း:** ပိုလျှံသော တောင်းဆိုမှုများသည် ရှိရင်းစွဲ queue/timeout semantics များအတိုင်း local တွင် queue ဝင်သည် (typed `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` admission error များ)။ OmniRoute သည် upstream policy ကို ရှာဖွေတွေ့ရှိခြင်း သို့မဟုတ် ခန့်မှန်းခြင်း မပြုပါ — operator က သတ်မှတ်ထားသော အတိအကျ ceiling များကိုသာ enforce လုပ်သည်။ ပြည့်နေသော model gate သည် provider ကို ဘယ်တော့မှ disable မလုပ်ပါ၊ အမြဲတမ်း model lockout ကိုမျှ မဖန်တီးပါ။ upstream 429/cooldown/fallback အပြုအမူမှာ error backstop အဖြစ် ဆက်လက်တည်ရှိနေသည်။
-- **Connection တစ်ခုချင်း၊ process တစ်ခုချင်း scope:** cap များသည် database connection တစ်ခုချင်းစီအတွက် ဖြစ်ပြီး memory အတွင်းတွင် သိမ်းဆည်းထားသောကြောင့်၊ upstream API key တစ်ခုတည်းကို ပြန်လည်အသုံးပြုသော connection နှစ်ခုသည် အချင်းချင်း coordinate မလုပ်ကြပါ။
-- **မသတ်မှတ်ထားခြင်းသည် မပြောင်းလဲခြင်းကို ဆိုလိုသည်:** map ကို ချန်လှပ်ထားခြင်း (သို့မဟုတ် dashboard field ကို ဗလာထားခြင်း) သည် model gate မထပ်ပေါင်းပါ။ မည်သည့် ယေဘုယျ provider ကန့်သတ်ချက်ကိုမျှ အတည်မပြုဘဲ ဥပမာ configuration−
+- **ချိတ်ဆက်မှု ကျယ်ပြန့်ခြင်းနှင့် မော်ဒယ်အလိုက် ချိတ်ဆက်မှု-** `maxConcurrent` မျှဝေထားသော ချိတ်ဆက်မှု ကျယ်ပြန့်သော မျက်နှာကျက်အဖြစ် ကျန်ရှိနေပါသည်။ နှစ်ခုစလုံးကို အသုံးချသောအခါ၊ တံခါးနှစ်ခုစလုံးသည် တူညီသောပေါင်းစပ်ဂိတ် (`global → provider → account → model`) တွင် အက်တမ်ဖြင့် ရရှိသည်။ ထိရောက်သော အပြုအမူသည် ပြင်းထန်သော ကန့်သတ်ချက်ဖြစ်သည်။
+- **မော်ဒယ်-ကီး အတိအကျ ကိုက်ညီမှု-** သော့ချက်မှာ မော်ဒယ် ကြိုးတစ်ချောင်းသည် ပုံမှန်အားဖြင့် လမ်းကြောင်းပြတ်သားမှု — လမ်းကြောင်းပြောင်းပြီးနောက် executor သို့ ပေးပို့သော ပုံမှန်အားဖြင့် bare upstream model id (`glm-5`) ၊ client-side `provider/model` alias မဟုတ်ဘဲ (`zai/glm-5` `glm-5` နှင့် မကိုက်ညီပါ )။ တန်ဖိုးများသည် အပေါင်း-ကိန်းပြည့် တစ်ပြိုင်တည်း-တောင်းဆိုမှု မျက်နှာကျက်များဖြစ်သည်။
+- **ဒေသတွင်း တန်းစီစောင့်ဆိုင်းခြင်း၊ ရှာဖွေတွေ့ရှိခြင်းမရှိပါ** ရှိပြီးသား queue/timeout ဝေါဟာရများ ( `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ဝန်ခံချက်အမှားများကို ရိုက်ထည့်သည်) ဖြင့် ပြည်တွင်းတွင် ပိုလျှံနေသော တောင်းဆိုမှုများ တန်းစီနေသည်။ OmniRoute ရေစီးကြောင်းပေါ်လစီကို ရှာဖွေတွေ့ရှိခြင်း သို့မဟုတ် ကောက်ချက်မချပါ — ၎င်းသည် အော်ပရေတာမှ စီစဉ်သတ်မှတ်ထားသော အတိအကျမျက်နှာကျက်များကို တွန်းအားပေးသည်။ ပြည့်နှက်နေသော မော်ဒယ်လ်ဂိတ်သည် ဝန်ဆောင်မှုပေးသူကို ဘယ်သောအခါမှ မပိတ်ဘဲ အမြဲတမ်း မော်ဒယ်လော့ခ်ချခြင်းကို ဘယ်တော့မှ မဖန်တီးနိုင်ပါ။ upstream 429/cooldown/fallback အပြုအမူသည် error backstop ဖြစ်နေဆဲဖြစ်သည်။
+- **ချိတ်ဆက်မှုတစ်ခု၊ လုပ်ငန်းစဉ်တစ်ခုစီ နယ်ပယ်-** ထုပ်များသည် ဒေတာဘေ့စ်ချိတ်ဆက်မှုတစ်ခုဖြစ်ပြီး မှတ်ဉာဏ်တွင် သိမ်းဆည်းထားသောကြောင့် တူညီသော upstream API သော့ကို ပြန်လည်အသုံးပြုသည့် ချိတ်ဆက်မှုနှစ်ခုသည် တစ်ခုနှင့်တစ်ခု မပူးပေါင်းနိုင်ပါ။
+- **Unconfigured ဆိုသည်မှာ မပြောင်းလဲသော၊** မြေပုံကို ချန်လှပ်ခြင်း (သို့မဟုတ် ဒက်ရှ်ဘုတ်အကွက်ကို ကွက်လပ်ချန်ထား) သည် မော်ဒယ်ဂိတ်ကို မထည့်ပါ။ ကမ္ဘာလုံးဆိုင်ရာပံ့ပိုးပေးသူကန့်သတ်ချက်ကို အတည်မပြုဘဲ နမူနာပုံစံဖွဲ့စည်းခြင်း-
```text
glm-5=1
glm-4.7=3
```
-### Quota-share တောင်းဆိုမှု serialization
+### Quota-share တောင်းဆိုမှု အမှတ်စဉ်
-Quota-share dispatch တစ်ခုသည် positive `max_concurrent` ကြေညာထားသော connection ကို ပစ်မှတ်ထားသောအခါ၊ အဆိုပါ **account** သို့ တစ်ပြိုင်နက်တည်း တောင်းဆိုမှုများကို connection အလိုက် semaphore (key `qsconn:`) မှတစ်ဆင့် serialized ပြုလုပ်သည်။ ပိုလျှံသော တောင်းဆိုမှုများသည် account ကို flood မဖြစ်စေဘဲ **queue အတွင်းတွင် စောင့်ဆိုင်းနေသည်**။ ၎င်းသည် **fail-open** ဖြစ်သည် — queue ပြည့်ခြင်း သို့မဟုတ် timeout ဖြစ်ပါက slot မရရှိဘဲပင် ဆက်လက်လုပ်ဆောင်ပြီး၊ dispatch လုပ်နိုင်သော တောင်းဆိုမှုကို ဘယ်တော့မှ ငြင်းပယ်ခြင်း မပြုပါ။ **ဆက်တင်များ → ခံနိုင်ရည်ရှိမှု → Quota-share connection အလိုက် concurrency** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`၊ default on) တွင် toggle လုပ်နိုင်သည်။ `max_concurrent` cap မရှိပါက အပြုအမူ မပြောင်းလဲပါ။
+ခွဲတမ်းမျှဝေမှု ဖြန့်ဝေမှုသည် အပြုသဘော `max_concurrent` ကိုကြေငြာသည့် ချိတ်ဆက်မှုတစ်ခုကို ပစ်မှတ်ထားသောအခါ၊ ၎င်းကို တစ်ပြိုင်တည်း တောင်းဆိုမှုများ၊** အကောင့်** per-connection semaphore (key `qsconn:`) : ပိုလျှံသော တောင်းဆိုမှုများမှတဆင့် အတွဲလိုက်ပါသည်။** တန်းစီစောင့်ဆိုင်းပါ။** အကောင့်ကိုရေလျှံမယ့်အစား။ အဲဒါ** ပျက်ကွက်-ဖွင့်** — ဖြန့်ကျက်နိုင်သော တောင်းဆိုချက်ကို ငြင်းပယ်ခြင်းထက် အထိုင်မပါပဲ အချိန်ကုန်သွားသည် ။ အဖွင့်အပိတ်လုပ်ပါ။** ဆက်တင်များ → ခံနိုင်ရည်ရှိမှု → ချိတ်ဆက်မှုတစ်ခုချင်း ခွဲဝေခွဲဝေမှု ပေါင်းစပ်ငွေကြေး** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`၊ မူရင်းတွင်)။ `max_concurrent` ထုပ်မပါရင် အမူအရာက မပြောင်းလဲပါဘူး။
-> Quota-share routing gate (`selectQuotaShareTarget`, DRR + P2C) သည် ၎င်းကိုယ်တိုင်လည်း fail-open ဖြစ်ပြီး cap ရောက်နေသော connection ကို _ဦးစားပေးမှုလျှော့ချခြင်း_ သာ ပြုလုပ်သည် — connection တစ်ခုတည်းပါ pool တွင် hard-limit ချနိုင်ခြင်း မရှိသောကြောင့်၊ ဤ semaphore မှာပဲ flood ကို တကယ့် ထိန်းသိမ်းပေးသော အရာ ဖြစ်သည်။
+> quota-share routing gate (`selectQuotaShareTarget`, DRR + P2C) သည် သူ့အလိုလို ပျက်ကွက်နေပြီး _deprioritizes_ single-connection pool နှင့် at-cap connection — သာလျှင် hard-limit မရနိုင်ပါ၊ ထို့ကြောင့် ဤ semaphore သည် အမှန်တကယ်တွင် ရေလွှမ်းမိုးခြင်းပါ၀င်ပါသည်။
-### Combo cooldown ကို သတိပြုသော retry
+### Combo cooldown-aware ထပ်စမ်းကြည့်ပါ။
-Combo strategy အားလုံး (enable လုပ်ထားသောအခါ) အတွက်၊ SHORT transient cooldown ကြောင့် 429 တစ်ခု ဖြစ်ပေါ်လာစေမည့် တောင်းဆိုမှုသည် 429 ကို ပြန်ပို့မည့်အစား ၎င်းကို စောင့်ဆိုင်းပြီးနောက် ပြန်လည် dispatch လုပ်သည် — ဤသည်မှာ multi-model combo များပေါ်ရှိ Gemini-class TPM/RPM window များ (~60s retry-after) ကို လွှမ်းခြုံပေးသည်၊ ဥပမာ 2-model combo ၏ target နှစ်ခုလုံး model အလိုက် rate limit ထိခိုက်ခြင်း။ **ဆက်တင်များ → ခံနိုင်ရည်ရှိမှု** ရှိ `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) ဖြင့် ကန့်သတ်ထားသည်။ ၎င်းသည် `quota_exhausted` (သန်းခေါင်ယံအထိ lock ချထားခြင်း) သို့မဟုတ် auth/not-found အကြောင်းရင်းများအတွက် ဘယ်တော့မှ မစောင့်ပါ။
+ပေါင်းစပ်နည်းဗျူဟာတိုင်း (ဖွင့်ထားသောအခါ)၊ SHORT ယာယီ cooldown တစ်ခုအတွက် 429 ကို ပုံဆောင်ခဲဖြစ်စေမည့် တောင်းဆိုချက်သည် ၎င်းကို စောင့်ဆိုင်းပြီး 429 — ကို ပြန်ပေးမည့်အစား ၎င်းသည် Gemini-class TPM/RPM windows (~ 60s ထပ်စမ်းကြည့်ပြီးနောက်) ကို အကျုံးဝင်သည် ၊ ဥပမာ- မော်ဒယ် 2 ခုလုံးအတွက် ပစ်မှတ်တစ်ခုလျှင် မိုဒယ်တစ်ခုလျှင် ကန့်သတ်နှုန်းနှစ်ခုလုံးကို `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) ဖြင့် ကန့်သတ်ထားသည်** ဆက်တင်များ → ခံနိုင်ရည်အား** . ၎င်းသည် `quota_exhausted` (သန်းခေါင်အထိသော့ခတ်ထားသည်) သို့မဟုတ် auth/not-found အကြောင်းပြချက်များကို မည်သည့်အခါမျှ မစောင့်ပါ။
-တူညီသော gate သည် pre-dispatch case (#16319) ကိုလည်း လွှမ်းခြုံပေးသည်။ combo ၏ target အားလုံးသည် ၎င်းတို့၏ model များ short transient lockout အတွင်းတွင် ရှိနေသောကြောင့် မည်သည့် ကြိုးပမ်းမှုမျှ မပြုလုပ်ရသေးဘဲ skip ခံရသောအခါ၊ zero-attempt path သည် hint-less `503 ALL_TARGETS_SKIPPED` ကို ဖြေကြားမည့်အစား တူညီသော ceiling များအောက်တွင် lock ကို စောင့်ဆိုင်းပြီး ပြန်လည် dispatch လုပ်သည်။ စောင့်ဆိုင်းခွင့် မပြုနိုင်သောအခါ (ceiling၊ attempt သို့မဟုတ် budget ကုန်ဆုံးခြင်း၊ သို့မဟုတ် feature ပိတ်ထားခြင်း)၊ terminal response သည် အစောဆုံး transient lock သက်တမ်းကုန်ချိန်မှ `retry_after` / `reset_at` ကို သယ်ဆောင်လာသည့် `429 rate_limit_error` သို့ upgrade ဖြစ်သည်။ quota၊ auth နှင့် not-found lock များကမူ hint-less 503 ကို ဆက်လက်ထားရှိသည်။
+ပေါင်းစပ်တစ်ခုသည် `config.comboCooldownWaitEnabled: false` ဖြင့် ထွက်နိုင်သည်။ ပကတိ `false` သာလျှင် ဤမျှဝေထားသော ပေါင်းစပ်စောင့်ဆိုင်းမှုများ (post-dispatch cooldown နှင့် pre-dispatch circuit-open/model-lock waits) နှင့် ၎င်းတို့၏ wait-budget timeout-floor extension ကို ပိတ်သည်။ ပျောက်ဆုံးနေသော သို့မဟုတ် `true` ကမ္ဘာလုံးဆိုင်ရာမူဝါဒကို ထိန်းသိမ်းသည်။ `true` စောင့်ဆိုင်းခြင်းကို တစ်ကမ္ဘာလုံးပိတ်ထား၍ မဖွင့်နိုင်ပါ။ ပြတ်သားသော `targetTimeoutMs` နိုင်ဆဲဖြစ်သည်။ ဤဖယ်ထုတ်ခြင်းသည် သီးခြားဇာတိ-Codex turn-pin ကြိုတင်ပေးပို့မှုစောင့်ဆိုင်းခြင်းကို မပြောင်းလဲပါ။
+
+တူညီသောတံခါးသည် ကြိုတင်ပေးပို့ခြင်းကိစ္စ (#16319) : ၎င်း၏မော်ဒယ်သည် ခေတ္တခဏသောသော့ခတ်မှုတွင်ရှိနေသောကြောင့် ကြိုးပမ်းမှုတစ်စုံတစ်ရာမပြုလုပ်မီ combo တစ်ခု၏ပစ်မှတ်တိုင်းကို ကျော်သွားသောအခါ၊ သုညကြိုးစားမှုလမ်းကြောင်းသည် အရိပ်အမြွက်နည်းပါးသော `503 ALL_TARGETS_SKIPPED` ဖြေဆိုမည့်အစား တူညီသောမျက်နှာကျက်အောက်တွင်သော့ခတ်ထားပြီး ပြန်လည်ပေးပို့သည်။ စောင့်ဆိုင်းခြင်းကို ခွင့်မပြုသောအခါ (မျက်နှာကျက်၊ ကြိုးပမ်းမှု သို့မဟုတ် ဘတ်ဂျက်ကုန်သွားသည် သို့မဟုတ် အင်္ဂါရပ်ကို ပိတ်ထားသည်)၊ အစောဆုံးသော့ခတ်သက်တမ်းကုန်ဆုံးချိန်မှ `retry_after` `reset_at` `429 rate_limit_error` အဆင့်မြှင့်တင်မည်ဖြစ်သည်။ ခွဲတမ်း၊ အထောက်အထားနှင့် မတွေ့ရှိရသောသော့ခလောက်များသည် အရိပ်အမြွက်နည်း 503 ကို ဆက်ထားသည်။
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/my/docs/guides/USER_GUIDE.md b/docs/i18n/my/docs/guides/USER_GUIDE.md
index 760a15cc8dd6..9cfbbdb02109 100644
--- a/docs/i18n/my/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/my/docs/guides/USER_GUIDE.md
@@ -608,60 +608,60 @@ post_install() {
---
-## 📊 ရနိုင်သော မော်ဒယ်များ
+## 📊 ရနိုင်သောမော်ဒယ်များ
-ရနိုင်သော မော်ဒယ်အားလုံးကို ကြည့်ရန်
+ရနိုင်သောမော်ဒယ်အားလုံးကိုကြည့်ပါ။
-> အောက်ပါစာရင်းကို v3.8.0 အတွက် `open-sse/config/providerRegistry.ts` မှ ရွေးချယ်စုစည်းထားခြင်း ဖြစ်ပါသည်။ Cloud catalog များ (Gemini, OpenRouter စသည်) ကို dynamic ပုံစံဖြင့် sync လုပ်ထားပါသည် — live catalog အပြည့်အစုံကို ကြည့်ရန် **ဒက်ရှ်ဘုတ် → Providers → [provider] → ရနိုင်သော မော်ဒယ်များ** ကို ဖွင့်ပါ သို့မဟုတ် `GET /api/models/catalog` ကို ခေါ်ဆိုပါ။
+> အောက်ပါစာရင်းကို v3.8.0 အတွက် `open-sse/config/providerRegistry.ts` မှ ကောက်နှုတ်ထားပါသည်။ Cloud catalogs (Gemini, OpenRouter, etc.) ကို တိုက်ရိုက်လွှင့်ကတ်တလောက်ဖွင့်ခြင်းအတွက် dynamically — စင့်ခ်လုပ်သည်** ဒက်ရှ်ဘုတ် → ဝန်ဆောင်မှုပေးသူများ → [ဝန်ဆောင်မှုပေးသူ] → ရရှိနိုင်သည့် မော်ဒယ်များ** သို့မဟုတ် `GET /api/models/catalog` ကိုခေါ်ဆိုပါ။
>
-> ပံ့ပိုးပေးသူတစ်ခုခု၏ built-in စာရင်းမှာ ပြောင်းလဲသွားနေပါက၊ live upstream catalog ကို ဆွဲယူရန် ထိုစာမျက်နှာရှိ **/models မှ ထည့်သွင်းရန်** ကို အသုံးပြုပါ (သို့မဟုတ် **Auto-Sync** ကို ဖွင့်ပါ)။ ဤအချက်ကို v3.8.50 တွင် LLM7.io (`gemini-3.1-flash-lite`) နှင့် UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) အတွက် အတည်ပြုပြီးဖြစ်ပြီး၊ Pollinations ၏ အမည်မသိ ဝင်ရောက်မှုမှာ တူညီသော စမ်းသပ်မှုအတွင်းပင် upstream ကန့်သတ်ချက် ရှိနေဆဲဖြစ်ပါသည်။
+> ဝန်ဆောင်မှုပေးသူ၏ built-in စာရင်း လွင့်သွားပါက အသုံးပြုပါ။** / မော်ဒယ်များမှ တင်သွင်းခြင်း။** ထိုစာမျက်နှာပေါ်တွင် (သို့မဟုတ်ဖွင့်ပါ။** အလိုအလျောက် စင့်ခ်လုပ်ခြင်း။** ) တိုက်ရိုက်ရေဆန်ကတ်တလောက်ကို ဆွဲထုတ်ပါ။ ၎င်းကို LLM7.io (`gemini-3.1-flash-lite`) နှင့် UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) အတွက် v3.8.50 တွင် အတည်ပြုထားသည်။ တူညီသောစမ်းသပ်မှုဖြတ်သန်းမှုအတွင်း ဝတ်မှုန်ကူးခြင်းအမည်မသိဝင်ရောက်ခွင့်သည် ရေစီးကြောင်းတွင် ကန့်သတ်ထားခဲ့သည်။
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude ကုဒ် (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort အဆင့်များ: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ အားထုတ်မှု အဆင့်များ : `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — အခမဲ့ OAuth: **ဒက်ရှ်ဘုတ် → Providers → Kiro → ရနိုင်သော မော်ဒယ်များ** အောက်တွင် ပြသထားသော live catalog ကို အသုံးပြုပါ။ ရနိုင်မှုမှာ အကောင့်နှင့် plan ပေါ် မူတည်ပါသည်။
+**Kiro (`kr/`)** — FREE OAuth: အောက်တွင်ဖော်ပြထားသော တိုက်ရိုက်ကတ်တလောက်ကို အသုံးပြုပါ။** ဒက်ရှ်ဘုတ် → ဝန်ဆောင်မှုပေးသူများ → Kiro → ရရှိနိုင်သော မော်ဒယ်များ** . ရရှိနိုင်မှုသည် အကောင့်နှင့် အစီအစဉ်ပေါ်တွင် မူတည်သည်။
-**Qoder (`if/`)** — အခမဲ့ OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — လစဉ် $9 flat သို့မဟုတ် အသုံးပြုမှုအလိုက်: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo အပြား သို့မဟုတ် တစ်ခါသုံး- `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — API key: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API : `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — အလွန်မြန်ဆန်: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — အလွန်မြန်သည်- `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok native: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok ဇာတိ- `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU တွင် host လုပ်ထား: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU-hosted- `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — ရှာဖွေမှု ပံ့ပိုးထား: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**စိတ်ရှုပ်ထွေးမှု (`pplx/`)** — ရှာဖွေမှု- တိုးမြှင့်ထားသည်- `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Open-source: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (အခမဲ့), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — ပွင့်လင်းအရင်းအမြစ်- `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (အခမဲ့), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — မြန်ဆန်သော inference: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — မြန်သော အနုမာန `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Wafer-scale: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Wafer-စကေး- `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — RAG အဓိက: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG ကို အာရုံစိုက်သည်- `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — လုပ်ငန်း- `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama တိမ်တိုက် (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Google မှ API key တစ်ခုချင်းစီအလိုက် live sync လုပ်ထားပါသည် — static စာရင်း မရှိပါ။ **ဒက်ရှ်ဘုတ် → Providers** တွင် key တစ်ခု ချိတ်ဆက်ပါ၊ ပြီးနောက် လက်ရှိ catalog ကို ထည့်သွင်းရန် **ရနိုင်သော မော်ဒယ်များ** ကို အသုံးပြုပါ (ဥပမာ `gemini/gemini-3-pro`, `gemini/gemini-3-flash`)။
+**Gemini (Google တိမ်တိုက် `gemini/`)** − Google — မရှိသော static list မှ API ကီးတစ်ခုလျှင် တိုက်ရိုက်စင့်ခ်လုပ်ထားသည်။ သော့ချိတ်ပါ။** ဒက်ရှ်ဘုတ် → ဝန်ဆောင်မှုပေးသူများ** ထို့နောက်အသုံးပြုပါ။** ရနိုင်သောမော်ဒယ်များ** လက်ရှိ ကတ်တလောက်ကို တင်သွင်းရန် (ဥပမာ `gemini/gemini-3-pro`, `gemini/gemini-3-flash`)။
-**အခြား သဟဇာတဖြစ်သော ပံ့ပိုးပေးသူများ** (ရွေးချယ်ထားသော): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (`aws-bedrock` မှတစ်ဆင့်), `azure-ai`, `openrouter` (passthrough catalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`။ တစ်ခုချင်းစီသည် `providerRegistry.ts` တွင် ကိုယ်ပိုင် မော်ဒယ်စာရင်းကို ထိန်းသိမ်းထားပြီး၊ ပံ့ပိုးပေးသူက `/models` endpoint ကို ပုံပေါ်စေပါက auto-sync လုပ်နိုင်ပါသည်။
+**အခြားသော တွဲဖက်ဝန်ဆောင်မှုပေးသူများ** (ရွေးချယ်ထားသည်) : `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` ( `aws-bedrock`), `azure-ai`, `openrouter` (passthrough catalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai` `nous-research`, `reka`, `volcengine`, `ai21` `gigachat` တစ်ခုစီသည် ၎င်း၏ကိုယ်ပိုင်မော်ဒယ်စာရင်းကို `providerRegistry.ts` တွင် ထိန်းသိမ်းထားပြီး ပံ့ပိုးသူမှ `/models` အဆုံးအမှတ်ကို ဖော်ထုတ်သည့်အခါ အလိုအလျောက် စင့်ခ်လုပ်နိုင်သည်။
-**မော်ဒယ် ID များဆိုင်ရာ မှတ်ချက်:** OmniRoute သည် provider-native ID များ (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`) ကို အသုံးပြုပါသည်။ အချို့ ID များတွင် အစက်အပြောက်ပါ ဗားရှင်းများ ပါဝင်သည်မှာ upstream API က ထိုပုံစံအတိုင်း တောင်းဆိုသောကြောင့် ဖြစ်ပါသည်။ မော်ဒယ်တစ်ခုခုသည် အထက်ပါစာရင်းတွင် မပါဝင်ပါက `omniroute models --search ` ကို run လုပ်ပါ သို့မဟုတ် `GET /api/models/catalog` ကို ခေါ်ဆိုပြီး ရနိုင်မှုကို အတည်ပြုပါ။
+**မော်ဒယ် IDs၏မှတ်ချက်။** OmniRoute သည် ပံ့ပိုးသူ-ဇာတိ IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`) ကို အသုံးပြုသည်။ အချို့ IDs အစက်အပြောက် ဗားရှင်းများ ပါ၀င်သည် ၊ အကြောင်းမှာ အထက်စီးကြောင်း API ၎င်းတို့ကို မျှော်လင့်ထားပုံ ဖြစ်ပါသည်။ အထက်တွင်ဖော်ပြထားသော မော်ဒယ်မရှိပါက `omniroute models --search ` ကိုဖွင့်ပါ သို့မဟုတ် ရရှိနိုင်မှုကို အတည်ပြုရန် `GET /api/models/catalog` နှိပ်ပါ။
diff --git a/docs/i18n/ne/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/ne/docs/architecture/RESILIENCE_GUIDE.md
index f835f81c20e7..2270aff54121 100644
--- a/docs/i18n/ne/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/ne/docs/architecture/RESILIENCE_GUIDE.md
@@ -282,24 +282,17 @@ UI: Monitoring → Cooldown Manager (`src/app/(dashboard)/dashboard/resilience/c
---
-## 4. कोटा-शेयर समवर्ती नियन्त्रण (v3.8.36)
+## 4. कोटा-साझेदारी सहमति नियन्त्रण (v3.8.36)
-सदस्यता खाताहरू (GLM, MiniMax, आदि) ले प्रायः ~1–3 समवर्ती
-अनुरोधहरू मात्र स्वीकार गर्छन्; त्यसभन्दा बढी गर्दा 429 र कुलडाउनहरू ट्रिगर हुन्छन्। यो
-**कोटा-शेयर** (`qtSd/…`) कम्बोहरूमा विशेष गम्भीर हुन्छ, जहाँ धेरै API कुञ्जीहरूले एउटै अपस्ट्रिम
-खाता साझा गर्छन्। तीन तहहरूले साझा खातालाई बाढी हुनबाट जोगाउँछन्।
+सदस्यता खाताहरू (GLM, MiniMax, आदि) प्रायः ~ 1-3 समवर्ती अनुरोधहरू मात्र स्वीकार गर्छन्; त्यो भन्दा बढिले 429 र कूलडाउन ट्रिगर गर्दछ। यो अन्तर्गत तीव्र छ** कोटा-सेयर** (`qtSd/…`) कम्बोज, जहाँ धेरै API कुञ्जीहरूले एउटा अपस्ट्रिम खाता साझा गर्दछ। तीन तहले साझा खातालाई बाढी हुनबाट जोगाउँछ।
-### प्रति-जडान समवर्ती सीमा (`max_concurrent`)
+### प्रति-कनेक्सन कन्करन्सी क्याप (`max_concurrent`)
-प्रत्येक प्रदायक जडानले `max_concurrent` सीमा घोषणा गर्न सक्छ
-(`provider_connections.max_concurrent`, जडान मोडाल / API / DB मा सेट गरिन्छ)।
-कुनै सीमा नचाहिएमा खाली छोड्नुहोस्। यो नै तलको क्रमीकरण
-तह चलाउने एकमात्र नब हो — यसलाई खाताको वास्तविक समवर्ती सङ्ख्यामा सेट गर्नुहोस् (जस्तै GLM ~1, MiniMax ~2)।
+प्रत्येक प्रदायक जडानले `max_concurrent` छत घोषणा गर्न सक्छ (`provider_connections.max_concurrent`, जडान मोडल / API / DB मा सेट गरिएको)। कुनै सीमा को लागी खाली छोड्नुहोस्। यो एकल घुँडा हो जसले — तलको क्रमिक तहलाई ड्राइभ गर्छ यसलाई खाताको वास्तविक समरूपतामा सेट गर्दछ (जस्तै GLM ~ 1, MiniMax ~ 2)।
-### प्रति-मोडेल समवर्ती सीमाहरू (`modelConcurrency`)
+### प्रति-मोडेल कन्करन्सी क्याप्स (`modelConcurrency`)
-जडानले थप रूपमा आफ्नो `rateLimitOverrides` नक्सा भित्र ठीक प्रति-मोडेल समवर्ती सीमाहरू
-घोषणा गर्न सक्छ:
+एक जडानले यसको `rateLimitOverrides` नक्सा भित्र सटीक प्रति-मोडेल concurrency छत थप रूपमा घोषणा गर्न सक्छ:
```json
{
@@ -310,76 +303,32 @@ UI: Monitoring → Cooldown Manager (`src/app/(dashboard)/dashboard/resilience/c
}
```
-यसलाई जडान मोडालमा (**दर सीमा ओभरराइडहरू → प्रति-मोडेल
-समवर्ती सीमाहरू**, प्रति लाइन एउटा `model=cap`) वा उही JSON आकारसँग
-`PATCH /api/providers/[id]` मार्फत सेट गर्नुहोस्। मुख्य सेमान्टिक्स:
-
-- **जडान-व्यापी बनाम मोडेल-विशिष्ट:** `maxConcurrent` साझा
- जडान-व्यापी सीमा नै रहन्छ। दुवै लागू हुँदा, दुवै गेटहरू
- एउटै सम्मिश्र गेट (`global → provider → account → model`) भित्र एटोमिक रूपमा
- प्राप्त गरिन्छन्; प्रभावकारी व्यवहार लागू हुने
- कडा सीमा नै हुन्छ।
-- **ठीक मोडेल-कुञ्जी मिलान:** कुञ्जी भनेको रूटिङ रिजोल्युसनपछि executor
- मा पठाइएको मोडेल स्ट्रिङ हो — सामान्यतया नाङ्गो अपस्ट्रिम मोडेल id
- (`glm-5`), क्लाइन्ट-साइड `provider/model` उपनाम होइन (`zai/glm-5` ले
- `glm-5` सँग मिल्दैन)। मानहरू धनात्मक-पूर्णाङ्क समवर्ती-अनुरोध सीमाहरू हुन्।
-- **स्थानीय लामबद्धता, कुनै खोजी छैन:** अतिरिक्त अनुरोधहरू अहिलेकै
- लाम/टाइमआउट सेमान्टिक्ससँग स्थानीय रूपमा लाममा बस्छन् (टाइप गरिएका `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL` प्रवेश त्रुटिहरू)। OmniRoute ले अपस्ट्रिम नीति खोज्दैन
- वा अनुमान गर्दैन — यसले सञ्चालकले कन्फिगर गरेको
- ठीक सीमाहरू मात्र लागू गर्छ। भरिएको मोडेल गेटले कहिल्यै प्रदायकलाई
- असक्षम पार्दैन र कहिल्यै स्थायी मोडेल लकआउट सिर्जना गर्दैन;
- अपस्ट्रिम 429/कुलडाउन/फलब्याक व्यवहार नै त्रुटि ब्याकस्टप रहन्छ।
-- **प्रति-जडान, प्रति-प्रक्रिया दायरा:** सीमाहरू प्रति डेटाबेस जडान
- हुन् र मेमोरीमा राखिन्छन्, त्यसैले उही अपस्ट्रिम API कुञ्जी
- पुनः प्रयोग गर्ने दुई जडानहरू एकअर्कासँग समन्वय गर्दैनन्।
-- **कन्फिगर नगरेको भनेको अपरिवर्तित:** नक्सा छोड्दा (वा
- ड्यासबोर्ड फिल्ड खाली छोड्दा) कुनै मोडेल गेट थपिँदैन। कुनै पनि
- विश्वव्यापी प्रदायक सीमा नदाबी गर्ने उदाहरण कन्फिगरेसन:
+यसलाई जडान मोडलमा सेट गर्नुहोस् (** दर सीमाले → प्रति-मोडेल कन्करन्सी क्याप्सलाई ओभरराइड गर्छ** , प्रति रेखा एक `model=cap` ) वा समान JSON आकारको साथ `PATCH /api/providers/[id]` मार्फत। मुख्य अर्थशास्त्र:
+
+- **जडान-वाइड बनाम मोडेल-विशिष्ट:** `maxConcurrent` साझा जडान-चौडा छत रहन्छ। जब दुबै लागू हुन्छन्, दुबै गेटहरू एउटै कम्पोजिट गेटमा परमाणु रूपमा प्राप्त हुन्छन् (`global → provider → account → model`); प्रभावकारी व्यवहार कडा लागू सीमा हो।
+- **सटीक मोडेल-कुञ्जी मिलान:** कुञ्जी भनेको रिजोल्युसन — सामान्य रूपमा बेयर अपस्ट्रिम मोडेल आईडी (`glm-5`) लाई राउट गरेपछि निष्पादकलाई पास गरिएको मोडेल स्ट्रिङ हो, क्लाइन्ट-साइड `provider/model` उपनाम (`zai/glm-5` `glm-5` सँग मेल खाँदैन)। मानहरू सकारात्मक-पूर्णांक समवर्ती-अनुरोध छतहरू हुन्।
+- **स्थानीय कतार, कुनै खोज छैन:** अवस्थित queue/timeout सिमान्टिक्स (टाइप गरिएको `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` भर्ना त्रुटिहरू) सँग स्थानीय रूपमा अतिरिक्त अनुरोधहरू लामबद्ध हुन्छन्। OmniRoute अपस्ट्रिम नीति — पत्ता लगाउन वा अनुमान गर्दैन यसले अपरेटरले कन्फिगर गरेको सही छतलाई लागू गर्दछ। एक संतृप्त मोडेल गेटले प्रदायकलाई कहिल्यै असक्षम गर्दैन र स्थायी मोडेल लकआउट कहिल्यै सिर्जना गर्दैन; अपस्ट्रीम 429/cooldown/fallback व्यवहार त्रुटि ब्याकस्टप रहन्छ।
+- **प्रति-जडान, प्रति-प्रक्रिया दायरा:** क्याप्सहरू प्रति डाटाबेस जडान हुन्छन् र मेमोरीमा राखिएको हुन्छ, त्यसैले एउटै अपस्ट्रिम API कुञ्जी पुन: प्रयोग गर्ने दुई जडानहरू एकअर्कासँग समन्वय गर्दैनन्।
+- **कन्फिगर नगरिएको मतलब अपरिवर्तित:** नक्सा हटाउँदा (वा ड्यासबोर्ड फिल्ड खाली छोडेर) कुनै मोडेल गेट थप्दैन। कुनै पनि सार्वभौमिक प्रदायक सीमा दाबी नगरी उदाहरण कन्फिगरेसन:
```text
glm-5=1
glm-4.7=3
```
-### कोटा-शेयर अनुरोध क्रमीकरण
-
-जब कोटा-शेयर डिस्प्याचले धनात्मक
-`max_concurrent` घोषणा गरेको जडानलाई लक्षित गर्छ, त्यो **खाता** मा गरिने
-समवर्ती अनुरोधहरू प्रति-जडान सेमाफोर (कुञ्जी `qsconn:`) मार्फत
-क्रमीकृत हुन्छन्: अतिरिक्त अनुरोधहरू खातामा बाढी बगाउनुको सट्टा **लाममा
-पर्खन्छन्**। यो **फेल-ओपन** हो — भरिएको
-लाम वा टाइमआउटले डिस्प्याच गर्न मिल्ने
-अनुरोधलाई कहिल्यै अस्वीकार गर्नुको सट्टा स्लट बिना नै अगाडि बढ्छ।
-**सेटिङहरू → रिजिलिएन्स → कोटा-शेयर प्रति-जडान
-समवर्ती** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, पूर्वनिर्धारित
-अन) मा टगल गर्नुहोस्। `max_concurrent` सीमा बिना व्यवहार अपरिवर्तित रहन्छ।
-
-> कोटा-शेयर रूटिङ गेट (`selectQuotaShareTarget`, DRR + P2C) आफै पनि
-> फेल-ओपन हो र सीमा पुगेको जडानलाई केवल _प्राथमिकता घटाउँछ_ —
-> एकल-जडान पुलसँग यसले कडा सीमा लगाउन सक्दैन, त्यसैले यही
-> सेमाफोर हो जसले वास्तवमा बाढीलाई नियन्त्रणमा राख्छ।
-
-### कम्बो कुलडाउन-सचेत पुनःप्रयास
-
-प्रत्येक कम्बो रणनीतिका लागि (सक्षम हुँदा), छोटो अस्थायी कुलडाउनका कारण
-429 मा ठोसिने अनुरोधले 429 फर्काउनुको सट्टा त्यो अवधि
-पर्खेर पुनः डिस्प्याच गर्छ — यसले बहु-मोडेल कम्बोहरूमा
-Gemini-वर्गका TPM/RPM विन्डोहरू (~60s retry-after) समेट्छ,
-जस्तै 2-मोडेल कम्बोका दुवै लक्ष्यहरूले प्रति-मोडेल दर सीमा भेट्नु।
-**सेटिङहरू → रिजिलिएन्स** मा रहेको `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`,
-`budgetMs`) ले सीमाबद्ध गरिन्छ। यसले कहिल्यै `quota_exhausted`
-(मध्यरातिसम्म लक गरिएको) वा auth/not-found कारणहरूमा पर्ख्दैन।
-
-उही गेटले डिस्प्याच-पूर्व केस (#16319) पनि समेट्छ: जब कम्बोका
-सबै लक्ष्यहरू कुनै प्रयास हुनु अघि नै छोडिन्छन् किनकि तिनीहरूका
-मोडेल छोटो अस्थायी लकआउटमा छन्, शून्य-प्रयास पथले संकेत-विहीन
-`503 ALL_TARGETS_SKIPPED` जवाफ दिनुको सट्टा उही सीमाहरूमुनि लक सकिएसम्म
-पर्खेर पुनः डिस्प्याच गर्छ। जब कुनै पर्खाइ अनुमति हुँदैन
-(सीमा, प्रयास वा बजेट सकिएको, वा सुविधा बन्द),
-टर्मिनल प्रतिक्रिया `429 rate_limit_error` मा अपग्रेड हुन्छ जसले
-सबैभन्दा चाँडो सकिने अस्थायी लकको `retry_after` / `reset_at`
-बोक्छ; quota, auth र not-found लकहरूले भने संकेत-विहीन 503 नै राख्छन्।
+### कोटा-साझेदारी अनुरोध क्रमबद्ध
+
+जब कोटा-सेयर प्रेषणले सकारात्मक `max_concurrent` घोषणा गर्ने जडानलाई लक्षित गर्दछ, त्यसमा समवर्ती अनुरोधहरू** खाता** प्रति-जडान सेमाफोर (कुञ्जी `qsconn:`) मार्फत क्रमबद्ध गरिन्छ: अतिरिक्त अनुरोधहरू** लाइनमा पर्खनुहोस्** खाता खोल्नुको सट्टा। यो छ** असफल-खुला** — एक संतृप्त लाम वा टाइमआउट एक स्लट बिना अगाडि बढ्छ बरु पठाउन मिल्ने अनुरोधलाई अस्वीकार गर्नुको सट्टा। टगल इन गर्नुहोस्** सेटिङहरू → लचिलोपन → कोटा-सेयर प्रति-कनेक्सन कन्करन्सी** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, पूर्वनिर्धारितमा)। `max_concurrent` क्याप बिना व्यवहार अपरिवर्तित छ।
+
+> कोटा-सेयर राउटिङ गेट (`selectQuotaShareTarget`, DRR + P2C) आफैं असफल-खुला छ र केवल _deprioritizes_ एकल-जडान पूलको साथमा-क्याप जडान — कडा-सीमा गर्न सक्दैन, त्यसैले यो सेमाफोरले वास्तवमा बाढी समावेश गर्दछ।
+
+### कम्बो कूलडाउन-सचेत पुन: प्रयास
+
+प्रत्येक कम्बो रणनीतिको लागि (सक्षम हुँदा), SHORT ट्रान्जिन्ट कूलडाउनको लागि 429 लाई क्रिस्टलाइज गर्ने अनुरोधले यसलाई पर्खन्छ र 429 — फिर्ता गर्नुको सट्टा पुन: डिस्प्याच गर्दछ यसले जेमिनी-क्लास TPM/RPM विन्डोहरू (~ 60s retry-after) लाई कभर गर्दछ। प्रति मोडेल दर सीमा। `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) द्वारा बाँधिएको** सेटिङ्हरू → लचिलोपन** । यो `quota_exhausted` (आधा रात सम्म लक) वा auth/not-found कारणहरूमा पर्खदैन।
+
+कम्बोले `config.comboCooldownWaitEnabled: false` सँग अप्ट आउट गर्न सक्छ। केवल शाब्दिक `false` यी साझा कम्बो प्रतीक्षाहरू (पोस्ट-डिस्प्याच कूलडाउन र पूर्व-प्रेषण circuit-open/model-lock प्रतीक्षाहरू) र तिनीहरूको प्रतीक्षा-बजेट टाइमआउट-फ्लोर विस्तारलाई असक्षम गर्दछ। हराइरहेको वा `true` विश्वव्यापी नीतिलाई सुरक्षित गर्दछ; `true` विश्वव्यापी रूपमा असक्षम प्रतिक्षा सक्षम गर्न सक्दैन। एक स्पष्ट `targetTimeoutMs` अझै जित्छ। यो अप्ट-आउटले छुट्टै नेटिभ-कोडेक्स टर्न-पिन पूर्व-प्रेषण प्रतीक्षालाई परिवर्तन गर्दैन।
+
+एउटै गेटले प्रि-डिस्प्याच केस (#16319) लाई कभर गर्दछ: जब कुनै प्रयास गर्नु अघि कम्बोको प्रत्येक लक्ष्य छोडिन्छ किनभने यसको मोडेल छोटो क्षणिक लकआउटमा बस्छ, शून्य-प्रयास मार्गले संकेत-रहित `503 ALL_TARGETS_SKIPPED` जवाफ दिनुको सट्टा उही छत मुनि लक आउट पर्खन्छ र पुन: प्रेषण गर्दछ। जब कुनै पर्खाइ अनुमति छैन (छत, प्रयास वा बजेट समाप्त, वा सुविधा बन्द), टर्मिनल प्रतिक्रिया प्रारम्भिक क्षणिक लक समाप्तिबाट `retry_after` / `reset_at` बोक्ने `429 rate_limit_error` मा अपग्रेड हुन्छ; कोटा, प्रमाणीकरण र नभेटिएका तालाहरूले सङ्केत-कम ५०३ राख्छन्।
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/ne/docs/guides/USER_GUIDE.md b/docs/i18n/ne/docs/guides/USER_GUIDE.md
index 8cd8bed8a2f3..3c53bb0e47e0 100644
--- a/docs/i18n/ne/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/ne/docs/guides/USER_GUIDE.md
@@ -612,55 +612,55 @@ post_install() {
सबै उपलब्ध मोडेलहरू हेर्नुहोस्
-> तलको सूची v3.8.0 को लागि `open-sse/config/providerRegistry.ts` बाट तयार गरिएको हो। क्लाउड क्याटलगहरू (Gemini, OpenRouter, आदि) गतिशील रूपमा सिंक गरिन्छन् — पूरा लाइभ क्याटलगको लागि **ड्यासबोर्ड → प्रोभाइडरहरू → [provider] → उपलब्ध मोडेलहरू** खोल्नुहोस् वा `GET /api/models/catalog` कल गर्नुहोस्।
+> तलको सूची v3.8.0 को लागि `open-sse/config/providerRegistry.ts` बाट क्युरेट गरिएको छ। क्लाउड क्याटलगहरू (Gemini, OpenRouter, आदि) लाई पूर्ण लाइभ क्याटलग खोल्नको लागि गतिशील रूपमा — सिंक गरिएको छ।** ड्यासबोर्ड → प्रदायकहरू → [प्रदायक] → उपलब्ध मोडेलहरू** वा `GET /api/models/catalog` लाई कल गर्नुहोस्।
>
-> यदि कुनै प्रोभाइडरको बिल्ट-इन सूची पुरानो भएको छ भने, लाइभ अपस्ट्रीम क्याटलग तान्न त्यस पृष्ठमा **/models बाट आयात गर्नुहोस्** प्रयोग गर्नुहोस् (वा **Auto-Sync** सक्षम गर्नुहोस्)। यो v3.8.50 मा LLM7.io (`gemini-3.1-flash-lite`) र UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) का लागि प्रमाणित गरिएको थियो; उही परीक्षण चरणमा Pollinations को गुमनाम पहुँच अपस्ट्रीम-सीमित नै रह्यो।
+> यदि प्रदायकको बिल्ट-इन सूची हटेको छ भने, प्रयोग गर्नुहोस्** / मोडेलबाट आयात गर्नुहोस्** त्यो पृष्ठमा (वा सक्षम गर्नुहोस्** स्वतः सिंक** ) प्रत्यक्ष अपस्ट्रीम क्याटलग तान्न। यो LLM7.io (`gemini-3.1-flash-lite`) र UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) को लागि v3.8.50 मा प्रमाणित गरिएको थियो; परागकण बेनामी पहुँच एउटै परीक्षा पास समयमा अपस्ट्रीम-सीमित रह्यो।
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude कोड (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort तहहरू: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ प्रयास स्तरहरू: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — निःशुल्क OAuth: **ड्यासबोर्ड → प्रोभाइडरहरू → Kiro → उपलब्ध मोडेलहरू** अन्तर्गत देखाइएको लाइभ क्याटलग प्रयोग गर्नुहोस्। उपलब्धता खाता र योजनामा निर्भर हुन्छ।
+**Kiro (`kr/`)** — FREE OAuth: तल देखाइएको लाइभ क्याटलग प्रयोग गर्नुहोस्** ड्यासबोर्ड → प्रदायकहरू → Kiro → उपलब्ध मोडेलहरू** । उपलब्धता खाता र योजना मा निर्भर गर्दछ।
-**Qoder (`if/`)** — निःशुल्क OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/महीना फ्ल्याट वा प्रति-प्रयोग: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo फ्लैट वा प्रति-प्रयोग: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — API कुञ्जी: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — अति-छिटो: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — अल्ट्रा-फास्ट: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
**xAI (`xai/`)** — Grok नेटिभ: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU-होस्टेड: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU-होस्ट गरिएको: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — खोज-संवर्धित: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**अन्योलता (`pplx/`)** — खोज-संवर्धित: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — खुला-स्रोत: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (निःशुल्क), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — खुला स्रोत: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (नि:शुल्क), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — छिटो इन्फरेन्स: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — द्रुत अनुमान: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
**Cerebras (`cerebras/`)** — वेफर-स्केल: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
**Cohere (`cohere/`)** — RAG-केन्द्रित: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — एन्टरप्राइज: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — उद्यम: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama क्लाउड (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Google बाट प्रत्येक API key अनुसार लाइभ सिंक गरिन्छ — कुनै स्थिर सूची छैन। **ड्यासबोर्ड → प्रोभाइडरहरू** मा key जडान गर्नुहोस् अनि हालको क्याटलग आयात गर्न **उपलब्ध मोडेलहरू** प्रयोग गर्नुहोस् (जस्तै `gemini/gemini-3-pro`, `gemini/gemini-3-flash`)।
+**Gemini (Google क्लाउड `gemini/`)** : Google — कुनै स्थिर सूचीबाट प्रत्यक्ष प्रति API कुञ्जी सिंक गरियो। एउटा कुञ्जी जडान गर्नुहोस्** ड्यासबोर्ड → प्रदायकहरू** त्यसपछि प्रयोग गर्नुहोस्** उपलब्ध मोडेलहरू** हालको क्याटलग आयात गर्न (जस्तै `gemini/gemini-3-pro`, `gemini/gemini-3-flash`)।
-**अन्य उपयुक्त प्रोभाइडरहरू** (चयनित): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (`aws-bedrock` मार्फत), `azure-ai`, `openrouter` (पासथ्रू क्याटलग), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`। प्रत्येकले `providerRegistry.ts` मा आफ्नै मोडेल सूची व्यवस्थापन गर्छ र प्रोभाइडरले `/models` एन्डपोइन्ट उपलब्ध गराएमा अटो-सिंक गर्न सकिन्छ।
+**Other compatible providers** (selected): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (passthrough catalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Each maintains its own model list in `providerRegistry.ts` and can be auto-synced when the provider exposes a `/models` endpoint.
-**मोडेल ID हरूबारे टिप्पणी:** OmniRoute ले प्रोभाइडर-नेटिभ ID हरू (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`) प्रयोग गर्छ। केही ID हरूमा बिन्दुसहितका संस्करणहरू समावेश छन् किनकि अपस्ट्रीम API ले त्यही रूपमा अपेक्षा गर्छ। यदि कुनै मोडेल माथि सूचीबद्ध छैन भने, `omniroute models --search ` चलाउनुहोस् वा उपलब्धता पुष्टि गर्न `GET /api/models/catalog` प्रयोग गर्नुहोस्।
+**मोडल IDs मा नोट:** OmniRoute ले प्रदायक-नेटिभ IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`) प्रयोग गर्दछ। केही IDs ले डटेड संस्करणहरू समावेश गर्दछ किनभने माथिल्लो API उनीहरूलाई कसरी अपेक्षा गर्दछ। यदि एक मोडेल माथि सूचीबद्ध छैन भने, `omniroute models --search ` चलाउनुहोस् वा उपलब्धता पुष्टि गर्न `GET /api/models/catalog` हिट गर्नुहोस्।
diff --git a/docs/i18n/nl/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/nl/docs/architecture/RESILIENCE_GUIDE.md
index a95d325c07cb..9f9ad351f1fd 100644
--- a/docs/i18n/nl/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/nl/docs/architecture/RESILIENCE_GUIDE.md
@@ -281,25 +281,17 @@ lockout-_toestand_ is vluchtig.
---
-## 4. Quota-share-concurrencybeheer (v3.8.36)
+## 4. Gelijktijdigheidscontrole van quota-aandelen (v3.8.36)
-Abonnementsaccounts (GLM, MiniMax, enz.) accepteren vaak slechts ~1–3 gelijktijdige
-requests; bij overschrijving ontstaan 429's en cooldowns. Dit is acuut bij
-**quota-share**-combo's (`qtSd/…`), waarbij meerdere API-sleutels één upstream-
-account delen. Drie lagen voorkomen dat een gedeeld account wordt overstroomd.
+Abonnementsaccounts (GLM, MiniMax, etc.) accepteren vaak alleen ~ 1–3 gelijktijdige verzoeken; als je dat overschrijdt, worden 429's en cooldowns geactiveerd. Dit is acuut onder** quota-aandeel** (`qtSd/…`) combo's, waarbij verschillende API sleutels één upstream-account delen. Drie lagen zorgen ervoor dat een gedeeld account niet overstroomt.
-### Concurrencyplafond per connectie (`max_concurrent`)
+### Gelijktijdigheidslimiet per verbinding (`max_concurrent`)
-Elke providerconnectie kan een `max_concurrent`-plafond declareren
-(`provider_connections.max_concurrent`, ingesteld in de connectiemodaal / API / DB).
-Laat het veld leeg voor geen limiet. Dit is de enige knop die de serialisatielaag
-hieronder aanstuurt — stel deze in op de werkelijke concurrency van het account
-(bijv. GLM ~1, MiniMax ~2).
+Elke provideraansluiting kan een `max_concurrent` plafond declareren (`provider_connections.max_concurrent`, ingesteld in de aansluiting modal / API / DB). Laat het onbeperkt leeg. Dit is de enige knop die de serialisatielaag onder — aanstuurt en deze instelt op de echte gelijktijdigheid van het account (bijvoorbeeld GLM ~ 1, MiniMax ~ 2).
-### Concurrencyplafonds per model (`modelConcurrency`)
+### Gelijktijdigheidslimieten per model (`modelConcurrency`)
-Een connectie kan daarnaast exacte concurrencyplafonds per model declareren
-binnen zijn `rateLimitOverrides`-map:
+Een verbinding kan bovendien exacte gelijktijdigheidsplafonds per model declareren in de `rateLimitOverrides` -kaart:
```json
{
@@ -310,76 +302,32 @@ binnen zijn `rateLimitOverrides`-map:
}
```
-Stel dit in via de connectiemodaal (**Rate limit-overschrijvingen →
-Concurrencyplafonds per model**, één `model=cap` per regel) of via
-`PATCH /api/providers/[id]` met dezelfde JSON-vorm. Belangrijkste semantiek:
-
-- **Connectiebreed vs. modelspecifiek:** `maxConcurrent` blijft het gedeelde
- connectiebrede plafond. Wanneer beide van toepassing zijn, worden beide gates
- atomair verkregen in dezelfde samengestelde gate
- (`global → provider → account → model`); het effectieve gedrag is de
- striktere toepasselijke limiet.
-- **Exacte modelsleutel-match:** de sleutel is de modelstring die na
- routingresolutie aan de executor wordt doorgegeven — normaal gesproken de kale
- upstream-model-id (`glm-5`), geen client-side `provider/model`-alias
- (`zai/glm-5` matcht niet met `glm-5`). Waarden zijn positieve gehele getallen
- die als plafond voor gelijktijdige requests gelden.
-- **Lokale wachtrij, geen discovery:** overtollige requests worden lokaal in de
- wachtrij geplaatst met de bestaande wachtrij-/timeoutsemantiek (getypte
- toelatingsfouten `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). OmniRoute
- ontdekt of leidt geen upstream-beleid af — het handhaaft exact de plafonds die
- de operator heeft geconfigureerd. Een verzadigde modelgate schakelt de provider
- nooit uit en creëert nooit een permanente model-lockout; upstream
- 429-/cooldown-/fallbackgedrag blijft het vangnet bij fouten.
-- **Scope per connectie, per proces:** plafonds gelden per databaseconnectie en
- worden in-memory vastgehouden, dus twee connecties die dezelfde upstream-
- API-sleutel hergebruiken coördineren niet met elkaar.
-- **Niet geconfigureerd betekent ongewijzigd:** het weglaten van de map (of het
- leeg laten van het dashboardveld) voegt geen modelgate toe. Voorbeeldconfiguratie
- zonder een universele providerlimiet te veronderstellen:
+Stel het in het verbindingsmodal (** Tarieflimiet overschrijft → Gelijktijdigheidslimieten per model** , één `model=cap` per regel) of via `PATCH /api/providers/[id]` met dezelfde JSON vorm. Belangrijkste semantiek:
+
+- **Verbindingsbreed versus modelspecifiek:** `maxConcurrent` blijft het gedeelde verbindingsbrede plafond. Wanneer beide van toepassing zijn, worden beide poorten atomair verkregen in dezelfde samengestelde poort (`global → provider → account → model`); het effectieve gedrag is de strengste geldende grens.
+- **Exacte overeenkomst tussen model en sleutel:** de sleutel is de modelstring die wordt doorgegeven aan de uitvoerder na routeringsresolutie — normaal gesproken de kale upstream-model-ID (`glm-5`), niet een `provider/model` alias aan de clientzijde (`zai/glm-5` komt niet overeen met `glm-5`). Waarden zijn plafonds voor gelijktijdige aanvragen met positieve gehele getallen.
+- **Lokale wachtrij, geen detectie:** overtollige verzoeken worden lokaal in de wachtrij geplaatst met de bestaande queue/timeout semantiek (getypte `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` -toegangsfouten). OmniRoute ontdekt of leidt geen upstream-beleid af. — dwingt de exacte plafonds af die de operator heeft geconfigureerd. Een verzadigde modelpoort schakelt de provider nooit uit en creëert nooit een permanente modeluitsluiting; stroomopwaarts 429/cooldown/fallback -gedrag blijft de foutbackstop.
+- **Per verbinding, per procesbereik:** caps zijn per databaseverbinding en worden in het geheugen bewaard, dus twee verbindingen die dezelfde upstream API sleutel hergebruiken, coördineren niet met elkaar.
+- **Niet-geconfigureerd betekent ongewijzigd:** het weglaten van de kaart (of het leeg laten van het dashboardveld) voegt geen modelpoort toe. Voorbeeldconfiguratie zonder enige universele providerlimiet op te leggen:
```text
glm-5=1
glm-4.7=3
```
-### Serialisatie van quota-share-requests
-
-Wanneer een quota-share-dispatch een connectie target die een positieve
-`max_concurrent` declareert, worden gelijktijdige requests naar dat **account**
-geserialiseerd via een semafoor per connectie (sleutel `qsconn:`):
-overtollige requests **wachten in de wachtrij** in plaats van het account te
-overspoelen. Het is **fail-open** — een verzadigde wachtrij of timeout gaat zonder
-slot door in plaats van ooit een dispatcheerbare request af te wijzen. In-/uitschakelen
-via **Instellingen → Veerkracht → Quota-share-concurrency per connectie**
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, standaard aan).
-Zonder een `max_concurrent`-plafond blijft het gedrag ongewijzigd.
-
-> De quota-share-routinggate (`selectQuotaShareTarget`, DRR + P2C) is zelf
-> fail-open en _deprioriteert_ alleen een connectie die op zijn limiet zit — met een
-> pool van één connectie kan hij geen harde limiet afdwingen, dus deze semafoor is
-> wat de vloed daadwerkelijk indamt.
-
-### Cooldown-bewuste retry voor combo's
-
-Voor elke combostrategie (indien ingeschakeld) wacht een request die een 429 zou
-materialiseren voor een KORTE transiënte cooldown deze af en dispatcheert opnieuw
-in plaats van de 429 terug te geven — dit dekt Gemini-klasse TPM/RPM-vensters
-(~60s retry-after) bij multi-model-combo's, bijv. wanneer beide targets van een
-2-model-combo een rate limit per model raken. Begrensd door `comboCooldownWait`
-(`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) in **Instellingen → Veerkracht**.
-Er wordt nooit gewacht op `quota_exhausted` (vergrendeld tot middernacht) of op
-auth-/not-found-redenen.
-
-Dezelfde gate dekt het geval vóór dispatch (#16319): wanneer elk target van een
-combo wordt overgeslagen voordat ook maar één poging is gedaan omdat het model in
-een korte transiënte lockout zit, wacht het nul-pogingen-pad de lock uit onder
-dezelfde plafonds en dispatcheert opnieuw, in plaats van een hintloze
-`503 ALL_TARGETS_SKIPPED` te beantwoorden. Wanneer wachten niet is toegestaan
-(plafond, pogingen of budget uitgeput, of de feature uit), wordt de terminale
-respons opgewaardeerd naar `429 rate_limit_error` met `retry_after` / `reset_at`
-van de vroegst aflopende transiënte lock; quota-, auth- en not-found-locks
-behouden de hintloze 503.
+### Serialisatie van aanvragen voor het delen van quota
+
+Wanneer een quota-share-verzending zich richt op een verbinding die een positieve `max_concurrent` declareert, worden daar gelijktijdige aanvragen voor ingediend** rekening** worden geserialiseerd via een semafoor per verbinding (sleutel `qsconn:`): overtollige verzoeken** wacht in de rij** in plaats van de rekening te laten overstromen. Het is** fail-open** — een verzadigde wachtrij of time-out verloopt zonder een slot in plaats van ooit een verzendbaar verzoek af te wijzen. Schakel in** Instellingen → Veerkracht → Gelijktijdigheid van quotumaandeel per verbinding** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, standaard ingeschakeld). Zonder een `max_concurrent` limiet blijft het gedrag ongewijzigd.
+
+> De quota-share routing gate (`selectQuotaShareTarget`, DRR + P2C) is zelf fail-open en _deprioritiseert_ alleen een at-cap-verbinding — met een pool met één verbinding die niet hard kan worden beperkt, dus deze semafoor is wat feitelijk de flood bevat.
+
+### Combo cooldown-bewuste nieuwe poging
+
+Voor elke combo-strategie (indien ingeschakeld) wacht een verzoek dat een 429 voor een tijdelijke SHORT cooldown zou kristalliseren, op het wachten en verzendt het opnieuw in plaats van de 429 — terug te sturen. Dit heeft betrekking op TPM/RPM -vensters van de Gemini-klasse (~ 60s retry-after) op combo's met meerdere modellen, bijvoorbeeld beide doelen van een combo met 2 modellen die een snelheidslimiet per model bereiken. Gegrenst door `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) in** Instellingen → Veerkracht** . Het wacht nooit op `quota_exhausted` (vergrendeld tot middernacht) of auth/not-found redenen.
+
+Een combo kan zich afmelden met `config.comboCooldownWaitEnabled: false`. Alleen letterlijke `false` schakelt deze gedeelde combo-wachttijden uit (afkoelperiode na verzending en circuit-open/model-lock wachttijden vóór verzending) en hun verlenging van de time-out-minimum voor het wachtbudget. Ontbrekend of `true` handhaaft het mondiale beleid; `true` kan wachten voor globaal uitgeschakeld niet inschakelen. Een expliciete `targetTimeoutMs` wint nog steeds. Deze opt-out verandert niets aan de afzonderlijke wachttijd vóór verzending van de native Codex-turn-pin.
+
+Dezelfde poort dekt de pre-dispatch-zaak (#16319): wanneer elk doelwit van een combo wordt overgeslagen voordat er een poging wordt gedaan, omdat het model zich in een korte voorbijgaande lock-out bevindt, wacht het nul-poging-pad op de lock-out onder dezelfde plafonds en verzendt het opnieuw, in plaats van een hintloze `503 ALL_TARGETS_SKIPPED` te beantwoorden. Als er niet gewacht mag worden (plafond, poging of budget opgebruikt, of de functie uitgeschakeld), wordt de terminalrespons geüpgraded naar `429 rate_limit_error` met `retry_after` / `reset_at` vanaf de vroegste tijdelijke vergrendelingsverloop; quota, auth en not-found sloten behouden de hintloze 503.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/nl/docs/guides/USER_GUIDE.md b/docs/i18n/nl/docs/guides/USER_GUIDE.md
index f9079268e649..a911b01b962e 100644
--- a/docs/i18n/nl/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/nl/docs/guides/USER_GUIDE.md
@@ -612,41 +612,41 @@ Zie de [README](../README.md) voor het volledige overzicht van omgevingsvariabel
Bekijk alle beschikbare modellen
-> De onderstaande lijst is samengesteld uit `open-sse/config/providerRegistry.ts` voor v3.8.0. Cloudcatalogi (Gemini, OpenRouter, enz.) worden dynamisch gesynchroniseerd — open voor de volledige live-catalogus **Dashboard → Providers → [provider] → Beschikbare modellen** of roep `GET /api/models/catalog` aan.
+> De onderstaande lijst is samengesteld vanuit `open-sse/config/providerRegistry.ts` voor v3.8.0. Cloudcatalogi (Gemini, OpenRouter, etc.) worden dynamisch — gesynchroniseerd zodat de volledige live catalogus open is** Dashboard → Providers → [provider] → Beschikbare modellen** of bel `GET /api/models/catalog`.
>
-> Als de ingebouwde lijst van een provider is verouderd, gebruik dan **Importeren vanaf /models** op die pagina (of schakel **Auto-Sync** in) om de live upstream-catalogus op te halen. Dit is geverifieerd in v3.8.50 voor LLM7.io (`gemini-3.1-flash-lite`) en UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); anonieme toegang tot Pollinations bleef tijdens dezelfde testronde aan de upstream-kant beperkt.
+> Als de ingebouwde lijst van een provider is verschoven, gebruik dan** Importeren uit /modellen** op die pagina (of enable** Automatische synchronisatie** ) om de live upstream-catalogus op te halen. Dit werd geverifieerd in v3.8.50 voor LLM7.io (`gemini-3.1-flash-lite`) en UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); De anonieme toegang tot bestuivingen bleef stroomopwaarts beperkt tijdens dezelfde test.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude -code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort-niveaus: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ -inspanningsniveaus: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — GRATIS OAuth: gebruik de live-catalogus onder **Dashboard → Providers → Kiro → Beschikbare modellen**. De beschikbaarheid hangt af van het account en het abonnement.
+**Kiro (`kr/`)** — FREE OAuth: gebruik de live catalogus hieronder** Dashboard → Providers → Kiro → Beschikbare modellen** . Beschikbaarheid is afhankelijk van het account en abonnement.
-**Qoder (`if/`)** — GRATIS OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mnd vast tarief of per gebruik: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo plat of per gebruik: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — API-sleutel: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API sleutel: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
**Groq (`groq/`)** — Ultrasnel: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok-native: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok native: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU-gehost: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — de EU gehost: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Zoekverrijkt: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Verbijstering (`pplx/`)** — Zoek-uitgebreid: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Open-source: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (gratis), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — Open source: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (gratis), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Snelle inferentie: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Snelle gevolgtrekking: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Wafer-scale: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Waferschaal: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
**Cohere (`cohere/`)** — RAG-gericht: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
@@ -654,13 +654,13 @@ Zie de [README](../README.md) voor het volledige overzicht van omgevingsvariabel
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama -wolk (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Live gesynchroniseerd per API-sleutel van Google — geen statische lijst. Koppel een sleutel in **Dashboard → Providers** en gebruik daarna **Beschikbare modellen** om de actuele catalogus te importeren (bijv. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Wolk `gemini/`)** : Live gesynchroniseerd per API sleutel van Google — geen statische lijst. Sluit een sleutel aan** Dashboard → aanbieders** gebruik dan** Beschikbare modellen** om de huidige catalogus te importeren (bijvoorbeeld `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Andere compatibele providers** (selectie): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (passthrough-catalogus), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Elk beheert zijn eigen modellijst in `providerRegistry.ts` en kan automatisch worden gesynchroniseerd wanneer de provider een `/models`-endpoint beschikbaar stelt.
+**Andere compatibele providers** (geselecteerd): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (passthrough-catalogus), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Elk onderhoudt zijn eigen modellijst in `providerRegistry.ts` en kan automatisch worden gesynchroniseerd wanneer de provider een `/models` eindpunt openbaar maakt.
-**Opmerking over model-ID's:** OmniRoute gebruikt provider-native ID's (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Sommige ID's bevatten versies met punten, omdat de upstream-API ze zo verwacht. Als een model hierboven niet vermeld staat, voer dan `omniroute models --search ` uit of gebruik `GET /api/models/catalog` om de beschikbaarheid te bevestigen.
+**Opmerking over model IDs:** OmniRoute gebruikt provider-native IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Sommige IDs bevatten gestippelde versies, omdat de stroomopwaartse API ze zo verwacht. Als een model hierboven niet wordt vermeld, voert u `omniroute models --search ` uit of drukt u op `GET /api/models/catalog` om de beschikbaarheid te bevestigen.
diff --git a/docs/i18n/no/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/no/docs/architecture/RESILIENCE_GUIDE.md
index d859801eca94..e13e8847346a 100644
--- a/docs/i18n/no/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/no/docs/architecture/RESILIENCE_GUIDE.md
@@ -289,25 +289,17 @@ _tilstanden_ for utestenging er flyktig.
---
-## 4. Kvote-delt samtidighetskontroll (v3.8.36)
+## 4. Samtidighetskontroll for kvoteandel (v3.8.36)
-Abonnementskontoer (GLM, MiniMax osv.) godtar ofte bare ~1–3 samtidige
-forespørsler; overskrides dette utløses 429-feil og nedkjølingsperioder. Dette er
-spesielt alvorlig under **quota-share**-kombinasjoner (`qtSd/…`), der flere
-API-nøkler deler én oppstrømskonto. Tre lag hindrer at en delt konto blir oversvømt.
+Abonnementskontoer (GLM, MiniMax, etc.) aksepterer ofte bare ~ 1–3 samtidige forespørsler; overskridelse utløser 429s og nedkjøling. Dette er akutt under** kvote-andel** (`qtSd/…`) kombinasjoner, der flere API nøkler deler én oppstrømskonto. Tre lag forhindrer at en delt konto blir oversvømmet.
### Samtidighetstak per tilkobling (`max_concurrent`)
-Hver leverandørtilkobling kan deklarere et `max_concurrent`-tak
-(`provider_connections.max_concurrent`, satt i tilkoblingsmodalen / API-et /
-databasen). La det stå tomt for ingen grense. Dette er den ene bryteren som styrer
-serialiseringslaget nedenfor — sett det til kontoens reelle samtidighet
-(f.eks. GLM ~1, MiniMax ~2).
+Hver leverandørtilkobling kan deklarere et `max_concurrent` -tak (`provider_connections.max_concurrent`, satt i tilkoblingsmodal / API / DB). La det stå tomt uten grenser. Dette er den enkle knotten som driver serialiseringslaget under — sett det til kontoens reelle samtidighet (f.eks. GLM ~ 1, MiniMax ~ 2).
### Samtidighetstak per modell (`modelConcurrency`)
-En tilkobling kan i tillegg deklarere eksakte samtidighetstak per modell
-inne i `rateLimitOverrides`-kartet sitt:
+En tilkobling kan i tillegg deklarere nøyaktige samtidighetstak per modell i `rateLimitOverrides` kartet:
```json
{
@@ -318,76 +310,32 @@ inne i `rateLimitOverrides`-kartet sitt:
}
```
-Sett det i tilkoblingsmodalen (**Rate limit overrides → Per-model
-concurrency caps**, én `model=cap` per linje) eller via
-`PATCH /api/providers/[id]` med samme JSON-form. Nøkkelsemantikk:
-
-- **Hele tilkoblingen vs. modellspesifikt:** `maxConcurrent` forblir det delte
- taket for hele tilkoblingen. Når begge gjelder, tilegnes begge portene
- atomisk i samme sammensatte port
- (`global → provider → account → model`); den effektive oppførselen er det
- strengeste gjeldende taket.
-- **Eksakt modellnøkkel-match:** nøkkelen er modellstrengen som sendes til
- eksekvereren etter rutingoppløsning — vanligvis den rene oppstrøms
- modell-ID-en (`glm-5`), ikke et klientside-alias av typen `provider/model`
- (`zai/glm-5` matcher ikke `glm-5`). Verdiene er positive heltallstall for
- samtidige forespørsler.
-- **Lokal køing, ingen oppdagelse:** overskytende forespørsler legges i lokal
- kø med eksisterende kø-/tidsavbruddssemantikk (typede
- `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`-adgangsfeil). OmniRoute
- oppdager eller utleder ikke oppstrømspolicy — den håndhever nøyaktig de
- takene operatøren har konfigurert. En mettet modellport deaktiverer aldri
- leverandøren og skaper aldri en permanent modelllåsing; oppstrøms
- 429-/nedkjølings-/fallback-oppførsel forblir feil-sikkerhetsnettet.
-- **Omfang per tilkobling, per prosess:** takene gjelder per
- databasetilkobling og holdes i minnet, så to tilkoblinger som gjenbruker
- samme oppstrøms API-nøkkel koordinerer ikke med hverandre.
-- **Ukonfigurert betyr uendret:** utelates kartet (eller dashbordfeltet står
- tomt) legges ingen modellport til. Eksempelkonfigurasjon uten å hevde noen
- universell leverandørgrense:
+Sett den i tilkoblingsmodalen (** Rate limit overstyrer → Per-modell samtidighetstak** , en `model=cap` per linje) eller via `PATCH /api/providers/[id]` med samme JSON form. Nøkkelsemantikk:
+
+- **Tilkoblingsomfattende kontra modellspesifikk:** `maxConcurrent` forblir det delte taket for hele tilkoblingen. Når begge gjelder, innhentes begge portene atomært i den samme sammensatte porten (`global → provider → account → model`); den effektive oppførselen er den strengere gjeldende grensen.
+- **Nøyaktig modell-nøkkelmatch:** nøkkelen er modellstrengen som sendes til eksekveren etter rutingsoppløsning — normalt den bare oppstrøms modell-ID (`glm-5`), ikke et `provider/model` alias på klientsiden (`zai/glm-5` samsvarer ikke med `glm-5`). Verdier er positive-heltalls samtidige forespørsel-tak.
+- **Lokal kø, ingen oppdagelse:** overskytende forespørsler står i kø lokalt med den eksisterende queue/timeout semantikken (skrivet `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` opptaksfeil). OmniRoute oppdager eller slutter ikke oppstrøms policy — den håndhever de nøyaktige taket operatøren konfigurerte. En mettet modellport deaktiverer aldri leverandøren og skaper aldri en permanent modellsperre; oppstrøms 429/cooldown/fallback atferd forblir tilbakestopperen for feilen.
+- **Per tilkobling, per prosess omfang:** caps er per databasetilkobling og holdes i minnet, så to tilkoblinger som gjenbruker den samme oppstrøms API nøkkelen koordinerer ikke med hverandre.
+- **Ukonfigurert betyr uendret:** utelate kartet (eller la dashbordfeltet stå tomt) legger ikke til noen modellport. Eksempel på konfigurasjon uten å hevde noen universell leverandørgrense:
```text
glm-5=1
glm-4.7=3
```
-### Serialisering av quota-share-forespørsler
-
-Når en quota-share-forsendelse retter seg mot en tilkobling som deklarerer en
-positiv `max_concurrent`, serialiseres samtidige forespørsler til den
-**kontoen** gjennom en semafor per tilkobling (nøkkel `qsconn:`):
-overskytende forespørsler **venter i køen** i stedet for å oversvømme kontoen. Den er
-**fail-open** — en mettet kø eller et tidsavbrudd fortsetter uten en plass i
-stedet for noensinne å avvise en forespørsel som kan sendes. Slås av/på under
-**Settings → Resilience → Quota-share per-connection
-concurrency** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, på som
-standard). Uten et `max_concurrent`-tak er oppførselen uendret.
-
-> Quota-share-rutingsporten (`selectQuotaShareTarget`, DRR + P2C) er selv
-> fail-open og bare _nedprioriterer_ en tilkobling ved taket — med en
-> tilkoblingspool med én tilkobling kan den ikke sette et hardt tak, så denne
-> semaforen er det som faktisk demmer opp flommen.
-
-### Nedkjølingsbevisst combo-retry
-
-For hver combo-strategi (når aktivert) vil en forespørsel som ville krystallisere
-en 429 for en KORT forbigående nedkjøling vente den ut og sende på nytt i stedet
-for å returnere 429-en — dette dekker Gemini-klasse TPM/RPM-vinduer (~60s
-retry-after) på flermodell-comboer, f.eks. når begge målene i en combo med to
-modeller treffer et hastighetstak per modell. Begrenset av `comboCooldownWait`
-(`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) under
-**Settings → Resilience**. Den venter aldri på `quota_exhausted` (låst til
-midnatt) eller autentiserings-/ikke-funnet-årsaker.
-
-Samme port dekker tilfellet før forsendelse (#16319): når hvert mål i en combo
-hoppes over før noe forsøk er gjort fordi modellen sitter i en kort forbigående
-låsing, venter null-forsøks-veien låsingen ut under de samme takene og sender
-på nytt, i stedet for å svare med en hint-løs
-`503 ALL_TARGETS_SKIPPED`. Når ingen venting er tillatt (tak, forsøk eller
-budsjett oppbrukt, eller funksjonen av), oppgraderes det endelige svaret til
-`429 rate_limit_error` med `retry_after` / `reset_at` fra den tidligste
-forbigående låseutløpet; kvote-, autentiserings- og ikke-funnet-låsinger
-beholder den hint-løse 503-en.
+### Serialisering av kvotedelingsforespørsel
+
+Når en kvotedeling retter seg mot en tilkobling som erklærer en positiv `max_concurrent`, samtidige forespørsler til den** konto** serialiseres gjennom en semafor per tilkobling (nøkkel `qsconn:`): overflødige forespørsler** vente i køen** i stedet for å oversvømme kontoen. Det er det** fail-open** — en mettet kø eller tidsavbrudd fortsetter uten et spor i stedet for noen gang å avvise en forespørsel som kan sendes. Slå inn** Innstillinger → Resilience → Kvota-andel per tilkobling samtidighet** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, standard på). Uten en `max_concurrent` cap er oppførselen uendret.
+
+> Rutingporten for kvotedeling (`selectQuotaShareTarget`, DRR + P2C) er i seg selv feilåpen og _deprioriterer_ bare en at-cap-forbindelse — med en enkelt-tilkoblingspool den kan ikke hardt begrense, så denne semaforen er det som faktisk inneholder flommen.
+
+### Prøv på nytt med kombinasjonsavkjøling
+
+For hver kombinasjonsstrategi (når den er aktivert), venter en forespørsel som vil krystallisere en 429 for en SHORT forbigående nedkjøling og sendes ut på nytt i stedet for å returnere 429 — Dette dekker Gemini-klasse TPM/RPM vinduer (~ 60s gjenforsøk etter) på kombinasjoner av flere modeller, f.eks. Avgrenset av `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) i** Innstillinger → Resilience** . Den venter aldri på `quota_exhausted` (låst til midnatt) eller auth/not-found grunner.
+
+En kombinasjon kan velges bort med `config.comboCooldownWaitEnabled: false`. Bare bokstavelig `false` deaktiverer disse delte kombinasjonsventene (nedkjøling etter utsendelse og circuit-open/model-lock -venter før utsendelse) og deres forlengelse av vente-budsjett-timeout-gulvet. Mangler eller `true` bevarer den globale politikken; `true` kan ikke aktivere globalt deaktivert venting. En eksplisitt `targetTimeoutMs` vinner fortsatt. Denne frameldingen endrer ikke den separate native-Codex turn-pin pre-dispatch ventetiden.
+
+Den samme porten dekker pre-dispatch-saken (#16319): når hvert mål i en kombinasjon blir hoppet over før ethvert forsøk gjøres fordi modellen sitter i en kort forbigående lockout, venter null-forsøksbanen på låsen under de samme tak og sender ut på nytt, i stedet for å svare på en `503 ALL_TARGETS_SKIPPED` uten hint. Når ingen venting er tillatt (tak, forsøk eller budsjett oppbrukt, eller funksjonen av), oppgraderes terminalresponsen til `429 rate_limit_error` som bærer `retry_after` / `reset_at` fra den tidligste forbigående låsen utløper; kvote-, autentiserings- og ikke-funnet-låser beholder 503 uten hint.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/no/docs/guides/USER_GUIDE.md b/docs/i18n/no/docs/guides/USER_GUIDE.md
index 6602bb78ebd8..d2cd1a5f61d6 100644
--- a/docs/i18n/no/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/no/docs/guides/USER_GUIDE.md
@@ -607,44 +607,44 @@ Du finner en fullstendig oversikt over miljøvariabler i [README](../README.md).
---
-## 📊 Tilgjengelige modeller
+## 📊 tilgjengelige modeller
Se alle tilgjengelige modeller
-> Listen nedenfor er kuratert fra `open-sse/config/providerRegistry.ts` for v3.8.0. Skykataloger (Gemini, OpenRouter osv.) synkroniseres dynamisk — for hele sanntidskatalogen åpne **Dashbord → Leverandører → [leverandør] → Tilgjengelige modeller** eller kall `GET /api/models/catalog`.
+> Listen nedenfor er kuratert fra `open-sse/config/providerRegistry.ts` for v3.8.0. Skykataloger (Gemini, OpenRouter, etc.) synkroniseres dynamisk — for hele live-katalogen åpen** Dashboard → Leverandører → [leverandør] → Tilgjengelige modeller** eller ring `GET /api/models/catalog`.
>
-> Hvis en leverandørs innebygde liste har avveket, bruk **Importer fra /models** på den siden (eller aktiver **Automatisk synkronisering**) for å hente oppstrømskatalogen i sanntid. Dette ble verifisert i v3.8.50 for LLM7.io (`gemini-3.1-flash-lite`) og UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); anonym tilgang til Pollinations forble oppstrømsbegrenset under samme testrunde.
+> Hvis en leverandørs innebygde liste har drevet, bruk** Importer fra /models** på den siden (eller aktiver** Automatisk synkronisering** ) for å hente den direkte oppstrømskatalogen. Dette ble verifisert i v3.8.50 for LLM7.io (`gemini-3.1-flash-lite`) og UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Den anonyme tilgangen til pollinering forble begrenset oppstrøms under samme testpass.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude -kode (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ innsatsnivåer: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — GRATIS OAuth: bruk sanntidskatalogen vist under **Dashbord → Leverandører → Kiro → Tilgjengelige modeller**. Tilgjengelighet avhenger av kontoen og abonnementet.
+**Kiro (`kr/`)** — FREE OAuth: bruk live-katalogen vist under** Dashboard → -leverandører → Kiro → Tilgjengelige modeller** . Tilgjengelighet avhenger av kontoen og planen.
-**Qoder (`if/`)** — GRATIS OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mnd fastpris eller per bruk: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo flat eller per-bruk: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — API-nøkkel: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API nøkkel: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
**Groq (`groq/`)** — Ultrarask: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok-native: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok innfødt: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU-hostet: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU-vert: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Søkeforsterket: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Forvirring (`pplx/`)** — Søkeutvidet: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
**Together AI (`together/`)** — Åpen kildekode: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (gratis), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Rask inferens: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Rask slutning: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
**Cerebras (`cerebras/`)** — Wafer-skala: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
@@ -654,13 +654,13 @@ Du finner en fullstendig oversikt over miljøvariabler i [README](../README.md).
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Synkronisert i sanntid per API-nøkkel fra Google — ingen statisk liste. Koble til en nøkkel i **Dashbord → Leverandører** og bruk deretter **Tilgjengelige modeller** for å importere gjeldende katalog (f.eks. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : Synkronisert live per API nøkkel fra Google — ingen statisk liste. Koble til en nøkkel** Dashboard → leverandører** bruk deretter** Tilgjengelige modeller** for å importere gjeldende katalog (f.eks. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Andre kompatible leverandører** (utvalg): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (gjennomgangskatalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Hver vedlikeholder sin egen modelliste i `providerRegistry.ts` og kan autosynkroniseres når leverandøren eksponerer et `/models`-endepunkt.
+**Andre kompatible leverandører** (valgt): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (gjennomgangskatalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink` `nous-research`, `friendliai`, `reka`, `volcengine`, `ai21` `gigachat` Hver vedlikeholder sin egen modellliste i `providerRegistry.ts` og kan automatisk synkroniseres når leverandøren avslører et `/models` endepunkt.
-**Merk om modell-ID-er:** OmniRoute bruker leverandørens egne ID-er (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Noen ID-er inneholder versjoner med punktum fordi det er slik oppstrøms-API-et forventer dem. Hvis en modell ikke er oppført ovenfor, kjør `omniroute models --search ` eller kall `GET /api/models/catalog` for å bekrefte tilgjengelighet.
+**Merknad om modellen IDs:** OmniRoute bruker leverandør-native IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Noen IDs inkluderer stiplede versjoner fordi det er slik oppstrøms API forventer dem. Hvis en modell ikke er oppført ovenfor, kjør `omniroute models --search ` eller trykk `GET /api/models/catalog` for å bekrefte tilgjengelighet.
diff --git a/docs/i18n/or/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/or/docs/architecture/RESILIENCE_GUIDE.md
index 1011eedc92e9..80a1fd0e0536 100644
--- a/docs/i18n/or/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/or/docs/architecture/RESILIENCE_GUIDE.md
@@ -281,26 +281,17 @@ UI: ମନିଟରିଂ → କୁଲ୍ଡାଉନ୍ ପରିଚାଳକ
---
-## 4. କୋଟା-ଶେୟାର ସମକାଳୀନତା ନିୟନ୍ତ୍ରଣ (v3.8.36)
+## 4। କୋଟା-ସେୟାର ସମନ୍ୱୟ ନିୟନ୍ତ୍ରଣ (v3.8.36)
-ସବ୍ସ୍କ୍ରିପ୍ସନ୍ ଆକାଉଣ୍ଟଗୁଡ଼ିକ (GLM, MiniMax ଇତ୍ୟାଦି) ସାଧାରଣତଃ କେବଳ ~1–3ଟି ସମକାଳୀନ
-ଅନୁରୋଧ ଗ୍ରହଣ କରନ୍ତି; ଏହି ସୀମା ଅତିକ୍ରମ କଲେ 429 ଏବଂ କୁଲ୍ଡାଉନ୍ ସକ୍ରିୟ ହୁଏ। ଏହା
-**କୋଟା-ଶେୟାର** (`qtSd/…`) କମ୍ବୋଗୁଡ଼ିକରେ ବିଶେଷ ଭାବେ ଗୁରୁତର, ଯେଉଁଠାରେ ଅନେକ API କୀ
-ଗୋଟିଏ ଅପ୍ଷ୍ଟ୍ରିମ୍ ଆକାଉଣ୍ଟ ସେୟାର କରନ୍ତି। ତିନୋଟି ସ୍ତର ଏକ ସେୟାର୍ଡ ଆକାଉଣ୍ଟକୁ
-ଅତ୍ୟଧିକ ଅନୁରୋଧରେ ପ୍ଲାବିତ ହେବାରୁ ରୋକେ।
+ସଦସ୍ୟତା ଖାତା (GLM, MiniMax, ଇତ୍ୟାଦି) ପ୍ରାୟତ z କେବଳ ~ 1–3 ଏକକାଳୀନ ଅନୁରୋଧ ଗ୍ରହଣ କରେ। ଏହାଠାରୁ ଅଧିକ ଯାହା 429 ଏବଂ କୁଲଡାଉନ୍ ଟ୍ରିଗର କରିଥାଏ। ଏହା ତୀବ୍ର ଅଟେ।** କୋଟା-ଅଂଶୀଦାର।** (`qtSd/…`) କମ୍ବୋ, ଯେଉଁଠାରେ ଅନେକ API କି ଗୋଟିଏ ଅପଷ୍ଟ୍ରିମ୍ ଆକାଉଣ୍ଟ୍ ଅଂଶୀଦାର କରନ୍ତି। ତିନୋଟି ସ୍ତର ଏକ ଅଂଶୀଦାରୀ ଆକାଉଣ୍ଟକୁ ବନ୍ୟା ପରିସ୍ଥିତିରୁ ରକ୍ଷା କରେ।
-### ପ୍ରତି-କନେକ୍ସନ୍ ସମକାଳୀନତା ସୀମା (`max_concurrent`)
+### ପ୍ରତି-ସଂଯୋଗ ସମନ୍ୱୟ କ୍ୟାପ୍ (`max_concurrent`)
-ପ୍ରତ୍ୟେକ ପ୍ରଦାତା କନେକ୍ସନ୍ ଗୋଟିଏ `max_concurrent` ସର୍ବୋଚ୍ଚ ସୀମା ଘୋଷଣା କରିପାରେ
-(`provider_connections.max_concurrent`, ଯାହା କନେକ୍ସନ୍ ମୋଡାଲ୍ / API / DBରେ ସେଟ୍ କରାଯାଏ)।
-କୌଣସି ସୀମା ନ ରଖିବାକୁ ଏହାକୁ ଖାଲି ଛାଡ଼ନ୍ତୁ। ନିମ୍ନର ସିରିଆଲାଇଜେସନ୍
-ସ୍ତରକୁ ନିୟନ୍ତ୍ରଣ କରୁଥିବା ଏହା ହେଉଛି ଏକମାତ୍ର ବିକଳ୍ପ — ଏହାକୁ ଆକାଉଣ୍ଟର ପ୍ରକୃତ
-ସମକାଳୀନତା ଅନୁଯାୟୀ ସେଟ୍ କରନ୍ତୁ (ଯଥା GLM ~1, MiniMax ~2)।
+ପ୍ରତ୍ୟେକ ପ୍ରଦାନକାରୀ ସଂଯୋଗ ଏକ `max_concurrent` ଛାତ (`provider_connections.max_concurrent`, ସଂଯୋଗ ମୋଡାଲ / API / DB ରେ ସେଟ୍) ଘୋଷଣା କରିପାରିବ। କ limit ଣସି ସୀମା ପାଇଁ ଏହାକୁ ଖାଲି ଛାଡିଦିଅ। ଏହା ହେଉଛି ଏକକ ନବା ଯାହାକି — ତଳେ କ୍ରମିକୀକରଣ ସ୍ତରକୁ ଡ୍ରାଇଭ୍ କରେ ଏହାକୁ ଖାତାର ପ୍ରକୃତ ସମନ୍ୱୟ (ଯେପରିକି GLM ~ 1, MiniMax ~ 2) ରେ ସେଟ୍ କରେ।
-### ପ୍ରତି-ମଡେଲ୍ ସମକାଳୀନତା ସୀମା (`modelConcurrency`)
+### ପ୍ରତି-ମଡେଲ୍ ସମନ୍ୱୟ କ୍ୟାପ୍ (`modelConcurrency`)
-ଗୋଟିଏ କନେକ୍ସନ୍ ଅତିରିକ୍ତ ଭାବେ ତାହାର `rateLimitOverrides` ମ୍ୟାପ୍ରେ
-ସଠିକ୍ ପ୍ରତି-ମଡେଲ୍ ସମକାଳୀନତା ସର୍ବୋଚ୍ଚ ସୀମା ଘୋଷଣା କରିପାରେ:
+ଏକ ସଂଯୋଗ ଅତିରିକ୍ତ ଭାବରେ ଏହାର `rateLimitOverrides` ମାନଚିତ୍ରରେ ପ୍ରତି ମଡେଲ୍ ସମନ୍ୱୟ ଛାତଗୁଡିକ ଘୋଷଣା କରିପାରିବ:
```json
{
@@ -311,76 +302,32 @@ UI: ମନିଟରିଂ → କୁଲ୍ଡାଉନ୍ ପରିଚାଳକ
}
```
-ଏହାକୁ କନେକ୍ସନ୍ ମୋଡାଲ୍ରେ (**ରେଟ୍ ସୀମା ଓଭର୍ରାଇଡ୍ → ପ୍ରତି-ମଡେଲ୍
-ସମକାଳୀନତା ସୀମା**, ପ୍ରତି ଧାଡ଼ିରେ ଗୋଟିଏ `model=cap`) କିମ୍ବା ସମାନ JSON ଗଠନ ସହିତ
-`PATCH /api/providers/[id]` ମାଧ୍ୟମରେ ସେଟ୍ କରନ୍ତୁ। କୀର ଅର୍ଥବିଧି:
-
-- **ସମଗ୍ର କନେକ୍ସନ୍ ବନାମ ମଡେଲ୍-ନିର୍ଦ୍ଦିଷ୍ଟ:** `maxConcurrent` ସେୟାର୍ଡ
- ସମଗ୍ର-କନେକ୍ସନ୍ ସର୍ବୋଚ୍ଚ ସୀମା ଭାବେ ରହିଥାଏ। ଉଭୟ ପ୍ରଯୁଜ୍ୟ ହେଲେ, ସମାନ କମ୍ପୋଜିଟ୍
- ଗେଟ୍ରେ ଉଭୟ ଗେଟ୍ ପରମାଣବିକ ଭାବେ ଅଧିଗ୍ରହଣ କରାଯାଏ
- (`global → provider → account → model`); ପ୍ରଭାବୀ ଆଚରଣ ଅଧିକ କଠୋର
- ପ୍ରଯୁଜ୍ୟ ସୀମା ଅନୁସାରେ ହୁଏ।
-- **ସଠିକ୍ ମଡେଲ୍-କୀ ମେଳ:** କୀଟି ହେଉଛି ରାଉଟିଂ ସମାଧାନ ପରେ
- ଏକ୍ସିକ୍ୟୁଟର୍କୁ ପ୍ରେରିତ ମଡେଲ୍ ଷ୍ଟ୍ରିଙ୍ଗ୍ — ସାଧାରଣତଃ ମୂଳ ଅପ୍ଷ୍ଟ୍ରିମ୍ ମଡେଲ୍ id
- (`glm-5`), କ୍ଲାଏଣ୍ଟ-ପକ୍ଷର `provider/model` ଉପନାମ ନୁହେଁ (`zai/glm-5`, `glm-5` ସହିତ
- ମେଳ ଖାଏ ନାହିଁ)। ମୂଲ୍ୟଗୁଡ଼ିକ ହେଉଛି ଧନାତ୍ମକ-ପୂର୍ଣ୍ଣସଂଖ୍ୟା ସମକାଳୀନ-ଅନୁରୋଧ ସର୍ବୋଚ୍ଚ ସୀମା।
-- **ସ୍ଥାନୀୟ କ୍ୟୁଇଂ, କୌଣସି ଆବିଷ୍କାର ନାହିଁ:** ଅତିରିକ୍ତ ଅନୁରୋଧଗୁଡ଼ିକ
- ବିଦ୍ୟମାନ କ୍ୟୁ/ଟାଇମ୍ଆଉଟ୍ ଅର୍ଥବିଧି ସହିତ ସ୍ଥାନୀୟ ଭାବେ କ୍ୟୁରେ ରହେ (ଟାଇପ୍ଯୁକ୍ତ
- `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ଗ୍ରହଣ ତ୍ରୁଟି)। OmniRoute ଅପ୍ଷ୍ଟ୍ରିମ୍
- ନୀତି ଆବିଷ୍କାର କିମ୍ବା ଅନୁମାନ କରେ ନାହିଁ — ଏହା ଅପରେଟର୍ ବିନ୍ୟାସ କରିଥିବା ସଠିକ୍
- ସର୍ବୋଚ୍ଚ ସୀମାଗୁଡ଼ିକୁ ପ୍ରବର୍ତ୍ତନ କରେ। ପୂର୍ଣ୍ଣ ହୋଇଥିବା ମଡେଲ୍ ଗେଟ୍ କେବେବି ପ୍ରଦାତାକୁ
- ନିଷ୍କ୍ରିୟ କରେ ନାହିଁ ଏବଂ କେବେବି ଏକ ସ୍ଥାୟୀ ମଡେଲ୍ ଲକ୍ଆଉଟ୍ ସୃଷ୍ଟି କରେ ନାହିଁ;
- ଅପ୍ଷ୍ଟ୍ରିମ୍ 429/କୁଲ୍ଡାଉନ୍/ଫଲ୍ବ୍ୟାକ୍ ଆଚରଣ ତ୍ରୁଟି ପ୍ରତିରକ୍ଷା ଭାବେ ରହିଥାଏ।
-- **ପ୍ରତି-କନେକ୍ସନ୍, ପ୍ରତି-ପ୍ରକ୍ରିୟା ପରିସର:** ସୀମାଗୁଡ଼ିକ ପ୍ରତି ଡାଟାବେସ୍
- କନେକ୍ସନ୍ ପାଇଁ ପ୍ରଯୁଜ୍ୟ ଏବଂ ମେମୋରିରେ ରଖାଯାଏ, ତେଣୁ ସମାନ ଅପ୍ଷ୍ଟ୍ରିମ୍ API କୀକୁ
- ପୁନଃବ୍ୟବହାର କରୁଥିବା ଦୁଇଟି କନେକ୍ସନ୍ ପରସ୍ପର ସହିତ ସମନ୍ୱୟ କରନ୍ତି ନାହିଁ।
-- **ବିନ୍ୟାସ ହୋଇନଥିଲେ ଅପରିବର୍ତ୍ତିତ:** ମ୍ୟାପ୍କୁ ବାଦ ଦେବା (କିମ୍ବା
- ଡ୍ୟାସ୍ବୋର୍ଡ ଫିଲ୍ଡକୁ ଖାଲି ଛାଡ଼ିବା) କୌଣସି ମଡେଲ୍ ଗେଟ୍ ଯୋଡ଼େ ନାହିଁ। କୌଣସି
- ସାର୍ବଜନୀନ ପ୍ରଦାତା ସୀମା ଦାବି ନ କରିଥିବା ବିନ୍ୟାସର ଉଦାହରଣ:
+ଏହାକୁ ସଂଯୋଗ ମୋଡାଲରେ ସେଟ୍ କରନ୍ତୁ (** ରେଟ୍ ସୀମା → ପ୍ରତି-ମଡେଲ୍ ସମନ୍ୱୟ କ୍ୟାପ୍ କୁ ଅତିକ୍ରମ କରେ।** , ପ୍ରତି ଧାଡିରେ ଗୋଟିଏ `model=cap` ) କିମ୍ବା ସମାନ JSON ଆକୃତି ସହିତ `PATCH /api/providers/[id]` ମାଧ୍ୟମରେ। ମୁଖ୍ୟ ଅର୍ଥ:
+
+- **ସଂଯୋଗ-ପ୍ରଶସ୍ତ ବନାମ ମଡେଲ-ନିର୍ଦ୍ଦିଷ୍ଟ:** `maxConcurrent` ଅଂଶୀଦାର ସଂଯୋଗ-ପ୍ରଶସ୍ତ ଛାତ ରହିଥାଏ। ଯେତେବେଳେ ଉଭୟ ପ୍ରୟୋଗ ହୁଏ, ଉଭୟ ଗେଟ୍ ପରମାଣୁ ଭାବରେ ସମାନ କମ୍ପୋଜିଟ୍ ଗେଟ୍ (`global → provider → account → model`) ରେ ଅର୍ଜନ ହୁଏ। ପ୍ରଭାବଶାଳୀ ଆଚରଣ ହେଉଛି କଠୋର ପ୍ରଯୁଜ୍ୟ ସୀମା।
+- **ପ୍ରକୃତ ମଡେଲ-କି ମେଳ:** ଚାବି ହେଉଛି — ସାଧାରଣତ the ଖାଲି ଅପଷ୍ଟ୍ରିମ ମଡେଲ id (`glm-5`) ରାଉଟିଙ୍ଗ ପରେ ଏକଜେକ୍ୟୁଟରକୁ ପଠାଯାଇଥିବା ମଡେଲ ଷ୍ଟ୍ରିଙ୍ଗ, କ୍ଲାଏଣ୍ଟ-ସାଇଡ୍ `provider/model` ଛଦ୍ମନାମ ନୁହେଁ (`zai/glm-5` `glm-5` ମେଳ ଖାଉ ନାହିଁ)। ମୂଲ୍ୟଗୁଡ଼ିକ ହେଉଛି ପଜିଟିଭ୍-ଇଣ୍ଟିଜର୍ ଏକକାଳୀନ-ଅନୁରୋଧ ଛାତ।
+- **ସ୍ଥାନୀୟ ଧାଡି, ଆବିଷ୍କାର ନାହିଁ:** ବିଦ୍ୟମାନ queue/timeout ସେମାଣ୍ଟିକ୍ସ (ଟାଇପ୍ ହୋଇଥିବା `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ଆଡମିଶନ ତ୍ରୁଟି) ସହିତ ଅତିରିକ୍ତ ଅନୁରୋଧ ସ୍ଥାନୀୟ ଭାବରେ ଧାଡି। OmniRoute ଅପଷ୍ଟ୍ରିମ ପଲିସି ଆବିଷ୍କାର କରେ ନାହିଁ କିମ୍ବା ଅନୁମାନ କରେ ନାହିଁ — ଏହା ଅପରେଟର ବିନ୍ୟାସିତ ସଠିକ ଛାତକୁ କାର୍ଯ୍ୟକାରୀ କରିଥାଏ। ଏକ ସନ୍ତୁଳିତ ମଡେଲ ଗେଟ୍ ପ୍ରଦାନକାରୀଙ୍କୁ କଦାପି ଅକ୍ଷମ କରେ ନାହିଁ ଏବଂ ସ୍ଥାୟୀ ମଡେଲ ଲକଆଉଟ୍ ସୃଷ୍ଟି କରେ ନାହିଁ। ଅପଷ୍ଟ୍ରିମ 429/cooldown/fallback ଆଚରଣ ତ୍ରୁଟି ବ୍ୟାକଷ୍ଟପ୍ ରହିଥାଏ।
+- **ପ୍ରତି-ସଂଯୋଗ, ପ୍ରତି-ପ୍ରକ୍ରିୟା ପରିସର:** କ୍ୟାପ୍ସ ଡାଟାବେସ୍ ସଂଯୋଗ ପ୍ରତି ଏବଂ ମେମୋରୀରେ ରଖାଯାଇଥାଏ, ତେଣୁ ସମାନ ଅପଷ୍ଟ୍ରିମ୍ API କି ବ୍ୟବହାର କରୁଥିବା ଦୁଇଟି ସଂଯୋଗ ପରସ୍ପର ସହିତ ସମନ୍ୱୟ କରନ୍ତି ନାହିଁ।
+- **ଅସଂଗଠିତ ଅର୍ଥ ଅପରିବର୍ତ୍ତିତ:** ମାନଚିତ୍ରକୁ ବାଦ ଦେବା (କିମ୍ବା ଡ୍ୟାସବୋର୍ଡ ଫିଲ୍ଡକୁ ଖାଲି ଛାଡିବା) କ model ଣସି ମଡେଲ ଗେଟ୍ ଯୋଗ କରେ ନାହିଁ। କ universal ଣସି ସର୍ବଭାରତୀୟ ପ୍ରଦାନକାରୀ ସୀମା ନଦେଇ ଉଦାହରଣ ବିନ୍ୟାସ:
```text
glm-5=1
glm-4.7=3
```
-### କୋଟା-ଶେୟାର ଅନୁରୋଧ ସିରିଆଲାଇଜେସନ୍
-
-ଯେତେବେଳେ ଗୋଟିଏ କୋଟା-ଶେୟାର ଡିସ୍ପ୍ୟାଚ୍ ଧନାତ୍ମକ `max_concurrent` ଘୋଷଣା କରୁଥିବା
-ଏକ କନେକ୍ସନ୍କୁ ଲକ୍ଷ୍ୟ କରେ, ସେହି **ଆକାଉଣ୍ଟ** ପାଇଁ ସମକାଳୀନ ଅନୁରୋଧଗୁଡ଼ିକୁ ଗୋଟିଏ
-ପ୍ରତି-କନେକ୍ସନ୍ ସେମାଫୋର୍ (କୀ `qsconn:`) ମାଧ୍ୟମରେ କ୍ରମିକ କରାଯାଏ:
-ଅତିରିକ୍ତ ଅନୁରୋଧଗୁଡ଼ିକ ଆକାଉଣ୍ଟକୁ ପ୍ଲାବିତ କରିବା ପରିବର୍ତ୍ତେ **କ୍ୟୁରେ ଅପେକ୍ଷା କରନ୍ତି**।
-ଏହା **ଫେଲ୍-ଓପେନ୍** — ପୂର୍ଣ୍ଣ ହୋଇଥିବା କ୍ୟୁ କିମ୍ବା ଟାଇମ୍ଆଉଟ୍ କେବେବି ଡିସ୍ପ୍ୟାଚ୍ଯୋଗ୍ୟ
-ଅନୁରୋଧକୁ ପ୍ରତ୍ୟାଖ୍ୟାନ କରିବା ପରିବର୍ତ୍ତେ ସ୍ଲଟ୍ ବିନା ଆଗକୁ ବଢ଼େ।
-**ସେଟିଂସ୍ → ସହନଶୀଳତା → କୋଟା-ଶେୟାର ପ୍ରତି-କନେକ୍ସନ୍ ସମକାଳୀନତା**
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, ଡିଫଲ୍ଟ ଭାବେ ସକ୍ରିୟ)
-ରେ ଏହାକୁ ଟଗଲ୍ କରନ୍ତୁ। `max_concurrent` ସୀମା ବିନା ଆଚରଣ ଅପରିବର୍ତ୍ତିତ ରହେ।
-
-> କୋଟା-ଶେୟାର ରାଉଟିଂ ଗେଟ୍ (`selectQuotaShareTarget`, DRR + P2C) ନିଜେ
-> ଫେଲ୍-ଓପେନ୍ ଏବଂ ସୀମାରେ ପହଞ୍ଚିଥିବା କନେକ୍ସନ୍କୁ କେବଳ _କମ୍ ପ୍ରାଥମିକତା_ ଦିଏ —
-> ଗୋଟିଏ-କନେକ୍ସନ୍ ପୁଲ୍ରେ ଏହା କଠୋର ସୀମା ଲାଗୁ କରିପାରେ ନାହିଁ, ତେଣୁ ଏହି ସେମାଫୋର୍
-> ବାସ୍ତବରେ ଅନୁରୋଧର ପ୍ଲାବନକୁ ନିୟନ୍ତ୍ରଣ କରେ।
-
-### କମ୍ବୋ କୁଲ୍ଡାଉନ୍-ସଚେତନ ପୁନଃପ୍ରୟାସ
-
-ପ୍ରତ୍ୟେକ କମ୍ବୋ କୌଶଳ ପାଇଁ (ସକ୍ରିୟ ଥିବାବେଳେ), ଏକ ସ୍ୱଳ୍ପ ଅସ୍ଥାୟୀ କୁଲ୍ଡାଉନ୍ରେ
-429କୁ ଚୂଡ଼ାନ୍ତ କରିଦେଇଥାନ୍ତା ଏପରି ଅନୁରୋଧ, 429 ଫେରାଇବା ପରିବର୍ତ୍ତେ ଏହା ସମାପ୍ତ
-ହେବା ପର୍ଯ୍ୟନ୍ତ ଅପେକ୍ଷା କରେ ଏବଂ ପୁନଃ ଡିସ୍ପ୍ୟାଚ୍ ହୁଏ — ଏହା ବହୁ-ମଡେଲ୍ କମ୍ବୋରେ
-Gemini-ଶ୍ରେଣୀର TPM/RPM ୱିଣ୍ଡୋ (~60s retry-after)କୁ ଆବୃତ କରେ, ଯଥା 2-ମଡେଲ୍
-କମ୍ବୋର ଉଭୟ ଲକ୍ଷ୍ୟ ଗୋଟିଏ ପ୍ରତି-ମଡେଲ୍ ରେଟ୍ ସୀମାରେ ପହଞ୍ଚିବା।
-**ସେଟିଂସ୍ → ସହନଶୀଳତା**ରେ `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`,
-`budgetMs`) ଦ୍ୱାରା ଏହା ସୀମିତ। ଏହା `quota_exhausted` (ମଧ୍ୟରାତ୍ରି ପର୍ଯ୍ୟନ୍ତ ଲକ୍)
-କିମ୍ବା ପ୍ରାମାଣିକରଣ/ନ-ମିଳିବା କାରଣରେ କେବେବି ଅପେକ୍ଷା କରେ ନାହିଁ।
-
-ସମାନ ଗେଟ୍ ପ୍ରି-ଡିସ୍ପ୍ୟାଚ୍ ଘଟଣାକୁ ମଧ୍ୟ ଆବୃତ କରେ (#16319): ଯେତେବେଳେ କୌଣସି
-ପ୍ରୟାସ କରାଯିବା ପୂର୍ବରୁ କମ୍ବୋର ପ୍ରତ୍ୟେକ ଲକ୍ଷ୍ୟକୁ ଏଡ଼ାଇ ଦିଆଯାଏ, କାରଣ ତାହାର
-ମଡେଲ୍ ଏକ ସ୍ୱଳ୍ପ ଅସ୍ଥାୟୀ ଲକ୍ଆଉଟ୍ରେ ଅଛି, ସେତେବେଳେ ଶୂନ୍ୟ-ପ୍ରୟାସ ପଥ ସୂଚନାହୀନ
-`503 ALL_TARGETS_SKIPPED` ଉତ୍ତର ଦେବା ପରିବର୍ତ୍ତେ ସମାନ ସର୍ବୋଚ୍ଚ ସୀମା ଅଧୀନରେ
-ଲକ୍ ସମାପ୍ତ ହେବାକୁ ଅପେକ୍ଷା କରେ ଏବଂ ପୁନଃ ଡିସ୍ପ୍ୟାଚ୍ କରେ। ଯେତେବେଳେ ଅପେକ୍ଷା
-ଅନୁମୋଦିତ ନୁହେଁ (ସର୍ବୋଚ୍ଚ ସୀମା, ପ୍ରୟାସ କିମ୍ବା ବଜେଟ୍ ଶେଷ, କିମ୍ବା ବୈଶିଷ୍ଟ୍ୟ
-ବନ୍ଦ), ସେତେବେଳେ ଚୂଡ଼ାନ୍ତ ପ୍ରତିକ୍ରିୟା ସବୁଠାରୁ ପ୍ରଥମ ଅସ୍ଥାୟୀ ଲକ୍ର ମିଆଦ
-ସମାପ୍ତିରୁ `retry_after` / `reset_at` ବହନ କରୁଥିବା `429 rate_limit_error`କୁ
-ଉନ୍ନୀତ ହୁଏ; କୋଟା, ପ୍ରାମାଣିକରଣ ଏବଂ ନ-ମିଳିବା ଲକ୍ଗୁଡ଼ିକ ସୂଚନାହୀନ 503କୁ
-ବଜାୟ ରଖନ୍ତି।
+### କୋଟା-ସେୟାର ଅନୁରୋଧ କ୍ରମିକୀକରଣ।
+
+ଯେତେବେଳେ ଏକ କୋଟା-ସେୟାର ପ୍ରେରଣ ଏକ ସଂଯୋଗକୁ ଟାର୍ଗେଟ୍ କରେ ଯାହା ଏକ ସକାରାତ୍ମକ `max_concurrent` ଘୋଷଣା କରେ, ସେହି ସମୟରେ ଏକକାଳୀନ ଅନୁରୋଧ।** ଖାତା** ପ୍ରତି-ସଂଯୋଗ ସେମାଫୋର (କି `qsconn:`) ମାଧ୍ୟମରେ କ୍ରମିକ ହୋଇଛି: ଅତିରିକ୍ତ ଅନୁରୋଧ।** ଧାଡିରେ ଅପେକ୍ଷା କର।** ଖାତାକୁ ବନ୍ୟା କରିବା ପରିବର୍ତ୍ତେ। ଏହା ହେଉଛି।** ବିଫଳ-ଖୋଲା।** — ଏକ ପ୍ରେରିତ ଅନୁରୋଧକୁ ପ୍ରତ୍ୟାଖ୍ୟାନ କରିବା ପରିବର୍ତ୍ତେ ଏକ ସ୍ଲଟ୍ ବିନା ଏକ ସନ୍ତୁଳିତ ଧାଡି କିମ୍ବା ସମୟ ସମାପ୍ତି। ଟୋଗଲ୍ କରନ୍ତୁ।** ସେଟିଂସମୂହ → ସ୍ଥିରତା → ପ୍ରତି ସଂଯୋଗ ସମନ୍ୱୟ କୋଟା-ଅଂଶୀଦାର।** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, ଡିଫଲ୍ଟ ଅନ୍)। `max_concurrent` କ୍ୟାପ୍ ବିନା ଆଚରଣ ଅପରିବର୍ତ୍ତିତ।
+
+> କୋଟା-ସେୟାର ରାଉଟିଙ୍ଗ୍ ଗେଟ୍ (`selectQuotaShareTarget`, DRR + P2C) ନିଜେ ବିଫଳ-ଖୋଲା ଏବଂ କେବଳ _deprioritizes_ ଏକ-କ୍ୟାପ୍ କନେକ୍ସନ୍ — ସହିତ ଏକ-ସଂଯୋଗ ପୁଲ୍ ସହିତ ଏହା କଠିନ ସୀମା କରିପାରିବ ନାହିଁ, ତେଣୁ ଏହି ସେମାଫୋର ପ୍ରକୃତରେ ବନ୍ୟା ଧାରଣ କରିଥାଏ।
+
+### କମ୍ବୋ କୁଲଡାଉନ୍-ସଚେତନ ପୁନ ry ଚେଷ୍ଟା।
+
+ପ୍ରତ୍ୟେକ କମ୍ବୋ ରଣନୀତି ପାଇଁ (ଯେତେବେଳେ ସକ୍ଷମ ହୁଏ), ଏକ ଅନୁରୋଧ ଯାହାକି ଏକ SHORT କ୍ଷଣସ୍ଥାୟୀ କୁଲଡାଉନ୍ ପାଇଁ ଏକ 429 ସ୍ଫଟିକ୍ କରେ ଏବଂ ଏହାକୁ ଅପେକ୍ଷା କରିଥାଏ ଏବଂ 429 — ଫେରାଇବା ପରିବର୍ତ୍ତେ ପୁନ-ପଠାଇଥାଏ, ଏହା ମିଥୁନ-ଶ୍ରେଣୀ TPM/RPM ୱିଣ୍ଡୋକୁ (~ 60s ପୁନ ry ଚେଷ୍ଟା ପରେ) ମଲ୍ଟି-ମଡେଲ୍ କମ୍ବୋ ଉପରେ ଧାରଣ କରିଥାଏ, ଯଥା 2-ମଡେଲ୍ କମ୍ବୋ ପ୍ରତି ଟାର୍ଗେଟ୍ ପ୍ରତି ମଡେଲ୍ ହାରରେ। `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) ରେ ସୀମିତ।** ସେଟିଂସମୂହ → ସ୍ଥିରତା।** । ଏହା `quota_exhausted` (ମଧ୍ୟରାତ୍ରି ପର୍ଯ୍ୟନ୍ତ ଲକ୍) କିମ୍ବା auth/not-found କାରଣରୁ କେବେବି ଅପେକ୍ଷା କରେ ନାହିଁ।
+
+ଏକ କମ୍ବୋ `config.comboCooldownWaitEnabled: false` ସହିତ ଅପ୍ଟ ଆଉଟ୍ କରିପାରିବ। କେବଳ ଆକ୍ଷରିକ `false` ଏହି ଅଂଶୀଦାର କମ୍ବୋ ଅପେକ୍ଷା (ପୋଷ୍ଟ-ପଠାଇବା କୁଲଡାଉନ୍ ଏବଂ ପ୍ରି-ପଠାଇବା circuit-open/model-lock ଅପେକ୍ଷା) ଏବଂ ସେମାନଙ୍କର ଅପେକ୍ଷା-ବଜେଟ୍ ସମୟ ସମାପ୍ତ-ଚଟାଣ ବିସ୍ତାରକୁ ଅକ୍ଷମ କରିଥାଏ। ନିଖୋଜ କିମ୍ବା `true` ବିଶ୍ୱ ନୀତି ସଂରକ୍ଷଣ କରେ; `true` ସର୍ବଭାରତୀୟ ସ୍ତରରେ ଅକ୍ଷମତାକୁ ଅପେକ୍ଷା କରିପାରିବ ନାହିଁ। ଏକ ସ୍ପଷ୍ଟ `targetTimeoutMs` ତଥାପି ଜିତେ। ଏହି ଅପ୍ଟ-ଆଉଟ୍ ଅଲଗା ଦେଶୀ-କୋଡେକ୍ସ ଟର୍-ପିନ୍ ପ୍ରି-ପଠାଇବା ଅପେକ୍ଷା ପରିବର୍ତ୍ତନ କରେ ନାହିଁ।
+
+ସମାନ ଗେଟ୍ ପ୍ରି-ପଠାଇବା ମାମଲା (#16319) କୁ ଆବୃତ କରେ: ଯେତେବେଳେ କ com ଣସି ପ୍ରୟାସ କରିବା ପୂର୍ବରୁ କମ୍ବୋ ର ପ୍ରତ୍ୟେକ ଟାର୍ଗେଟ୍ ଏଡ଼ାଇ ଦିଆଯାଏ କାରଣ ଏହାର ମଡେଲ୍ ଏକ ସ୍ୱଳ୍ପ କ୍ଷଣସ୍ଥାୟୀ ଲକଆଉଟ୍ ରେ ବସିଥାଏ, ଶୂନ-ପ୍ରୟାସ ପଥ ସମାନ ଛାତ ତଳେ ଲକ୍କୁ ଅପେକ୍ଷା କରିଥାଏ ଏବଂ `503 ALL_TARGETS_SKIPPED` ଉତ୍ତର ଦେବା ପରିବର୍ତ୍ତେ ପୁନ-ପଠାଇଥାଏ। ଯେତେବେଳେ କ wait ଣସି ଅପେକ୍ଷାକୁ ଅନୁମତି ଦିଆଯାଏ ନାହିଁ (ଛାତ, ପ୍ରୟାସ କିମ୍ବା ବଜେଟ୍ କ୍ଳାନ୍ତ ହୋଇଯାଏ, କିମ୍ବା ବ feature ଶିଷ୍ଟ୍ୟ ବନ୍ଦ), ଟର୍ମିନାଲ୍ ପ୍ରତିକ୍ରିୟା `429 rate_limit_error` କୁ `retry_after` / `reset_at` ବହନ କରୁଥିବା ପ୍ରାଥମିକ କ୍ଷଣସ୍ଥାୟୀ ଲକ୍ ଅବଧିରୁ ଅପଗ୍ରେଡ୍ କରେ। କୋଟା, auth ଏବଂ ମିଳିନଥିବା ଲକ୍ଗୁଡ଼ିକ ସୂଚକ -350 ରଖେ।
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/or/docs/guides/USER_GUIDE.md b/docs/i18n/or/docs/guides/USER_GUIDE.md
index 831cf363689f..c1e64d154e37 100644
--- a/docs/i18n/or/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/or/docs/guides/USER_GUIDE.md
@@ -609,60 +609,60 @@ post_install() {
---
-## 📊 ଉପଲବ୍ଧ ମଡେଲ୍ଗୁଡ଼ିକ
+## 📊 ଉପଲବ୍ଧ ମଡେଲଗୁଡିକ।
-ସମସ୍ତ ଉପଲବ୍ଧ ମଡେଲ୍ ଦେଖନ୍ତୁ
+ସମସ୍ତ ଉପଲବ୍ଧ ମଡେଲଗୁଡିକ ଦେଖନ୍ତୁ।
-> ନିମ୍ନ ତାଲିକାଟି v3.8.0 ପାଇଁ `open-sse/config/providerRegistry.ts` ରୁ ସଂଗୃହୀତ । କ୍ଲାଉଡ୍ କାଟାଲଗ୍ଗୁଡ଼ିକ (Gemini, OpenRouter ଇତ୍ୟାଦି) ଡାଇନାମିକ୍ ଭାବରେ ସିଙ୍କ୍ ହୁଅନ୍ତି — ସମ୍ପୂର୍ଣ୍ଣ ଲାଇଭ୍ କାଟାଲଗ୍ ପାଇଁ **ଡ୍ୟାସବୋର୍ଡ → ପ୍ରୋଭାଇଡର → [provider] → ଉପଲବ୍ଧ ମଡେଲ୍ଗୁଡ଼ିକ** ଖୋଲନ୍ତୁ କିମ୍ବା `GET /api/models/catalog` କଲ୍ କରନ୍ତୁ ।
+> ନିମ୍ନରେ ଥିବା ତାଲିକା v3.8.0 ପାଇଁ `open-sse/config/providerRegistry.ts` ରୁ କ୍ୟୁରେଟ୍ ହୋଇଛି। କ୍ଲାଉଡ୍ କାଟାଲ୍ଗୁଡ଼ିକ (Gemini, OpenRouter, ଇତ୍ୟାଦି) ପୂର୍ଣ୍ଣ ଲାଇଭ୍ କାଟାଲଗ୍ ଖୋଲା ପାଇଁ ଗତିଶୀଳ ଭାବରେ — ସିଙ୍କ୍ ହୋଇଛି।** ଡ୍ୟାସବୋର୍ଡ → ପ୍ରଦାନକାରୀ → [ପ୍ରଦାନକାରୀ] → ଉପଲବ୍ଧ ମଡେଲଗୁଡିକ।** କିମ୍ବା `GET /api/models/catalog` କୁ କଲ୍ କରନ୍ତୁ।
>
-> ଯଦି କୌଣସି ପ୍ରୋଭାଇଡରର ବିଲ୍ଟ-ଇନ୍ ତାଲିକା ପରିବର୍ତ୍ତିତ ହୋଇଯାଇଛି, ତେବେ ଲାଇଭ୍ ଅପ୍ଷ୍ଟ୍ରିମ୍ କାଟାଲଗ୍ ଆଣିବା ପାଇଁ ସେହି ପୃଷ୍ଠାରେ **/models ରୁ ଆମଦାନୀ କରନ୍ତୁ** ବ୍ୟବହାର କରନ୍ତୁ (କିମ୍ବା **ଅଟୋ-ସିଙ୍କ** ସକ୍ଷମ କରନ୍ତୁ) । ଏହା v3.8.50 ରେ LLM7.io (`gemini-3.1-flash-lite`) ଏବଂ UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) ପାଇଁ ଯାଞ୍ଚ କରାଯାଇଥିଲା; ସମାନ ଟେଷ୍ଟ ପାସ୍ ସମୟରେ Pollinations ଅଜ୍ଞାତ ପ୍ରବେଶ (anonymous access) ଅପ୍ଷ୍ଟ୍ରିମ୍-ସୀମିତ ରହିଥିଲା ।
+> ଯଦି ଏକ ପ୍ରଦାନକାରୀଙ୍କର ବିଲ୍ଟ-ଇନ୍ ତାଲିକା ଖସିଯାଇଛି, ବ୍ୟବହାର କରନ୍ତୁ।** / ମଡେଲଗୁଡିକରୁ ଆମଦାନୀ କରନ୍ତୁ।** ସେହି ପୃଷ୍ଠାରେ (କିମ୍ବା ସକ୍ଷମ କରନ୍ତୁ।** ଅଟୋ-ସିଙ୍କ୍।** ଲାଇଭ୍ ଅପଷ୍ଟ୍ରିମ୍ କାଟାଲଗ୍ ଟାଣିବାକୁ। LLM7.io (`gemini-3.1-flash-lite`) ଏବଂ UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) ପାଇଁ v3.8.50 ରେ ଏହା ଯାଞ୍ଚ କରାଯାଇଥିଲା। ସମାନ ପରୀକ୍ଷା ପାସ୍ ସମୟରେ ପଲିଥିନ୍ ଅଜ୍ଞାତ ପ୍ରବେଶ ଅପଷ୍ଟ୍ରିମ୍-ସୀମିତ ରହିଲା।
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude କୋଡ୍ (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ ଏଫର୍ଟ ଟିଅର୍ଗୁଡ଼ିକ: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ ପ୍ରୟାସ ସ୍ତର: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — ମାଗଣା OAuth: **ଡ୍ୟାସବୋର୍ଡ → ପ୍ରୋଭାଇଡର → Kiro → ଉପଲବ୍ଧ ମଡେଲ୍ଗୁଡ଼ିକ** ଅଧୀନରେ ଦେଖାଯାଉଥିବା ଲାଇଭ୍ କାଟାଲଗ୍ ବ୍ୟବହାର କରନ୍ତୁ । ଉପଲବ୍ଧତା ଆକାଉଣ୍ଟ ଏବଂ ପ୍ଲାନ୍ ଉପରେ ନିର୍ଭର କରେ ।
+**Kiro (`kr/`)** — FREE OAuth: ତଳେ ଦେଖାଯାଇଥିବା ଲାଇଭ୍ କାଟାଲଗ୍ ବ୍ୟବହାର କରନ୍ତୁ।** ଡ୍ୟାସବୋର୍ଡ → ପ୍ରଦାନକାରୀ → Kiro → ଉପଲବ୍ଧ ମଡେଲଗୁଡିକ।** । ଉପଲବ୍ଧତା ଖାତା ଏବଂ ଯୋଜନା ଉପରେ ନିର୍ଭର କରେ।
-**Qoder (`if/`)** — ମାଗଣା OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/ମାସ ଫ୍ଲାଟ୍ କିମ୍ବା ପ୍ରତି-ବ୍ୟବହାର: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo ଫ୍ଲାଟ କିମ୍ବା ପ୍ରତି ବ୍ୟବହାର: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — API key: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API କି: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — ଅତ୍ୟନ୍ତ ଦ୍ରୁତ: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — ଅଲ୍ଟ୍ରା-ଫାଷ୍ଟ: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok ନେଟିଭ୍: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok ଦେଶୀ: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU-ହୋଷ୍ଟେଡ୍: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU- ହୋଷ୍ଟ: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — ସର୍ଚ୍ଚ-ଅଗ୍ମେଣ୍ଟେଡ୍: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**ବିଚଳିତତା (`pplx/`)** — ସନ୍ଧାନ-ବୃଦ୍ଧି: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — ଓପନ୍-ସୋର୍ସ୍: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ମାଗଣା), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — ମୁକ୍ତ ଉତ୍ସ: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ମାଗଣା), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — ଦ୍ରୁତ ଇନଫରେନ୍ସ: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — ଦ୍ରୁତ ସୂଚନା: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — ୱେଫର୍-ସ୍କେଲ୍: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — ୱାଫର୍-ସ୍କେଲ୍: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — RAG-ଫୋକସ୍ଡ: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG- କେନ୍ଦ୍ରିତ: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
**NVIDIA NIM (`nvidia/`)** — ଏଣ୍ଟରପ୍ରାଇଜ୍: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama କ୍ଲାଉଡ୍ (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Google ରୁ ପ୍ରତି API key ଅନୁଯାୟୀ ଲାଇଭ୍ ସିଙ୍କ୍ ହୁଏ — କୌଣସି ସ୍ଥିର ତାଲିକା ନାହିଁ । **ଡ୍ୟାସବୋର୍ଡ → ପ୍ରୋଭାଇଡର** ରେ ଏକ key ସଂଯୋଗ କରନ୍ତୁ ଏବଂ ତାପରେ ବର୍ତ୍ତମାନର କାଟାଲଗ୍ ଆମଦାନୀ କରିବାକୁ **ଉପଲବ୍ଧ ମଡେଲ୍ଗୁଡ଼ିକ** ବ୍ୟବହାର କରନ୍ତୁ (ଉଦାହରଣ `gemini/gemini-3-pro`, `gemini/gemini-3-flash`) ।
+**Gemini (Google କ୍ଲାଉଡ୍ `gemini/`)** : Google — ରୁ କ stat ଣସି ଷ୍ଟାଟିକ୍ ତାଲିକାରୁ API କି ପ୍ରତି ଲାଇଭ୍ ସିଙ୍କ୍ ହୋଇଛି। ଏକ ଚାବି ସଂଯୋଗ କରନ୍ତୁ।** ଡ୍ୟାସବୋର୍ଡ → ପ୍ରଦାନକାରୀ।** ତାପରେ ବ୍ୟବହାର କରନ୍ତୁ।** ଉପଲବ୍ଧ ମଡେଲଗୁଡିକ।** ସାମ୍ପ୍ରତିକ କାଟାଲଗ୍ ଆମଦାନି କରିବାକୁ (ଯଥା `gemini/gemini-3-pro`, `gemini/gemini-3-flash`)।
-**ଅନ୍ୟାନ୍ୟ ସୁସଙ୍ଗତ ପ୍ରୋଭାଇଡର** (ମନୋନୀତ): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (`aws-bedrock` ମାଧ୍ୟମରେ), `azure-ai`, `openrouter` (ପାସ୍ଥ୍ରୁ କାଟାଲଗ୍), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat` । ପ୍ରତ୍ୟେକ `providerRegistry.ts` ରେ ନିଜର ମଡେଲ୍ ତାଲିକା ରକ୍ଷଣାବେକ୍ଷଣ କରେ ଏବଂ ପ୍ରୋଭାଇଡର `/models` ଏଣ୍ଡପଏଣ୍ଟ ପ୍ରଦାନ କଲେ ଅଟୋ-ସିଙ୍କ୍ ହୋଇପାରେ ।
+**ଅନ୍ୟ ସୁସଙ୍ଗତ ପ୍ରଦାନକାରୀ।** `featherless-ai` `bazaarlink` `scaleway` `ai21` `cohere` `gigachat` `databricks` `aws-bedrock` `snowflake`, `together` `volcengine` `vertex` `azure-ai` `alibaba-cn` `reka` `hyperbolic` `siliconflow` `openrouter` `huggingface` `friendliai` `nous-research` `deepinfra` `cloudflare-ai` `alibaba` `bedrock` `vercel-ai-gateway` ପ୍ରତ୍ୟେକ `providerRegistry.ts` ରେ ନିଜର ମଡେଲ୍ ତାଲିକା ବଜାୟ ରଖନ୍ତି ଏବଂ ଯେତେବେଳେ ପ୍ରଦାନକାରୀ ଏକ `/models` ଶେଷ ପଏଣ୍ଟ ପ୍ରକାଶ କରନ୍ତି ସେତେବେଳେ ଅଟୋ-ସିଙ୍କ୍ ହୋଇପାରେ।
-**ମଡେଲ୍ ID ସମ୍ପର୍କରେ ଟିପ୍ପଣୀ:** OmniRoute ପ୍ରୋଭାଇଡର-ନେଟିଭ୍ ID ବ୍ୟବହାର କରେ (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`) । କିଛି ID ରେ ଡଟେଡ୍ ଭର୍ସନ୍ ଥାଏ କାରଣ ଅପ୍ଷ୍ଟ୍ରିମ୍ API ସେହିପରି ଆଶା କରେ । ଯଦି କୌଣସି ମଡେଲ୍ ଉପରେ ତାଲିକାଭୁକ୍ତ ନାହିଁ, ତେବେ `omniroute models --search ` ଚଲାନ୍ତୁ କିମ୍ବା ଉପଲବ୍ଧତା ନିଶ୍ଚିତ କରିବାକୁ `GET /api/models/catalog` କଲ୍ କରନ୍ତୁ ।
+**ମଡେଲ୍ IDs ଉପରେ ଟିପ୍ପଣୀ:** OmniRoute ପ୍ରଦାନକାରୀ-ଦେଶୀ IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`) ବ୍ୟବହାର କରେ। କିଛି IDs ବିନ୍ଦୁ ସଂସ୍କରଣ ଅନ୍ତର୍ଭୂକ୍ତ କରେ କାରଣ ଅପଷ୍ଟ୍ରିମ୍ API ସେମାନଙ୍କୁ ଆଶା କରେ। ଯଦି ଏକ ମଡେଲ୍ ଉପରେ ତାଲିକାଭୁକ୍ତ ହୋଇନାହିଁ, ଉପଲବ୍ଧତାକୁ ନିଶ୍ଚିତ କରିବାକୁ `omniroute models --search ` ଚଲାନ୍ତୁ କିମ୍ବା `GET /api/models/catalog` ଦବାନ୍ତୁ।
diff --git a/docs/i18n/pa/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/pa/docs/architecture/RESILIENCE_GUIDE.md
index 515c42ece5d6..844fee74052c 100644
--- a/docs/i18n/pa/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/pa/docs/architecture/RESILIENCE_GUIDE.md
@@ -253,17 +253,17 @@ UI: ਨਿਗਰਾਨੀ → ਕੂਲਡਾਊਨ ਮੈਨੇਜਰ (`src/app
---
-## 4. ਕੋਟਾ-ਸ਼ੇਅਰ ਸਮਕਾਲੀਕਤਾ ਨਿਯੰਤਰਣ (v3.8.36)
+## 4. ਕੋਟਾ-ਸ਼ੇਅਰ ਕਰੰਸੀ ਕੰਟਰੋਲ (v3.8.36)
-ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਖਾਤੇ (GLM, MiniMax ਆਦਿ) ਅਕਸਰ ਸਿਰਫ਼ ~1–3 ਸਮਕਾਲੀ ਬੇਨਤੀਆਂ ਸਵੀਕਾਰ ਕਰਦੇ ਹਨ; ਇਸ ਤੋਂ ਵੱਧ ਜਾਣ ਨਾਲ 429 ਅਤੇ ਕੂਲਡਾਊਨ ਟ੍ਰਿਗਰ ਹੋ ਜਾਂਦੇ ਹਨ। ਇਹ ਸਮੱਸਿਆ **ਕੋਟਾ-ਸ਼ੇਅਰ** (`qtSd/…`) ਕੌਮਬੋਜ਼ ਹੇਠ ਖਾਸ ਤੀਬਰ ਹੁੰਦੀ ਹੈ, ਜਿੱਥੇ ਕਈ API ਕੁੰਜੀਆਂ ਇੱਕੋ ਅੱਪਸਟ੍ਰੀਮ ਖਾਤਾ ਸਾਂਝਾ ਕਰਦੀਆਂ ਹਨ। ਤਿੰਨ ਪੱਧਰ ਸਾਂਝੇ ਖਾਤੇ ਨੂੰ ਹੜ੍ਹ ਆਉਣ ਤੋਂ ਬਚਾਉਂਦੇ ਹਨ।
+ਗਾਹਕੀ ਖਾਤੇ (GLM, MiniMax, ਆਦਿ) ਅਕਸਰ ਸਿਰਫ਼ ~ 1–3 ਸਮਕਾਲੀ ਬੇਨਤੀਆਂ ਨੂੰ ਸਵੀਕਾਰ ਕਰਦੇ ਹਨ; ਇਸ ਤੋਂ ਵੱਧ ਜਾਣਾ 429 ਅਤੇ ਕੂਲਡਾਊਨ ਨੂੰ ਚਾਲੂ ਕਰਦਾ ਹੈ। ਇਹ ਹੇਠ ਗੰਭੀਰ ਹੈ** ਕੋਟਾ-ਸ਼ੇਅਰ** (`qtSd/…`) ਕੰਬੋਜ਼, ਜਿੱਥੇ ਕਈ API ਕੁੰਜੀਆਂ ਇੱਕ ਅੱਪਸਟਰੀਮ ਖਾਤੇ ਨੂੰ ਸਾਂਝਾ ਕਰਦੀਆਂ ਹਨ। ਤਿੰਨ ਪਰਤਾਂ ਇੱਕ ਸਾਂਝੇ ਖਾਤੇ ਨੂੰ ਹੜ੍ਹਾਂ ਤੋਂ ਬਚਾਉਂਦੀਆਂ ਹਨ।
-### ਪ੍ਰਤੀ-ਕਨੈਕਸ਼ਨ ਸਮਕਾਲੀਕਤਾ ਸੀਮਾ (`max_concurrent`)
+### ਪ੍ਰਤੀ-ਕੁਨੈਕਸ਼ਨ ਸਮਕਾਲੀ ਕੈਪ (`max_concurrent`)
-ਹਰ ਪ੍ਰੋਵਾਈਡਰ ਕਨੈਕਸ਼ਨ ਇੱਕ `max_concurrent` ਸੀਮਾ ਘੋਸ਼ਿਤ ਕਰ ਸਕਦਾ ਹੈ (`provider_connections.max_concurrent`, ਕਨੈਕਸ਼ਨ ਮੋਡਲ / API / DB ਵਿੱਚ ਸੈੱਟ ਕੀਤੀ ਗਈ)। ਬਿਨਾਂ ਸੀਮਾ ਲਈ ਇਸਨੂੰ ਖਾਲੀ ਛੱਡੋ। ਇਹੀ ਇਕੱਲੀ ਨੋਬ ਹੈ ਜੋ ਹੇਠਲੀ ਸੀਰੀਅਲਾਈਜ਼ੇਸ਼ਨ ਪਰਤ ਨੂੰ ਚਲਾਉਂਦੀ ਹੈ — ਇਸਨੂੰ ਖਾਤੇ ਦੀ ਅਸਲ ਸਮਕਾਲੀਕਤਾ 'ਤੇ ਸੈੱਟ ਕਰੋ (ਉਦਾਹਰਨ GLM ~1, MiniMax ~2)।
+ਹਰੇਕ ਪ੍ਰਦਾਤਾ ਕਨੈਕਸ਼ਨ ਇੱਕ `max_concurrent` ਸੀਲਿੰਗ (`provider_connections.max_concurrent`, ਕਨੈਕਸ਼ਨ ਮਾਡਲ / API / DB ਵਿੱਚ ਸੈੱਟ) ਘੋਸ਼ਿਤ ਕਰ ਸਕਦਾ ਹੈ। ਇਸ ਨੂੰ ਬਿਨਾਂ ਕਿਸੇ ਸੀਮਾ ਦੇ ਖਾਲੀ ਛੱਡੋ। ਇਹ ਉਹ ਸਿੰਗਲ ਨੋਬ ਹੈ ਜੋ — ਦੇ ਹੇਠਾਂ ਸੀਰੀਅਲਾਈਜ਼ੇਸ਼ਨ ਲੇਅਰ ਨੂੰ ਚਲਾਉਂਦਾ ਹੈ ਅਤੇ ਇਸਨੂੰ ਖਾਤੇ ਦੀ ਅਸਲ ਸਮਰੂਪਤਾ (ਜਿਵੇਂ ਕਿ GLM ~ 1, MiniMax ~ 2) 'ਤੇ ਸੈੱਟ ਕਰਦਾ ਹੈ।
-### ਪ੍ਰਤੀ-ਮਾਡਲ ਸਮਕਾਲੀਕਤਾ ਸੀਮਾਵਾਂ (`modelConcurrency`)
+### ਪ੍ਰਤੀ-ਮਾਡਲ ਸਮਕਾਲੀ ਕੈਪਸ (`modelConcurrency`)
-ਇੱਕ ਕਨੈਕਸ਼ਨ ਆਪਣੇ `rateLimitOverrides` ਮੈਪ ਦੇ ਅੰਦਰ ਸਟੀਕ ਪ੍ਰਤੀ-ਮਾਡਲ ਸਮਕਾਲੀਕਤਾ ਸੀਮਾਵਾਂ ਵੀ ਘੋਸ਼ਿਤ ਕਰ ਸਕਦਾ ਹੈ:
+ਇੱਕ ਕੁਨੈਕਸ਼ਨ ਇਸਦੇ `rateLimitOverrides` ਨਕਸ਼ੇ ਦੇ ਅੰਦਰ ਪ੍ਰਤੀ-ਮਾਡਲ ਕਨਕਰੰਸੀ ਸੀਲਿੰਗ ਨੂੰ ਵੀ ਘੋਸ਼ਿਤ ਕਰ ਸਕਦਾ ਹੈ:
```json
{
@@ -274,13 +274,13 @@ UI: ਨਿਗਰਾਨੀ → ਕੂਲਡਾਊਨ ਮੈਨੇਜਰ (`src/app
}
```
-ਇਸਨੂੰ ਕਨੈਕਸ਼ਨ ਮੋਡਲ ਵਿੱਚ ਸੈੱਟ ਕਰੋ (**ਰੇਟ ਲਿਮਿਟ ਓਵਰਰਾਈਡਜ਼ → ਪ੍ਰਤੀ-ਮਾਡਲ ਸਮਕਾਲੀਕਤਾ ਸੀਮਾਵਾਂ**, ਹਰ ਲਾਈਨ ਵਿੱਚ ਇੱਕ `model=cap`) ਜਾਂ ਉਸੇ JSON ਆਕਾਰ ਨਾਲ `PATCH /api/providers/[id]` ਰਾਹੀਂ। ਮੁੱਖ ਭਾਵਾਰਥ:
+ਇਸਨੂੰ ਕੁਨੈਕਸ਼ਨ ਮੋਡਲ ਵਿੱਚ ਸੈੱਟ ਕਰੋ (** ਦਰ ਸੀਮਾ → ਪ੍ਰਤੀ-ਮਾਡਲ ਸਮਕਾਲੀ ਕੈਪਸ ਨੂੰ ਓਵਰਰਾਈਡ ਕਰਦੀ ਹੈ** , ਇੱਕ `model=cap` ਪ੍ਰਤੀ ਲਾਈਨ) ਜਾਂ ਉਸੇ JSON ਆਕਾਰ ਦੇ ਨਾਲ `PATCH /api/providers/[id]` ਰਾਹੀਂ। ਮੁੱਖ ਅਰਥ ਵਿਗਿਆਨ:
-- **ਕਨੈਕਸ਼ਨ-ਵਿਆਪੀ ਬਨਾਮ ਮਾਡਲ-ਵਿਸ਼ੇਸ਼:** `maxConcurrent` ਸਾਂਝੀ ਕਨੈਕਸ਼ਨ-ਵਿਆਪੀ ਸੀਮਾ ਬਣੀ ਰਹਿੰਦੀ ਹੈ। ਜਦੋਂ ਦੋਵੇਂ ਲਾਗੂ ਹੁੰਦੇ ਹਨ, ਦੋਵੇਂ ਗੇਟ ਇੱਕੋ ਮਿਸ਼ਰਿਤ ਗੇਟ (`global → provider → account → model`) ਵਿੱਚ ਐਟੋਮਿਕ ਤੌਰ 'ਤੇ ਪ੍ਰਾਪਤ ਕੀਤੇ ਜਾਂਦੇ ਹਨ; ਪ੍ਰਭਾਵੀ ਵਿਵਹਾਰ ਵੱਧ ਸਖ਼ਤ ਲਾਗੂ ਸੀਮਾ ਹੁੰਦਾ ਹੈ।
-- **ਸਟੀਕ ਮਾਡਲ-ਕੁੰਜੀ ਮੈਚ:** ਕੁੰਜੀ ਉਹ ਮਾਡਲ ਸਟ੍ਰਿੰਗ ਹੈ ਜੋ ਰੂਟਿੰਗ ਰੈਜ਼ੋਲਿਊਸ਼ਨ ਤੋਂ ਬਾਅਦ ਐਗਜ਼ੈਕਿਊਟਰ ਨੂੰ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ — ਆਮ ਤੌਰ 'ਤੇ ਸਾਦੀ ਅੱਪਸਟ੍ਰੀਮ ਮਾਡਲ ਆਈਡੀ (`glm-5`), ਨਾ ਕਿ ਕਲਾਇੰਟ-ਸਾਈਡ `provider/model` ਉਪਨਾਮ (`zai/glm-5`, `glm-5` ਨਾਲ ਮੈਚ ਨਹੀਂ ਕਰਦਾ)। ਮੁੱਲ ਧਨਾਤਮਕ-ਪੂਰਨਸੰਖਿਆ ਸਮਕਾਲੀ-ਬੇਨਤੀ ਸੀਮਾਵਾਂ ਹਨ।
-- **ਸਥਾਨਕ ਕਤਾਰਬੱਧੀ, ਕੋਈ ਖੋਜ ਨਹੀਂ:** ਵਾਧੂ ਬੇਨਤੀਆਂ ਮੌਜੂਦਾ ਕਤਾਰ/ਟਾਈਮਆਉਟ ਭਾਵਾਰਥ ਨਾਲ ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਕਤਾਰ ਵਿੱਚ ਲੱਗਦੀਆਂ ਹਨ (ਟਾਈਪਡ `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ਦਾਖਲਾ ਤਰੁੱਟੀਆਂ)। OmniRoute ਅੱਪਸਟ੍ਰੀਮ ਨੀਤੀ ਦੀ ਖੋਜ ਜਾਂ ਅਨੁਮਾਨ ਨਹੀਂ ਲਗਾਉਂਦਾ — ਇਹ ਓਪਰੇਟਰ ਦੁਆਰਾ ਕੌਨਫਿਗਰ ਕੀਤੀਆਂ ਸਟੀਕ ਸੀਮਾਵਾਂ ਲਾਗੂ ਕਰਦਾ ਹੈ। ਸੰਤ੍ਰਿਪਤ ਮਾਡਲ ਗੇਟ ਕਦੇ ਵੀ ਪ੍ਰੋਵਾਈਡਰ ਨੂੰ ਅਸਮਰੱਥ ਨਹੀਂ ਕਰਦਾ ਅਤੇ ਕਦੇ ਵੀ ਸਥਾਈ ਮਾਡਲ ਲੌਕਆਉਟ ਨਹੀਂ ਬਣਾਉਂਦਾ; ਅੱਪਸਟ੍ਰੀਮ 429/ਕੂਲਡਾਊਨ/ਫੌਲਬੈਕ ਵਿਵਹਾਰ ਤਰੁੱਟੀ ਬੈਕਸਟਾਪ ਬਣਿਆ ਰਹਿੰਦਾ ਹੈ।
-- **ਪ੍ਰਤੀ-ਕਨੈਕਸ਼ਨ, ਪ੍ਰਤੀ-ਪ੍ਰਕਿਰਿਆ ਦਾਇਰਾ:** ਸੀਮਾਵਾਂ ਪ੍ਰਤੀ ਡਾਟਾਬੇਸ ਕਨੈਕਸ਼ਨ ਹੁੰਦੀਆਂ ਹਨ ਅਤੇ ਇਨ-ਮੈਮੋਰੀ ਰੱਖੀਆਂ ਜਾਂਦੀਆਂ ਹਨ, ਇਸ ਲਈ ਇੱਕੋ ਅੱਪਸਟ੍ਰੀਮ API ਕੁੰਜੀ ਦੀ ਮੁੜ-ਵਰਤੋਂ ਕਰਨ ਵਾਲੇ ਦੋ ਕਨੈਕਸ਼ਨ ਆਪਸ ਵਿੱਚ ਤਾਲਮੇਲ ਨਹੀਂ ਕਰਦੇ।
-- **ਬਿਨਾਂ-ਕੌਨਫਿਗਰੇਸ਼ਨ ਦਾ ਮਤਲਬ ਅਪਰਿਵਰਤਿਤ:** ਮੈਪ ਛੱਡ ਦੇਣਾ (ਜਾਂ ਡੈਸ਼ਬੋਰਡ ਫ਼ੀਲਡ ਖਾਲੀ ਛੱਡ ਦੇਣਾ) ਕੋਈ ਮਾਡਲ ਗੇਟ ਨਹੀਂ ਜੋੜਦਾ। ਕਿਸੇ ਵੀ ਸਰਬ-ਵਿਆਪੀ ਪ੍ਰੋਵਾਈਡਰ ਸੀਮਾ ਦਾ ਦਾਅਵਾ ਕੀਤੇ ਬਿਨਾਂ ਉਦਾਹਰਨ ਕੌਨਫਿਗਰੇਸ਼ਨ:
+- **ਕਨੈਕਸ਼ਨ-ਵਿਆਪਕ ਬਨਾਮ ਮਾਡਲ-ਵਿਸ਼ੇਸ਼:** `maxConcurrent` ਸਾਂਝਾ ਕੁਨੈਕਸ਼ਨ-ਵਿਆਪਕ ਛੱਤ ਬਣਿਆ ਹੋਇਆ ਹੈ। ਜਦੋਂ ਦੋਵੇਂ ਲਾਗੂ ਹੁੰਦੇ ਹਨ, ਦੋਵੇਂ ਗੇਟ ਇੱਕੋ ਸੰਯੁਕਤ ਗੇਟ (`global → provider → account → model`) ਵਿੱਚ ਪ੍ਰਮਾਣੂ ਰੂਪ ਵਿੱਚ ਪ੍ਰਾਪਤ ਕੀਤੇ ਜਾਂਦੇ ਹਨ; ਪ੍ਰਭਾਵੀ ਵਿਵਹਾਰ ਸਖਤ ਲਾਗੂ ਸੀਮਾ ਹੈ।
+- **ਸਟੀਕ ਮਾਡਲ-ਕੁੰਜੀ ਮੇਲ:** ਕੁੰਜੀ ਉਹ ਮਾਡਲ ਸਤਰ ਹੈ ਜੋ ਐਗਜ਼ੀਕਿਊਟਰ ਨੂੰ ਰੈਜ਼ੋਲਿਊਸ਼ਨ — ਨੂੰ ਰਾਊਟਿੰਗ ਕਰਨ ਤੋਂ ਬਾਅਦ ਪਾਸ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਆਮ ਤੌਰ 'ਤੇ ਬੇਅਰ ਅੱਪਸਟ੍ਰੀਮ ਮਾਡਲ ਆਈ.ਡੀ. (`glm-5`), ਕਲਾਇੰਟ-ਸਾਈਡ `provider/model` ਉਰਫ (`zai/glm-5` `glm-5` ਨਾਲ ਮੇਲ ਨਹੀਂ ਖਾਂਦਾ)। ਮੁੱਲ ਸਕਾਰਾਤਮਕ-ਪੂਰਨ ਅੰਕ ਸਮਕਾਲੀ-ਬੇਨਤੀ ਸੀਲਿੰਗ ਹਨ।
+- **ਸਥਾਨਕ ਕਤਾਰਬੰਦੀ, ਕੋਈ ਖੋਜ ਨਹੀਂ:** ਮੌਜੂਦਾ queue/timeout ਅਰਥ ਵਿਗਿਆਨ (ਟਾਈਪ ਕੀਤੀਆਂ `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ਦਾਖਲਾ ਗਲਤੀਆਂ) ਦੇ ਨਾਲ ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਵਾਧੂ ਬੇਨਤੀਆਂ ਦੀ ਕਤਾਰ ਹੈ। OmniRoute ਅਪਸਟ੍ਰੀਮ ਨੀਤੀ ਦੀ ਖੋਜ ਜਾਂ ਅਨੁਮਾਨ ਨਹੀਂ ਲਗਾਉਂਦਾ — ਇਹ ਓਪਰੇਟਰ ਦੁਆਰਾ ਕੌਂਫਿਗਰ ਕੀਤੀ ਗਈ ਸਹੀ ਸੀਲਿੰਗ ਨੂੰ ਲਾਗੂ ਕਰਦਾ ਹੈ। ਇੱਕ ਸੰਤ੍ਰਿਪਤ ਮਾਡਲ ਗੇਟ ਕਦੇ ਵੀ ਪ੍ਰਦਾਤਾ ਨੂੰ ਅਯੋਗ ਨਹੀਂ ਕਰਦਾ ਅਤੇ ਕਦੇ ਵੀ ਸਥਾਈ ਮਾਡਲ ਲਾਕਆਊਟ ਨਹੀਂ ਬਣਾਉਂਦਾ; ਅੱਪਸਟ੍ਰੀਮ 429/cooldown/fallback ਵਿਵਹਾਰ ਗਲਤੀ ਬੈਕਸਟੌਪ ਰਹਿੰਦਾ ਹੈ।
+- **ਪ੍ਰਤੀ-ਕੁਨੈਕਸ਼ਨ, ਪ੍ਰਤੀ-ਪ੍ਰਕਿਰਿਆ ਦਾ ਘੇਰਾ:** ਕੈਪਸ ਪ੍ਰਤੀ ਡਾਟਾਬੇਸ ਕੁਨੈਕਸ਼ਨ ਹੁੰਦੇ ਹਨ ਅਤੇ ਮੈਮੋਰੀ ਵਿੱਚ ਰੱਖੇ ਜਾਂਦੇ ਹਨ, ਇਸਲਈ ਇੱਕੋ ਅੱਪਸਟ੍ਰੀਮ API ਕੁੰਜੀ ਦੀ ਮੁੜ ਵਰਤੋਂ ਕਰਨ ਵਾਲੇ ਦੋ ਕੁਨੈਕਸ਼ਨ ਇੱਕ ਦੂਜੇ ਨਾਲ ਤਾਲਮੇਲ ਨਹੀਂ ਕਰਦੇ।
+- **ਗੈਰ-ਸੰਰਚਨਾ ਦਾ ਮਤਲਬ ਬਦਲਿਆ ਨਹੀਂ ਹੈ:** ਨਕਸ਼ੇ ਨੂੰ ਛੱਡਣਾ (ਜਾਂ ਡੈਸ਼ਬੋਰਡ ਖੇਤਰ ਨੂੰ ਖਾਲੀ ਛੱਡਣਾ) ਕੋਈ ਮਾਡਲ ਗੇਟ ਨਹੀਂ ਜੋੜਦਾ ਹੈ। ਕਿਸੇ ਵੀ ਯੂਨੀਵਰਸਲ ਪ੍ਰਦਾਤਾ ਸੀਮਾ ਦਾ ਦਾਅਵਾ ਕੀਤੇ ਬਿਨਾਂ ਉਦਾਹਰਨ ਕੌਂਫਿਗਰੇਸ਼ਨ:
```text
glm-5=1
@@ -289,15 +289,17 @@ glm-4.7=3
### ਕੋਟਾ-ਸ਼ੇਅਰ ਬੇਨਤੀ ਸੀਰੀਅਲਾਈਜ਼ੇਸ਼ਨ
-ਜਦੋਂ ਕੋਈ ਕੋਟਾ-ਸ਼ੇਅਰ ਡਿਸਪੈਚ ਅਜਿਹੇ ਕਨੈਕਸ਼ਨ ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਉਂਦਾ ਹੈ ਜੋ ਧਨਾਤਮਕ `max_concurrent` ਘੋਸ਼ਿਤ ਕਰਦਾ ਹੈ, ਉਸ **ਖਾਤੇ** ਵੱਲ ਸਮਕਾਲੀ ਬੇਨਤੀਆਂ ਇੱਕ ਪ੍ਰਤੀ-ਕਨੈਕਸ਼ਨ ਸੈਮਾਫੋਰ (ਕੁੰਜੀ `qsconn:`) ਰਾਹੀਂ ਸੀਰੀਅਲਾਈਜ਼ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ: ਵਾਧੂ ਬੇਨਤੀਆਂ ਖਾਤੇ 'ਤੇ ਹੜ੍ਹ ਪਾਉਣ ਦੀ ਬਜਾਏ **ਕਤਾਰ ਵਿੱਚ ਉਡੀਕ ਕਰਦੀਆਂ ਹਨ**। ਇਹ **ਫੇਲ-ਓਪਨ** ਹੈ — ਸੰਤ੍ਰਿਪਤ ਕਤਾਰ ਜਾਂ ਟਾਈਮਆਉਟ ਬਿਨਾਂ ਸਲਾਟ ਦੇ ਅੱਗੇ ਵਧ ਜਾਂਦਾ ਹੈ, ਕਿਸੇ ਵੀ ਡਿਸਪੈਚਯੋਗ ਬੇਨਤੀ ਨੂੰ ਕਦੇ ਰੱਦ ਨਹੀਂ ਕਰਦਾ। **ਸੈਟਿੰਗਜ਼ → ਰੈਜ਼ੀਲੀਅਂਸ → ਕੋਟਾ-ਸ਼ੇਅਰ ਪ੍ਰਤੀ-ਕਨੈਕਸ਼ਨ ਸਮਕਾਲੀਕਤਾ** ਵਿੱਚ ਟੌਗਲ ਕਰੋ (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, ਡਿਫੌਲਟ ਚਾਲੂ)। ਬਿਨਾਂ `max_concurrent` ਸੀਮਾ ਦੇ ਵਿਵਹਾਰ ਅਪਰਿਵਰਤਿਤ ਰਹਿੰਦਾ ਹੈ।
+ਜਦੋਂ ਇੱਕ ਕੋਟਾ-ਸ਼ੇਅਰ ਡਿਸਪੈਚ ਇੱਕ ਕੁਨੈਕਸ਼ਨ ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਉਂਦਾ ਹੈ ਜੋ ਇੱਕ ਸਕਾਰਾਤਮਕ `max_concurrent` ਘੋਸ਼ਿਤ ਕਰਦਾ ਹੈ, ਉਸ ਲਈ ਸਮਕਾਲੀ ਬੇਨਤੀਆਂ** ਖਾਤਾ** ਪ੍ਰਤੀ-ਕੁਨੈਕਸ਼ਨ ਸੈਮਾਫੋਰ (ਕੁੰਜੀ `qsconn:`) ਦੁਆਰਾ ਲੜੀਬੱਧ ਕੀਤੇ ਜਾਂਦੇ ਹਨ: ਵਾਧੂ ਬੇਨਤੀਆਂ** ਕਤਾਰ ਵਿੱਚ ਉਡੀਕ ਕਰੋ** ਖਾਤੇ ਨੂੰ ਭਰਨ ਦੀ ਬਜਾਏ. ਇਹ ਹੈ** ਫੇਲ-ਓਪਨ** — ਇੱਕ ਸੰਤ੍ਰਿਪਤ ਕਤਾਰ ਜਾਂ ਸਮਾਂ ਸਮਾਪਤੀ ਇੱਕ ਸਲਾਟ ਤੋਂ ਬਿਨਾਂ ਅੱਗੇ ਵਧਦੀ ਹੈ ਨਾ ਕਿ ਕਿਸੇ ਡਿਸਪੈਚ ਕਰਨ ਯੋਗ ਬੇਨਤੀ ਨੂੰ ਰੱਦ ਕਰਨ ਦੀ ਬਜਾਏ। ਵਿੱਚ ਟੌਗਲ ਕਰੋ** ਸੈਟਿੰਗਾਂ → ਲਚਕੀਲਾਪਨ → ਕੋਟਾ-ਸ਼ੇਅਰ ਪ੍ਰਤੀ-ਕੁਨੈਕਸ਼ਨ ਸਮਰੂਪਤਾ** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, ਡਿਫਾਲਟ ਚਾਲੂ)। `max_concurrent` ਕੈਪ ਤੋਂ ਬਿਨਾਂ ਵਿਵਹਾਰ ਬਦਲਿਆ ਨਹੀਂ ਹੈ।
-> ਕੋਟਾ-ਸ਼ੇਅਰ ਰੂਟਿੰਗ ਗੇਟ (`selectQuotaShareTarget`, DRR + P2C) ਆਪਣੇ ਆਪ ਵਿੱਚ ਫੇਲ-ਓਪਨ ਹੈ ਅਤੇ ਸੀਮਾ-ਪੂਰੇ ਕਨੈਕਸ਼ਨ ਨੂੰ ਸਿਰਫ਼ _ਘੱਟ ਤਰਜੀਹ_ ਦਿੰਦਾ ਹੈ — ਇੱਕਲ-ਕਨੈਕਸ਼ਨ ਪੂਲ ਨਾਲ ਇਹ ਹਾਰਡ-ਲਿਮਿਟ ਨਹੀਂ ਕਰ ਸਕਦਾ, ਇਸ ਲਈ ਇਹ ਸੈਮਾਫੋਰ ਹੀ ਹੈ ਜੋ ਅਸਲ ਵਿੱਚ ਹੜ੍ਹ ਨੂੰ ਰੋਕਦਾ ਹੈ।
+> ਕੋਟਾ-ਸ਼ੇਅਰ ਰੂਟਿੰਗ ਗੇਟ (`selectQuotaShareTarget`, DRR + P2C) ਆਪਣੇ ਆਪ ਵਿੱਚ ਫੇਲ-ਓਪਨ ਹੈ ਅਤੇ ਸਿਰਫ _deprioritizes_ ਇੱਕ ਐਟ-ਕੈਪ ਕੁਨੈਕਸ਼ਨ — ਇੱਕ ਸਿੰਗਲ-ਕੁਨੈਕਸ਼ਨ ਪੂਲ ਦੇ ਨਾਲ ਇਹ ਸਖ਼ਤ-ਸੀਮਾ ਨਹੀਂ ਕਰ ਸਕਦਾ, ਇਸਲਈ ਇਹ ਸੇਮਫੋਰ ਉਹ ਹੈ ਜਿਸ ਵਿੱਚ ਅਸਲ ਵਿੱਚ ਹੜ੍ਹ ਸ਼ਾਮਲ ਹੈ।
-### ਕੌਮਬੋ ਕੂਲਡਾਊਨ-ਸੂਝ ਮੁੜ-ਕੋਸ਼ਿਸ਼
+### ਕੰਬੋ ਕੂਲਡਡਾਊਨ-ਜਾਗਰੂਕ ਮੁੜ-ਕੋਸ਼ਿਸ਼
-ਹਰ ਕੌਮਬੋ ਰਣਨੀਤੀ ਲਈ (ਜਦੋਂ ਸਮਰੱਥ ਹੋਵੇ), ਅਜਿਹੀ ਬੇਨਤੀ ਜੋ ਕਿਸੇ ਛੋਟੇ ਅਸਥਾਈ ਕੂਲਡਾਊਨ ਲਈ 429 ਪੱਕਾ ਕਰ ਦੇਵੇਗੀ, ਉਸ ਦੀ ਉਡੀਕ ਕਰਦੀ ਹੈ ਅਤੇ 429 ਵਾਪਸ ਕਰਨ ਦੀ ਬਜਾਏ ਮੁੜ-ਡਿਸਪੈਚ ਕਰਦੀ ਹੈ — ਇਹ ਮਲਟੀ-ਮਾਡਲ ਕੌਮਬੋਜ਼ 'ਤੇ Gemini-ਦਰਜ਼ੇ ਦੀਆਂ TPM/RPM ਵਿੰਡੋਜ਼ (~60s retry-after) ਨੂੰ ਕਵਰ ਕਰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ 2-ਮਾਡਲ ਕੌਮਬੋ ਦੇ ਦੋਵੇਂ ਟਾਰਗੈਟਾਂ ਦਾ ਪ੍ਰਤੀ-ਮਾਡਲ ਰੇਟ ਲਿਮਿਟ ਨਾਲ ਟਕਰਾਉਣਾ। **ਸੈਟਿੰਗਜ਼ → ਰੈਜ਼ੀਲੀਅਂਸ** ਵਿੱਚ `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) ਨਾਲ ਸੀਮਿਤ। ਇਹ ਕਦੇ ਵੀ `quota_exhausted` (ਅੱਧੀ ਰਾਤ ਤੱਕ ਲੌਕ) ਜਾਂ auth/not-found ਕਾਰਨਾਂ ਲਈ ਉਡੀਕ ਨਹੀਂ ਕਰਦਾ।
+ਹਰੇਕ ਕੰਬੋ ਰਣਨੀਤੀ ਲਈ (ਜਦੋਂ ਸਮਰਥਿਤ ਹੋਵੇ), ਇੱਕ ਬੇਨਤੀ ਜੋ ਇੱਕ SHORT ਅਸਥਾਈ ਕੂਲਡਾਉਨ ਲਈ ਇੱਕ 429 ਨੂੰ ਕ੍ਰਿਸਟਲਾਈਜ਼ ਕਰੇਗੀ, ਇਸਦਾ ਇੰਤਜ਼ਾਰ ਕਰਦੀ ਹੈ ਅਤੇ 429 — ਵਾਪਸ ਕਰਨ ਦੀ ਬਜਾਏ ਦੁਬਾਰਾ ਡਿਸਪੈਚ ਕਰਦੀ ਹੈ ਇਸ ਵਿੱਚ ਜੈਮਿਨੀ-ਕਲਾਸ TPM/RPM ਵਿੰਡੋਜ਼ (~ 60s retry-after) ਇੱਕ ਮਲਟੀ-ਮਾਡਲ ਦੋਨੋ ਟਾਰਗੇਟ combos, combos 2 'ਤੇ ਕਵਰ ਕਰਦਾ ਹੈ। ਪ੍ਰਤੀ-ਮਾਡਲ ਦਰ ਸੀਮਾ। ਵਿੱਚ `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) ਦੁਆਰਾ ਘਿਰਿਆ ਹੋਇਆ** ਸੈਟਿੰਗਾਂ → ਲਚਕੀਲਾਪਨ** . ਇਹ ਕਦੇ ਵੀ `quota_exhausted` (ਅੱਧੀ ਰਾਤ ਤੱਕ ਲਾਕ) ਜਾਂ auth/not-found ਕਾਰਨਾਂ 'ਤੇ ਇੰਤਜ਼ਾਰ ਨਹੀਂ ਕਰਦਾ।
-ਉਹੀ ਗੇਟ ਪ੍ਰੀ-ਡਿਸਪੈਚ ਮਾਮਲੇ (#16319) ਨੂੰ ਵੀ ਕਵਰ ਕਰਦਾ ਹੈ: ਜਦੋਂ ਕਿਸੇ ਕੌਮਬੋ ਦਾ ਹਰ ਟਾਰਗੈਟ ਕਿਸੇ ਵੀ ਕੋਸ਼ਿਸ਼ ਤੋਂ ਪਹਿਲਾਂ ਛੱਡ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ ਕਿਉਂਕਿ ਉਸਦਾ ਮਾਡਲ ਛੋਟੇ ਅਸਥਾਈ ਲੌਕਆਉਟ ਵਿੱਚ ਹੈ, ਜ਼ੀਰੋ-ਅਟੈਂਪਟ ਪਾਥ ਉਹੀਆਂ ਸੀਮਾਵਾਂ ਦੇ ਅੰਦਰ ਲੌਕ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈ ਅਤੇ ਮੁੜ-ਡਿਸਪੈਚ ਕਰਦਾ ਹੈ, ਸੰਕੇਤ-ਰਹਿਤ `503 ALL_TARGETS_SKIPPED` ਦਾ ਜਵਾਬ ਦੇਣ ਦੀ ਬਜਾਏ। ਜਦੋਂ ਕਿਸੇ ਵੀ ਉਡੀਕ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੁੰਦੀ (ਸੀਮਾ, ਕੋਸ਼ਿਸ਼ ਜਾਂ ਬਜਟ ਖਤਮ, ਜਾਂ ਫੀਚਰ ਬੰਦ), ਅੰਤਿਮ ਜਵਾਬ `429 rate_limit_error` ਵਿੱਚ ਅੱਪਗ੍ਰੇਡ ਹੋ ਜਾਂਦਾ ਹੈ, ਜੋ ਸਭ ਤੋਂ ਪਹਿਲਾਂ ਖਤਮ ਹੋਣ ਵਾਲੀ ਅਸਥਾਈ ਲੌਕ ਮਿਆਦ ਤੋਂ `retry_after` / `reset_at` ਲੈ ਕੇ ਆਉਂਦਾ ਹੈ; quota, auth ਅਤੇ not-found ਲੌਕ ਸੰਕੇਤ-ਰਹਿਤ 503 ਹੀ ਰੱਖਦੇ ਹਨ।
+ਇੱਕ ਕੰਬੋ `config.comboCooldownWaitEnabled: false` ਨਾਲ ਚੋਣ ਕਰ ਸਕਦਾ ਹੈ। ਸਿਰਫ਼ ਸ਼ਾਬਦਿਕ `false` ਇਹਨਾਂ ਸ਼ੇਅਰਡ ਕੰਬੋ ਉਡੀਕਾਂ (ਪੋਸਟ-ਡਿਸਪੈਚ ਕੂਲਡਾਉਨ ਅਤੇ ਪ੍ਰੀ-ਡਿਸਪੈਚ circuit-open/model-lock ਉਡੀਕਾਂ) ਅਤੇ ਉਹਨਾਂ ਦੀ ਉਡੀਕ-ਬਜਟ ਟਾਈਮਆਊਟ-ਫਲੋਰ ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ। ਗੁੰਮ ਜਾਂ `true` ਗਲੋਬਲ ਨੀਤੀ ਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ; `true` ਵਿਸ਼ਵ ਪੱਧਰ 'ਤੇ ਅਯੋਗ ਉਡੀਕ ਨੂੰ ਸਮਰੱਥ ਨਹੀਂ ਕਰ ਸਕਦਾ ਹੈ। ਇੱਕ ਸਪੱਸ਼ਟ `targetTimeoutMs` ਅਜੇ ਵੀ ਜਿੱਤਦਾ ਹੈ. ਇਹ ਔਪਟ-ਆਊਟ ਵੱਖਰੇ ਮੂਲ-ਕੋਡੈਕਸ ਟਰਨ-ਪਿੰਨ ਪ੍ਰੀ-ਡਿਸਪੈਚ ਉਡੀਕ ਨੂੰ ਨਹੀਂ ਬਦਲਦਾ।
+
+ਉਹੀ ਗੇਟ ਪ੍ਰੀ-ਡਿਸਪੈਚ ਕੇਸ (#16319) ਨੂੰ ਕਵਰ ਕਰਦਾ ਹੈ: ਜਦੋਂ ਕੋਈ ਵੀ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਕੰਬੋ ਦਾ ਹਰ ਟੀਚਾ ਛੱਡ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ ਕਿਉਂਕਿ ਇਸਦਾ ਮਾਡਲ ਇੱਕ ਛੋਟੇ ਅਸਥਾਈ ਲਾਕਆਊਟ ਵਿੱਚ ਬੈਠਦਾ ਹੈ, ਜ਼ੀਰੋ-ਕੋਸ਼ਿਸ਼ ਮਾਰਗ ਇੱਕ ਸੰਕੇਤ-ਰਹਿਤ `503 ALL_TARGETS_SKIPPED` ਜਵਾਬ ਦੇਣ ਦੀ ਬਜਾਏ, ਉਸੇ ਛੱਤ ਦੇ ਹੇਠਾਂ ਲੌਕ ਆਉਟ ਦਾ ਇੰਤਜ਼ਾਰ ਕਰਦਾ ਹੈ ਅਤੇ ਦੁਬਾਰਾ ਡਿਸਪੈਚ ਕਰਦਾ ਹੈ। ਜਦੋਂ ਕੋਈ ਉਡੀਕ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ (ਛੱਤ, ਕੋਸ਼ਿਸ਼ ਜਾਂ ਬਜਟ ਖਤਮ ਹੋ ਗਿਆ ਹੈ, ਜਾਂ ਵਿਸ਼ੇਸ਼ਤਾ ਬੰਦ ਹੈ), ਟਰਮੀਨਲ ਪ੍ਰਤੀਕਿਰਿਆ `429 rate_limit_error` ਨੂੰ `retry_after` / `reset_at` ਲੈ ਕੇ ਜਾਣ ਵਾਲੀ ਸਭ ਤੋਂ ਪੁਰਾਣੀ ਅਸਥਾਈ ਲਾਕ ਮਿਆਦ ਖਤਮ ਹੋਣ ਤੱਕ ਅੱਪਗਰੇਡ ਕਰਦੀ ਹੈ; ਕੋਟਾ, ਪ੍ਰਮਾਣਿਕਤਾ ਅਤੇ ਨਾ-ਮਿਲੇ ਤਾਲੇ ਸੰਕੇਤ-ਘੱਟ 503 ਨੂੰ ਰੱਖਦੇ ਹਨ।
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/pa/docs/guides/USER_GUIDE.md b/docs/i18n/pa/docs/guides/USER_GUIDE.md
index 541b271addd6..c683941b1c1f 100644
--- a/docs/i18n/pa/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/pa/docs/guides/USER_GUIDE.md
@@ -610,55 +610,55 @@ post_install() {
ਸਾਰੇ ਉਪਲਬਧ ਮਾਡਲ ਵੇਖੋ
-> ਹੇਠ ਦਿੱਤੀ ਸੂਚੀ v3.8.0 ਲਈ `open-sse/config/providerRegistry.ts` ਤੋਂ ਤਿਆਰ ਕੀਤੀ ਗਈ ਹੈ। ਕਲਾਉਡ ਕੈਟਾਲਾਗ (Gemini, OpenRouter ਆਦਿ) ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਸਿੰਕ ਹੁੰਦੇ ਹਨ — ਪੂਰੀ ਲਾਈਵ ਕੈਟਾਲਾਗ ਲਈ **Dashboard → Providers → [provider] → Available Models** ਖੋਲ੍ਹੋ ਜਾਂ `GET /api/models/catalog` ਕਾਲ ਕਰੋ।
+> ਹੇਠਾਂ ਦਿੱਤੀ ਸੂਚੀ `open-sse/config/providerRegistry.ts` ਤੋਂ v3.8.0 ਲਈ ਤਿਆਰ ਕੀਤੀ ਗਈ ਹੈ। ਕਲਾਉਡ ਕੈਟਾਲਾਗ (Gemini, OpenRouter, ਆਦਿ) ਪੂਰੀ ਲਾਈਵ ਕੈਟਾਲਾਗ ਖੁੱਲ੍ਹਣ ਲਈ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ — ਸਿੰਕ ਕੀਤੇ ਜਾਂਦੇ ਹਨ** ਡੈਸ਼ਬੋਰਡ → ਪ੍ਰਦਾਤਾ → [ਪ੍ਰਦਾਤਾ] → ਉਪਲਬਧ ਮਾਡਲ** ਜਾਂ `GET /api/models/catalog` ਨੂੰ ਕਾਲ ਕਰੋ।
>
-> ਜੇ ਕਿਸੇ ਪ੍ਰੋਵਾਈਡਰ ਦੀ ਬਿਲਟ-ਇਨ ਸੂਚੀ ਅਸਲ ਤੋਂ ਹਟ ਗਈ ਹੈ, ਤਾਂ ਲਾਈਵ ਅੱਪਸਟ੍ਰੀਮ ਕੈਟਾਲਾਗ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਉਸ ਪੇਜ 'ਤੇ **Import from /models** ਵਰਤੋ (ਜਾਂ **Auto-Sync** ਚਾਲੂ ਕਰੋ)। ਇਹ v3.8.50 ਵਿੱਚ LLM7.io (`gemini-3.1-flash-lite`) ਅਤੇ UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) ਲਈ ਤਸਦੀਕ ਕੀਤਾ ਗਿਆ ਸੀ; ਉਸੇ ਟੈਸਟ ਪਾਸ ਦੌਰਾਨ Pollinations ਗੁਮਨਾਮ ਐਕਸੈਸ ਅੱਪਸਟ੍ਰੀਮ-ਸੀਮਿਤ ਹੀ ਰਿਹਾ।
+> ਜੇਕਰ ਕਿਸੇ ਪ੍ਰਦਾਤਾ ਦੀ ਬਿਲਟ-ਇਨ ਸੂਚੀ ਬਦਲ ਗਈ ਹੈ, ਤਾਂ ਵਰਤੋਂ ਕਰੋ** /ਮਾਡਲ ਤੋਂ ਆਯਾਤ ਕਰੋ** ਉਸ ਪੰਨੇ 'ਤੇ (ਜਾਂ ਯੋਗ ਕਰੋ** ਆਟੋ-ਸਿੰਕ** ) ਲਾਈਵ ਅੱਪਸਟ੍ਰੀਮ ਕੈਟਾਲਾਗ ਨੂੰ ਖਿੱਚਣ ਲਈ। ਇਹ LLM7.io (`gemini-3.1-flash-lite`) ਅਤੇ UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) ਲਈ v3.8.50 ਵਿੱਚ ਪ੍ਰਮਾਣਿਤ ਕੀਤਾ ਗਿਆ ਸੀ; ਉਸੇ ਟੈਸਟ ਪਾਸ ਦੌਰਾਨ ਪੋਲੀਨੇਸ਼ਨ ਅਗਿਆਤ ਪਹੁੰਚ ਅੱਪਸਟ੍ਰੀਮ-ਸੀਮਿਤ ਰਹੀ।
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude ਕੋਡ (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort ਟੀਅਰ: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ ਕੋਸ਼ਿਸ਼ ਦੇ ਪੱਧਰ: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — ਮੁਫ਼ਤ OAuth: **Dashboard → Providers → Kiro → Available Models** ਹੇਠ ਦਿਖਾਈ ਦੇ ਰਹੀ ਲਾਈਵ ਕੈਟਾਲਾਗ ਵਰਤੋ। ਉਪਲਬਧਤਾ ਖਾਤੇ ਅਤੇ ਪਲਾਨ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ।
+**Kiro (`kr/`)** — FREE OAuth: ਹੇਠਾਂ ਦਿਖਾਇਆ ਗਿਆ ਲਾਈਵ ਕੈਟਾਲਾਗ ਵਰਤੋ** ਡੈਸ਼ਬੋਰਡ → ਪ੍ਰਦਾਤਾ → Kiro → ਉਪਲਬਧ ਮਾਡਲ** . ਉਪਲਬਧਤਾ ਖਾਤੇ ਅਤੇ ਯੋਜਨਾ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ।
-**Qoder (`if/`)** — ਮੁਫ਼ਤ OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/ਮਹੀਨਾ ਫਲੈਟ ਜਾਂ ਪ੍ਰਤੀ-ਵਰਤੋਂ: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo ਫਲੈਟ ਜਾਂ ਪ੍ਰਤੀ-ਵਰਤੋਂ: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — API ਕੁੰਜੀ: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — ਅਲਟਰਾ-ਤੇਜ਼: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — ਅਲਟਰਾ-ਫਾਸਟ: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok ਨੇਟਿਵ: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok ਮੂਲ: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU-ਹੋਸਟਡ: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU-ਹੋਸਟਡ: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — ਖੋਜ-ਸੰਵਰਧਿਤ: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**ਉਲਝਣ (`pplx/`)** — ਖੋਜ-ਵਧਾਇਆ: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — ਓਪਨ-ਸੋਰਸ: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ਮੁਫ਼ਤ), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — ਓਪਨ-ਸਰੋਤ: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ਮੁਫ਼ਤ), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — ਤੇਜ਼ ਇਨਫਰੈਂਸ: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — ਤੇਜ਼ ਅਨੁਮਾਨ: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — ਵੇਫ਼ਰ-ਸਕੇਲ: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — ਵੇਫਰ-ਸਕੇਲ: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — RAG-ਕੇਂਦਰਿਤ: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG-ਕੇਂਦ੍ਰਿਤ: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — ਐਂਟਰਪ੍ਰਾਈਜ਼: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama ਕਲਾਉਡ (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Google ਤੋਂ ਹਰ API ਕੁੰਜੀ ਲਈ ਲਾਈਵ ਸਿੰਕ ਹੁੰਦਾ ਹੈ — ਕੋਈ ਸਥਿਰ ਸੂਚੀ ਨਹੀਂ। **Dashboard → Providers** ਵਿੱਚ ਇੱਕ ਕੁੰਜੀ ਕਨੈਕਟ ਕਰੋ ਫਿਰ ਮੌਜੂਦਾ ਕੈਟਾਲਾਗ ਇੰਪੋਰਟ ਕਰਨ ਲਈ **Available Models** ਵਰਤੋ (ਜਿਵੇਂ `gemini/gemini-3-pro`, `gemini/gemini-3-flash`)।
+**Gemini (Google ਕਲਾਉਡ `gemini/`)** : Google — ਕੋਈ ਸਥਿਰ ਸੂਚੀ ਤੋਂ ਲਾਈਵ ਪ੍ਰਤੀ API ਕੁੰਜੀ ਨੂੰ ਸਿੰਕ ਕੀਤਾ ਗਿਆ। ਵਿੱਚ ਇੱਕ ਕੁੰਜੀ ਕਨੈਕਟ ਕਰੋ** ਡੈਸ਼ਬੋਰਡ → ਪ੍ਰਦਾਤਾ** ਫਿਰ ਵਰਤੋ** ਉਪਲਬਧ ਮਾਡਲ** ਮੌਜੂਦਾ ਕੈਟਾਲਾਗ (ਜਿਵੇਂ ਕਿ `gemini/gemini-3-pro`, `gemini/gemini-3-flash`) ਨੂੰ ਆਯਾਤ ਕਰਨ ਲਈ।
-**ਹੋਰ ਅਨੁਕੂਲ ਪ੍ਰੋਵਾਈਡਰ** (ਚੁਣੇ ਹੋਏ): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (`aws-bedrock` ਰਾਹੀਂ), `azure-ai`, `openrouter` (ਪਾਸਥ੍ਰੂ ਕੈਟਾਲਾਗ), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`। ਹਰੇਕ `providerRegistry.ts` ਵਿੱਚ ਆਪਣੀ ਮਾਡਲ ਸੂਚੀ ਰੱਖਦਾ ਹੈ ਅਤੇ ਜਦੋਂ ਪ੍ਰੋਵਾਈਡਰ ਕੋਈ `/models` ਐਂਡਪੋਇੰਟ ਉਪਲਬਧ ਕਰਵਾਉਂਦਾ ਹੈ ਤਾਂ ਆਟੋ-ਸਿੰਕ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
+**ਹੋਰ ਅਨੁਕੂਲ ਪ੍ਰਦਾਤਾ** (ਚੁਣਿਆ ਗਿਆ): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` ( `aws-bedrock`), `azure-ai`, `openrouter` (ਪਾਸਥਰੂ ਕੈਟਾਲਾਗ), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21` `gigachat` ਹਰ ਇੱਕ `providerRegistry.ts` ਵਿੱਚ ਆਪਣੀ ਮਾਡਲ ਸੂਚੀ ਬਣਾਈ ਰੱਖਦਾ ਹੈ ਅਤੇ ਜਦੋਂ ਪ੍ਰਦਾਤਾ ਇੱਕ `/models` ਅੰਤਮ ਬਿੰਦੂ ਦਾ ਪਰਦਾਫਾਸ਼ ਕਰਦਾ ਹੈ ਤਾਂ ਆਟੋ-ਸਿੰਕ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
-**ਮਾਡਲ IDs ਬਾਰੇ ਨੋਟ:** OmniRoute ਪ੍ਰੋਵਾਈਡਰ-ਨੇਟਿਵ IDs ਵਰਤਦਾ ਹੈ (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`)। ਕੁਝ IDs ਵਿੱਚ ਬਿੰਦੂ ਵਾਲੇ ਵਰਜ਼ਨ ਸ਼ਾਮਲ ਹਨ ਕਿਉਂਕਿ ਅੱਪਸਟ੍ਰੀਮ API ਇਸੇ ਤਰੀਕੇ ਦੀ ਅਪੇਕਸ਼ਾ ਕਰਦਾ ਹੈ। ਜੇ ਕੋਈ ਮਾਡਲ ਉੱਪਰ ਸੂਚੀਬੱਧ ਨਹੀਂ ਹੈ, ਤਾਂ ਉਪਲਬਧਤਾ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ `omniroute models --search ` ਚਲਾਓ ਜਾਂ `GET /api/models/catalog` ਕਾਲ ਕਰੋ।
+**ਮਾਡਲ IDs ਤੇ ਨੋਟ:** OmniRoute ਪ੍ਰਦਾਤਾ-ਦੇਸੀ IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`) ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਕੁਝ IDs ਵਿੱਚ ਬਿੰਦੀਆਂ ਵਾਲੇ ਸੰਸਕਰਣ ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ ਕਿਉਂਕਿ ਅੱਪਸਟ੍ਰੀਮ API ਉਹਨਾਂ ਤੋਂ ਇਸ ਤਰ੍ਹਾਂ ਦੀ ਉਮੀਦ ਕਰਦਾ ਹੈ। ਜੇਕਰ ਕੋਈ ਮਾਡਲ ਉੱਪਰ ਸੂਚੀਬੱਧ ਨਹੀਂ ਹੈ, ਤਾਂ `omniroute models --search ` ਚਲਾਓ ਜਾਂ ਉਪਲਬਧਤਾ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ `GET /api/models/catalog` ਦਬਾਓ।
diff --git a/docs/i18n/phi/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/phi/docs/architecture/RESILIENCE_GUIDE.md
index 0db19ee8f77e..a22ee4b24b6a 100644
--- a/docs/i18n/phi/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/phi/docs/architecture/RESILIENCE_GUIDE.md
@@ -286,17 +286,17 @@ _estado_ ng lockout ay ephemeral.
---
-## 4. Kontrol ng Quota-Share Concurrency (v3.8.36)
+## 4. Quota-Share Concurrency Control (v3.8.36)
-Ang mga subscription account (GLM, MiniMax, atbp.) ay kadalasang tumatanggap lamang ng ~1–3 sabay-sabay na request; ang paglampas doon ay nagti-trigger ng mga 429 at cooldown. Lalong matindi ito sa mga **quota-share** (`qtSd/…`) combo, kung saan maraming API key ang nagbabahagi ng iisang upstream account. Tatlong layer ang pumipigil sa isang nakabahaging account mula sa pagkabaha.
+Ang mga subscription account (GLM, MiniMax, atbp.) ay kadalasang tumatanggap lamang ng ~ 1–3 sabay-sabay na kahilingan; paglampas doon ay nagti-trigger ng 429s at mga cooldown. Ito ay talamak sa ilalim** quota-share** (`qtSd/…`) combos, kung saan maraming API key ang nagbabahagi ng isang upstream na account. Pinipigilan ng tatlong layer na mabaha ang isang nakabahaging account.
-### Limit ng concurrency kada koneksyon (`max_concurrent`)
+### Bawat koneksyon na concurrency cap (`max_concurrent`)
-Ang bawat provider connection ay maaaring magdeklara ng isang `max_concurrent` na limit (`provider_connections.max_concurrent`, itinatakda sa connection modal / API / DB). Iwanang blangko para walang limit. Ito ang nag-iisang kontrol na nagpapatakbo sa serialization layer sa ibaba — itakda ito sa tunay na concurrency ng account (hal. GLM ~1, MiniMax ~2).
+Ang bawat koneksyon sa provider ay maaaring magdeklara ng `max_concurrent` ceiling (`provider_connections.max_concurrent`, itinakda sa connection modal / API / DB). Iwanan itong walang laman nang walang limitasyon. Ito ang solong knob na nagtutulak sa serialization layer sa ibaba — itakda ito sa totoong concurrency ng account (hal. GLM ~ 1, MiniMax ~ 2).
-### Mga limit ng concurrency kada modelo (`modelConcurrency`)
+### Mga cap ng concurrency bawat modelo (`modelConcurrency`)
-Bukod dito, maaaring magdeklara ang isang koneksyon ng eksaktong mga limit ng concurrency kada modelo sa loob ng `rateLimitOverrides` map nito:
+Ang isang koneksyon ay maaari ring magdeklara ng eksaktong bawat modelo ng concurrency ceiling sa loob ng `rateLimitOverrides` map nito:
```json
{
@@ -307,30 +307,32 @@ Bukod dito, maaaring magdeklara ang isang koneksyon ng eksaktong mga limit ng co
}
```
-Itakda ito sa connection modal (**Mga override ng rate limit → Mga limit ng concurrency kada modelo**, isang `model=cap` kada linya) o sa pamamagitan ng `PATCH /api/providers/[id]` na may parehong anyo ng JSON. Mga semantika ng key:
+Itakda ito sa modal ng koneksyon (** Ino-override ng limitasyon sa rate → Mga cap ng concurrency bawat modelo** , isang `model=cap` bawat linya) o sa pamamagitan ng `PATCH /api/providers/[id]` na may parehong JSON na hugis. Mga pangunahing semantika:
-- **Buong-koneksyon laban sa tiyak na modelo:** nananatili ang `maxConcurrent` bilang pinagsamang limit ng buong koneksyon. Kapag parehong nalalapat, parehong kinukuha ang mga gate nang atomiko sa parehong composite gate (`global → provider → account → model`); ang epektibong pag-uugali ay ang mas mahigpit na nalalapat na limit.
-- **Eksaktong pagtutugma ng model-key:** ang key ay ang model string na ipinapasa sa executor pagkatapos ng routing resolution — karaniwan itong hubad na upstream model id (`glm-5`), hindi ang client-side na `provider/model` alias (ang `zai/glm-5` ay hindi tumutugma sa `glm-5`). Ang mga value ay mga positibong-integer na limit ng concurrent request.
-- **Lokal na pagpila, walang discovery:** ang mga labis na request ay pumipila nang lokal gamit ang umiiral na semantika ng queue/timeout (mga typed na `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` na admission error). Hindi tinituklas o hinihinuha ng OmniRoute ang upstream policy — ipinapatupad nito ang eksaktong mga limit na ikinonpigura ng operator. Ang isang saturated na model gate ay hindi kailanman nagdi-disable ng provider at hindi kailanman lumilikha ng permanenteng model lockout; ang upstream na 429/cooldown/fallback na pag-uugali ay nananatiling error backstop.
-- **Saklaw na per-connection, per-process:** ang mga cap ay bawat database connection at naka-hold sa memorya, kaya ang dalawang koneksyon na muling gumagamit ng parehong upstream API key ay hindi nagko-coordinate sa isa't isa.
-- **Ang hindi naka-configure ay nangangahulugang walang pagbabago:** ang pagbubukod ng map (o pag-iwan ng blangko sa dashboard field) ay hindi nagdaragdag ng model gate. Halimbawang konpigurasyon nang hindi nag-aatas ng anumang unibersal na limit ng provider:
+- **Malawak na koneksyon kumpara sa partikular sa modelo:** `maxConcurrent` ay nananatiling nakabahaging kisame sa buong koneksyon. Kapag parehong nalalapat, ang parehong mga gate ay nakuha atomically sa parehong composite gate (`global → provider → account → model`); ang mabisang pag-uugali ay ang mas mahigpit na limitasyon.
+- **Eksaktong modelo-key na tugma:** ang susi ay ang string ng modelo na ipinasa sa executor pagkatapos ng routing resolution — normally ang hubad upstream model id (`glm-5`), hindi isang client-side `provider/model` alias (`zai/glm-5` ay hindi tumutugma `glm-5`). Ang mga value ay positive-integer concurrent-request ceiling.
+- **Lokal na pagpila, walang natuklasan:** ang mga labis na kahilingan ay lokal na nakapila gamit ang mga umiiral na queue/timeout semantics (mga na-type na `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` admission error). OmniRoute ay hindi natutuklasan o naghihinuha ng upstream na patakaran — ipinapatupad nito ang eksaktong mga kisame na na-configure ng operator. Hindi kailanman dini-disable ng isang saturated model gate ang provider at hindi kailanman gumagawa ng permanenteng model lockout; nananatiling error backstop ang pag-uugali ng upstream 429/cooldown/fallback.
+- **Bawat koneksyon, bawat proseso saklaw:** Ang mga takip ay bawat koneksyon sa database at hawak sa memorya, kaya ang dalawang koneksyon na muling gumagamit ng parehong upstream API key ay hindi nag-uugnay sa isa't isa.
+- **Ang ibig sabihin ng hindi na-configure ay hindi nagbabago:** ang pag-alis sa mapa (o pag-iwan sa field ng dashboard na blangko) ay hindi nagdaragdag ng gate ng modelo. Halimbawang configuration nang hindi iginigiit ang anumang limitasyon sa unibersal na provider:
```text
glm-5=1
glm-4.7=3
```
-### Serialization ng quota-share request
+### serialization ng kahilingan sa pagbabahagi ng quota
-Kapag ang isang quota-share dispatch ay nagta-target ng koneksyon na nagdeklara ng positibong `max_concurrent`, ang mga concurrent request sa **account** na iyon ay sini-serialize sa pamamagitan ng isang per-connection semaphore (key na `qsconn:`): ang mga labis na request ay **naghihintay sa queue** sa halip na bahain ang account. Ito ay **fail-open** — ang isang saturated na queue o timeout ay nagpapatuloy nang walang slot sa halip na kailanman tanggihan ang isang request na maaaring i-dispatch. I-toggle sa **Mga Setting → Katatagan → Concurrency ng quota-share kada koneksyon** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, default na naka-on). Kung walang `max_concurrent` na cap, hindi nagbabago ang pag-uugali.
+Kapag ang isang quota-share dispatch ay nagta-target ng isang koneksyon na nagdedeklara ng isang positibong `max_concurrent`, sabay-sabay na mga kahilingan sa iyon** account** ay serialized sa pamamagitan ng per-connection semaphore (key `qsconn:`): labis na mga kahilingan** maghintay sa pila** sa halip na bahain ang account. Ito ay** mabibigo-bukas** — ang isang puspos na pila o timeout ay nagpapatuloy nang walang slot sa halip na tanggihan ang isang maipapadalang kahilingan. I-toggle in** Mga Setting → Resilience → Quota-share per-connection concurrency** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, naka-on ang default). Kung walang `max_concurrent` cap ang pag-uugali ay hindi nagbabago.
-> Ang quota-share routing gate (`selectQuotaShareTarget`, DRR + P2C) mismo ay fail-open at tanging _nagde-deprioritize_ ng isang at-cap na koneksyon — sa isang pool na may iisang koneksyon, hindi nito kayang mag-hard-limit, kaya ang semaphore na ito ang aktwal na pumipigil sa baha.
+> Ang quota-share routing gate (`selectQuotaShareTarget`, DRR + P2C) mismo ay fail-open at _deprioritize lang_ ang isang at-cap na koneksyon — na may single-connection pool na hindi nito maaaring ma-hard-limit, kaya ang semaphore na ito ang aktwal na naglalaman ng baha.
-### Retry ng combo na may kamalayan sa cooldown
+### Combo cooldown-aware na muling subukan
-Para sa bawat combo strategy (kapag naka-enable), ang isang request na magbubunga ng 429 para sa isang MAIKLING transient na cooldown ay maghihintay nito at muling mag-dispatch sa halip na ibalik ang 429 — saklaw nito ang mga Gemini-class na TPM/RPM window (~60s retry-after) sa mga multi-model combo, hal. kapag parehong tumama ang dalawang target ng isang 2-model combo sa isang per-model rate limit. Nililimitahan ng `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) sa **Mga Setting → Katatagan**. Hindi ito kailanman naghihintay sa `quota_exhausted` (naka-lock hanggang hatinggabi) o mga dahilan ng auth/not-found.
+Para sa bawat diskarte ng combo (kapag naka-enable), ang isang kahilingan na magpapa-kristal sa isang 429 para sa isang SHORT transient cooldown ay naghihintay dito at muling ipapadala sa halip na ibalik ang 429 — na sinasaklaw nito ang Gemini-class TPM/RPM windows (~ 60s retry-after) sa mga multi-model na combo, hal. parehong mga target ng isang 2-modelo na limitasyon sa rate ng combo. Nililimitahan ng `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) sa** Mga Setting → Katatagan** . Hindi ito naghihintay sa `quota_exhausted` (naka-lock hanggang hatinggabi) o auth/not-found na dahilan.
-Ang parehong gate ay sumasaklaw sa pre-dispatch na kaso (#16319): kapag ang bawat target ng isang combo ay nilaktawan bago pa man magawa ang anumang pagtatangka dahil ang modelo nito ay nasa isang maikling transient lockout, ang zero-attempt path ay hinihintay na matapos ang lock sa ilalim ng parehong mga limit at muling nag-dispatch, sa halip na sagutin ang isang walang-pahiwatig na `503 ALL_TARGETS_SKIPPED`. Kapag walang pinapayagang paghihintay (limit, pagtatangka, o budget na naubos, o naka-off ang feature), ang pangwakas na tugon ay uma-upgrade sa `429 rate_limit_error` na nagdadala ng `retry_after` / `reset_at` mula sa pinakamaagang pag-expire ng transient lock; ang mga quota, auth, at not-found na lock ay nagpapanatili ng walang-pahiwatig na 503.
+Maaaring mag-opt out ang isang combo gamit ang `config.comboCooldownWaitEnabled: false`. Ang literal na `false` lang ang nagdi-disable sa mga nakabahaging combo na paghihintay na ito (post-dispatch cooldown at pre-dispatch circuit-open/model-lock waits) at ang kanilang wait-budget timeout-floor extension. Nawawala o pinapanatili `true` ang pandaigdigang patakaran; Hindi maaaring paganahin `true` ang paghihintay na may kapansanan sa buong mundo. Panalo pa rin ang tahasang `targetTimeoutMs`. Hindi binabago ng opt-out na ito ang hiwalay na native-Codex turn-pin pre-dispatch wait.
+
+Ang parehong gate ay sumasaklaw sa pre-dispatch case (#16319): kapag ang bawat target ng isang combo ay nilaktawan bago ang anumang pagtatangka dahil ang modelo nito ay nakaupo sa isang maikling lumilipas na lockout, ang zero-attempt path ay naghihintay sa lock out sa ilalim ng parehong mga kisame at muling nagpapadala, sa halip na sumagot ng hint-less `503 ALL_TARGETS_SKIPPED`. Kapag hindi pinahihintulutan ang paghihintay (sa kisame, pagtatangka o badyet naubos, o ang feature ay naka-off), ang tugon sa terminal ay mag-a-upgrade sa `429 rate_limit_error` na nagdadala ng `retry_after` / `reset_at` mula sa pinakamaagang lumilipas na pag-expire ng lock; quota, auth at hindi nahanap na mga kandado ay nagpapanatili ng hint-less na 503.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/phi/docs/guides/USER_GUIDE.md b/docs/i18n/phi/docs/guides/USER_GUIDE.md
index ac2a54d6f2ad..5464a042fd3a 100644
--- a/docs/i18n/phi/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/phi/docs/guides/USER_GUIDE.md
@@ -610,57 +610,57 @@ Para sa kumpletong sanggunian ng mga environment variable, tingnan ang [README](
## 📊 Mga Magagamit na Modelo
-Tingnan ang lahat ng magagamit na modelo
+Tingnan ang lahat ng magagamit na mga modelo
-> Ang listahan sa ibaba ay hinango mula sa `open-sse/config/providerRegistry.ts` para sa v3.8.0. Ang mga cloud catalog (Gemini, OpenRouter, atbp.) ay naka-sync nang dynamic — para sa buong live na catalog, buksan ang **Dashboard → Providers → [provider] → Available Models** o tawagan ang `GET /api/models/catalog`.
+> Ang listahan sa ibaba ay na-curate mula sa `open-sse/config/providerRegistry.ts` para sa v3.8.0. Ang mga cloud catalog (Gemini, OpenRouter, atbp.) ay dynamic na naka-sync — para sa buong live na bukas na catalog** Dashboard → Provider → [provider] → Available na Mga Modelo** o tumawag sa `GET /api/models/catalog`.
>
-> Kung lumihis na ang built-in na listahan ng isang provider, gamitin ang **Import from /models** sa pahinang iyon (o i-enable ang **Auto-Sync**) para hilahin ang live na upstream catalog. Naberipika ito sa v3.8.50 para sa LLM7.io (`gemini-3.1-flash-lite`) at UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); nanatiling limitado sa upstream ang anonymous access ng Pollinations sa parehong test pass.
+> Kung ang built-in na listahan ng provider ay naanod, gamitin** Mag-import mula sa /models** sa pahinang iyon (o paganahin** Auto-Sync** ) para hilahin ang live upstream catalog. Na-verify ito sa v3.8.50 para sa LLM7.io (`gemini-3.1-flash-lite`) at UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Ang mga polinasyon na hindi kilalang access ay nanatiling upstream-limitado sa panahon ng parehong test pass.
**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ mga effort tier: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ mga tier ng pagsisikap: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — LIBRENG OAuth: gamitin ang live na catalog na ipinapakita sa **Dashboard → Providers → Kiro → Available Models**. Ang availability ay nakadepende sa account at plan.
+**Kiro (`kr/`)** — FREE OAuth: gamitin ang live na catalog na ipinapakita sa ilalim** Dashboard → Mga Provider → Kiro → Magagamit na Mga Modelo** . Ang availability ay depende sa account at plan.
-**Qoder (`if/`)** — LIBRENG OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/buwan na flat o bawat gamit: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo flat o per-use: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — API key: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Ultra-mabilis: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Napakabilis: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Native na Grok: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok native: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Naka-host sa EU: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU-hosted: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Pinatibay ng search: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Pagkalito (`pplx/`)** — Search-augmented: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
**Together AI (`together/`)** — Open-source: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (libre), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Mabilis na inference: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Mabilis na hinuha: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
**Cerebras (`cerebras/`)** — Wafer-scale: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Nakatuon sa RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG-focused: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Naka-sync nang live bawat API key mula sa Google — walang static na listahan. Mag-connect ng key sa **Dashboard → Providers** pagkatapos ay gamitin ang **Available Models** para i-import ang kasalukuyang catalog (hal. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : Naka-sync nang live sa bawat API key mula sa Google — walang static na listahan. Ikonekta ang isang susi** Mga Provider ng Dashboard →** pagkatapos ay gamitin** Mga Magagamit na Modelo** upang i-import ang kasalukuyang catalog (hal. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Iba pang mga compatible na provider** (mga pili): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (passthrough na catalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Bawat isa ay nagpapanatili ng sarili nitong listahan ng mga modelo sa `providerRegistry.ts` at maaaring ma-auto-sync kapag nag-e-expose ang provider ng `/models` endpoint.
+**Iba pang mga katugmang provider** (pinili): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` ( `deepinfra` pamamagitan ng `aws-bedrock`), `azure-ai`, `openrouter` (passthrough catalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research` `reka`, `volcengine`, `ai21`, `gigachat`. Ang bawat isa ay nagpapanatili ng sarili nitong listahan ng modelo sa `providerRegistry.ts` at maaaring i-auto-sync kapag ang provider ay naglantad ng `/models` endpoint.
-**Tala sa mga model ID:** Gumagamit ang OmniRoute ng mga provider-native na ID (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Ang ilang ID ay may mga bersyong may tuldok dahil iyon ang inaasahan ng upstream API. Kung hindi nakalista sa itaas ang isang modelo, patakbuhin ang `omniroute models --search ` o tawagan ang `GET /api/models/catalog` para kumpirmahin ang availability.
+**Tandaan sa modelong IDs:** OmniRoute ay gumagamit ng provider-native IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Ang ilang IDs ay may kasamang mga tuldok-tuldok na bersyon dahil iyon ang inaasahan sa kanila ng upstream API. Kung ang isang modelo ay hindi nakalista sa itaas, patakbuhin `omniroute models --search ` o pindutin `GET /api/models/catalog` upang kumpirmahin ang availability.
diff --git a/docs/i18n/pl/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/pl/docs/architecture/RESILIENCE_GUIDE.md
index 9fe63dd2687e..93621abbdfab 100644
--- a/docs/i18n/pl/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/pl/docs/architecture/RESILIENCE_GUIDE.md
@@ -300,21 +300,17 @@ aktywny _stan_ blokad jest efemeryczny.
---
-## 4. Kontrola współbieżności quota-share (v3.8.36)
+## 4. Kontrola współbieżności udziału przydziału (wersja 3.8.36)
-Konta subskrypcyjne (GLM, MiniMax itp.) często akceptują tylko ~1–3 współbieżne żądania; przekroczenie tego limitu wywołuje błędy 429 i cooldowny. Problem jest szczególnie dotkliwy przy kombinacjach **quota-share** (`qtSd/…`), gdzie kilka kluczy API współdzieli jedno konto upstream. Trzy warstwy chronią współdzielone konto przed zalaniem.
+Konta subskrypcyjne (GLM, MiniMax itp.) często akceptują tylko ~ 1–3 jednoczesnych żądań; przekroczenie tego wyzwala 429 sekund i czasy odnowienia. To jest ostre pod** udział kwotowy** (`qtSd/…`) kombinacje, w których kilka kluczy API współdzieli jedno konto nadrzędne. Trzy warstwy chronią współdzielone konto przed zalaniem.
-### Limit współbieżności per połączenie (`max_concurrent`)
+### Limit współbieżności na połączenie (`max_concurrent`)
-Każde połączenie dostawcy może zadeklarować górny limit `max_concurrent`
-(`provider_connections.max_concurrent`, ustawiany w modalu połączenia / API / DB).
-Pozostaw puste, aby nie stosować limitu. To jedyny parametr sterujący opisaną niżej
-warstwą serializacji — ustaw go na rzeczywistą współbieżność konta (np. GLM ~1, MiniMax ~2).
+Każde połączenie dostawcy może zadeklarować pułap `max_concurrent` (`provider_connections.max_concurrent`, ustawiony w połączeniu modal / API / DB). Pozostaw puste bez ograniczeń. Jest to pojedyncze pokrętło sterujące warstwą serializacji poniżej. — ustawia ją na rzeczywistą współbieżność konta (np. GLM ~ 1, MiniMax ~ 2).
-### Limity współbieżności per model (`modelConcurrency`)
+### Limity współbieżności na model (`modelConcurrency`)
-Połączenie może dodatkowo zadeklarować dokładne limity współbieżności dla
-poszczególnych modeli w swojej mapie `rateLimitOverrides`:
+Połączenie może dodatkowo zadeklarować dokładne pułapy współbieżności dla każdego modelu w swojej mapie `rateLimitOverrides` :
```json
{
@@ -325,73 +321,32 @@ poszczególnych modeli w swojej mapie `rateLimitOverrides`:
}
```
-Ustaw je w modalu połączenia (**Nadpisania limitów szybkości → Limity współbieżności
-dla poszczególnych modeli**, po jednym `model=cap` na linię) lub przez
-`PATCH /api/providers/[id]` z tym samym kształtem JSON. Kluczowe zasady:
-
-- **Całe połączenie vs konkretny model:** `maxConcurrent` pozostaje wspólnym
- limitem obowiązującym dla całego połączenia. Gdy oba mają zastosowanie, obie bramki
- są przejmowane atomowo w ramach tej samej bramki złożonej
- (`global → provider → account → model`); zachowanie efektywne odpowiada
- bardziej restrykcyjnemu z obowiązujących limitów.
-- **Dokładne dopasowanie klucza modelu:** kluczem jest ciąg modelu przekazywany
- do wykonawcy po rozstrzygnięciu routingu — zwykle sam identyfikator modelu
- upstream (`glm-5`), a nie alias `provider/model` po stronie klienta
- (`zai/glm-5` nie pasuje do `glm-5`). Wartości to limity współbieżnych żądań
- wyrażone dodatnimi liczbami całkowitymi.
-- **Lokalne kolejkowanie, bez wykrywania:** nadmiarowe żądania są kolejkowane
- lokalnie zgodnie z istniejącą semantyką kolejki/timeoutu (typizowane błędy
- dopuszczenia `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). OmniRoute nie
- wykrywa ani nie wywnioskowuje polityki upstream — wymusza dokładnie te limity,
- które skonfigurował operator. Wysycona bramka modelu nigdy nie wyłącza dostawcy
- i nigdy nie tworzy trwałej blokady modelu; zachowanie upstream
- 429/cooldown/fallback pozostaje ostatnią linią obrony przed błędami.
-- **Zakres per połączenie, per proces:** limity obowiązują dla każdego połączenia
- w bazie danych i są trzymane w pamięci, więc dwa połączenia korzystające z tego
- samego klucza API upstream nie koordynują się między sobą.
-- **Brak konfiguracji oznacza brak zmian:** pominięcie mapy (lub pozostawienie
- pustego pola w panelu) nie dodaje żadnej bramki modelu. Przykładowa konfiguracja
- bez narzucania uniwersalnego limitu dostawcy:
+Ustaw go w trybie połączenia (** Limit szybkości zastępuje → Limity współbieżności dla poszczególnych modeli** , jedno `model=cap` na linię) lub przez `PATCH /api/providers/[id]` o tym samym kształcie JSON. Kluczowa semantyka:
+
+- **Dla całego połączenia a dla konkretnego modelu:** `maxConcurrent` pozostaje wspólnym pułapem obejmującym całe połączenie. Gdy oba mają zastosowanie, obie bramki są pozyskiwane atomowo w tej samej bramce złożonej (`global → provider → account → model`); efektywne zachowanie to bardziej rygorystyczny obowiązujący limit.
+- **Dokładne dopasowanie klucza modelu:** kluczem jest ciąg modelu przekazywany do modułu wykonującego po rozpoznaniu routingu. — zwykle jest to sam identyfikator modelu nadrzędnego (`glm-5`), a nie alias `provider/model` po stronie klienta (`zai/glm-5` nie pasuje `glm-5`). Wartości są dodatnimi liczbami całkowitymi, pułapami równoczesnych żądań.
+- **Lokalne kolejkowanie, brak wykrywania:** nadmiar żądań kolejkuje lokalnie z istniejącą semantyką queue/timeout (wpisane błędy przyjęcia `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ). OmniRoute nie wykrywa ani nie wnioskuje zasad nadrzędnych. — wymusza dokładnie takie pułapy, jakie skonfigurował operator. Nasycona bramka modelu nigdy nie wyłącza dostawcy i nigdy nie powoduje trwałej blokady modelu; Zachowanie 429/cooldown/fallback w górę strumienia pozostaje zabezpieczeniem przed błędem.
+- **Na połączenie, zakres na proces:** caps są przypisane do połączenia z bazą danych i są przechowywane w pamięci, więc dwa połączenia ponownie wykorzystujące ten sam klucz nadrzędny API nie koordynują się ze sobą.
+- **Nieskonfigurowane oznacza niezmienione:** pominięcie mapy (lub pozostawienie pustego pola panelu kontrolnego) nie dodaje bramy modelu. Przykładowa konfiguracja bez podawania uniwersalnego limitu dostawcy:
```text
glm-5=1
glm-4.7=3
```
-### Serializacja żądań quota-share
-
-Gdy dyspozycja quota-share kieruje żądanie do połączenia deklarującego dodatni
-`max_concurrent`, współbieżne żądania do tego **konta** są serializowane przez
-semafor per połączenie (klucz `qsconn:`): nadmiarowe żądania **czekają
-w kolejce**, zamiast zalewać konto. Mechanizm jest **fail-open** — wysycona kolejka
-lub timeout powoduje kontynuację bez slotu, zamiast kiedykolwiek odrzucać żądanie
-możliwe do wysłania. Przełącznik w **Ustawienia → Odporność → Współbieżność
-quota-share per połączenie** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`,
-domyślnie włączone). Bez limitu `max_concurrent` zachowanie pozostaje niezmienione.
-
-> Bramka routingu quota-share (`selectQuotaShareTarget`, DRR + P2C) sama w sobie
-> działa w trybie fail-open i jedynie _obniża priorytet_ połączenia, które osiągnęło
-> limit — przy puli z jednym połączeniem nie może narzucić twardego limitu, więc to
-> właśnie ten semafor faktycznie powstrzymuje zalanie.
-
-### Ponawianie combo z uwzględnieniem cooldownu
-
-Dla każdej strategii combo (gdy jest włączona) żądanie, które przybrałoby postać
-błędu 429 dla KRÓTKIEGO przejściowego cooldownu, oczekuje jego upływ i jest wysyłane
-ponownie, zamiast zwracać 429 — obejmuje to okna TPM/RPM klasy Gemini (~60 s
-retry-after) w kombinacjach wielomodelowych, np. gdy oba cele combo 2-modelowego
-natrafiają na limit per model. Ograniczone parametrem `comboCooldownWait` (`enabled`,
-`maxWaitMs`, `maxAttempts`, `budgetMs`) w **Ustawienia → Odporność**. Nigdy nie czeka
-przy `quota_exhausted` (zablokowane do północy) ani z powodów auth/not-found.
-
-Ta sama bramka obejmuje przypadek przed wysłaniem (#16319): gdy każdy cel combo
-zostaje pominięty przed jakąkolwiek próbą, ponieważ jego model znajduje się w krótkiej
-przejściowej blokadzie, ścieżka bez żadnej próby oczekuje upływ blokady w ramach tych
-samych limitów i wysyła ponownie, zamiast odpowiadać błędem `503 ALL_TARGETS_SKIPPED`
-bez wskazówki. Gdy oczekiwanie nie jest dozwolone (wyczerpany limit, próby lub budżet
-albo funkcja wyłączona), odpowiedź końcowa jest podnoszona do `429 rate_limit_error`
-i przenosi `retry_after` / `reset_at` z najwcześniejszego wygaśnięcia przejściowej
-blokady; blokady quota, auth i not-found zachowują odpowiedź 503 bez wskazówki.
+### Serializacja żądania udziału przydziału
+
+Gdy wysyłka przydziału jest skierowana do połączenia, które deklaruje dodatnią `max_concurrent`, jednoczesne żądania do tego** konto** są serializowane przez semafor połączenia (klucz `qsconn:`): nadmiar żądań** czekać w kolejce** zamiast zalewać konto. To jest** otwieranie awaryjne** — zapełniona kolejka lub przekroczenie limitu czasu przebiega bez szczeliny, zamiast odrzucać możliwe do wysłania żądanie. Włącz** Ustawienia → Odporność → Współbieżność udziału przydziału na połączenie** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, domyślnie włączone). Bez czapki `max_concurrent` zachowanie pozostaje niezmienione.
+
+> Bramka routingu z udziałem przydziału (`selectQuotaShareTarget`, DRR + P2C) sama jest otwarta w przypadku awarii i tylko _depriorytetyzuje_ połączenie at-cap — z pulą pojedynczych połączeń, której nie można ograniczyć na stałe, więc ten semafor jest tym, co faktycznie zawiera powódź.
+
+### Ponowna próba kombinacji uwzględniająca czas odnowienia
+
+Dla każdej strategii combo (jeśli jest włączona), żądanie, które skrystalizowałoby 429 dla przejściowego czasu odnowienia SHORT, czeka i ponownie wysyła zamiast zwracać 429 — Dotyczy to okien TPM/RPM klasy Gemini (~ 60s retry-after) w kombinacjach wielu modeli, np. oba cele kombinacji 2-modelowej osiągają limit szybkości dla każdego modelu. Ograniczone przez `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) w** Ustawienia → Odporność** . Nigdy nie czeka na powody `quota_exhausted` (zablokowane do północy) lub auth/not-found.
+
+Kombinacja może zrezygnować z `config.comboCooldownWaitEnabled: false`. Tylko dosłowne `false` wyłącza te współdzielone oczekiwania combo (czas odnowienia po wysłaniu i oczekiwanie circuit-open/model-lock przed wysyłką) oraz ich wydłużenie limitu czasu oczekiwania i minimalnego budżetu. Brak lub `true` zachowuje politykę globalną; `true` nie może włączyć globalnie wyłączonego oczekiwania. Wyraźny `targetTimeoutMs` nadal wygrywa. Ta rezygnacja nie zmienia oddzielnego czasu oczekiwania przed wysyłką, zgodnego z natywnym Kodeksem.
+
+Ta sama bramka obejmuje przypadek przed wysyłką (#16319): kiedy każdy cel kombinacji jest pomijany przed podjęciem jakiejkolwiek próby, ponieważ jego model znajduje się w krótkiej, przejściowej blokadzie, ścieżka zerowej próby czeka na blokadę pod tymi samymi sufitami i ponownie wysyła, zamiast odpowiadać na bez podpowiedzi `503 ALL_TARGETS_SKIPPED`. Gdy nie jest dozwolone oczekiwanie (wyczerpany limit, próba lub budżet albo funkcja wyłączona), odpowiedź terminala jest aktualizowana do `429 rate_limit_error` przenoszącego `retry_after` / `reset_at` od najwcześniejszego wygaśnięcia blokady przejściowej; Blokady kwot, uwierzytelnień i nieznalezionych utrzymują kod 503 bez podpowiedzi.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/pl/docs/guides/USER_GUIDE.md b/docs/i18n/pl/docs/guides/USER_GUIDE.md
index 1279dd578e90..3f596f530665 100644
--- a/docs/i18n/pl/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/pl/docs/guides/USER_GUIDE.md
@@ -612,55 +612,55 @@ Pełną dokumentację zmiennych środowiskowych można znaleźć w pliku [README
Zobacz wszystkie dostępne modele
-> Poniższa lista została opracowana na podstawie `open-sse/config/providerRegistry.ts` dla wersji v3.8.0. Katalogi chmurowe (Gemini, OpenRouter itp.) są synchronizowane dynamicznie — pełny aktualny katalog znajdziesz w **Panel → Dostawcy → [dostawca] → Dostępne modele** lub wywołując `GET /api/models/catalog`.
+> Poniższa lista została opracowana na podstawie `open-sse/config/providerRegistry.ts` dla wersji 3.8.0. Katalogi w chmurze (Gemini, OpenRouter itp.) są synchronizowane dynamicznie — w celu otwarcia pełnego katalogu na żywo** Panel kontrolny → Dostawcy → [dostawca] → Dostępne modele** lub zadzwoń do `GET /api/models/catalog`.
>
-> Jeśli wbudowana lista dostawcy się zdezaktualizowała, użyj opcji **Importuj z /models** na tej stronie (lub włącz **Autosynchronizację**), aby pobrać aktualny katalog z upstreamu. Zostało to zweryfikowane w wersji v3.8.50 dla LLM7.io (`gemini-3.1-flash-lite`) oraz UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); anonimowy dostęp do Pollinations pozostał ograniczony po stronie upstream podczas tej samej rundy testów.
+> Jeśli wbudowana lista dostawcy uległa zmianie, użyj** Importuj z /modele** na tej stronie (lub włącz** Automatyczna synchronizacja** ), aby pobrać aktywny katalog nadrzędny. Zostało to zweryfikowane w wersji 3.8.50 dla LLM7(`gemini-3.1-flash-lite`) i UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Anonimowy dostęp do zapyleń pozostał ograniczony w górę rzeki podczas tego samego przebiegu testowego.
-**Claude Code (`cc/`)** — OAuth Pro/Max: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Kod Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — OAuth Plus/Pro: `cx/gpt-5.5` (+ poziomy effort: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (poziomy wysiłku + : `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — BEZPŁATNY OAuth: korzystaj z katalogu na żywo widocznego w **Panel → Dostawcy → Kiro → Dostępne modele**. Dostępność zależy od konta i planu.
+**Kiro (`kr/`)** — FREE OAuth: skorzystaj z aktualnego katalogu pokazanego poniżej** Panel kontrolny → Dostawcy → Kiro → Dostępne modele** . Dostępność zależy od konta i planu.
-**Qoder (`if/`)** — BEZPŁATNY OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mies. ryczałtem lub według użycia: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo płaskie lub jednorazowe: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — klucz API: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API klucz: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — ultraszybki: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Ultraszybki: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — natywny Grok: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok natywny: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — hosting w UE: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — Hostowane w UE: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — wspomagany wyszukiwaniem: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Zakłopotanie (`pplx/`)** — Rozszerzone wyszukiwanie: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — open source: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (bezpłatny), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — Open source: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (bezpłatny), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — szybka inferencja: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Szybkie wnioskowanie: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — wafer-scale: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Skala waflowa: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — nastawiony na RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — Koncentruje się na RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — klasa enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Przedsiębiorstwo: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama chmura (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: synchronizowane na żywo dla każdego klucza API z Google — brak statycznej listy. Podłącz klucz w **Panel → Dostawcy**, a następnie użyj opcji **Dostępne modele**, aby zaimportować aktualny katalog (np. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Chmura `gemini/`)** : Synchronizowane na żywo według klucza API z Google — bez listy statycznej. Podłącz klucz** Pulpit nawigacyjny → Dostawcy** następnie użyj** Dostępne modele** aby zaimportować bieżący katalog (np. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Inni kompatybilni dostawcy** (wybrani): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (przez `aws-bedrock`), `azure-ai`, `openrouter` (katalog przekazywany), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Każdy z nich utrzymuje własną listę modeli w `providerRegistry.ts` i może być synchronizowany automatycznie, gdy dostawca udostępnia endpoint `/models`.
+**Inni kompatybilni dostawcy** (wybrane): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (przez `aws-bedrock`), `azure-ai`, `openrouter` (katalog przejściowy), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Każdy z nich utrzymuje własną listę modeli w `providerRegistry.ts` i może być automatycznie synchronizowany, gdy dostawca udostępni punkt końcowy `/models`.
-**Uwaga dotycząca identyfikatorów modeli:** OmniRoute używa natywnych identyfikatorów dostawców (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Niektóre identyfikatory zawierają wersje zapisywane z kropkami, ponieważ właśnie takiego formatu oczekuje nadrzędne API. Jeśli modelu nie ma na powyższej liście, uruchom `omniroute models --search ` lub wywołaj `GET /api/models/catalog`, aby potwierdzić dostępność.
+**Uwaga dotycząca modelu IDs:** OmniRoute używa natywnego IDs dostawcy (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Niektóre IDs zawierają wersje z kropkami, ponieważ tak tego oczekuje API wyższego szczebla. Jeśli modelu nie ma na liście powyżej, uruchom `omniroute models --search ` lub naciśnij `GET /api/models/catalog`, aby potwierdzić dostępność.
diff --git a/docs/i18n/pt-BR/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/pt-BR/docs/architecture/RESILIENCE_GUIDE.md
index 25a2db6f5dae..7dc3f04f9b01 100644
--- a/docs/i18n/pt-BR/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/pt-BR/docs/architecture/RESILIENCE_GUIDE.md
@@ -291,26 +291,17 @@ _estado_ de bloqueio ativo é efêmero.
---
-## 4. Controle de Concorrência Quota-Share (v3.8.36)
+## 4. Controle de simultaneidade de cota-compartilhamento (v3.8.36)
-Contas de assinatura (GLM, MiniMax, etc.) geralmente aceitam apenas ~1–3
-requisições simultâneas; exceder esse limite dispara respostas 429 e cooldowns.
-Isso é crítico em combos **quota-share** (`qtSd/…`), onde várias chaves de API
-compartilham uma única conta upstream. Três camadas impedem que uma conta
-compartilhada seja inundada.
+As contas de assinatura (GLM, MiniMax, etc.) geralmente aceitam apenas ~ 1–3 solicitações simultâneas; exceder isso aciona 429s e cooldowns. Isto é agudo sob** quota-partilha** (`qtSd/…`) combos, onde várias chaves API compartilham uma conta upstream. Três camadas evitam que uma conta compartilhada seja inundada.
-### Limite de concorrência por conexão (`max_concurrent`)
+### Limite de simultaneidade por conexão (`max_concurrent`)
-Cada conexão de provedor pode declarar um teto de `max_concurrent`
-(`provider_connections.max_concurrent`, definido no modal de conexão / API /
-banco de dados). Deixe vazio para nenhum limite. Este é o único controle que
-aciona a camada de serialização abaixo — defina-o para a concorrência real da
-conta (ex.: GLM ~1, MiniMax ~2).
+Cada conexão de provedor pode declarar um teto `max_concurrent` (`provider_connections.max_concurrent`, definido na conexão modal / API / DB). Deixe-o vazio sem limite. Este é o botão único que aciona a camada de serialização abaixo de — e configure-a para a simultaneidade real da conta (por exemplo, GLM ~ 1, MiniMax ~ 2).
-### Limites de concorrência por modelo (`modelConcurrency`)
+### Limites de simultaneidade por modelo (`modelConcurrency`)
-Uma conexão pode adicionalmente declarar tetos exatos de concorrência por
-modelo dentro do seu mapa `rateLimitOverrides`:
+Uma conexão também pode declarar limites exatos de simultaneidade por modelo dentro de seu mapa `rateLimitOverrides` :
```json
{
@@ -321,77 +312,32 @@ modelo dentro do seu mapa `rateLimitOverrides`:
}
```
-Defina-o no modal de conexão (**Substituições de rate limit → Limites de
-concorrência por modelo**, um `model=cap` por linha) ou via
-`PATCH /api/providers/[id]` com o mesmo formato JSON. Semântica das chaves:
-
-- **Âmbito da conexão vs. específico do modelo:** `maxConcurrent` permanece o
- teto compartilhado da conexão como um todo. Quando ambos se aplicam, os dois
- gates são adquiridos atomicamente no mesmo gate composto
- (`global → provider → account → model`); o comportamento efetivo é o limite
- aplicável mais restritivo.
-- **Correspondência exata da chave do modelo:** a chave é a string do modelo
- passada ao executor após a resolução do roteamento — normalmente o id do
- modelo upstream puro (`glm-5`), não um alias `provider/model` do lado do
- cliente (`zai/glm-5` não corresponde a `glm-5`). Os valores são tetos
- inteiros positivos de requisições simultâneas.
-- **Enfileiramento local, sem descoberta:** as requisições excedentes são
- enfileiradas localmente com a semântica de fila/timeout existente (erros de
- admissão tipados `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). O OmniRoute
- não descobre nem infere a política upstream — ele impõe os tetos exatos que
- o operador configurou. Um gate de modelo saturado nunca desabilita o
- provedor e nunca cria um bloqueio permanente do modelo; o comportamento
- upstream de 429/cooldown/fallback permanece como a salvaguarda final para
- erros.
-- **Escopo por conexão, por processo:** os limites são por conexão de banco de
- dados e mantidos em memória, portanto duas conexões que reutilizam a mesma
- chave de API upstream não se coordenam entre si.
-- **Não configurado significa inalterado:** omitir o mapa (ou deixar o campo do
- dashboard em branco) não adiciona nenhum gate de modelo. Exemplo de
- configuração sem afirmar nenhum limite universal do provedor:
+Defina-o no modal de conexão (** O limite de taxa substitui os limites de simultaneidade → por modelo** , um `model=cap` por linha) ou via `PATCH /api/providers/[id]` com o mesmo formato JSON. Semântica chave:
+
+- **Em toda a conexão versus específico do modelo:** `maxConcurrent` continua sendo o teto compartilhado para toda a conexão. Quando ambos se aplicam, ambas as portas são adquiridas atomicamente na mesma porta composta (`global → provider → account → model`); o comportamento efetivo é o limite aplicável mais estrito.
+- **Correspondência exata da chave do modelo:** a chave é a string do modelo passada ao executor após a resolução de roteamento — normalmente o ID do modelo upstream simples (`glm-5`), não um alias `provider/model` do lado do cliente (`zai/glm-5` não corresponde `glm-5`). Os valores são limites máximos de solicitações simultâneas de número inteiro positivo.
+- **Enfileiramento local, sem descoberta:** solicitações em excesso são enfileiradas localmente com a semântica queue/timeout existente (erros de admissão `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` digitados). OmniRoute não descobre nem infere a política upstream. — ele impõe os limites exatos que o operador configurou. Um modelo saturado nunca desativa o provedor e nunca cria um bloqueio permanente do modelo; o comportamento upstream 429/cooldown/fallback continua sendo o backstop de erro.
+- **Escopo por conexão e por processo:** caps são por conexão de banco de dados e mantidos na memória, portanto, duas conexões que reutilizam a mesma chave API upstream não são coordenadas entre si.
+- **Não configurado significa inalterado:** omitir o mapa (ou deixar o campo do painel em branco) não adiciona nenhuma porta de modelo. Exemplo de configuração sem declarar qualquer limite de provedor universal:
```text
glm-5=1
glm-4.7=3
```
-### Serialização de requisições quota-share
-
-Quando um despacho quota-share tem como alvo uma conexão que declara um
-`max_concurrent` positivo, as requisições simultâneas para essa **conta** são
-serializadas por meio de um semáforo por conexão (chave `qsconn:`):
-as requisições excedentes **aguardam na fila** em vez de inundar a conta. É
-**fail-open** — uma fila saturada ou timeout prossegue sem um slot em vez de
-jamais rejeitar uma requisição despachável. Alterne em **Configurações →
-Resiliência → Concorrência por conexão quota-share**
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, ativado por padrão).
-Sem um teto de `max_concurrent`, o comportamento permanece inalterado.
-
-> O gate de roteamento quota-share (`selectQuotaShareTarget`, DRR + P2C) é em
-> si fail-open e apenas _desprioriza_ uma conexão no limite — com um pool de
-> conexão única ele não pode impor um limite rígido, portanto este semáforo é
-> o que realmente contém o fluxo.
-
-### Retry ciente de cooldown em combos
-
-Para cada estratégia de combo (quando ativada), uma requisição que cristalizaria
-um 429 por um cooldown transitório CURTO aguarda sua expiração e é reenviada em
-vez de retornar o 429 — isso cobre janelas de TPM/RPM da classe Gemini (~60s de
-retry-after) em combos multi-modelo, por exemplo, quando ambos os alvos de um
-combo de 2 modelos atingem um limite de taxa por modelo. Limitado por
-`comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) em
-**Configurações → Resiliência**. Nunca aguarda em `quota_exhausted` (bloqueado
-até meia-noite) ou por motivos de autenticação/não encontrado.
-
-O mesmo gate cobre o caso pré-despacho (#16319): quando todos os alvos de um
-combo são ignorados antes de qualquer tentativa porque seu modelo está em um
-bloqueio transitório curto, o caminho de zero tentativas aguarda a expiração do
-bloqueio sob os mesmos tetos e reenvia, em vez de responder um
-`503 ALL_TARGETS_SKIPPED` sem hint. Quando nenhuma espera é permitida (teto,
-tentativas ou orçamento esgotados, ou o recurso desativado), a resposta terminal
-é promovida para `429 rate_limit_error` carregando `retry_after` / `reset_at`
-da expiração de bloqueio transitório mais próxima; bloqueios de cota,
-autenticação e não encontrado mantêm o 503 sem hint.
+### Serialização de solicitação de cota compartilhada
+
+Quando um despacho de cota compartilhada tem como alvo uma conexão que declara um `max_concurrent` positivo, solicitações simultâneas para esse** conta** são serializados através de um semáforo por conexão (chave `qsconn:`): solicitações em excesso** espere na fila** em vez de inundar a conta. Isso é** falha aberta** — uma fila saturada ou tempo limite prossegue sem um slot, em vez de rejeitar uma solicitação despachável. Ativar** Configurações → Resiliência → Simultaneidade de cota compartilhada por conexão** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, padrão ativado). Sem um limite `max_concurrent` o comportamento permanece inalterado.
+
+> A porta de roteamento de cota-compartilhamento (`selectQuotaShareTarget`, DRR + P2C) é aberta em caso de falha e apenas _desprioriza_ uma conexão at-cap — com um pool de conexão única que não pode ser limitado, então esse semáforo é o que realmente contém a inundação.
+
+### Nova tentativa com reconhecimento de resfriamento combinado
+
+Para cada estratégia de combinação (quando ativada), uma solicitação que cristalizaria um 429 para um resfriamento transitório SHORT espera e reenvia em vez de retornar o 429 — Isso cobre janelas TPM/RPM da classe Gemini (~ 60s retry-after) em combos de vários modelos, por exemplo, ambos os alvos de um combo de 2 modelos atingindo um limite de taxa por modelo. Delimitado por `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) em** Configurações → Resiliência** . Ele nunca espera por motivos `quota_exhausted` (bloqueado até meia-noite) ou auth/not-found.
+
+Um combo pode ser desativado com `config.comboCooldownWaitEnabled: false`. Apenas `false` literal desativa essas esperas combinadas compartilhadas (resfriamento pós-despacho e esperas circuit-open/model-lock pré-despacho) e sua extensão de tempo limite de orçamento de espera. Missing ou `true` preserva a política global; `true` não pode ativar a espera desabilitada globalmente. Um `targetTimeoutMs` explícito ainda vence. Essa desativação não altera a espera de pré-despacho separada do código nativo do Codex.
+
+A mesma porta cobre o caso de pré-despacho (#16319): quando cada alvo de um combo é ignorado antes de qualquer tentativa ser feita porque seu modelo fica em um bloqueio transitório curto, o caminho de tentativa zero aguarda o bloqueio sob os mesmos limites e reenvia, em vez de responder a um `503 ALL_TARGETS_SKIPPED` sem dicas. Quando nenhuma espera é permitida (teto, tentativa ou orçamento esgotados, ou recurso desativado), a resposta do terminal é atualizada para `429 rate_limit_error` transportando `retry_after` / `reset_at` a partir da primeira expiração transitória do bloqueio; Os bloqueios de cota, autenticação e não encontrado mantêm o 503 sem dicas.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/pt-BR/docs/guides/USER_GUIDE.md b/docs/i18n/pt-BR/docs/guides/USER_GUIDE.md
index 2bb5e5a9e272..855f89721839 100644
--- a/docs/i18n/pt-BR/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/pt-BR/docs/guides/USER_GUIDE.md
@@ -605,60 +605,60 @@ Para consultar a referência completa das variáveis de ambiente, consulte o [RE
---
-## 📊 Modelos Disponíveis
+## Modelos disponíveis 📊
-Ver todos os modelos disponíveis
+Veja todos os modelos disponíveis
-> A lista abaixo é curada a partir de `open-sse/config/providerRegistry.ts` para a v3.8.0. Os catálogos de nuvem (Gemini, OpenRouter, etc.) são sincronizados dinamicamente — para o catálogo completo e atualizado, abra **Dashboard → Provedores → [provedor] → Modelos Disponíveis** ou chame `GET /api/models/catalog`.
+> A lista abaixo foi selecionada pelo `open-sse/config/providerRegistry.ts` para v3.8.0. Catálogos em nuvem (Gemini, OpenRouter, etc.) são sincronizados dinamicamente — para a abertura completa do catálogo ativo** Dashboard → Provedores → [provedor] → Modelos disponíveis** ou ligue para `GET /api/models/catalog`.
>
-> Se a lista integrada de um provedor estiver desatualizada, use **Importar de /models** nessa página (ou ative a **Sincronização Automática**) para obter o catálogo upstream atualizado. Isso foi verificado na v3.8.50 para LLM7.io (`gemini-3.1-flash-lite`) e UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); o acesso anônimo ao Pollinations permaneceu limitado pelo upstream durante a mesma rodada de testes.
+> Se a lista interna de um provedor tiver mudado, use** Importar de /modelos** nessa página (ou ative** Sincronização automática** ) para obter o catálogo upstream ativo. Isso foi verificado na v3.8.50 para LLM7.io (`gemini-3.1-flash-lite`) e UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); O acesso anônimo das polinizações permaneceu limitado pelo upstream durante a mesma passagem de teste.
-**Claude Code (`cc/`)** — OAuth Pro/Max: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Código Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — OAuth Plus/Pro: `cx/gpt-5.5` (+ níveis de esforço: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (níveis de esforço + : `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth GRATUITO: use o catálogo atualizado exibido em **Dashboard → Provedores → Kiro → Modelos Disponíveis**. A disponibilidade depende da conta e do plano.
+**Kiro (`kr/`)** — FREE OAuth: use o catálogo ativo mostrado em** Provedores → do painel → Kiro → Modelos disponíveis** . A disponibilidade depende da conta e do plano.
-**Qoder (`if/`)** — OAuth GRATUITO: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mês fixo ou por uso: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo fixo ou por uso: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — Chave de API: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** Chave — API : `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
**Groq (`groq/`)** — Ultrarrápido: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
**xAI (`xai/`)** — Grok nativo: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Hospedado na UE: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — hospedado na UE: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Aumentado por busca: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Perplexidade (`pplx/`)** — pesquisa aumentada: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
**Together AI (`together/`)** — Código aberto: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (gratuito), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
**Fireworks AI (`fireworks/`)** — Inferência rápida: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Escala de wafer: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** Escala de wafer — : `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Focado em RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — com foco em RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Empresarial: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Empresa: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Sincronizado em tempo real por chave de API do Google — sem lista estática. Conecte uma chave em **Dashboard → Provedores** e depois use **Modelos Disponíveis** para importar o catálogo atual (ex.: `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Nuvem `gemini/`)** : Sincronizado ao vivo por chave API de Google — sem lista estática. Conecte uma chave em** Provedores → do painel** então use** Modelos Disponíveis** para importar o catálogo atual (por exemplo, `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Outros provedores compatíveis** (seleção): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (catálogo de repasse), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Cada um mantém sua própria lista de modelos em `providerRegistry.ts` e pode ser sincronizado automaticamente quando o provedor expõe um endpoint `/models`.
+**Outros provedores compatíveis** (selecionado): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (catálogo de passagem), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Cada um mantém sua própria lista de modelos no `providerRegistry.ts` e pode ser sincronizado automaticamente quando o provedor expõe um endpoint `/models`.
-**Nota sobre IDs de modelos:** O OmniRoute usa IDs nativos do provedor (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Alguns IDs incluem versões com pontos porque é assim que a API upstream os espera. Se um modelo não estiver listado acima, execute `omniroute models --search ` ou consulte `GET /api/models/catalog` para confirmar a disponibilidade.
+**Nota sobre o modelo IDs:** OmniRoute usa IDs nativo do provedor (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Alguns IDs incluem versões pontilhadas porque é assim que o API upstream as espera. Se um modelo não estiver listado acima, execute `omniroute models --search ` ou clique em `GET /api/models/catalog` para confirmar a disponibilidade.
diff --git a/docs/i18n/pt/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/pt/docs/architecture/RESILIENCE_GUIDE.md
index 3cf567f8dfde..c5c58bfb50d1 100644
--- a/docs/i18n/pt/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/pt/docs/architecture/RESILIENCE_GUIDE.md
@@ -314,20 +314,17 @@ base de dados — perdem-se ao reiniciar. As _definições_ são persistidas; o
---
-## 4. Controlo de Concorrência Quota-Share (v3.8.36)
+## 4. Controlo de simultaneidade de quota-partilha (v3.8.36)
-As contas de subscrição (GLM, MiniMax, etc.) aceitam frequentemente apenas ~1–3 pedidos concorrentes; exceder esse limite desencadeia erros 429 e cooldowns. Isto é especialmente crítico em combos **quota-share** (`qtSd/…`), onde várias chaves API partilham uma única conta upstream. Três camadas evitam que uma conta partilhada seja inundada.
+As contas de subscrição (GLM, MiniMax, etc.) geralmente só aceitam ~ 1–3 pedidos simultâneos; exceder isso aciona 429s e cooldowns. Isto é agudo sob** quota-partilha** (`qtSd/…`) combos, em que várias chaves API partilham uma conta upstream. Três camadas evitam que uma conta partilhada seja inundada.
-### Limite de concorrência por ligação (`max_concurrent`)
+### Limite de simultaneidade por ligação (`max_concurrent`)
-Cada ligação de fornecedor pode declarar um teto `max_concurrent`
-(`provider_connections.max_concurrent`, definido no modal de ligação / API / BD).
-Deixe-o vazio para não aplicar limite. Este é o único parâmetro que alimenta a camada de serialização abaixo — defina-o para a concorrência real da conta (p. ex. GLM ~1, MiniMax ~2).
+Cada ligação de fornecedor pode declarar um tecto `max_concurrent` (`provider_connections.max_concurrent`, definido na ligação modal / API / DB). Deixe-o vazio sem limite. Este é o botão único que aciona a camada de serialização abaixo de — e a configura para a simultaneidade real da conta (por exemplo, GLM ~ 1, MiniMax ~ 2).
-### Limites de concorrência por modelo (`modelConcurrency`)
+### Limites de simultaneidade por modelo (`modelConcurrency`)
-Uma ligação pode adicionalmente declarar tetos de concorrência exatos por modelo
-dentro do seu mapa `rateLimitOverrides`:
+Uma ligação pode também declarar limites exatos de simultaneidade por modelo dentro do seu mapa `rateLimitOverrides` :
```json
{
@@ -338,78 +335,32 @@ dentro do seu mapa `rateLimitOverrides`:
}
```
-Defina-o no modal de ligação (**Substituições de rate limit → Limites de
-concorrência por modelo**, um `model=cap` por linha) ou através de
-`PATCH /api/providers/[id]` com a mesma estrutura JSON. Semântica das chaves:
-
-- **Âmbito da ligação vs. específico do modelo:** o `maxConcurrent` continua a
- ser o teto partilhado ao nível da ligação. Quando ambos se aplicam, ambos os
- gates são adquiridos atomicamente no mesmo gate composto
- (`global → provider → account → model`); o comportamento efetivo é o do
- limite aplicável mais restritivo.
-- **Correspondência exata da chave do modelo:** a chave é a string do modelo
- passada ao executor após a resolução do encaminhamento — normalmente o id do
- modelo upstream sem prefixo (`glm-5`), e não um alias `provider/model` do lado
- do cliente (`zai/glm-5` não corresponde a `glm-5`). Os valores são tetos de
- pedidos concorrentes em números inteiros positivos.
-- **Fila local, sem deteção:** os pedidos excedentes aguardam em fila local com
- a semântica de fila/timeout existente (erros de admissão tipados
- `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). O OmniRoute não deteta nem
- infere a política upstream — impõe exatamente os tetos que o operador
- configurou. Um gate de modelo saturado nunca desativa o fornecedor e nunca
- cria um bloqueio permanente do modelo; o comportamento upstream de
- 429/cooldown/fallback continua a ser a salvaguarda de erro.
-- **Âmbito por ligação e por processo:** os limites são por ligação de base de
- dados e mantidos em memória, pelo que duas ligações que reutilizam a mesma
- chave API upstream não se coordenam entre si.
-- **Não configurado significa inalterado:** omitir o mapa (ou deixar o campo do
- dashboard em branco) não adiciona nenhum gate de modelo. Exemplo de
- configuração sem afirmar qualquer limite universal do fornecedor:
+Defina-o no modal de ligação (** O limite de taxa substitui os limites de simultaneidade → por modelo** , um `model=cap` por linha) ou através de `PATCH /api/providers/[id]` com o mesmo formato JSON. Semântica chave:
+
+- **Em toda a ligação versus específico do modelo:** `maxConcurrent` continua a ser o teto partilhado para toda a ligação. Quando ambos se aplicam, ambas as portas são adquiridas atomicamente na mesma porta composta (`global → provider → account → model`); o comportamento efetivo é o limite aplicável mais rigoroso.
+- **Correspondência exata da chave do modelo:** a chave é a string do modelo passada ao executor após a resolução de encaminhamento — normalmente o ID do modelo upstream simples (`glm-5`), e não um alias `provider/model` do lado do cliente (`zai/glm-5` não corresponde `glm-5`). Os valores são limites máximos de pedidos simultâneos de número inteiro positivo.
+- **Enfileiramento local, sem descoberta:** os pedidos em excesso são enfileirados localmente com a semântica queue/timeout existente (erros de admissão `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` digitados). OmniRoute não descobre nem infere a política upstream. — impõe os limites exatos que o operador configurou. Um modelo saturado nunca desativa o fornecedor e nunca cria um bloqueio permanente do modelo; o comportamento upstream 429/cooldown/fallback continua a ser o backstop de erro.
+- **Âmbito por ligação e por processo:** caps são por ligação à base de dados e mantidos em memória, pelo que duas ligações que reutilizam a mesma chave API upstream não são coordenadas entre si.
+- **Não configurado significa inalterado:** omitir o mapa (ou deixar o campo do painel em branco) não acrescenta nenhuma porta de modelo. Exemplo de configuração sem declarar qualquer limite de fornecedor universal:
```text
glm-5=1
glm-4.7=3
```
-### Serialização de pedidos quota-share
-
-Quando um despacho quota-share tem como alvo uma ligação que declara um
-`max_concurrent` positivo, os pedidos concorrentes para essa **conta** são
-serializados através de um semáforo por ligação (chave `qsconn:`):
-os pedidos excedentes **aguardam na fila** em vez de inundarem a conta. É
-**fail-open** — uma fila saturada ou um timeout prossegue sem um slot, em vez de
-alguma vez rejeitar um pedido despachável. Ative/desative em **Definições →
-Resiliência → Concorrência por ligação quota-share**
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, ativo por
-predefinição). Sem um limite `max_concurrent`, o comportamento permanece
-inalterado.
-
-> O gate de encaminhamento quota-share (`selectQuotaShareTarget`, DRR + P2C) é
-> ele próprio fail-open e apenas _desprioriza_ uma ligação no limite — com um
-> pool de uma única ligação não consegue impor um limite rígido, pelo que é este
-> semáforo que contém efetivamente a inundação.
-
-### Repetição ciente de cooldown em combos
-
-Para cada estratégia de combo (quando ativada), um pedido que cristalizaria um
-429 por um cooldown transitório CURTO aguarda que este expire e volta a despachar
-em vez de devolver o 429 — isto cobre janelas TPM/RPM da classe Gemini (~60s de
-retry-after) em combos multi-modelo, p. ex. ambos os alvos de um combo de 2
-modelos atingirem um rate limit por modelo. Limitado por `comboCooldownWait`
-(`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) em **Definições →
-Resiliência**. Nunca aguarda em caso de `quota_exhausted` (bloqueado até à
-meia-noite) ou motivos de autenticação/não encontrado.
-
-O mesmo gate cobre o caso de pré-despacho (#16319): quando todos os alvos de um
-combo são ignorados antes de qualquer tentativa porque o seu modelo se encontra
-num bloqueio transitório curto, o caminho de zero tentativas aguarda que o
-bloqueio expire sob os mesmos tetos e volta a despachar, em vez de responder com
-um `503 ALL_TARGETS_SKIPPED` sem indicação. Quando não é permitida qualquer
-espera (teto, tentativas ou orçamento esgotados, ou a funcionalidade
-desativada), a resposta terminal é promovida a `429 rate_limit_error`,
-transportando `retry_after` / `reset_at` do bloqueio transitório que expira
-primeiro; os bloqueios de quota, autenticação e não encontrado mantêm o 503 sem
-indicação.
+### Serialização de pedido de quota partilhada
+
+Quando um despacho de quota partilhada tem como alvo uma ligação que declara um `max_concurrent` positivo, os pedidos simultâneos para esse** conta** são serializados através de um semáforo por ligação (chave `qsconn:`): excesso de pedidos** espere na fila** em vez de inundar a conta. Isso é** falha aberta** — uma fila saturada ou tempo limite prossegue sem um slot, em vez de rejeitar um pedido despachável. Ativar** Configurações → Resiliência → Simultaneidade de quota partilhada por ligação** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, padrão activado). Sem um limiar `max_concurrent` o comportamento permanece inalterado.
+
+> A porta de encaminhamento de quota-partilha (`selectQuotaShareTarget`, DRR + P2C) é aberta em caso de falha e apenas _desprioriza_ uma ligação at-cap — com um pool de ligação única que não pode ser limitado, pelo que este semáforo é o que realmente contém a inundação.
+
+### Nova tentativa com reconhecimento de arrefecimento combinado
+
+Para cada estratégia de combinação (quando ativada), um pedido que cristalizaria um 429 para um arrefecimento transitório SHORT espera e reenvia em vez de devolver o 429 — Isto cobre janelas TPM/RPM da classe Gemini (~ 60s retry-after) em combos de vários modelos, por exemplo, ambos os alvos de um combo de 2 modelos atingindo um limite de taxa por modelo. Delimitado por `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) em** Configurações → Resiliência** . Nunca espera por motivos `quota_exhausted` (bloqueado até à meia-noite) ou auth/not-found.
+
+Um combo pode ser desativado com `config.comboCooldownWaitEnabled: false`. Apenas `false` literal desativa estas esperas combinadas partilhadas (arrefecimento pós-despacho e esperas circuit-open/model-lock pré-despacho) e a sua extensão de tempo limite de orçamento de espera. Missing ou `true` preserva a política global; `true` não pode ativar a espera desativada globalmente. Um `targetTimeoutMs` explícito ainda ganha. Esta desativação não altera a espera de pré-despacho separada do código nativo do Codex.
+
+A mesma porta cobre o caso de pré-despacho (#16319): quando cada alvo de um combo é ignorado antes de qualquer tentativa ser feita porque o seu modelo fica num bloqueio transitório curto, o caminho de tentativa zero aguarda o bloqueio sob os mesmos limites e reenvia, em vez de responder a um `503 ALL_TARGETS_SKIPPED` sem dicas. Quando não é permitida qualquer espera (teto, tentativa ou orçamento esgotados, ou recurso desativado), a resposta do terminal é atualizada para `429 rate_limit_error` transportando `retry_after` / `reset_at` a partir da primeira expiração transitória do bloqueio; Os bloqueios de quota, autenticação e não encontrado mantêm o 503 sem dicas.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/pt/docs/guides/USER_GUIDE.md b/docs/i18n/pt/docs/guides/USER_GUIDE.md
index a402c9a82b80..a2af946ff059 100644
--- a/docs/i18n/pt/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/pt/docs/guides/USER_GUIDE.md
@@ -607,60 +607,60 @@ Para consultar a referência completa das variáveis de ambiente, consulte o [RE
---
-## 📊 Modelos Disponíveis
+## Modelos disponíveis 📊
-Ver todos os modelos disponíveis
+Veja todos os modelos disponíveis
-> A lista abaixo é compilada a partir de `open-sse/config/providerRegistry.ts` para a v3.8.0. Os catálogos na nuvem (Gemini, OpenRouter, etc.) são sincronizados dinamicamente — para o catálogo completo em tempo real, abra **Painel → Fornecedores → [fornecedor] → Modelos Disponíveis** ou chame `GET /api/models/catalog`.
+> A lista abaixo foi selecionada pelo `open-sse/config/providerRegistry.ts` para a v3.8.0. Os catálogos na nuvem (Gemini, OpenRouter, etc.) são sincronizados dinamicamente — para a abertura completa do catálogo ativo** Dashboard → Fornecedores → [fornecedor] → Modelos disponíveis** ou ligue para o `GET /api/models/catalog`.
>
-> Se a lista integrada de um fornecedor estiver desatualizada, utilize **Importar de /models** nessa página (ou ative a **Sincronização Automática**) para obter o catálogo upstream em tempo real. Isto foi verificado na v3.8.50 para LLM7.io (`gemini-3.1-flash-lite`) e UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); o acesso anónimo ao Pollinations permaneceu limitado no upstream durante a mesma ronda de testes.
+> Se a lista interna de um fornecedor tiver sido alterada, utilize** Importar de /modelos** nessa página (ou ative** Sincronização automática** ) para obter o catálogo upstream ativo. Isto verificou-se na v3.8.50 para LLM7.io (`gemini-3.1-flash-lite`) e UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); O acesso anónimo das polinizações permaneceu limitado pelo upstream durante a mesma passagem de teste.
-**Claude Code (`cc/`)** — OAuth Pro/Max: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Código Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — OAuth Plus/Pro: `cx/gpt-5.5` (+ níveis de esforço: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (níveis de esforço + : `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth GRATUITO: utilize o catálogo em tempo real apresentado em **Painel → Fornecedores → Kiro → Modelos Disponíveis**. A disponibilidade depende da conta e do plano.
+**Kiro (`kr/`)** — FREE OAuth: utilize o catálogo ativo apresentado na** Fornecedores → do painel → Kiro → Modelos disponíveis** . A disponibilidade depende da conta e do plano.
-**Qoder (`if/`)** — OAuth GRATUITO: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mês fixo ou por utilização: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo fixo ou por utilização: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — Chave API: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** Chave — API : `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
**Groq (`groq/`)** — Ultrarrápido: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
**xAI (`xai/`)** — Grok nativo: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Alojado na UE: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — alojados na UE: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Aumentado com pesquisa: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Perplexidade (`pplx/`)** — pesquisa aumentada: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
**Together AI (`together/`)** — Código aberto: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (gratuito), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
**Fireworks AI (`fireworks/`)** — Inferência rápida: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Escala de wafer: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** Escala de bolacha — : `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Focado em RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — com foco no RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Empresarial: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Empresa: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Sincronizado em tempo real por chave API a partir da Google — sem lista estática. Associe uma chave em **Painel → Fornecedores** e depois utilize **Modelos Disponíveis** para importar o catálogo atual (ex.: `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Nuvem `gemini/`)** : Sincronizado ao vivo por chave API de Google — sem lista estática. Ligue uma chave em** Fornecedores → do painel** então use** Modelos Disponíveis** para importar o catálogo atual (por exemplo, `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Outros fornecedores compatíveis** (seleção): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (catálogo passthrough), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Cada um mantém a sua própria lista de modelos em `providerRegistry.ts` e pode ser sincronizado automaticamente quando o fornecedor expõe um endpoint `/models`.
+**Outros fornecedores compatíveis** (selecionado): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (catálogo de passagem), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Cada um mantém a sua própria lista de modelos no `providerRegistry.ts` e podem ser sincronizados automaticamente quando o fornecedor expõe um endpoint `/models`.
-**Nota sobre os IDs de modelos:** O OmniRoute utiliza IDs nativos do fornecedor (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Alguns IDs incluem versões com pontos porque é assim que a API upstream os espera. Se um modelo não estiver listado acima, execute `omniroute models --search ` ou consulte `GET /api/models/catalog` para confirmar a disponibilidade.
+**Nota sobre o modelo IDs:** OmniRoute utiliza IDs nativo do fornecedor (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Alguns IDs incluem versões pontilhadas porque é assim que o API upstream as espera. Se um modelo não estiver listado acima, execute `omniroute models --search ` ou clique em `GET /api/models/catalog` para confirmar a disponibilidade.
diff --git a/docs/i18n/ro/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/ro/docs/architecture/RESILIENCE_GUIDE.md
index 0aad192075a6..6e9c4b6e69cc 100644
--- a/docs/i18n/ro/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/ro/docs/architecture/RESILIENCE_GUIDE.md
@@ -286,26 +286,17 @@ activă a blocărilor este efemeră.
---
-## 4. Controlul concurenței Quota-Share (v3.8.36)
+## 4. Controlul concurenței cotelor de partajare (v3.8.36)
-Conturile de abonament (GLM, MiniMax etc.) acceptă adesea doar ~1–3 cereri
-concurente; depășirea acestui prag declanșează erori 429 și cooldown-uri.
-Problema este acută în cazul combo-urilor **quota-share** (`qtSd/…`), unde mai
-multe chei API partajează un singur cont upstream. Trei straturi împiedică
-inundarea unui cont partajat.
+Conturile de abonament (GLM, MiniMax, etc.) acceptă adesea doar ~ 1–3 solicitări concurente; depășirea acesteia declanșează 429s și cooldown-uri. Acest lucru este acut sub** cotă-cotă** (`qtSd/…`) combo, în care mai multe chei API partajează un cont în amonte. Trei straturi împiedică inundarea unui cont partajat.
-### Plafon de concurență per conexiune (`max_concurrent`)
+### Limită de concurență pe conexiune (`max_concurrent`)
-Fiecare conexiune de furnizor poate declara un plafon `max_concurrent`
-(`provider_connections.max_concurrent`, setat în modalul conexiunii / API / DB).
-Lăsați-l gol pentru a nu impune nicio limită. Acesta este singurul parametru care
-controlează stratul de serializare de mai jos — setați-l la concurența reală a
-contului (de ex. GLM ~1, MiniMax ~2).
+Fiecare conexiune de furnizor poate declara un plafon `max_concurrent` (`provider_connections.max_concurrent`, setat în modal de conexiune / API / DB). Lăsați-l gol fără limită. Acesta este singurul buton care conduce stratul de serializare de mai jos — îl setează la concurența reală a contului (de exemplu GLM ~ 1, MiniMax ~ 2).
-### Plafoane de concurență per model (`modelConcurrency`)
+### Limite de concurență pe model (`modelConcurrency`)
-O conexiune poate declara suplimentar plafoane exacte de concurență per model
-în cadrul obiectului său `rateLimitOverrides`:
+În plus, o conexiune poate declara plafoane de concurență exacte pentru fiecare model în interiorul hărții sale `rateLimitOverrides` :
```json
{
@@ -316,78 +307,32 @@ O conexiune poate declara suplimentar plafoane exacte de concurență per model
}
```
-Setați-l în modalul conexiunii (**Suprascrieri de limite de rată → Plafoane de
-concurență per model**, câte un `model=cap` pe linie) sau prin
-`PATCH /api/providers/[id]` cu aceeași structură JSON. Semantica cheilor:
-
-- **La nivel de conexiune vs. specific modelului:** `maxConcurrent` rămâne
- plafonul partajat la nivel de conexiune. Când se aplică ambele, ambele porți
- sunt achiziționate atomic în aceeași poartă compozită
- (`global → provider → account → model`); comportamentul efectiv este limita
- aplicabilă mai strictă.
-- **Potrivire exactă a cheii modelului:** cheia este șirul modelului transmis
- executorului după rezolvarea rutării — de obicei id-ul brut al modelului
- upstream (`glm-5`), nu un alias `provider/model` din partea clientului
- (`zai/glm-5` nu se potrivește cu `glm-5`). Valorile sunt plafoane de cereri
- concurente sub formă de numere întregi pozitive.
-- **Cozi locale, fără descoperire:** cererile în exces așteaptă în coadă local,
- cu semantica existentă de coadă/timeout (erori de admitere tipizate
- `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). OmniRoute nu descoperă și nu
- deduce politica upstream — aplică exact plafoanele configurate de operator. O
- poartă de model saturată nu dezactivează niciodată furnizorul și nu creează
- niciodată o blocare permanentă a modelului; comportamentul upstream
- 429/cooldown/fallback rămâne plasa de siguranță în caz de eroare.
-- **Domeniu per conexiune și per proces:** plafoanele sunt per conexiune din
- baza de date și sunt păstrate în memorie, astfel că două conexiuni care
- reutilizează aceeași cheie API upstream nu se coordonează între ele.
-- **Neconfigurat înseamnă neschimbat:** omiterea obiectului (sau lăsarea goală
- a câmpului din dashboard) nu adaugă nicio poartă de model. Exemplu de
- configurare fără a presupune vreo limită universală a furnizorului:
+Setați-l în modal de conectare (** Limita ratei depășește → limitele de concurență pe model** , câte un `model=cap` pe linie) sau prin `PATCH /api/providers/[id]` cu aceeași formă JSON. Semantică cheie:
+
+- **La nivel de conexiune vs specific pentru model:** `maxConcurrent` rămâne plafonul comun la nivelul întregii conexiuni. Când se aplică ambele, ambele porți sunt achiziționate atomic în aceeași poartă compozită (`global → provider → account → model`); comportamentul efectiv este limita aplicabilă mai strictă.
+- **Potrivire exactă model-cheie:** cheia este șirul de model transmis executorului după rezoluția de rutare — în mod normal, id-ul modelului în amonte (`glm-5`), nu un alias `provider/model` la nivelul clientului (`zai/glm-5` nu se potrivește `glm-5`). Valorile sunt plafoane de cereri concurente cu numere întregi pozitive.
+- **Codă locală, fără descoperire:** solicitările în exces sunt în coadă local cu semantica queue/timeout existentă (erori de admitere `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` tastate). OmniRoute nu descoperă sau deduce politica în amonte — impune plafoanele exacte configurate de operator. O poartă de model saturată nu dezactivează niciodată furnizorul și nu creează niciodată o blocare permanentă a modelului; Comportamentul 429/cooldown/fallback în amonte rămâne salvarea erorii.
+- **Per-conexiune, per-proces domeniu:** limitele sunt pentru fiecare conexiune de bază de date și sunt păstrate în memorie, astfel încât două conexiuni care reutilizează aceeași cheie API în amonte nu se coordonează între ele.
+- **Neconfigurat înseamnă neschimbat:** omiterea hărții (sau lăsarea câmpului tabloului de bord necompletat) nu adaugă nicio poartă de model. Exemplu de configurare fără a afirma vreo limită universală a furnizorului:
```text
glm-5=1
glm-4.7=3
```
-### Serializarea cererilor quota-share
-
-Când o direcționare quota-share vizează o conexiune care declară un
-`max_concurrent` pozitiv, cererile concurente către acel **cont** sunt
-serializate printr-un semafor per conexiune (cheia `qsconn:`):
-cererile în exces **așteaptă în coadă** în loc să inunde contul. Mecanismul este
-**fail-open** — o coadă saturată sau un timeout continuă fără un slot, în loc să
-respingă vreodată o cerere care poate fi direcționată. Comutați din **Setări →
-Reziliență → Concurență per conexiune quota-share**
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, activat implicit).
-Fără un plafon `max_concurrent`, comportamentul rămâne neschimbat.
-
-> Poarta de rutare quota-share (`selectQuotaShareTarget`, DRR + P2C) este ea
-> însăși fail-open și doar _deprioritizează_ o conexiune aflată la capacitate —
-> cu un pool format dintr-o singură conexiune nu poate impune o limită strictă,
-> așa că acest semafor este ceea ce stăvilește efectiv inundarea.
-
-### Reîncercare conștientă de cooldown pentru combo
-
-Pentru fiecare strategie de combo (atunci când este activată), o cerere care ar
-cristaliza un 429 din cauza unui cooldown tranzitoriu SCURT îl așteaptă și
-re-direcționează în loc să returneze eroarea 429 — aceasta acoperă ferestrele
-TPM/RPM de clasă Gemini (~60s retry-after) pe combo-uri multi-model, de ex.
-ambele ținte ale unui combo cu 2 modele care ating o limită de rată per model.
-Delimitată de `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`,
-`budgetMs`) în **Setări → Reziliență**. Nu așteaptă niciodată pentru
-`quota_exhausted` (blocat până la miezul nopții) sau pentru motive de
-autentificare/negăsire.
-
-Aceeași poartă acoperă cazul anterior direcționării (#16319): când fiecare țintă
-a unui combo este omisă înainte de efectuarea oricărei încercări, deoarece
-modelul său se află într-o blocare tranzitorie scurtă, calea cu zero încercări
-așteaptă expirarea blocării în limitele acelorași plafoane și re-direcționează,
-în loc să răspundă cu un `503 ALL_TARGETS_SKIPPED` fără indiciu. Când nicio
-așteptare nu este permisă (plafon, număr de încercări sau buget epuizat, ori
-funcția dezactivată), răspunsul final este promovat la `429 rate_limit_error`,
-purtând `retry_after` / `reset_at` de la cea mai timpurie expirare a blocării
-tranzitorii; blocările de cotă, autentificare și negăsire păstrează 503-ul fără
-indiciu.
+### Serializarea cererii de cotă de partajare
+
+Atunci când o trimitere de cotă-share vizează o conexiune care declară un `max_concurrent` pozitiv, solicitările concurente către acel** cont** sunt serializate printr-un semafor per conexiune (cheie `qsconn:`): solicitări în exces** așteaptă la coadă** în loc să inunde contul. Este** fail-deschide** — o coadă saturată sau timeout continuă fără un slot, mai degrabă decât să respingă vreodată o solicitare care poate fi expediată. Comutați** Setări → Reziliență → Concurență de cotă per conexiune** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, implicit activat). Fără o limită `max_concurrent` comportamentul este neschimbat.
+
+> Poarta de rutare cu cotă-share (`selectQuotaShareTarget`, DRR + P2C) este ea însăși deschisă și _deprioritizează_ doar o conexiune at-cap — cu un pool de conexiune unică pe care nu o poate limita în mod tare, deci acest semafor este ceea ce conține de fapt inundația.
+
+### Reîncercare combinată care ține cont de cooldown
+
+Pentru fiecare strategie combo (atunci când este activată), o solicitare care ar cristaliza un 429 pentru o răcire tranzitorie SHORT îl așteaptă și retrimite în loc să returneze 429 — acest lucru acoperă ferestrele TPM/RPM din clasa Gemini (~ 60s retry-after) pe combo-uri cu mai multe modele, de ex. limită. Delimitat de `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) în** Setări → Reziliență** . Nu așteaptă niciodată din motive `quota_exhausted` (blocat până la miezul nopții) sau auth/not-found.
+
+O combinație poate renunța cu `config.comboCooldownWaitEnabled: false`. Numai `false` literal dezactivează aceste așteptări combinate partajate (răcire după expediere și așteptări circuit-open/model-lock înainte de expediere) și extensia de etaj de expirare a bugetului de așteptare. Lipsă sau `true` păstrează politica globală; `true` nu poate activa așteptarea dezactivată la nivel global. Un `targetTimeoutMs` explicit încă câștigă. Această renunțare nu modifică așteptarea separată de pre-expediere a codului nativ-Codex.
+
+Aceeași poartă acoperă cazul înainte de expediere (#16319): atunci când fiecare țintă a unui combo este omisă înainte de orice încercare, deoarece modelul său se află într-un blocaj tranzitoriu scurt, calea zero-tentativă așteaptă blocarea sub aceleași plafoane și re-expediază, în loc să răspundă la un `503 ALL_TARGETS_SKIPPED` fără indicii. Când nu este permisă nicio așteptare (plafon, încercare sau buget epuizat sau funcția dezactivată), răspunsul terminalului se actualizează la `429 rate_limit_error` care transportă `retry_after` / `reset_at` de la cea mai devreme expirare a blocării tranzitorii; Blocările de cotă, de autentificare și negăsit păstrează 503 fără indicii.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/ro/docs/guides/USER_GUIDE.md b/docs/i18n/ro/docs/guides/USER_GUIDE.md
index d3ead61bcca7..36659517be84 100644
--- a/docs/i18n/ro/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/ro/docs/guides/USER_GUIDE.md
@@ -612,41 +612,41 @@ Pentru referința completă a variabilelor de mediu, consultați [README](../REA
Vezi toate modelele disponibile
-> Lista de mai jos este întocmită pe baza `open-sse/config/providerRegistry.ts` pentru v3.8.0. Cataloagele cloud (Gemini, OpenRouter etc.) sunt sincronizate dinamic — pentru catalogul complet, actualizat live, deschide **Tablou de bord → Furnizori → [furnizor] → Modele disponibile** sau apelează `GET /api/models/catalog`.
+> Lista de mai jos este realizată din `open-sse/config/providerRegistry.ts` pentru v3.8.0. Cataloagele cloud (Gemini, OpenRouter, etc.) sunt sincronizate dinamic — pentru deschiderea întregului catalog live** Tabloul de bord → Furnizori → [furnizor] → Modele disponibile** sau sunați la `GET /api/models/catalog`.
>
-> Dacă lista integrată a unui furnizor a rămas în urmă, folosește **Importare din /models** pe acea pagină (sau activează **Sincronizare automată**) pentru a prelua catalogul upstream actualizat. Acest lucru a fost verificat în v3.8.50 pentru LLM7.io (`gemini-3.1-flash-lite`) și UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); accesul anonim la Pollinations a rămas limitat din partea upstream în timpul aceleiași runde de testare.
+> Dacă lista încorporată a unui furnizor s-a deplasat, utilizați** Import din /modele** pe pagina respectivă (sau activați** Sincronizare automată** ) pentru a extrage catalogul live în amonte. Acest lucru a fost verificat în v3.8.50 pentru LLM7.io (`gemini-3.1-flash-lite`) și UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Accesul anonim la polenizări a rămas limitat în amonte în timpul aceleiași treceri de test.
-**Claude Code (`cc/`)** — OAuth Pro/Max: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Cod Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — OAuth Plus/Pro: `cx/gpt-5.5` (+ niveluri de efort: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` ( niveluri de efort + : `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth GRATUIT: folosește catalogul live afișat în **Tablou de bord → Furnizori → Kiro → Modele disponibile**. Disponibilitatea depinde de cont și de plan.
+**Kiro (`kr/`)** — FREE OAuth: utilizați catalogul live prezentat mai jos** Tabloul de bord → Furnizori → Kiro → Modele disponibile** . Disponibilitatea depinde de cont și de plan.
-**Qoder (`if/`)** — OAuth GRATUIT: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/lună tarif fix sau per utilizare: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo plat sau per utilizare: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — Cheie API: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** cheie — API : `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
**Groq (`groq/`)** — Ultra-rapid: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
**xAI (`xai/`)** — Grok nativ: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Găzduit în UE: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — găzduit de UE: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Îmbogățit cu căutare: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Perplexitate (`pplx/`)** — Căutare mărită: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Open-source: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (gratuit), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — Sursă deschisă: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (gratuit), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
**Fireworks AI (`fireworks/`)** — Inferență rapidă: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — La scară de wafer: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Wafer-scale: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
**Cohere (`cohere/`)** — Axat pe RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
@@ -654,13 +654,13 @@ Pentru referința completă a variabilelor de mediu, consultați [README](../REA
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Sincronizat live per cheie API de la Google — fără listă statică. Conectează o cheie în **Tablou de bord → Furnizori**, apoi folosește **Modele disponibile** pentru a importa catalogul curent (de ex. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : Sincronizat live pe cheie API din Google — fără listă statică. Conectați o cheie** Furnizori de tablouri de bord →** apoi folosiți** Modele disponibile** pentru a importa catalogul curent (de ex. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Alți furnizori compatibili** (selecție): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (prin `aws-bedrock`), `azure-ai`, `openrouter` (catalog passthrough), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Fiecare își menține propria listă de modele în `providerRegistry.ts` și poate fi sincronizat automat atunci când furnizorul expune un endpoint `/models`.
+**Alți furnizori compatibili** (selectat): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (prin `aws-bedrock`), `azure-ai`, `openrouter` (passthrough catalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`,qr `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Fiecare își menține propria listă de modele în `providerRegistry.ts` și poate fi sincronizat automat atunci când furnizorul expune un punct final `/models`.
-**Notă despre ID-urile modelelor:** OmniRoute folosește ID-uri native ale furnizorilor (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Unele ID-uri includ versiuni cu puncte, deoarece așa le așteaptă API-ul upstream. Dacă un model nu este listat mai sus, rulează `omniroute models --search ` sau apelează `GET /api/models/catalog` pentru a confirma disponibilitatea.
+**Notă despre modelul IDs:** OmniRoute folosește IDs nativ de furnizor (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Unele IDs includ versiuni punctate, deoarece așa se așteaptă API din amonte. Dacă un model nu este listat mai sus, rulați `omniroute models --search ` sau apăsați `GET /api/models/catalog` pentru a confirma disponibilitatea.
diff --git a/docs/i18n/ru/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/ru/docs/architecture/RESILIENCE_GUIDE.md
index e05cb6b62cd0..2521bd18d08d 100644
--- a/docs/i18n/ru/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/ru/docs/architecture/RESILIENCE_GUIDE.md
@@ -284,27 +284,17 @@ _состояние_ блокировок эфемерно.
---
-## 4. Управление параллелизмом quota-share (v3.8.36)
+## 4. Управление параллелизмом с использованием квот (v3.8.36)
-Подписочные аккаунты (GLM, MiniMax и т. п.) часто принимают лишь ~1–3
-одновременных запроса; превышение вызывает ошибки 429 и кулдауны. Проблема
-особенно остра в комбо **quota-share** (`qtSd/…`), где несколько API-ключей
-используют один апстрим-аккаунт. Три уровня защиты не дают перегрузить общий
-аккаунт.
+Учетные записи подписки (GLM, MiniMax и т. д.) часто принимают только ~ 1–3 одновременных запроса; превышение этого значения вызывает 429 секунд и время восстановления. Это остро под** доля квоты** (`qtSd/…`) комбинации, в которых несколько ключей API используют одну вышестоящую учетную запись. Три уровня защищают общую учетную запись от затопления.
-### Ограничение параллелизма на уровне подключения (`max_concurrent`)
+### Ограничение параллелизма для каждого соединения (`max_concurrent`)
-Каждое подключение провайдера может объявлять потолок `max_concurrent`
-(`provider_connections.max_concurrent`, задаётся в модальном окне подключения /
-через API / в БД). Оставьте поле пустым, чтобы снять ограничение. Это
-единственный параметр, управляющий уровнем сериализации, описанным ниже, —
-установите его равным реальному параллелизму аккаунта (например, GLM ~1,
-MiniMax ~2).
+Каждое соединение провайдера может объявить потолок `max_concurrent` (`provider_connections.max_concurrent`, заданный в модальном соединении / API / DB). Оставьте его пустым без ограничений. Это единственная ручка, которая управляет уровнем сериализации ниже —, устанавливающим для него реальный параллелизм учетной записи (например, GLM ~ 1, MiniMax ~ 2).
-### Ограничения параллелизма по моделям (`modelConcurrency`)
+### Ограничения параллелизма для каждой модели (`modelConcurrency`)
-Подключение может дополнительно объявлять точные потолки параллелизма для
-отдельных моделей внутри карты `rateLimitOverrides`:
+Соединение может дополнительно объявлять точные потолки параллелизма для каждой модели внутри своей карты `rateLimitOverrides` :
```json
{
@@ -315,80 +305,32 @@ MiniMax ~2).
}
```
-Задаётся в модальном окне подключения (**Rate limit overrides → Per-model
-concurrency caps**, по одной паре `model=cap` на строку) или через
-`PATCH /api/providers/[id]` с той же структурой JSON. Семантика ключей:
-
-- **На уровне подключения и по моделям:** `maxConcurrent` остаётся общим
- потолком для всего подключения. Когда действуют оба, оба шлюза
- захватываются атомарно в одном составном шлюзе
- (`global → provider → account → model`); фактическое поведение
- определяется более строгим из применимых лимитов.
-- **Точное совпадение ключа модели:** ключ — это строка модели,
- передаваемая исполнителю после разрешения маршрутизации, — обычно
- «голый» апстрим-идентификатор модели (`glm-5`), а не клиентский алиас
- `provider/model` (`zai/glm-5` не совпадает с `glm-5`). Значения —
- положительные целые числа, задающие потолок одновременных запросов.
-- **Локальная очередь, без автообнаружения:** избыточные запросы ставятся в
- локальную очередь с существующей семантикой очереди/таймаута
- (типизированные ошибки допуска `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL`). OmniRoute не обнаруживает и не выводит политику
- апстрима — он применяет ровно те потолки, которые задал оператор.
- Насыщенный шлюз модели никогда не отключает провайдера и не создаёт
- постоянную блокировку модели; поведение апстрима при
- 429/кулдауне/фолбэке остаётся последней линией защиты от ошибок.
-- **Область действия — подключение и процесс:** потолки задаются для
- каждого подключения из базы данных и хранятся в памяти, поэтому два
- подключения, использующие один и тот же апстрим API-ключ, не
- координируются между собой.
-- **Без настройки — без изменений:** если карта не задана (или поле в
- дашборде оставлено пустым), шлюз модели не добавляется. Пример
- конфигурации, не утверждающей никакого универсального лимита провайдера:
+Установите его в модальном окне соединения (** Ограничение скорости переопределяет → Ограничения параллелизма для каждой модели** , по одному `model=cap` на строку) или через `PATCH /api/providers/[id]` с той же формой JSON. Ключевая семантика:
+
+- **Для всего соединения и для конкретной модели:** `maxConcurrent` остается общим потолком для всего соединения. Когда оба применяются, оба вентиля получаются атомарно в одном и том же составном вентиле (`global → provider → account → model`); эффективное поведение является более строгим применимым пределом.
+- **Точное соответствие модели и ключа:** ключом является строка модели, передаваемая исполнителю после разрешения маршрутизации — обычно это чистый идентификатор восходящей модели (`glm-5`), а не псевдоним `provider/model` на стороне клиента (`zai/glm-5` не соответствует `glm-5`). Значения представляют собой максимальные значения для одновременных запросов в виде положительных целых чисел.
+- **Локальная очередь, отсутствие обнаружения:** лишние запросы ставятся в очередь локально с существующей семантикой queue/timeout (типизированные ошибки допуска `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ). OmniRoute не обнаруживает и не делает вывод о политике восходящего потока. — обеспечивает соблюдение точных пределов, настроенных оператором. Насыщенный шлюз модели никогда не отключает поставщика и никогда не создает постоянную блокировку модели; Поведение восходящего 429/cooldown/fallback остается ограничителем ошибки.
+- **Для каждого соединения, для каждого процесса:** Ограничения устанавливаются для каждого подключения к базе данных и хранятся в памяти, поэтому два соединения, повторно использующие один и тот же восходящий ключ API не координируются друг с другом.
+- **Ненастроенный означает неизмененный:** отсутствие карты (или оставление поля панели мониторинга пустым) не добавляет ворот модели. Пример конфигурации без установления каких-либо ограничений универсального поставщика:
```text
glm-5=1
glm-4.7=3
```
-### Сериализация запросов quota-share
-
-Когда диспетчеризация quota-share нацелена на подключение, объявляющее
-положительный `max_concurrent`, параллельные запросы к этому **аккаунту**
-сериализуются через семафор на уровне подключения (ключ
-`qsconn:`): избыточные запросы **ждут в очереди**, а не
-перегружают аккаунт. Механизм работает в режиме **fail-open** — при
-насыщенной очереди или таймауте запрос продолжается без слота, а не
-отклоняется, если его вообще можно отправить. Переключается в **Настройки →
-Устойчивость → Quota-share per-connection concurrency**
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, по умолчанию
-включено). Без потолка `max_concurrent` поведение не меняется.
-
-> Шлюз маршрутизации quota-share (`selectQuotaShareTarget`, DRR + P2C) сам
-> по себе fail-open и лишь _понижает приоритет_ подключения, достигшего
-> предела, — при пуле из одного подключения он не может жёстко ограничить
-> поток, поэтому именно этот семафор реально сдерживает наплыв запросов.
-
-### Повтор с учётом кулдауна для комбо
-
-Для каждой стратегии комбо (если включено) запрос, который привёл бы к
-фиксации 429 из-за КОРОТКОГО временного кулдауна, выжидает его и
-отправляется повторно вместо возврата 429 — это покрывает окна TPM/RPM
-уровня Gemini (~60 с retry-after) в мультимодельных комбо, например, когда
-обе цели 2-модельного комбо упираются в rate limit на модель.
-Ограничивается параметрами `comboCooldownWait` (`enabled`, `maxWaitMs`,
-`maxAttempts`, `budgetMs`) в **Настройки → Устойчивость**. Ожидание никогда
-не применяется при `quota_exhausted` (блокировка до полуночи) или причинах
-auth/not-found.
-
-Тот же шлюз покрывает случай до диспетчеризации (#16319): когда все цели
-комбо пропускаются ещё до первой попытки, потому что их модели находятся в
-короткой временной блокировке, путь с нулём попыток выжидает блокировку в
-рамках тех же потолков и отправляет запрос повторно, вместо ответа
-`503 ALL_TARGETS_SKIPPED` без подсказок. Когда ожидание недопустимо
-(исчерпан потолок, попытки или бюджет, либо функция выключена), финальный
-ответ повышается до `429 rate_limit_error` с `retry_after` / `reset_at` от
-ближайшего истечения временной блокировки; блокировки quota, auth и
-not-found сохраняют 503 без подсказок.
+### Сериализация запроса на долю квоты
+
+Когда диспетчеризация доли квоты нацелена на соединение, которое объявляет положительный `max_concurrent`, одновременные запросы к этому** счет** сериализуются через семафор для каждого соединения (ключ `qsconn:`): лишние запросы** подожди в очереди** вместо того, чтобы флудить аккаунт. Это** отказоустойчивый** — насыщенная очередь или тайм-аут выполняются без слота, а не отклоняют отправляемый запрос. Включить** Настройки → Устойчивость → Доля квот на одно соединение** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, по умолчанию включено). Без ограничения `max_concurrent` поведение не изменится.
+
+> Шлюз маршрутизации с использованием квоты (`selectQuotaShareTarget`, DRR + P2C) сам по себе является отказоустойчивым и _деприоритизирует_ только соединение at-cap — с пулом с одним соединением, который он не может жестко ограничить, поэтому этот семафор - это то, что фактически сдерживает флуд.
+
+### Повторная попытка комбо с учетом времени восстановления
+
+Для каждой комбинированной стратегии (если она включена) запрос, который кристаллизует 429 для временного восстановления SHORT, ожидает и повторно отправляет вместо возврата 429 — Это охватывает окна TPM/RPM класса Gemini (~ 60 с повторной попытки) в многомодельных комбинациях, например, обе цели комбинации из 2 моделей достигают предела скорости для каждой модели. Ограничено `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) в** Настройки → Устойчивость** . Он никогда не ожидает по `quota_exhausted` (заблокировано до полуночи) или по причинам auth/not-found.
+
+Комбо может отказаться от участия с помощью `config.comboCooldownWaitEnabled: false`. Только буквальный `false` отключает эти общие комбинированные ожидания (перезарядка после отправки и ожидания circuit-open/model-lock перед отправкой) и их расширение минимального времени ожидания бюджета ожидания. Отсутствует или `true` сохраняет глобальную политику; `true` не может включить глобально отключенное ожидание. Явный `targetTimeoutMs` по-прежнему побеждает. Этот отказ не меняет отдельное ожидание перед отправкой поворотного штифта, предусмотренное собственным Кодексом.
+
+Тот же шлюз охватывает случай перед отправкой (#16319): когда каждая цель комбо пропускается до того, как будет предпринята любая попытка, потому что ее модель находится в короткой временной блокировке, путь с нулевой попыткой ожидает блокировки под теми же потолками и повторно отправляет вместо ответа на `503 ALL_TARGETS_SKIPPED` без подсказок. Когда ожидание не разрешено (исчерпан лимит, попытка или бюджет, или функция отключена), ответ терминала обновляется до `429 rate_limit_error` перенося `retry_after` / `reset_at` с момента самого раннего истечения временной блокировки; Блокировки quota, auth и not-found сохраняют код 503 без подсказок.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/ru/docs/guides/USER_GUIDE.md b/docs/i18n/ru/docs/guides/USER_GUIDE.md
index 78e25381b440..89859f8437e7 100644
--- a/docs/i18n/ru/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/ru/docs/guides/USER_GUIDE.md
@@ -606,60 +606,60 @@ post_install() {
---
-## 📊 Доступные модели
+## Доступные модели 📊
Посмотреть все доступные модели
-> Список ниже составлен на основе `open-sse/config/providerRegistry.ts` для v3.8.0. Облачные каталоги (Gemini, OpenRouter и т. д.) синхронизируются динамически — полный актуальный каталог смотрите в **Панель управления → Провайдеры → [провайдер] → Доступные модели** или вызовите `GET /api/models/catalog`.
+> Список ниже создан на основе `open-sse/config/providerRegistry.ts` для версии 3.8.0. Облачные каталоги (Gemini, OpenRouter и т. д.) динамически синхронизируются — для открытия полного живого каталога.** Панель мониторинга Поставщики → → [поставщик] → Доступные модели** или позвоните в `GET /api/models/catalog`.
>
-> Если встроенный список провайдера устарел, используйте **Импорт из /models** на этой странице (или включите **Автосинхронизацию**), чтобы получить актуальный каталог из первоисточника. Это было проверено в v3.8.50 для LLM7.io (`gemini-3.1-flash-lite`) и UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); анонимный доступ Pollinations во время того же тестового прогона оставался ограниченным на стороне первоисточника.
+> Если встроенный список провайдера сместился, используйте** Импорт из /модели** на этой странице (или включите** Автосинхронизация** ), чтобы получить активный восходящий каталог. Это было проверено в версии 3.8.50 для LLM7.io (`gemini-3.1-flash-lite`) и UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Анонимный доступ к опылению оставался ограниченным в восходящем направлении во время того же прохода теста.
-**Claude Code (`cc/`)** — OAuth Pro/Max: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Код Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — OAuth Plus/Pro: `cx/gpt-5.5` (+ уровни effort: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (уровни усилий + : `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — БЕСПЛАТНЫЙ OAuth: используйте актуальный каталог, показанный в **Панель управления → Провайдеры → Kiro → Доступные модели**. Доступность зависит от аккаунта и тарифного плана.
+**Kiro (`kr/`)** — FREE OAuth: используйте действующий каталог, показанный ниже.** Панель мониторинга Поставщики → → Kiro → Доступные модели** . Доступность зависит от учетной записи и плана.
-**Qoder (`if/`)** — БЕСПЛАТНЫЙ OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/мес фиксированно или по факту использования: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo в фиксированном размере или по мере использования: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — API-ключ: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** ключ — API : `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Сверхбыстрый: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Сверхбыстрые: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Нативный Grok: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — собственный Grok : `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Хостинг в ЕС: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — размещенный в ЕС: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — С поисковым дополнением: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Растерянность (`pplx/`)** — Расширенный поиск: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
**Together AI (`together/`)** — С открытым исходным кодом: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (бесплатно), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Быстрый инференс: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Быстрый вывод: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
**Cerebras (`cerebras/`)** — Масштаб пластины: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Ориентирован на RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG-ориентированность: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Корпоративный: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
-**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
+**Baidu Цяньфан (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Облако (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Синхронизируется в реальном времени для каждого API-ключа от Google — статического списка нет. Подключите ключ в **Панель управления → Провайдеры**, затем используйте **Доступные модели**, чтобы импортировать текущий каталог (например, `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Облако `gemini/`)** : Синхронизируется в реальном времени по ключу API из Google — без статического списка. Подключите ключ** Поставщики информационных панелей →** затем используйте** Доступные модели** для импорта текущего каталога (например, `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Другие совместимые провайдеры** (некоторые): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (через `aws-bedrock`), `azure-ai`, `openrouter` (транзитный каталог), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Каждый ведёт собственный список моделей в `providerRegistry.ts` и может автоматически синхронизироваться, если провайдер предоставляет эндпоинт `/models`.
+**Другие совместимые провайдеры** (выбрано): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (через `aws-bedrock`), `azure-ai`, `openrouter` (сквозной каталог), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Каждый из них поддерживает свой собственный список моделей в `providerRegistry.ts` и может автоматически синхронизироваться, когда поставщик предоставляет конечную точку `/models`.
-**Примечание об идентификаторах моделей:** OmniRoute использует нативные идентификаторы провайдеров (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Некоторые идентификаторы содержат версии с точками, потому что именно в таком виде их ожидает API первоисточника. Если модель не указана выше, выполните `omniroute models --search ` или обратитесь к `GET /api/models/catalog`, чтобы подтвердить доступность.
+**Примечание по модели IDs:** OmniRoute использует собственный IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Некоторые IDs включают версии с точками, потому что именно так их ожидает восходящий API. Если модели нет в списке выше, запустите `omniroute models --search ` или нажмите `GET /api/models/catalog`, чтобы подтвердить наличие.
diff --git a/docs/i18n/si/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/si/docs/architecture/RESILIENCE_GUIDE.md
index 0908f52ae0fc..d162a99ecc0d 100644
--- a/docs/i18n/si/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/si/docs/architecture/RESILIENCE_GUIDE.md
@@ -293,26 +293,17 @@ API-key `connectionCooldown` මූලික කූල්ඩවුන් සහ
---
-## 4. කෝටා-බෙදාගැනීමේ සමගාමීතා පාලනය (v3.8.36)
+## 4. කෝටා-බෙදාගැනීමේ සමගාමී පාලනය (v3.8.36)
-Subscription ගිණුම් (GLM, MiniMax ආදිය) සාමාන්යයෙන් එකවර ~1–3
-ඉල්ලීම් පමණක් පිළිගනී; එය ඉක්මවා ගිය විට 429s සහ cooldowns ඇති වේ. මෙය
-**quota-share** (`qtSd/…`) සංයෝජන යටතේ වඩාත් තීව්ර වේ, එහිදී API keys කිහිපයක්
-එකම upstream ගිණුමක් බෙදාගනී. බෙදාගත් ගිණුමක් අධික ලෙස පිරී යාම වැළැක්වීමට
-ස්තර තුනක් භාවිත වේ.
+දායක ගිණුම් (GLM, MiniMax, ආදිය) බොහෝ විට පිළිගන්නේ ~ 1-3 සමගාමී ඉල්ලීම් පමණි; එය ඉක්මවා යාම 429s සහ cooldowns අවුලුවයි. මෙය උග්ර ය** කෝටා-කොටා** (`qtSd/…`) සංයෝජන, එහිදී API යතුරු කිහිපයක් එක් උඩුගත ගිණුමක් බෙදා ගනී. ස්ථර තුනක් බෙදාගත් ගිණුමක් ගංවතුරෙන් වළක්වයි.
-### සම්බන්ධතාවයකට අදාළ සමගාමීතා සීමාව (`max_concurrent`)
+### එක්-සම්බන්ධතා සමගාමී සීමාව (`max_concurrent`)
-සෑම provider සම්බන්ධතාවයකටම `max_concurrent` උපරිම සීමාවක් ප්රකාශ කළ හැක
-(`provider_connections.max_concurrent`, connection modal / API / DB තුළ සකසනු ලැබේ).
-සීමාවක් අවශ්ය නොවේ නම් එය හිස්ව තබන්න. පහත serialization ස්තරය පාලනය කරන
-ප්රධාන සැකසුම මෙයයි — එය ගිණුමේ සැබෑ සමගාමීතා අගයට සකසන්න (උදා. GLM ~1,
-MiniMax ~2).
+එක් එක් සැපයුම්කරු සම්බන්ධතාවයකට `max_concurrent` සිවිලිමක් ප්රකාශ කළ හැකිය (`provider_connections.max_concurrent`, සම්බන්ධතා මාදිලියේ / API / DB). සීමාවක් නොමැතිව හිස්ව තබන්න. — පහළින් අනුක්රමික ස්තරය ධාවනය කරන තනි බොත්තම මෙයයි, එය ගිණුමේ සැබෑ සමගාමීත්වයට සකසන්න (උදා: GLM ~ 1, MiniMax ~ 2).
-### මාදිලියකට අදාළ සමගාමීතා සීමා (`modelConcurrency`)
+### එක් මාදිලියේ සමගාමී තොප්පි (`modelConcurrency`)
-සම්බන්ධතාවයකට එහි `rateLimitOverrides` map එක තුළ මාදිලියකට නිශ්චිත
-සමගාමීතා උපරිම සීමා අමතරව ප්රකාශ කළ හැක:
+සම්බන්ධතාවයකට එහි `rateLimitOverrides` සිතියම තුළ එක් මාදිලියකට නිශ්චිත සමගාමී සිවිලිම් ප්රකාශ කළ හැක:
```json
{
@@ -323,76 +314,32 @@ MiniMax ~2).
}
```
-එය connection modal තුළ (**Rate limit overrides → Per-model
-concurrency caps**, එක් පේළියකට එක් `model=cap`) හෝ එම JSON හැඩතලය සමඟ
-`PATCH /api/providers/[id]` හරහා සකසන්න. ප්රධාන අර්ථකථන:
-
-- **සම්බන්ධතාවය පුරාද, මාදිලියට විශේෂිතද:** `maxConcurrent` සම්බන්ධතාවය පුරා
- බෙදාගන්නා උපරිම සීමාව ලෙස පවතී. දෙකම අදාළ වන විට, gate දෙකම එකම composite gate
- (`global → provider → account → model`) තුළ පරමාණුකව ලබාගනී; ක්රියාකාරී
- හැසිරීම අදාළ වන වඩාත් දැඩි සීමාව අනුගමනය කරයි.
-- **නිශ්චිත මාදිලි-යතුරු ගැළපීම:** යතුර යනු routing resolution එකෙන් පසු executor
- වෙත යවන model string එකයි — සාමාන්යයෙන් bare upstream model id
- (`glm-5`) වේ, client-side `provider/model` alias එකක් නොවේ
- (`zai/glm-5` යන්න `glm-5` සමඟ නොගැළපේ). අගයන් ධනාත්මක පූර්ණ-සංඛ්යා
- සමගාමී-ඉල්ලීම් සීමා වේ.
-- **දේශීය පෝලිම් කිරීම, සොයාගැනීමක් නොමැත:** අතිරේක ඉල්ලීම් පවතින
- queue/timeout semantics සමඟ දේශීයව පෝලිම් වේ (වර්ගීකෘත
- `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` admission errors). OmniRoute
- upstream policy සොයාගැනීමක් හෝ අනුමාන කිරීමක් නොකරයි — operator විසින්
- සකසා ඇති නිශ්චිත සීමා පමණක් ක්රියාත්මක කරයි. සංතෘප්ත model gate එකක්
- provider අක්රිය නොකරන අතර ස්ථිර model lockout එකක්ද නිර්මාණය නොකරයි;
- upstream 429/cooldown/fallback හැසිරීම error backstop ලෙස දිගටම පවතී.
-- **සම්බන්ධතාවයකට, process එකකට අදාළ පරාසය:** සීමා database connection එකකට
- අදාළ වන අතර memory තුළ තබා ගනී; එබැවින් එකම upstream API key නැවත භාවිත කරන
- connections දෙකක් එකිනෙකා සමඟ සම්බන්ධීකරණය නොකරයි.
-- **සකසා නොමැති විට වෙනසක් නොමැත:** map එක අත්හැර දැමීම (හෝ dashboard
- field එක හිස්ව තැබීම) model gate එකක් එක් නොකරයි. කිසිදු universal provider
- සීමාවක් ප්රකාශ නොකරන උදාහරණ වින්යාසය:
+සම්බන්ධතා මාදිලියේ එය සකසන්න (** අනුපාත සීමාව → එක් මාදිලියේ සමගාමී සීමාවන් අභිබවා යයි** , පේළියකට එක් `model=cap` ) හෝ එකම JSON හැඩය සහිත `PATCH /api/providers/[id]` හරහා. ප්රධාන අර්ථ ශාස්ත්රය:
+
+- **සම්බන්ධතාවය-පුළුල් එදිරිව ආකෘතිය-විශේෂිත:** `maxConcurrent` හවුල් සම්බන්ධතා-පුළුල් සිවිලිම ලෙස පවතී. දෙකම අදාළ වන විට, ද්වාර දෙකම එකම සංයුක්ත ද්වාරය තුළ පරමාණුකව අත්පත් කර ගනී (`global → provider → account → model`); ඵලදායි හැසිරීම දැඩි අදාළ සීමාව වේ.
+- **නිවැරදි මාදිලි-යතුරු ගැලපීම:** යතුර වන්නේ විභේදනය — රවුට් කිරීමෙන් පසු ක්රියාත්මක කරන්නා වෙත ලබා දෙන ආදර්ශ තන්තුව සාමාන්යයෙන් හිස් උඩු ප්රවාහ මාදිලියේ හැඳුනුම්පත (`glm-5`), සේවාලාභියාගේ පැත්තේ `provider/model` අන්වර්ථයක් නොවේ (`zai/glm-5` `glm-5` නොගැලපේ). අගයන් ධන නිඛිල සමගාමී ඉල්ලීම් සිවිලිම් වේ.
+- **දේශීය පෝලිම්, සොයාගැනීමක් නැත:** අතිරික්ත ඉල්ලීම් පවතින queue/timeout අර්ථ ශාස්ත්රය සමඟ දේශීයව පෝලිම් වේ (ටයිප් කර ඇති `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ඇතුළත් කිරීමේ දෝෂ). OmniRoute upstream ප්රතිපත්ති — සොයා නොගනී හෝ අනුමාන නොකරයි, එය ක්රියාකරු විසින් වින්යාස කර ඇති නියම සිවිලිම් බලාත්මක කරයි. සංතෘප්ත ආදර්ශ ද්වාරයක් කිසිවිටෙක සපයන්නා අක්රිය නොකරන අතර කිසිවිටක ස්ථිර මාදිලියේ අගුලු දැමීමක් නිර්මාණය නොකරයි; upstream 429/cooldown/fallback හැසිරීම දෝෂය backstop ලෙස පවතී.
+- **එක් සම්බන්ධතාවයකට, එක් ක්රියාවලියකට විෂය පථය:** caps එක් දත්ත සමුදා සම්බන්ධතාවයකට වන අතර මතකයේ රඳවා තබා ඇත, එබැවින් එකම upstream API යතුර නැවත භාවිතා කරන සම්බන්ධතා දෙකක් එකිනෙක සම්බන්ධීකරණය නොකරයි.
+- **Unconfigured යන්නෙන් අදහස් වන්නේ වෙනස් නොවන බවයි:** සිතියම මඟ හැරීම (හෝ උපකරණ පුවරුවේ ක්ෂේත්රය හිස්ව තැබීම) ආදර්ශ ද්වාරය එකතු නොකරයි. කිසිදු විශ්ව සැපයුම්කරු සීමාවක් ප්රකාශ නොකර උදාහරණ වින්යාසය:
```text
glm-5=1
glm-4.7=3
```
-### Quota-share ඉල්ලීම් අනුක්රමණය
-
-Quota-share dispatch එකක් ධනාත්මක `max_concurrent` අගයක් ප්රකාශ කර ඇති
-connection එකක් ඉලක්ක කරන විට, එම **ගිණුමට** යොමු වන සමගාමී ඉල්ලීම්
-connection එකකට අදාළ semaphore එකක් (`qsconn:`) හරහා
-අනුක්රමණය කෙරේ: අතිරේක ඉල්ලීම් ගිණුම පිරී යාමට ඉඩ දීම වෙනුවට
-**පෝලිමේ රැඳී සිටී**. මෙය **fail-open** වේ — සංතෘප්ත පෝලිමක් හෝ timeout එකක්
-ඇති විට slot එකක් නොමැතිව ඉදිරියට යන අතර dispatch කළ හැකි ඉල්ලීමක් කිසිවිටෙක
-ප්රතික්ෂේප නොකරයි. **Settings → Resilience → Quota-share per-connection
-concurrency** තුළ toggle කරන්න
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, පෙරනිමියෙන් on).
-`max_concurrent` සීමාවක් නොමැති විට හැසිරීම වෙනස් නොවේ.
-
-> Quota-share routing gate (`selectQuotaShareTarget`, DRR + P2C) ද fail-open
-> වන අතර උපරිම සීමාවට පැමිණි connection එකක ප්රමුඛතාවය පමණක්
-> _අඩු කරයි_ — එක්-connection pool එකක් සමඟ එයට දැඩි සීමාවක් පැනවිය
-> නොහැකි බැවින්, flood එක සැබවින්ම පාලනය කරන්නේ මෙම semaphore එකයි.
-
-### Combo cooldown-aware retry
-
-සෑම combo strategy එකක් සඳහාම (සක්රීය කළ විට), SHORT transient cooldown එකක්
-සඳහා 429ක් ස්ථිර වීමට ඉඩ ඇති ඉල්ලීමක්, 429 ආපසු ලබා දීම වෙනුවට cooldown කාලය
-ගත වන තෙක් රැඳී නැවත dispatch කරයි — මෙය multi-model combos මත Gemini-class
-TPM/RPM windows (~60s retry-after) ආවරණය කරයි. උදාහරණයක් ලෙස, 2-model combo
-එකක targets දෙකම per-model rate limit එකකට ලක් වූ විටය. මෙය
-**Settings → Resilience** තුළ ඇති `comboCooldownWait` (`enabled`, `maxWaitMs`,
-`maxAttempts`, `budgetMs`) මඟින් සීමා වේ. එය `quota_exhausted` (මධ්යම රාත්රිය
-දක්වා locked) හෝ auth/not-found හේතු මත කිසිවිටෙක රැඳී නොසිටී.
-
-එම gate එක pre-dispatch අවස්ථාවද ආවරණය කරයි (#16319): උත්සාහයක් කිරීමට පෙර
-combo එකක සෑම target එකක්ම short transient lockout එකක ඇති model එකක් නිසා
-skip වූ විට, zero-attempt path එක එම lockout කාලය සඳහා එකම සීමාවන් යටතේ රැඳී
-නැවත dispatch කරයි; hint-රහිත `503 ALL_TARGETS_SKIPPED` එකක් ලබා දීම වෙනුවටය.
-රැඳී සිටීමට අවසර නොමැති විට (ceiling, attempt හෝ budget අවසන් වූ විට, හෝ
-feature එක off වූ විට), terminal response එක `429 rate_limit_error` වෙත
-upgrade වන අතර, ආරම්භක transient lock expiry එකෙන් ලැබෙන
-`retry_after` / `reset_at` දරයි; quota, auth සහ not-found locks hint-රහිත
-503 තත්ත්වය පවත්වා ගනී.
+### කෝටා-බෙදාගැනීම් ඉල්ලීම් අනුක්රමිකකරණය
+
+කෝටා-කොටස් යැවීමක් ධනාත්මක `max_concurrent` ප්රකාශ කරන සම්බන්ධතාවයක් ඉලක්ක කරන විට, ඒ සඳහා සමගාමී ඉල්ලීම්** ගිණුම** එක් සම්බන්ධක සෙමාෆෝරයක් (යතුර `qsconn:`) හරහා අනුක්රමික වේ: අතිරික්ත ඉල්ලීම්** පෝලිමේ ඉන්න** ගිණුමට ගලා ඒම වෙනුවට. එය වේ** අසාර්ථක-විවෘත** — සන්තෘප්ත පෝලිමක් හෝ කල් ඉකුත්වීමක් කිසිවිටෙක යැවිය හැකි ඉල්ලීමක් ප්රතික්ෂේප කරනවාට වඩා ස්ලට් එකක් නොමැතිව ඉදිරියට යයි. ටොගල් කරන්න** සැකසීම් → ප්රත්යස්ථතාව → කෝටා-බෙදාගැනීමේ එක් සම්බන්ධතාවයකට සමගාමී** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, පෙරනිමිය ක්රියාත්මකයි). `max_concurrent` තොප්පියක් නොමැතිව හැසිරීම වෙනස් නොවේ.
+
+> කෝටා-කොටා මාර්ගගත කිරීමේ ද්වාරය (`selectQuotaShareTarget`, DRR + P2C) එයම අසාර්ථක-විවෘත වන අතර එය දැඩි ලෙස සීමා කළ නොහැකි තනි සම්බන්ධතා සංචිතයක් සහිත at-cap connection — _deprioritizes_ පමණි, එබැවින් මෙම සෙමාෆෝරය ඇත්ත වශයෙන්ම ගංවතුර අඩංගු වේ.
+
+### Combo cooldown-aware නැවත උත්සාහ කරන්න
+
+සෑම Combo උපාය මාර්ගයක් සඳහාම (සක්රීය කර ඇති විට), SHORT තාවකාලික සිසිල් කිරීමක් සඳහා 429 ස්ඵටිකීකරණය කරන ලද ඉල්ලීමක් එය බලා සිටින අතර, මෙය Gemini-class TPM/RPM windows (~ 60s retry-after) ආවරණය කරන 429 — ආපසු ලබා දීම වෙනුවට නැවත-එවා යැවීම, combo- model two targetmos of combo 2 ඉලක්කම් මත. එක් මාදිලියකට අනුපාත සීමාව. `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) මගින් සීමා කර ඇත** සැකසීම් → ඔරොත්තු දීමේ හැකියාව** . එය කිසි විටෙකත් `quota_exhausted` (මධ්යම රාත්රිය දක්වා අගුලු දමා ඇත) හෝ auth/not-found හේතු මත රැඳී නොසිටියි.
+
+සංයෝජනයකට `config.comboCooldownWaitEnabled: false` සමඟින් ඉවත් විය හැක. වචනාර්ථයෙන් `false` පමණක් මෙම බෙදාගත් සංයුක්ත පොරොත්තු (පශ්චාත් යැවීමේ කූල්ඩවුන් සහ පෙර-ඩිස්පැච් circuit-open/model-lock රැඳී සිටීම්) සහ ඒවායේ පොරොත්තු-අයවැය කල් ඉකුත් වීමේ මහල දිගුව අක්රීය කරයි. අතුරුදහන් හෝ `true` ගෝලීය ප්රතිපත්තිය ආරක්ෂා කරයි; `true` ගෝලීය වශයෙන් ආබාධිත බලා සිටීම සක්රීය කළ නොහැක. පැහැදිලි `targetTimeoutMs` තවමත් ජය ගනී. මෙම ඉවත් වීම වෙනම දේශීය-කෝඩෙක්ස් හැරවුම්-පින් පෙර යැවීමේ පොරොත්තු වෙනස් නොකරයි.
+
+එම ද්වාරයම පෙර යැවීමේ නඩුව (#16319) ආවරණය කරයි: සංයුක්තයක සෑම ඉලක්කයක්ම එහි ආකෘතිය කෙටි සංක්රමණික අගුලු දැමීමක පිහිටා ඇති නිසා ඕනෑම උත්සාහයක් කිරීමට පෙර මඟ හැරිය විට, ශුන්ය උත්සාහ මාර්ගය ඉඟියක්-අඩු `503 ALL_TARGETS_SKIPPED` වලට පිළිතුරු දීම වෙනුවට එම සිවිලිම් යට අගුලු දමා නැවත යවනු ලැබේ. රැඳී සිටීමට ඉඩ නොදෙන විට (සිවිලිම, උත්සාහය හෝ අයවැය අවසන් වූ විට, හෝ විශේෂාංගය ක්රියා විරහිත වූ විට), පර්යන්ත ප්රතිචාරය `429 rate_limit_error` රැගෙන `retry_after` / `reset_at` වෙත උත්ශ්රේණිගත වන්නේ මුල්ම තාවකාලික අගුල කල් ඉකුත්වීමෙන්; කෝටාව, සත්යාපනය සහ සොයාගත නොහැකි අගුල් ඉඟි-අඩු 503 තබා ගන්න.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/si/docs/guides/USER_GUIDE.md b/docs/i18n/si/docs/guides/USER_GUIDE.md
index 34e0852f37a7..7a501e9e36f4 100644
--- a/docs/i18n/si/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/si/docs/guides/USER_GUIDE.md
@@ -609,60 +609,60 @@ post_install() {
---
-## 📊 භාවිත කළ හැකි ආකෘති
+## 📊 ලබා ගත හැකි මාදිලි
-සියලුම භාවිත කළ හැකි ආකෘති බලන්න
+පවතින සියලුම මාදිලි බලන්න
-> පහත ලැයිස්තුව v3.8.0 සඳහා `open-sse/config/providerRegistry.ts` වෙතින් සකසන ලද්දකි. වළාකුළු නාමාවලි (Gemini, OpenRouter, ආදී) ගතිකව සමමුහුර්ත වේ — සම්පූර්ණ සජීවී නාමාවලිය සඳහා **Dashboard → Providers → [provider] → Available Models** විවෘත කරන්න හෝ `GET /api/models/catalog` අමතන්න.
+> පහත ලැයිස්තුව v3.8.0 සඳහා `open-sse/config/providerRegistry.ts` වෙතින් තෝරාගෙන ඇත. වලාකුළු නාමාවලි (Gemini, OpenRouter, ආදිය) සම්පූර්ණ සජීවී නාමාවලිය විවෘත කිරීම සඳහා ගතිකව — සමමුහුර්ත කර ඇත.** උපකරණ පුවරුව → සපයන්නන් → [සපයන්නා] → ලබා ගත හැකි මාදිලි** හෝ `GET /api/models/catalog` අමතන්න.
>
-> සපයන්නෙකුගේ සවිකෘත ලැයිස්තුව වෙනස් වී ඇත්නම්, සජීවී ඉහළ-ප්රවාහ නාමාවලිය ලබා ගැනීමට එම පිටුවේ **Import from /models** භාවිත කරන්න (හෝ **Auto-Sync** සක්රීය කරන්න). මෙය v3.8.50 හිදී LLM7.io (`gemini-3.1-flash-lite`) සහ UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) සඳහා සත්යාපනය කරන ලදී; Pollinations නිර්නාමික ප්රවේශය එම පරීක්ෂණ වටයේදීම ඉහළ-ප්රවාහය මගින් සීමා කරන ලද අයුරින්ම පැවතුණි.
+> සපයන්නෙකුගේ බිල්ට් ලැයිස්තුව ප්ලාවිත වී ඇත්නම්, භාවිතා කරන්න** / මාදිලි වලින් ආයාත කරන්න** එම පිටුවේ (හෝ සබල කරන්න** ස්වයංක්රීය සමමුහුර්තකරණය** ) සජීවී උඩුගත නාමාවලිය අදින්න. මෙය LLM7.io (`gemini-3.1-flash-lite`) සහ UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) සඳහා v3.8.50 හි සත්යාපනය කරන ලදී; පරාගන නිර්නාමික ප්රවේශය එකම පරීක්ෂණ සාමාර්ථය තුළ උඩුගං බලා සීමා විය.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude කේතය (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort මට්ටම්: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ උත්සාහයන් ස්ථර: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — නොමිලේ OAuth: **Dashboard → Providers → Kiro → Available Models** යටතේ පෙන්වන සජීවී නාමාවලිය භාවිත කරන්න. ලබාගත හැකි බව ගිණුම සහ සැලැස්ම මත රඳා පවතී.
+**Kiro (`kr/`)** — FREE OAuth: පහත දැක්වෙන සජීවී නාමාවලිය භාවිතා කරන්න** උපකරණ පුවරුව → සපයන්නන් → Kiro → ලබා ගත හැකි මාදිලි** . ලබා ගැනීමේ හැකියාව ගිණුම සහ සැලැස්ම මත රඳා පවතී.
-**Qoder (`if/`)** — නොමිලේ OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/මාසික ස්ථාවර හෝ භාවිතය අනුව: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo පැතලි හෝ එක්-භාවිතය: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — API යතුර: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — අති-වේගවත්: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Ultra-fast: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok ස්වදේශීය: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok ස්වදේශික: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU-සත්කාලක: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU-සත්කාරක: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — සෙවීම-විස්තාරිත: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**ව්යාකූලත්වය (`pplx/`)** — සෙවීම-වැඩිදිය: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — විවෘත-මූලාශ්ර: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (නොමිලේ), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — විවෘත මූලාශ්ර: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (නොමිලේ), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
**Fireworks AI (`fireworks/`)** — වේගවත් අනුමානය: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Wafer-පරිමාණ: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — වේෆර් පරිමාණය: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — RAG-කේන්ද්රගත: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG-නාභිගත: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — ව්යවසාය: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — ව්යවසාය: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama වලාකුළු (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Google වෙතින් API යතුරක් අනුව සජීවීව සමමුහුර්ත වේ — ස්ථාවර ලැයිස්තුවක් නොමැත. **Dashboard → Providers** හි යතුරක් සම්බන්ධ කර, වත්මන් නාමාවලිය ආයාත කිරීමට **Available Models** භාවිත කරන්න (උදා. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : Google — වෙතින් API යතුරකට සජීවීව සමමුහුර්ත කර ඇත ස්ථිතික ලැයිස්තුවක් නැත. යතුරක් සම්බන්ධ කරන්න** උපකරණ පුවරුව → සපයන්නන්** පසුව භාවිතා කරන්න** පවතින මාදිලි** වත්මන් නාමාවලිය ආනයනය කිරීමට (උදා: `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**වෙනත් අනුකූල සපයන්නන්** (තෝරාගත්): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (`aws-bedrock` හරහා), `azure-ai`, `openrouter` (passthrough නාමාවලිය), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. සෑම එකක්ම `providerRegistry.ts` හි තමන්ගේම ආකෘති ලැයිස්තුවක් පවත්වාගෙන යන අතර, සපයන්නා `/models` අන්තලක්ෂයක් හෙළි කරන විට ස්වයං-සමමුහුර්ත කළ හැක.
+**Other compatible providers** (selected): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (passthrough catalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Each maintains its own model list in `providerRegistry.ts` and can be auto-synced when the provider exposes a `/models` endpoint.
-**ආකෘති IDs පිළිබඳ සටහන:** OmniRoute සපයන්නා-ස්වදේශීය IDs භාවිත කරයි (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). සමහර IDs වල තිතැඳි අනුවාද ඇතුළත් වන්නේ ඉහළ-ප්රවාහ API එය එලෙස අපේක්ෂා කරන බැවිනි. ආකෘතියක් ඉහත ලැයිස්තුගත වී නැත්නම්, `omniroute models --search ` ධාවනය කරන්න හෝ ලබාගත හැකි බව තහවුරු කර ගැනීමට `GET /api/models/catalog` වෙත යොමු වන්න.
+**IDs ආකෘතිය පිළිබඳ සටහන:** OmniRoute සපයන්නා-දේශීය IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`) භාවිතා කරයි. සමහර IDs තිත් සහිත අනුවාද ඇතුළත් වේ, මන්ද උඩුගං API ඒවා බලාපොරොත්තු වන්නේ එලෙස ය. ආකෘතියක් ඉහත ලැයිස්තුගත කර නොමැති නම්, පවතින බව තහවුරු කිරීමට `omniroute models --search ` ධාවනය කරන්න හෝ `GET /api/models/catalog` ඔබන්න.
diff --git a/docs/i18n/sk/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/sk/docs/architecture/RESILIENCE_GUIDE.md
index 014c48bfb893..fcb223e155a5 100644
--- a/docs/i18n/sk/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/sk/docs/architecture/RESILIENCE_GUIDE.md
@@ -284,26 +284,17 @@ _stav_ blokovaní je efemérny.
---
-## 4. Riadenie súbežnosti quota-share (v3.8.36)
+## 4. Kontrola súbežného zdieľania kvót (v3.8.36)
-Účty predplatného (GLM, MiniMax atď.) často akceptujú len ~1–3 súbežné
-požiadavky; ich prekročenie spúšťa chyby 429 a cooldowny. Tento problém je
-obzvlášť naliehavý pri kombináciách **quota-share** (`qtSd/…`), kde viacero
-API kľúčov zdieľa jeden upstream účet. Tri vrstvy zabraňujú zaplaveniu
-zdieľaného účtu.
+Účty predplatiteľov (GLM, MiniMax atď.) často akceptujú iba ~ 1–3 súbežné požiadavky; prekročenie spúšťa 429s a cooldowny. Toto je akútne pod** kvóty** (`qtSd/…`) kombá, kde niekoľko kľúčov API zdieľa jeden upstream účet. Tri vrstvy chránia zdieľaný účet pred zaplavením.
-### Limit súbežnosti na pripojenie (`max_concurrent`)
+### Obmedzenie súbežnosti na pripojenie (`max_concurrent`)
-Každé pripojenie poskytovateľa môže deklarovať strop `max_concurrent`
-(`provider_connections.max_concurrent`, nastavuje sa v modálnom okne
-pripojenia / API / DB). Nechajte ho prázdny pre režim bez limitu. Toto je
-jediný ovládač, ktorý riadi serializačnú vrstvu popísanú nižšie — nastavte
-ho na skutočnú súbežnosť účtu (napr. GLM ~1, MiniMax ~2).
+Každé pripojenie poskytovateľa môže deklarovať strop `max_concurrent` (`provider_connections.max_concurrent`, nastavený v pripojení modal / API / DB). Nechajte ho prázdne bez obmedzenia. Toto je jediný gombík, ktorý riadi vrstvu serializácie pod — nastavte ju na skutočnú súbežnosť účtu (napr. GLM ~ 1, MiniMax ~ 2).
-### Limity súbežnosti podľa modelu (`modelConcurrency`)
+### Obmedzenia súbežnosti podľa modelu (`modelConcurrency`)
-Pripojenie môže navyše deklarovať presné stropy súbežnosti pre jednotlivé
-modely vo svojej mape `rateLimitOverrides`:
+Spojenie môže dodatočne deklarovať presné stropy súbežnosti podľa modelu vo svojej mape `rateLimitOverrides` :
```json
{
@@ -314,77 +305,32 @@ modely vo svojej mape `rateLimitOverrides`:
}
```
-Nastavuje sa v modálnom okne pripojenia (**Prepísania rate limitov → Limity
-súbežnosti podľa modelu**, jeden `model=cap` na riadok) alebo cez
-`PATCH /api/providers/[id]` s rovnakým tvarom JSON. Sémantika kľúčov:
-
-- **Celopripojový vs. modelovo-špecifický:** `maxConcurrent` zostáva
- zdieľaným stropom na úrovni celého pripojenia. Keď platia oba, obe brány
- sa získavajú atomicky v rámci tej istej kompozitnej brány
- (`global → provider → account → model`); výsledné správanie určuje
- prísnejší platný limit.
-- **Presná zhoda kľúča modelu:** kľúčom je reťazec modelu odovzdaný
- vykonávateľovi po rozlíšení smerovania — zvyčajne holé upstream ID modelu
- (`glm-5`), nie alias `provider/model` na strane klienta (`zai/glm-5`
- nezodpovedá `glm-5`). Hodnoty sú stropy počtu súbežných požiadaviek vo
- forme kladných celých čísel.
-- **Lokálne radenie, bez zisťovania:** nadbytočné požiadavky čakajú lokálne
- v rade s existujúcou sémantikou radu/timeoutu (typované chyby prijatia
- `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). OmniRoute nezisťuje ani
- neodvodzuje politiku upstreamu — vynucuje presne tie stropy, ktoré
- operátor nakonfiguroval. Nasýtená brána modelu nikdy nevypne poskytovateľa
- a nikdy nevytvorí trvalé blokovanie modelu; správanie upstream
- 429/cooldown/fallback zostáva poistkou pri chybách.
-- **Rozsah na pripojenie a na proces:** limity platia na databázové
- pripojenie a držia sa v pamäti, takže dve pripojenia zdieľajúce rovnaký
- upstream API kľúč sa navzájom nekoordinujú.
-- **Nenakonfigurované znamená nezmenené:** vynechanie mapy (alebo ponechanie
- poľa na dashboarde prázdne) nepridá žiadnu bránu modelu. Príklad
- konfigurácie bez deklarovania akéhokoľvek univerzálneho limitu
- poskytovateľa:
+Nastavte ho v režime pripojenia (** Limit sadzby prepíše → Obmedzenia súbežnosti podľa modelu** , jeden `model=cap` na riadok) alebo cez `PATCH /api/providers/[id]` s rovnakým tvarom JSON. Kľúčová sémantika:
+
+- **Pre celé pripojenie vs pre konkrétny model:** `maxConcurrent` zostáva spoločný strop pre celé pripojenie. Keď sa použijú obe, obe brány sa získajú atómovo v rovnakom zloženom hradle (`global → provider → account → model`); efektívne správanie je prísnejšia uplatniteľná hranica.
+- **Presná zhoda modelu a kľúča:** kľúčom je modelový reťazec odovzdaný exekútorovi po vyriešení smerovania — normálne holé id modelu upstream (`glm-5`), nie alias `provider/model` na strane klienta (`zai/glm-5` sa nezhoduje `glm-5`). Hodnoty sú limity kladných celých súbežných požiadaviek.
+- **Miestne radenie, žiadne zistenie:** nadmerné požiadavky sa zaraďujú do frontu lokálne s existujúcou sémantikou queue/timeout (chyby prijatia typu `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ). OmniRoute nezisťuje ani neodvodzuje upstream politiku — presadzuje presné stropy nakonfigurované operátorom. Nasýtená brána modelu nikdy nevyradí poskytovateľa a nikdy nevytvorí trvalé uzamknutie modelu; správanie 429/cooldown/fallback proti prúdu zostáva blokovaním chyby.
+- **Na pripojenie, rozsah na proces:** caps sú na databázové pripojenie a sú uložené v pamäti, takže dve pripojenia používajúce rovnaký upstream kľúč API sa navzájom nekoordinujú.
+- **Nekonfigurované znamená nezmenené:** vynechanie mapy (alebo ponechanie poľa na palubnej doske prázdne) nepridá žiadnu modelovú bránu. Príklad konfigurácie bez uplatnenia akéhokoľvek limitu univerzálneho poskytovateľa:
```text
glm-5=1
glm-4.7=3
```
-### Serializácia požiadaviek quota-share
-
-Keď odoslanie quota-share cieli na pripojenie, ktoré deklaruje kladné
-`max_concurrent`, súbežné požiadavky na daný **účet** sa serializujú cez
-semafór na pripojenie (kľúč `qsconn:`): nadbytočné požiadavky
-**čakajú v rade** namiesto zaplavovania účtu. Funguje v režime **fail-open**
-— nasýtený rad alebo timeout pokračuje bez slotu namiesto toho, aby niekedy
-zamietol požiadavku, ktorú možno odoslať. Prepínač nájdete v **Nastavenia →
-Odolnosť → Súbežnosť quota-share na pripojenie**
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, predvolene
-zapnuté). Bez limitu `max_concurrent` sa správanie nemení.
-
-> Smerovacia brána quota-share (`selectQuotaShareTarget`, DRR + P2C) je sama
-> osebe fail-open a pripojenie na limite len _degraduje v prioritách_ — s
-> poolom s jediným pripojením nemôže vynútiť tvrdý limit, takže práve tento
-> semafór skutočne zadržiava záplavu.
-
-### Opakovanie pokusu combo s ohľadom na cooldown
-
-Pri každej stratégii combo (ak je povolená) požiadavka, ktorá by sa zmenila
-na chybu 429 kvôli KRÁTKEMU prechodnému cooldownu, počká na jeho uplynutie a
-znova sa odošle namiesto vrátenia chyby 429 — pokrýva to okná TPM/RPM triedy
-Gemini (~60 s retry-after) pri viacmodelových kombináciách, napr. keď oba
-ciele 2-modelového combo narazia na rate limit daného modelu. Ohraničené
-pomocou `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`,
-`budgetMs`) v **Nastavenia → Odolnosť**. Nikdy nečaká na `quota_exhausted`
-(uzamknuté do polnoci) ani na dôvody auth/not-found.
-
-Rovnaká brána pokrýva aj prípad pred odoslaním (#16319): keď sa všetky ciele
-combo preskočia skôr, než sa vykoná akýkoľvek pokus, pretože ich model je v
-krátkom prechodnom blokovaní, cesta s nulovými pokusmi počká na uplynutie
-blokovania v rámci rovnakých stropov a znova odošle, namiesto odpovede
-`503 ALL_TARGETS_SKIPPED` bez indície. Keď čakanie nie je povolené
-(vyčerpaný strop, pokus alebo rozpočet, prípadne je funkcia vypnutá),
-terminálna odpoveď sa povýši na `429 rate_limit_error` nesúcu `retry_after`
-/ `reset_at` z najskoršej expirácie prechodného blokovania; blokovania typu
-kvóta, auth a not-found si ponechávajú 503 bez indície.
+### Serializácia žiadostí o zdieľanie kvót
+
+Keď odoslanie zdieľania kvót zacieli na pripojenie, ktoré deklaruje kladné `max_concurrent`, súbežné požiadavky na toto pripojenie** účtu** sú serializované prostredníctvom semaforu pre jednotlivé pripojenia (kľúč `qsconn:`): nadmerné požiadavky** čakať v rade** namiesto zaplavenia účtu. je to tak** pri poruche otvorené** — nasýtený front alebo časový limit pokračuje bez slotu, namiesto toho, aby sa odmietla odoslaná požiadavka. Zapnúť** Nastavenia → Odolnosť → Súbežnosť zdieľania kvót na pripojenie** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, predvolene zapnuté). Bez obmedzenia `max_concurrent` je správanie nezmenené.
+
+> Smerovacia brána na zdieľanie kvót (`selectQuotaShareTarget`, DRR + P2C) je sama o sebe otvorená zlyhaním a iba _deprioritizuje_ pripojenie typu at-cap — s fondom s jedným pripojením, ktorý nemôže pevne obmedziť, takže tento semafor je to, čo v skutočnosti obsahuje záplavu.
+
+### Kombinovaný pokus o chladenie
+
+Pri každej kombinovanej stratégii (ak je povolená) čaká požiadavka, ktorá by vykryštalizovala 429 pre prechodné vychladnutie SHORT, a znova sa odošle namiesto vrátenia 429 — čo sa vzťahuje na okná TPM/RPM triedy Gemini (~ 60s opakovanie po) na kombá s viacerými modelmi, napr. oba ciele dosiahnutia limitu komba 2 na model. ohraničené `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) v** Nastavenia → Odolnosť** . Nikdy nečaká na dôvody `quota_exhausted` (uzamknuté do polnoci) alebo auth/not-found.
+
+Kombinácia sa môže odhlásiť pomocou `config.comboCooldownWaitEnabled: false`. Iba doslovné `false` zakáže tieto zdieľané kombinované čakania (chladenie po odoslaní a čakanie circuit-open/model-lock pred odoslaním) a ich predĺženie časového limitu čakania a rozpočtu. Chýbajúce alebo `true` zachováva globálnu politiku; `true` nemôže povoliť globálne zakázané čakanie. Explicitné `targetTimeoutMs` stále vyhráva. Toto odhlásenie nemení samostatné čakanie pred odoslaním otočného kolíka natívneho kódexu.
+
+Rovnaká brána pokrýva prípad pred odoslaním (#16319): keď je každý cieľ komba preskočený pred vykonaním akéhokoľvek pokusu, pretože jeho model je v krátkom prechodnom zablokovaní, cesta nulového pokusu čaká na uzamknutie pod rovnakými stropmi a znova sa odošle namiesto odpovede na `503 ALL_TARGETS_SKIPPED` bez náznaku. Keď nie je povolené žiadne čakanie (strop, pokus alebo rozpočet vyčerpaný, alebo funkcia vypnutá), odpoveď terminálu sa upgraduje na `429 rate_limit_error` nesúci `retry_after` / `reset_at` od najskoršieho vypršania prechodného zámku; kvóta, auth a not-nájdené zámky udržujú bez náznaku 503.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/sk/docs/guides/USER_GUIDE.md b/docs/i18n/sk/docs/guides/USER_GUIDE.md
index db125427a17d..e3f53b5359a1 100644
--- a/docs/i18n/sk/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/sk/docs/guides/USER_GUIDE.md
@@ -610,37 +610,37 @@ post_install() {
## 📊 Dostupné modely
-Zobraziť všetky dostupné modely
+Pozrite si všetky dostupné modely
-> Nižšie uvedený zoznam pochádza z `open-sse/config/providerRegistry.ts` pre v3.8.0. Cloudové katalógy (Gemini, OpenRouter atď.) sa synchronizujú dynamicky — úplný aktuálny katalóg nájdete v **Dashboard → Poskytovatelia → [provider] → Dostupné modely** alebo volaním `GET /api/models/catalog`.
+> Nižšie uvedený zoznam je kurátorom `open-sse/config/providerRegistry.ts` pre verziu 3.8.0. Cloudové katalógy (Gemini, OpenRouter atď.) sa synchronizujú dynamicky —, aby sa otvoril úplný živý katalóg** Dashboard → Poskytovatelia → [poskytovateľ] → Dostupné modely** alebo zavolajte `GET /api/models/catalog`.
>
-> Ak sa vstavaný zoznam poskytovateľa zastará, použite na tejto stránke **Importovať z /models** (alebo povoľte **Auto-Sync**) na stiahnutie aktuálneho upstream katalóga. Overené vo verzii v3.8.50 pre LLM7.io (`gemini-3.1-flash-lite`) a UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); anonymný prístup k Pollinations zostal počas toho istého testovacieho kola obmedzený na strane upstreamu.
+> Ak sa vstavaný zoznam poskytovateľa posunul, použite** Importovať z /models** na tejto stránke (alebo povoliť** Automatická synchronizácia** ) na stiahnutie živého upstream katalógu. Toto bolo overené vo verzii 3.8.50 pre LLM7.io (`gemini-3.1-flash-lite`) a UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Anonymný prístup k opeľovaniu zostal počas rovnakého testovania obmedzený.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude kód (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ úrovne úsilia: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` ( úrovne úsilia + : `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth ZADARMO: použite aktuálny katalóg zobrazený v **Dashboard → Poskytovatelia → Kiro → Dostupné modely**. Dostupnosť závisí od účtu a plánu.
+**Kiro (`kr/`)** — FREE OAuth: použite živý katalóg uvedený pod** Dashboard → Providers → Kiro → Dostupné modely** . Dostupnosť závisí od účtu a plánu.
-**Qoder (`if/`)** — OAuth ZADARMO: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mes. paušálne alebo podľa použitia: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo ploché alebo na použitie: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — API kľúč: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — kľúč API : `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Ultrarýchle: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Ultra-rýchle: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Natívny Grok: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok natívne: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Hosťované v EÚ: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — hostené v EÚ: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Obohatené o vyhľadávanie: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**zmätok (`pplx/`)** — Rozšírené vyhľadávanie: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
**Together AI (`together/`)** — Open-source: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (zadarmo), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
@@ -648,19 +648,19 @@ post_install() {
**Cerebras (`cerebras/`)** — Wafer-scale: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Zamerané na RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — so zameraním na RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Synchronizované naživo pre každý API kľúč z Googlu — žiadny statický zoznam. Pripojte kľúč v **Dashboard → Poskytovatelia** a potom cez **Dostupné modely** importujte aktuálny katalóg (napr. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : Synchronizované naživo na kľúč API zo Google — bez statického zoznamu. Pripojte kľúč** Poskytovatelia Dashboard →** potom použite** Dostupné modely** importovať aktuálny katalóg (napr. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Ostatní kompatibilní poskytovatelia** (výber): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (cez `aws-bedrock`), `azure-ai`, `openrouter` (priamy prenos katalóga), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Každý spravuje vlastný zoznam modelov v `providerRegistry.ts` a dá sa automaticky synchronizovať, keď poskytovateľ sprístupní endpoint `/models`.
+**Iní kompatibilní poskytovatelia** (vybrané): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (cez `aws-bedrock`), `azure-ai`, `openrouter` (priechodový katalóg), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21` `gigachat` Každý si udržiava svoj vlastný zoznam modelov v `providerRegistry.ts` a môže sa automaticky synchronizovať, keď poskytovateľ odhalí koncový bod `/models`.
-**Poznámka k ID modelov:** OmniRoute používa natívne ID poskytovateľov (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Niektoré ID obsahujú verzie s bodkami, pretože tak ich očakáva upstream API. Ak model nie je uvedený vyššie, spustite `omniroute models --search ` alebo zavolajte `GET /api/models/catalog` na overenie dostupnosti.
+**Poznámka k modelu IDs:** OmniRoute používa IDs natívneho poskytovateľa (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Niektoré IDs obsahujú bodkované verzie, pretože to je spôsob, akým ich očakáva API. Ak model nie je uvedený vyššie, dostupnosť potvrďte spustením `omniroute models --search ` alebo stlačením `GET /api/models/catalog`.
diff --git a/docs/i18n/sl/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/sl/docs/architecture/RESILIENCE_GUIDE.md
index a639766460cb..953acb3d918c 100644
--- a/docs/i18n/sl/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/sl/docs/architecture/RESILIENCE_GUIDE.md
@@ -283,26 +283,17 @@ se trajno shranijo; aktivno _stanje_ zaklepov je minljivo.
---
-## 4. Nadzor sočasnosti Quota-Share (v3.8.36)
+## 4. Nadzor sočasnosti deleža kvote (v3.8.36)
-Naročniški računi (GLM, MiniMax itd.) pogosto sprejmejo le ~1–3 sočasne
-zahteve; njihova prekoračitev sproži napake 429 in ohladitvena obdobja. To je
-še posebej pereče pri kombinacijah **quota-share** (`qtSd/…`), kjer si več API
-ključev deli en upstream račun. Tri plasti preprečujejo, da bi bil deljeni
-račun preplavljen.
+Naročniški računi (GLM, MiniMax itd.) pogosto sprejmejo samo ~ 1–3 sočasne zahteve; prekoračitev tega sproži 429s in ohladitve. To je akutno pod** kvotni delež** (`qtSd/…`) kombinacije, kjer si več ključev API deli en navzgornji račun. Trije sloji preprečujejo poplavo skupnega računa.
### Omejitev sočasnosti na povezavo (`max_concurrent`)
-Vsaka povezava s ponudnikom lahko deklarira zgornjo mejo `max_concurrent`
-(`provider_connections.max_concurrent`, nastavljivo v modalnem oknu povezave /
-prek API-ja / v bazi podatkov). Pustite prazno, če ne želite omejitve. To je
-edini gumb, ki poganja spodnjo serializacijsko plast — nastavite ga na dejansko
-sočasnost računa (npr. GLM ~1, MiniMax ~2).
+Vsaka povezava ponudnika lahko deklarira zgornjo mejo `max_concurrent` (`provider_connections.max_concurrent`, nastavljeno v načinu povezave / API / DB). Pustite prazno, če ni omejitev. To je edini gumb, ki poganja serializacijsko plast pod —, ki jo nastavite na dejansko sočasnost računa (npr. GLM ~ 1, MiniMax ~ 2).
-### Omejitve sočasnosti po modelih (`modelConcurrency`)
+### Omejitve sočasnosti na model (`modelConcurrency`)
-Povezava lahko dodatno deklarira natančne zgornje meje sočasnosti po modelih
-znotraj svoje mape `rateLimitOverrides`:
+Povezava lahko dodatno deklarira natančne zgornje meje sočasnosti na model znotraj svojega zemljevida `rateLimitOverrides` :
```json
{
@@ -313,77 +304,32 @@ znotraj svoje mape `rateLimitOverrides`:
}
```
-Nastavite jo v modalnem oknu povezave (**Preglasitve omejitev hitrosti →
-Omejitve sočasnosti po modelih**, en `model=cap` na vrstico) ali prek
-`PATCH /api/providers/[id]` z enako obliko JSON. Semantika ključev:
-
-- **Za celo povezavo glede na posamezen model:** `maxConcurrent` ostaja skupna
- zgornja meja za celo povezavo. Ko veljata obe, se obe zapori pridobita
- atomarno znotraj iste sestavljene zapore
- (`global → provider → account → model`); efektivno vedenje določa strožja od
- veljavnih omejitev.
-- **Natančno ujemanje ključa modela:** ključ je niz modela, ki se posreduje
- izvajalcu po razrešitvi usmerjanja — običajno goli ID upstream modela
- (`glm-5`), ne pa odjemalski vzdevek `provider/model` (`zai/glm-5` se ne
- ujema z `glm-5`). Vrednosti so zgornje meje sočasnih zahtev v obliki
- pozitivnih celih števil.
-- **Lokalno vrstenje, brez odkrivanja:** presežne zahteve se vrstijo lokalno z
- obstoječo semantiko vrste/časovne omejitve (tipizirani napaki sprejema
- `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). OmniRoute ne odkriva in ne
- sklepa upstream politike — uveljavlja natančno tiste zgornje meje, ki jih je
- nastavil operater. Zasičena zapora modela nikoli ne onemogoči ponudnika in
- nikoli ne ustvari trajne blokade modela; upstream vedenje
- 429/cooldown/fallback ostaja zadnje varovalo pred napakami.
-- **Obseg na povezavo in na proces:** omejitve veljajo na povezavo v bazi
- podatkov in so shranjene v pomnilniku, zato se dve povezavi, ki uporabljata
- isti upstream API ključ, med seboj ne usklajujeta.
-- **Nenastavljeno pomeni nespremenjeno:** če mapo izpustite (ali polje na
- nadzorni plošči pustite prazno), se nobena zapora modela ne doda. Primer
- konfiguracije brez predpostavljanja katere koli univerzalne omejitve
- ponudnika:
+Nastavite ga v načinu povezave (** Omejitev stopnje preglasi → omejitve sočasnosti na model** , en `model=cap` na vrstico) ali prek `PATCH /api/providers/[id]` z isto obliko JSON. Ključna semantika:
+
+- **Za celotno povezavo v primerjavi z modelom:** `maxConcurrent` ostaja skupna zgornja meja za celotno povezavo. Ko velja oboje, se oba vratca pridobita atomsko v istih sestavljenih vratih (`global → provider → account → model`); učinkovito vedenje je strožja veljavna meja.
+- **Natančno ujemanje modela in ključa:** ključ je niz modela, ki se posreduje izvajalcu po razrešitvi usmerjanja — običajno goli ID modela navzgor (`glm-5`), ne vzdevek `provider/model` na strani odjemalca (`zai/glm-5` se ne ujema `glm-5`). Vrednosti so zgornje meje sočasnih zahtev pozitivnih celih števil.
+- **Lokalno čakanje v čakalni vrsti, brez odkritja:** odvečne zahteve lokalno v čakalno vrsto z obstoječo semantiko queue/timeout (tipkane napake pri sprejemu `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ). OmniRoute ne odkrije ali sklepa navzgornjo politiko — uveljavlja natančne zgornje meje, ki jih je konfiguriral operater. Nasičena vrata modela nikoli ne onemogočijo ponudnika in nikoli ne ustvarijo trajne blokade modela; obnašanje 429/cooldown/fallback navzgor ostaja povratna zapora napake.
+- **Obseg na povezavo, na proces:** caps so na povezavo baze podatkov in se hranijo v pomnilniku, tako da dve povezavi, ki ponovno uporabljata isti ključ API navzgor, nista usklajeni med seboj.
+- **Nekonfigurirano pomeni nespremenjeno:** izpustitev zemljevida (ali pustite polje na nadzorni plošči prazno) ne doda vrat modela. Primer konfiguracije brez uveljavljanja univerzalne omejitve ponudnika:
```text
glm-5=1
glm-4.7=3
```
-### Serializacija zahtev quota-share
-
-Ko pošiljanje quota-share cilja na povezavo, ki deklarira pozitivno vrednost
-`max_concurrent`, se sočasne zahteve do tega **računa** serializirajo prek
-semaforja na povezavo (ključ `qsconn:`): presežne zahteve
-**čakajo v vrsti**, namesto da bi preplavile račun. Deluje po načelu
-**fail-open** — ob zasičeni vrsti ali časovni omejitvi se zahteva nadaljuje
-brez reže, namesto da bi bila kdaj zavrnjena zahteva, ki jo je mogoče
-odposlati. Preklop v **Nastavitve → Odpornost → Sočasnost quota-share na
-povezavo** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, privzeto
-vklopljeno). Brez omejitve `max_concurrent` vedenje ostane nespremenjeno.
-
-> Usmerjevalna zapora quota-share (`selectQuotaShareTarget`, DRR + P2C) je sama
-> po sebi fail-open in le _zmanjša prednost_ povezave, ki je na meji — pri
-> zalogi z eno samo povezavo ne more trdo omejiti, zato je ta semafor tisti, ki
-> poplavo dejansko zadrži.
-
-### Ponovni poskus ob upoštevanju ohladitve za kombinacije
-
-Pri vsaki strategiji kombinacij (ko je omogočena) zahteva, ki bi sprožila 429
-zaradi KRATKE prehodne ohladitve, to počaka in se ponovno pošlje, namesto da
-vrne 429 — to pokriva okna TPM/RPM razreda Gemini (~60 s retry-after) pri
-večmodelskih kombinacijah, npr. ko oba cilja 2-modelske kombinacije zadeneta
-omejitev hitrosti na model. Omejeno z `comboCooldownWait` (`enabled`,
-`maxWaitMs`, `maxAttempts`, `budgetMs`) v **Nastavitve → Odpornost**. Nikoli ne
-čaka na `quota_exhausted` (zaklenjeno do polnoči) ali na razloge
-auth/not-found.
-
-Ista zapora pokriva primer pred pošiljanjem (#16319): ko so vsi cilji
-kombinacije preskočeni, preden je bil izveden kateri koli poskus, ker je
-njihov model v kratki prehodni blokadi, pot brez poskusov pod istimi zgornjimi
-mejami počaka, da se blokada izteče, in ponovno pošlje, namesto da bi
-odgovorila z `503 ALL_TARGETS_SKIPPED` brez namiga. Ko čakanje ni dovoljeno
-(izčrpana meja, število poskusov ali proračun, ali pa je funkcija izklopljena),
-se končni odgovor nadgradi na `429 rate_limit_error`, ki nosi `retry_after` /
-`reset_at` najzgodnejšega izteka prehodne blokade; blokade zaradi kvote,
-avtentikacije in not-found ohranijo 503 brez namiga.
+### Serializacija zahteve za delež kvote
+
+Ko pošiljanje deleža kvote cilja na povezavo, ki izjavi pozitivno `max_concurrent`, sočasne zahteve za to** račun** se serializirajo prek semaforja za vsako povezavo (ključ `qsconn:`): presežne zahteve** čakati v čakalni vrsti** namesto da bi poplavil račun. Je** neuspešno odprt** — nasičena čakalna vrsta ali časovna omejitev se nadaljuje brez reže, namesto da bi kadarkoli zavrnila zahtevo, ki jo je mogoče poslati. Vklopi** Nastavitve → Odpornost → Sočasnost deleža kvote na povezavo** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, privzeto vklopljeno). Brez pokrovčka `max_concurrent` je vedenje nespremenjeno.
+
+> Usmerjevalna vrata s skupnim deležem kvote (`selectQuotaShareTarget`, DRR + P2C) so sama odprta ob napakah in samo _deprioritizira_ povezavo at-cap — s skupino enojne povezave, ki je ni mogoče težko omejiti, zato je ta semafor tisti, ki dejansko vsebuje poplavo.
+
+### Kombinirani ponovni poskus z upoštevanjem ohlajanja
+
+Za vsako kombinirano strategijo (ko je omogočena) zahteva, ki bi kristalizirala 429 za prehodno ohlajanje SHORT počaka in ponovno odpošlje namesto vrnitve 429 — To zajema okna TPM/RPM razreda Gemini (~ 60-ih ponovni poskus) pri kombinacijah z več modeli, npr. oba cilja kombinacije 2 modelov dosegata stopnjo na model omejitev. Omejeno z `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) v** Nastavitve → Odpornost** . Nikoli ne čaka na razloge `quota_exhausted` (zaklenjeno do polnoči) ali auth/not-found.
+
+Kombinacija se lahko odjavi z `config.comboCooldownWaitEnabled: false`. Samo dobesedni `false` onemogoči ta skupna kombinirana čakanja (ohlajanje po odpremi in čakanja circuit-open/model-lock pred odpremo) in njihovo podaljšanje časovne omejitve proračuna čakanja-spodnjega praga. Manjka ali `true` ohranja globalni pravilnik; `true` ne more omogočiti globalno onemogočenega čakanja. Eksplicitni `targetTimeoutMs` še vedno zmaga. Ta zavrnitev ne spremeni ločenega čakanja pred odpremo native-Codex.
+
+Ista vrata pokrivajo primer pred odpošiljanjem (#16319): ko je vsak cilj kombinacije preskočen pred kakršnim koli poskusom, ker je njegov model v kratki prehodni blokadi, pot brez poskusa čaka na zaklepanje pod istimi zgornjimi mejami in ponovno odpošlje, namesto da odgovori na `503 ALL_TARGETS_SKIPPED` brez namigov. Ko čakanje ni dovoljeno (zgornja meja, poskus ali proračun je izčrpan ali je funkcija izklopljena), se odziv terminala nadgradi na `429 rate_limit_error` ki prenaša `retry_after` / `reset_at` od najzgodnejšega poteka prehodnega zaklepanja; kvota, avtorizacija in zaklepanje ni najdeno ohranjajo 503 brez namigov.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/sl/docs/guides/USER_GUIDE.md b/docs/i18n/sl/docs/guides/USER_GUIDE.md
index 37b9673e1af4..1e5b934b1a7d 100644
--- a/docs/i18n/sl/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/sl/docs/guides/USER_GUIDE.md
@@ -608,57 +608,57 @@ Za celoten seznam okoljskih spremenljivk glejte [README](../README.md).
## 📊 Razpoložljivi modeli
-Prikaži vse razpoložljive modele
+Oglejte si vse razpoložljive modele
-> Spodnji seznam je sestavljen iz `open-sse/config/providerRegistry.ts` za v3.8.0. Katalogi v oblaku (Gemini, OpenRouter itd.) se sinhronizirajo dinamično — za celoten živi katalog odprite **Nadzorna plošča → Ponudniki → [ponudnik] → Razpoložljivi modeli** ali pokličite `GET /api/models/catalog`.
+> Spodnji seznam je kuriran iz `open-sse/config/providerRegistry.ts` za v3.8.0. Katalogi v oblaku (Gemini, OpenRouter itd.) se dinamično sinhronizirajo — za odprt celoten katalog v živo** Nadzorna plošča → Ponudniki → [ponudnik] → Razpoložljivi modeli** ali pokličite `GET /api/models/catalog`.
>
-> Če se je vgrajeni seznam ponudnika oddaljil od dejanskega stanja, na tisti strani uporabite **Uvozi iz /models** (ali omogočite **Samodejno sinhroniziranje**), da pridobite živi nadrejeni katalog. To je bilo preverjeno v v3.8.50 za LLM7.io (`gemini-3.1-flash-lite`) in UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); anonimni dostop Pollinations je bil med istim preizkusom še vedno omejen na nadrejeni strani.
+> Če se je vgrajeni seznam ponudnika premaknil, uporabite** Uvoz iz /models** na tej strani (ali omogočite** Samodejna sinhronizacija** ), da povlečete katalog v živo navzgor. To je bilo preverjeno v v3.8.50 za LLM7.io (`gemini-3.1-flash-lite`) in UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Anonimni dostop opraševanja je med istim prehodom testa ostal navzgor omejen.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**koda Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ stopnje napora: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (stopnje napora + : `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — BREZPLAČNI OAuth: uporabite živi katalog, prikazan pod **Nadzorna plošča → Ponudniki → Kiro → Razpoložljivi modeli**. Razpoložljivost je odvisna od računa in paketa.
+**Kiro (`kr/`)** — FREE OAuth: uporabite katalog v živo, prikazan spodaj** Nadzorna plošča → Ponudniki → Kiro → Razpoložljivi modeli** . Razpoložljivost je odvisna od računa in paketa.
-**Qoder (`if/`)** — BREZPLAČNI OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mesec pavšalno ali po porabi: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo pavšalno ali za uporabo: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — API ključ: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — ključ API : `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Izjemno hitro: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Ultra hiter: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Izvorni Grok: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok izvirno: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Gostovanje v EU: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — gostuje v EU: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Obogateno z iskanjem: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Zmedenost (`pplx/`)** — Iskalno razširjeno: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Odprtokodno: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (brezplačno), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — Odprtokodni: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (brezplačno), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
**Fireworks AI (`fireworks/`)** — Hitro sklepanje: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Tehnologija wafer-scale: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Wafer-scale: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Osredotočeno na RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — osredotočeno na RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Za podjetja: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama oblak (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Sinhronizirano v živo za vsak API ključ iz Googla — ni statičnega seznama. Povežite ključ v **Nadzorna plošča → Ponudniki**, nato uporabite **Razpoložljivi modeli** za uvoz trenutnega kataloga (npr. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : sinhronizirano v živo po ključu API z Google — ni statičnega seznama. Priključite ključ** Nadzorna plošča Ponudniki →** potem uporabite** Razpoložljivi modeli** za uvoz trenutnega kataloga (npr. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Drugi združljivi ponudniki** (izbor): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (prek `aws-bedrock`), `azure-ai`, `openrouter` (katalog s posredovanjem), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Vsak vzdržuje svoj seznam modelov v `providerRegistry.ts` in ga je mogoče samodejno sinhronizirati, kadar ponudnik izpostavi končno točko `/models`.
+**Drugi združljivi ponudniki** (izbrano): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (prek `aws-bedrock`), `azure-ai`, `openrouter` (prehodni katalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Vsak vzdržuje svoj seznam modelov v `providerRegistry.ts` in se lahko samodejno sinhronizira, ko ponudnik razkrije končno točko `/models`.
-**Opomba o ID-jih modelov:** OmniRoute uporablja izvorne ID-je ponudnikov (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Nekateri ID-ji vključujejo različice s pikami, ker jih v tej obliki pričakuje nadrejeni API. Če model ni naveden zgoraj, zaženite `omniroute models --search ` ali pokličite `GET /api/models/catalog`, da potrdite razpoložljivost.
+**Opomba o modelu IDs:** OmniRoute uporablja izvorni IDs ponudnika (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Nekateri IDs vključujejo različice s pikami, ker jih tako pričakuje zgornji API. Če modela ni na seznamu zgoraj, za potrditev razpoložljivosti zaženite `omniroute models --search ` ali pritisnite `GET /api/models/catalog`.
diff --git a/docs/i18n/sr/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/sr/docs/architecture/RESILIENCE_GUIDE.md
index fa821341cbf6..58d7443c96b9 100644
--- a/docs/i18n/sr/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/sr/docs/architecture/RESILIENCE_GUIDE.md
@@ -259,21 +259,17 @@ Podešavanja se trajno čuvaju kroz uobičajeno skladište podešavanja i validi
---
-## 4. Kontrola konkurentnosti za deljenu kvotu (v3.8.36)
+## 4. Куота-Схаре Цонцурренци Цонтрол (в3.8.36)
-Nalozi zasnovani na pretplati (GLM, MiniMax itd.) često prihvataju samo ~1–3 istovremena zahteva; prekoračenje tog broja izaziva greške 429 i periode hlađenja. Ovo je posebno izraženo kod kombinacija sa **deljenom kvotom** (`qtSd/…`), gde više API ključeva deli jedan uzvodni nalog. Tri sloja sprečavaju da deljeni nalog bude preplavljen.
+Налози за претплату (GLM, MiniMax, итд.) често прихватају само ~ 1–3 истовремена захтева; прекорачење тога покреће 429с и хлађење. Ово је акутно под** квота-удео** (`qtSd/…`) комбинације, где неколико API кључева дели један упстреам налог. Три слоја чувају заједнички налог од поплаве.
-### Ograničenje konkurentnosti po konekciji (`max_concurrent`)
+### Ограничење конкурентности по вези (`max_concurrent`)
-Svaka konekcija ka provajderu može da deklariše gornju granicu `max_concurrent`
-(`provider_connections.max_concurrent`, podešava se u modalu konekcije / API-ju / bazi podataka).
-Ostavite prazno za rad bez ograničenja. Ovo je jedini parametar koji pokreće sloj
-serijalizacije opisan u nastavku — podesite ga na stvarnu konkurentnost naloga (npr. GLM ~1, MiniMax ~2).
+Свака веза провајдера може декларисати `max_concurrent` плафон (`provider_connections.max_concurrent`, постављен у модалној вези / API / DB). Оставите га празним без ограничења. Ово је једно дугме које покреће слој серијализације испод. — га поставља на стварну конкурентност налога (нпр. GLM ~ 1, MiniMax ~ 2).
-### Ograničenja konkurentnosti po modelu (`modelConcurrency`)
+### Ограничења истовремености по моделу (`modelConcurrency`)
-Konekcija može dodatno da deklariše tačne gornje granice konkurentnosti po modelu
-unutar svoje mape `rateLimitOverrides`:
+Веза може додатно декларисати тачне горње границе истовремености по моделу унутар своје `rateLimitOverrides` мапе:
```json
{
@@ -284,74 +280,32 @@ unutar svoje mape `rateLimitOverrides`:
}
```
-Podesite je u modalu konekcije (**Rate limit overrides → Per-model
-concurrency caps**, jedan `model=cap` po redu) ili putem
-`PATCH /api/providers/[id]` sa istim JSON oblikom. Ključna semantika:
-
-- **Na nivou konekcije naspram po modelu:** `maxConcurrent` ostaje deljena
- gornja granica za celu konekciju. Kada se primenjuju oba, oba prolaza se zauzimaju
- atomski u okviru istog kompozitnog prolaza
- (`global → provider → account → model`); efektivno ponašanje odgovara
- strožem od primenljivih ograničenja.
-- **Tačno podudaranje ključa modela:** ključ je string modela prosleđen
- izvršiocu nakon razrešenja rutiranja — obično goli ID uzvodnog modela
- (`glm-5`), a ne alijas `provider/model` na strani klijenta (`zai/glm-5` se ne
- podudara sa `glm-5`). Vrednosti su pozitivni celi brojevi koji predstavljaju
- gornje granice broja istovremenih zahteva.
-- **Lokalno čekanje u redu, bez otkrivanja:** višak zahteva čeka lokalno u redu uz
- postojeću semantiku reda i vremenskih ograničenja (tipizirane greške prijema `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL`). OmniRoute ne otkriva niti
- pretpostavlja uzvodnu politiku — on sprovodi tačno one granice koje je operator
- konfigurisao. Zasićen prolaz modela nikada ne onemogućava provajdera i nikada
- ne stvara trajnu blokadu modela; uzvodno ponašanje 429/hlađenja/fallback-a
- ostaje poslednja linija odbrane od grešaka.
-- **Opseg po konekciji i po procesu:** ograničenja važe po konekciji
- u bazi podataka i čuvaju se u memoriji, pa se dve konekcije koje koriste isti
- uzvodni API ključ međusobno ne usklađuju.
-- **Bez konfiguracije nema promene:** izostavljanje mape (ili ostavljanje
- polja na kontrolnoj tabli praznim) ne dodaje nikakav prolaz po modelu. Primer konfiguracije
- bez nametanja bilo kakvog univerzalnog ograničenja provajdera:
+Поставите у модалну везу (** Ограничење брзине замењује → ограничења истовремености по моделу** , један `model=cap` по линији) или преко `PATCH /api/providers/[id]` са истим JSON обликом. Кључна семантика:
+
+- **На нивоу везе у односу на специфичан модел:** `maxConcurrent` остаје заједнички плафон на нивоу везе. Када се примењују обе, обе капије се добијају атомски у истој композитној капији (`global → provider → account → model`); ефективно понашање је строжа применљива граница.
+- **Тачно подударање модела и кључа:** кључ је стринг модела који се прослеђује извршиоцу након резолуције рутирања — обично је ИД голог узводног модела (`glm-5`), а не `provider/model` алиас на страни клијента (`zai/glm-5` се не поклапа `glm-5`). Вредности су максималне вредности истовременог захтева позитивног целог броја.
+- **Локално чекање у реду, без откривања:** вишак захтева у реду локално са постојећом queue/timeout семантиком (откуцане грешке при пријему `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ). OmniRoute не открива нити закључује политику упстреам — примењује тачне горње границе које је конфигурисао оператер. Засићена капија модела никада не онемогућава добављача и никада не ствара трајно закључавање модела; узводно 429/cooldown/fallback понашање остаје заустављање грешке.
+- **По вези, опсег процеса:** цапс су по вези са базом података и држе се у меморији, тако да две везе које поново користе исти узводни API кључ не координирају једна са другом.
+- **Неконфигурисано значи непромењено:** изостављање мапе (или остављање поља контролне табле празно) не додаје капију модела. Пример конфигурације без постављања ограничења универзалног добављача:
```text
glm-5=1
glm-4.7=3
```
-### Serijalizacija zahteva pri deljenju kvote
-
-Kada raspodela sa deljenom kvotom cilja konekciju koja deklariše pozitivan
-`max_concurrent`, istovremeni zahtevi ka tom **nalogu** serijalizuju se kroz
-semafor po konekciji (ključ `qsconn:`): višak zahteva **čeka u
-redu** umesto da preplavi nalog. Ona je **otvorena pri otkazu (fail-open)** — zasićen
-red ili isteklo vreme nastavlja bez zauzetog mesta, umesto da ikada odbije zahtev
-koji se može rasporediti. Uključivanje/isključivanje u **Settings → Resilience → Quota-share per-connection
-concurrency** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, podrazumevano
-uključeno). Bez ograničenja `max_concurrent` ponašanje je nepromenjeno.
-
-> Prolaz rutiranja za deljenu kvotu (`selectQuotaShareTarget`, DRR + P2C) je i sam
-> fail-open i samo _smanjuje prioritet_ konekcije koja je dosegla granicu — sa
-> pulom od jedne konekcije ne može da nametne strogo ograničenje, pa je ovaj semafor ono što stvarno
-> obuzdava poplavu.
-
-### Ponovni pokušaj za kombinacije svestan perioda hlađenja
-
-Za svaku strategiju kombinacije (kada je uključena), zahtev koji bi kristalisao grešku 429
-zbog KRATKOG prolaznog perioda hlađenja sačeka da on istekne i ponovo se
-raspodeli, umesto da vrati 429 — ovo pokriva TPM/RPM prozore klase Gemini (~60s retry-after)
-kod kombinacija sa više modela, npr. kada oba cilja kombinacije od 2 modela naiđu na ograničenje
-brzine po modelu. Ograničeno je parametrom `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`,
-`budgetMs`) u **Settings → Resilience**. Nikada ne čeka na `quota_exhausted`
-(zaključano do ponoći) niti na razloge vezane za autentifikaciju ili nepronalaženje.
-
-Isti prolaz pokriva i slučaj pre raspodele (#16319): kada je svaki cilj
-kombinacije preskočen pre nego što je ijedan pokušaj izvršen, jer se njegov model
-nalazi u kratkoj prolaznoj blokadi, putanja bez ijednog pokušaja sačeka da blokada istekne pod istim
-granicama i ponovo raspodeli, umesto da odgovori sa
-`503 ALL_TARGETS_SKIPPED` bez nagoveštaja. Kada čekanje nije dozvoljeno (dostignuta granica, iscrpljeni pokušaji ili budžet,
-ili je funkcija isključena), završni odgovor se nadograđuje na
-`429 rate_limit_error` koji nosi `retry_after` / `reset_at` najranijeg
-isteka prolazne blokade; blokade zbog kvote, autentifikacije i nepronađenog resursa
-zadržavaju odgovor 503 bez nagoveštaja.
+### Серијализација захтева за дељење квоте
+
+Када отпремање поделе квоте циља везу која декларише позитиван `max_concurrent`, истовремени захтеви за то** рачун** се серијализују преко семафора по вези (кључ `qsconn:`): вишак захтева** чекати у реду** уместо да поплави рачун. јесте** неуспешно отварање** — засићени ред или временско ограничење се наставља без слота уместо да икада одбије захтев који се може отпремити. Укључи** Подешавања → Отпорност → Конкурентност дељења квоте по конекцији** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, подразумевано укључено). Без `max_concurrent` цап, понашање је непромењено.
+
+> Капија за рутирање квоте дељења (`selectQuotaShareTarget`, DRR + P2C) је сама по себи отворена и само _деприоритетује_ ат-цап конекцију — са скупом са једном везом коју не може чврсто да ограничи, тако да је овај семафор оно што заправо садржи флоод.
+
+### Поновни покушај комбинованог хлађења
+
+За сваку комбиновану стратегију (када је омогућена), захтев који би кристализовао 429 за SHORT пролазно хлађење чека га и поново шаље уместо враћања 429 — ово покрива TPM/RPM прозоре класе Гемини (~ 60с поновни покушај након) на комбинацијама са више модела, нпр. лимит. Ограничено `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) у** Подешавања → Отпорност** . Никада не чека на `quota_exhausted` (закључано до поноћи) или auth/not-found разлоге.
+
+Комбинација се може искључити са `config.comboCooldownWaitEnabled: false`. Само литерални `false` онемогућава ова дељена комбинована чекања (хлађење након отпреме и чекања circuit-open/model-lock пре отпреме) и њихово продужење прага временског ограничења чекања и буџета. Недостаје или `true` чува глобалну политику; `true` не може омогућити глобално онемогућено чекање. Експлицитни `targetTimeoutMs` и даље побеђује. Ово одустајање не мења одвојено чекање пре отпреме у матичном Цодек-у.
+
+Иста капија покрива случај пре отпреме (#16319): када се свака мета комбинације прескочи пре било каквог покушаја јер је њен модел у кратком пролазном закључавању, путања без покушаја чека закључавање под истим плафонима и поново шаље, уместо да одговори на `503 ALL_TARGETS_SKIPPED` без наговештаја. Када није дозвољено чекање (плафон, покушај или буџет је исцрпљен, или је функција искључена), одговор терминала се надогради на `429 rate_limit_error` који носи `retry_after` / `reset_at` од најранијег истека прелазног закључавања; закључавања квота, аутх и не-пронађено задржавају 503 без наговештаја.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/sr/docs/guides/USER_GUIDE.md b/docs/i18n/sr/docs/guides/USER_GUIDE.md
index 3f485e06e419..ac3fc04bf616 100644
--- a/docs/i18n/sr/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/sr/docs/guides/USER_GUIDE.md
@@ -607,60 +607,60 @@ Za kompletnu referencu environment varijabli, pogledajte [README](../README.md).
---
-## 📊 Dostupni modeli
+## 📊 Доступни модели
-Pogledajte sve dostupne modele
+Погледајте све доступне моделе
-> Lista ispod je sastavljena iz `open-sse/config/providerRegistry.ts` za v3.8.0. Katalozi u oblaku (Gemini, OpenRouter, itd.) sinhronizuju se dinamički — za potpuni katalog uživo otvorite **Kontrolna tabla → Dobavljači → [dobavljač] → Dostupni modeli** ili pozovite `GET /api/models/catalog`.
+> Листа испод је састављена од `open-sse/config/providerRegistry.ts` за в3.8.0. Каталози у облаку (Gemini, OpenRouter, итд.) се динамички синхронизују — за потпуни отворени каталог уживо** Контролна табла → Провајдери → [провајдер] → Доступни модели** или позовите `GET /api/models/catalog`.
>
-> Ako je ugrađena lista nekog dobavljača zastarela, koristite **Uvoz iz /models** na toj stranici (ili omogućite **Automatsku sinhronizaciju**) da biste povukli katalog uživo sa izvora. Ovo je potvrđeno u v3.8.50 za LLM7.io (`gemini-3.1-flash-lite`) i UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); anonimni pristup servisu Pollinations ostao je ograničen sa izvorne strane tokom istog ciklusa testiranja.
+> Ако се уграђена листа добављача променила, користите** Увоз из /моделс** на тој страници (или омогућите** Ауто-Синц** ) да повучете узводни каталог уживо. Ово је верификовано у в3.8.50 за LLM7.ио (`gemini-3.1-flash-lite`) и UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Анонимни приступ опрашивања остао је ограничен узводно током истог проласка теста.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude код (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ nivoi napora: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ нивои напора: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — BESPLATAN OAuth: koristite katalog uživo prikazan pod **Kontrolna tabla → Dobavljači → Kiro → Dostupni modeli**. Dostupnost zavisi od naloga i plana.
+**Kiro (`kr/`)** — FREE OAuth: користите каталог уживо приказан испод** Контролна табла → Провајдери → Kiro → Доступни модели** . Доступност зависи од налога и плана.
-**Qoder (`if/`)** — BESPLATAN OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mesečno fiksno ili po korišćenju: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo стан или по употреби: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — API ključ: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API кључ: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Izuzetno brz: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Ултра-брзи: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Izvorni Grok: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok изворни: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Hostovano u EU: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — Хостован у ЕУ: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Prošireno pretragom: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**збуњеност (`pplx/`)** — Проширено претраживање: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Otvorenog koda: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (besplatan), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — Отворени извор: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (бесплатно), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Brza inferencija: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Брзо закључивање: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Skala vefera: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Вафер-скала: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Fokusirano na RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — фокусиран на РАГ: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Za preduzeća: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Ентерприсе: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
-**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
+**Baidu Кианфан (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama облак (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Sinhronizovano uživo po API ključu od Google-a — bez statičke liste. Povežite ključ u **Kontrolna tabla → Dobavljači**, a zatim koristite **Dostupni modeli** za uvoz trenutnog kataloga (npr. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Цлоуд `gemini/`)** : Синхронизовано уживо по API кључу са Google — без статичне листе. Повежите кључ** Контролна табла → Провајдери** затим користите** Доступни модели** да увезете тренутни каталог (нпр. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Ostali kompatibilni dobavljači** (odabrani): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (preko `aws-bedrock`), `azure-ai`, `openrouter` (prolazni katalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Svaki održava sopstvenu listu modela u `providerRegistry.ts` i može se automatski sinhronizovati kada dobavljač izlaže krajnju tačku `/models`.
+**Други компатибилни провајдери** (изабрано): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (преко `aws-bedrock`), `azure-ai`, `openrouter` (пролазни каталог), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink` `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21` `gigachat` Сваки од њих одржава сопствену листу модела у `providerRegistry.ts` и може се аутоматски синхронизовати када провајдер изложи `/models` крајњу тачку.
-**Napomena o ID-evima modela:** OmniRoute koristi izvorne ID-eve dobavljača (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Neki ID-evi uključuju verzije sa tačkama zato što ih izvorni API tako očekuje. Ako model nije naveden iznad, pokrenite `omniroute models --search ` ili pozovite `GET /api/models/catalog` da biste potvrdili dostupnost.
+**Напомена о моделу IDs:** OmniRoute користи IDs изворни провајдер (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Неки IDs укључују верзије са тачкама јер их узводни API тако очекује. Ако модел није наведен изнад, покрените `omniroute models --search ` или притисните `GET /api/models/catalog` да бисте потврдили доступност.
diff --git a/docs/i18n/sv/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/sv/docs/architecture/RESILIENCE_GUIDE.md
index cb5ad465f8a5..5c7752444e7e 100644
--- a/docs/i18n/sv/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/sv/docs/architecture/RESILIENCE_GUIDE.md
@@ -274,25 +274,17 @@ lockout-_tillståndet_ är flyktigt.
---
-## 4. Samtidighetsstyrning för kvotdelning (v3.8.36)
+## 4. Kvotandelskontroll av samtidighet (v3.8.36)
-Prenumerationskonton (GLM, MiniMax osv.) accepterar ofta bara ~1–3 samtidiga
-förfrågningar; att överskrida det utlöser 429-svar och nedkylningar. Detta är
-särskilt akut vid **kvotdelningskombos** (`qtSd/…`), där flera API-nycklar delar
-ett uppströmskonto. Tre lager hindrar att ett delat konto översvämmas.
+Prenumerationskonton (GLM, MiniMax, etc.) accepterar ofta endast ~ 1–3 samtidiga förfrågningar; överskrider det utlöser 429s och nedkylningar. Detta är akut under** kvotandel** (`qtSd/…`) combos, där flera API nycklar delar ett uppströmskonto. Tre lager håller ett delat konto från att översvämmas.
### Samtidighetstak per anslutning (`max_concurrent`)
-Varje leverantörsanslutning kan deklarera ett `max_concurrent`-tak
-(`provider_connections.max_concurrent`, anges i anslutningsmodalen / API:t /
-databasen). Lämna det tomt för ingen gräns. Detta är det enda reglage som styr
-serialiseringslagret nedan – ställ in det på kontots verkliga samtidighet
-(t.ex. GLM ~1, MiniMax ~2).
+Varje leverantörsanslutning kan deklarera ett `max_concurrent` -tak (`provider_connections.max_concurrent`, inställt i anslutningsmodal / API / DB). Lämna det tomt utan gräns. Detta är den enda ratten som driver serialiseringslagret under — ställ in det på kontots verkliga samtidighet (t.ex. GLM ~ 1, MiniMax ~ 2).
### Samtidighetstak per modell (`modelConcurrency`)
-En anslutning kan dessutom deklarera exakta samtidighetstak per modell i sin
-`rateLimitOverrides`-mappning:
+En anslutning kan dessutom deklarera exakta samtidighetstak per modell inuti sin `rateLimitOverrides` karta:
```json
{
@@ -303,76 +295,32 @@ En anslutning kan dessutom deklarera exakta samtidighetstak per modell i sin
}
```
-Ange det i anslutningsmodalen (**Åsidosättanden av hastighetsgränser →
-Samtidighetstak per modell**, en `model=cap` per rad) eller via
-`PATCH /api/providers/[id]` med samma JSON-struktur. Viktig semantik:
-
-- **Anslutningsövergripande kontra modellspecifik:** `maxConcurrent` förblir
- det delade anslutningsövergripande taket. När båda gäller förvärvas båda
- grindarna atomärt i samma sammansatta grind
- (`global → provider → account → model`); det effektiva beteendet är den
- striktare tillämpliga gränsen.
-- **Exakt modellnyckelmatchning:** nyckeln är modellsträngen som skickas till
- exekveraren efter routingupplösning – normalt det rena uppströmsmodell-ID:t
- (`glm-5`), inte ett `provider/model`-alias på klientsidan (`zai/glm-5`
- matchar inte `glm-5`). Värdena är tak för samtidiga förfrågningar uttryckta
- som positiva heltal.
-- **Lokal köbildning, ingen upptäckt:** överskjutande förfrågningar köar lokalt
- med befintlig kö-/timeout-semantik (typade `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL`-tillträdesfel). OmniRoute upptäcker eller härleder
- inte uppströmspolicy – den upprätthåller exakt de tak som operatören
- konfigurerat. En mättad modellgrind inaktiverar aldrig leverantören och
- skapar aldrig en permanent modellutelåsning; uppströms
- 429-/nedkylnings-/fallback-beteende förblir felhanteringens sista skyddsnät.
-- **Omfattning per anslutning, per process:** taken gäller per databasanslutning
- och hålls i minnet, så två anslutningar som återanvänder samma
- uppströms-API-nyckel koordinerar inte med varandra.
-- **Okonfigurerat betyder oförändrat:** att utelämna mappningen (eller lämna
- instrumentpanelfältet tomt) lägger inte till någon modellgrind.
- Exempelkonfiguration utan att hävda någon universell leverantörsgräns:
+Ställ in den i anslutningsmodal (** Rate limit åsidosätter → Per-modell samtidighetstak** , en `model=cap` per rad) eller via `PATCH /api/providers/[id]` med samma JSON form. Nyckelsemantik:
+
+- **Anslutningsomfattande kontra modellspecifik:** `maxConcurrent` förblir det delade anslutningsövergripande taket. När båda gäller, förvärvas båda grindarna atomärt i samma sammansatta gate (`global → provider → account → model`); det effektiva beteendet är den strängare tillämpliga gränsen.
+- **Exakt modell-nyckelmatchning:** nyckeln är modellsträngen som skickas till executorn efter routningsupplösningen — normalt det blotta uppströmsmodell-id (`glm-5`), inte ett `provider/model` alias på klientsidan (`zai/glm-5` matchar inte `glm-5`). Värden är positiva heltal samtidigt-begäran tak.
+- **Lokal kö, ingen upptäckt:** överflödiga förfrågningar köar lokalt med den befintliga queue/timeout semantiken (skrivna `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` -tillträdesfel). OmniRoute upptäcker eller sluter inte uppströms policy — den tillämpar de exakta tak som operatören har konfigurerat. En mättad modellgrind inaktiverar aldrig leverantören och skapar aldrig en permanent modelllåsning; uppströms 429/cooldown/fallback beteende förblir felbackspärren.
+- **Per anslutning, per process omfattning:** caps är per databasanslutning och hålls i minnet, så två anslutningar som återanvänder samma uppströms API nyckel koordinerar inte med varandra.
+- **Okonfigurerad betyder oförändrad:** Om du utelämnar kartan (eller lämnar instrumentpanelsfältet tomt) läggs ingen modellport till. Exempelkonfiguration utan att hävda någon universell leverantörsgräns:
```text
glm-5=1
glm-4.7=3
```
-### Serialisering av kvotdelningsförfrågningar
-
-När en kvotdelningsdispatch riktar sig mot en anslutning som deklarerar ett
-positivt `max_concurrent` serialiseras samtidiga förfrågningar till det
-**kontot** genom en semafor per anslutning (nyckel `qsconn:`):
-överskjutande förfrågningar **väntar i kön** istället för att översvämma
-kontot. Den är **fail-open** – en mättad kö eller timeout fortsätter utan en
-plats istället för att någonsin avvisa en dispatchbar förfrågan. Växla i
-**Inställningar → Återhämtning → Samtidighet per anslutning för kvotdelning**
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, på som standard).
-Utan ett `max_concurrent`-tak är beteendet oförändrat.
-
-> Kvotdelningens routinggrind (`selectQuotaShareTarget`, DRR + P2C) är i sig
-> fail-open och _nedprioriterar_ bara en anslutning som nått taket – med en
-> pool med en enda anslutning kan den inte hårdbegränsa, så det är denna
-> semafor som faktiskt håller tillbaka flödet.
-
-### Nedkylningsmedveten omprövning för kombos
-
-För varje kombostrategi (när den är aktiverad) väntar en förfrågan som skulle
-kristallisera en 429 för en KORT övergående nedkylning ut den och dispatchar om
-istället för att returnera 429:an – detta täcker Gemini-klassens TPM/RPM-fönster
-(~60 s retry-after) på flermodellskombos, t.ex. när båda målen i en
-2-modellskombo träffar en hastighetsgräns per modell. Begränsas av
-`comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) i
-**Inställningar → Återhämtning**. Den väntar aldrig på `quota_exhausted`
-(låst till midnatt) eller autentiserings-/hittades-inte-orsaker.
-
-Samma grind täcker fallet före dispatch (#16319): när varje mål i en kombo
-hoppas över innan något försök gjorts eftersom dess modell befinner sig i en
-kort övergående utelåsning, väntar nollförsöksvägen ut låset under samma tak
-och dispatchar om, istället för att svara med en `503 ALL_TARGETS_SKIPPED`
-utan ledtråd. När ingen väntan är tillåten (tak, försök eller budget
-förbrukade, eller funktionen av) uppgraderas det slutgiltiga svaret till
-`429 rate_limit_error` med `retry_after` / `reset_at` från den tidigaste
-övergående låsets utgång; kvot-, autentiserings- och hittades-inte-lås
-behåller 503:an utan ledtråd.
+### Serialisering av begäran om kvotdelning
+
+När en utsändning av kvotandelar riktar sig till en anslutning som deklarerar en positiv `max_concurrent`, kommer samtidiga förfrågningar till det** konto** serialiseras genom en semafor per anslutning (nyckel `qsconn:`): överflödiga förfrågningar** vänta i kön** istället för att översvämma kontot. Det är det** misslyckas öppna** — en mättad kö eller timeout fortsätter utan en lucka snarare än att någonsin avvisa en sändningsbar begäran. Växla in** Inställningar → Resilience → Kvotandel per anslutning samtidighet** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, standard på). Utan ett `max_concurrent` tak är beteendet oförändrat.
+
+> Rutningsgrinden för kvotandel (`selectQuotaShareTarget`, DRR + P2C) är själv felöppen och _avprioriterar_ endast en at-cap-anslutning — med en pool med en enda anslutning som den inte kan begränsa, så denna semafor är vad som faktiskt innehåller översvämningen.
+
+### Combo nedkylningsmedveten försök igen
+
+För varje kombinationsstrategi (när den är aktiverad), väntar en begäran som skulle kristallisera en 429 för en transient nedkylning SHORT och skickar den igen istället för att returnera 429 — Detta täcker Gemini-klass TPM/RPM -fönster (~ 60-talet försök igen efter) på kombinationer av flera modeller, t.ex. Avgränsas av `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) i** Inställningar → Resilience** . Den väntar aldrig på `quota_exhausted` (låst till midnatt) eller auth/not-found skäl.
+
+En kombination kan välja bort med `config.comboCooldownWaitEnabled: false`. Endast bokstavlig `false` inaktiverar dessa delade kombinationsväntningar (nedkylning efter avsändning och circuit-open/model-lock -väntningar före avsändning) och deras förlängning av timeout för vänta-budget. Saknas eller `true` bevarar den globala policyn; `true` kan inte aktivera globalt inaktiverad väntan. En explicit `targetTimeoutMs` vinner fortfarande. Detta borttagande ändrar inte den separata inbyggda Codex-väntan innan leverans.
+
+Samma grind täcker pre-dispatch-fallet (#16319): när varje mål i en combo hoppar över innan något försök görs eftersom dess modell sitter i en kort transient lockout, väntar nollförsöksvägen låsningen under samma tak och skickar om, istället för att svara på en antydningslös `503 ALL_TARGETS_SKIPPED`. När ingen väntan tillåts (tak, försök eller budget är slut, eller funktionen avstängd), uppgraderas terminalsvaret till `429 rate_limit_error` som bär `retry_after` / `reset_at` från det tidigaste tillfälliga låset som löper ut; kvot-, autentiserings- och icke-hittade lås behåller den antydningslösa 503.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/sv/docs/guides/USER_GUIDE.md b/docs/i18n/sv/docs/guides/USER_GUIDE.md
index af85a6abd823..2b6d9efd37bf 100644
--- a/docs/i18n/sv/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/sv/docs/guides/USER_GUIDE.md
@@ -607,60 +607,60 @@ Fullständig referens för miljövariabler finns i [README](../README.md).
---
-## 📊 Tillgängliga modeller
+## 📊 tillgängliga modeller
-Visa alla tillgängliga modeller
+Se alla tillgängliga modeller
-> Listan nedan är sammanställd från `open-sse/config/providerRegistry.ts` för v3.8.0. Molnkataloger (Gemini, OpenRouter osv.) synkroniseras dynamiskt — för den fullständiga livekatalogen öppnar du **Instrumentpanel → Leverantörer → [leverantör] → Tillgängliga modeller** eller anropar `GET /api/models/catalog`.
+> Listan nedan är sammanställd från `open-sse/config/providerRegistry.ts` för v3.8.0. Molnkataloger (Gemini, OpenRouter, etc.) synkroniseras dynamiskt — för att hela livekatalogen är öppen** Instrumentpanel → Leverantörer → [leverantör] → Tillgängliga modeller** eller ring `GET /api/models/catalog`.
>
-> Om en leverantörs inbyggda lista har blivit inaktuell använder du **Importera från /models** på den sidan (eller aktiverar **Automatisk synkronisering**) för att hämta den aktuella uppströmskatalogen. Detta verifierades i v3.8.50 för LLM7.io (`gemini-3.1-flash-lite`) och UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Pollinations anonyma åtkomst förblev uppströmsbegränsad under samma testomgång.
+> Om en leverantörs inbyggda lista har glidit, använd** Importera från /models** på den sidan (eller aktivera** Automatisk synkronisering** ) för att hämta live-uppströmskatalogen. Detta verifierades i v3.8.50 för LLM7.io (`gemini-3.1-flash-lite`) och UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Den anonyma tillgången till pollinering förblev uppströms begränsad under samma testpass.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude kod (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort-nivåer: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ ansträngningsnivåer: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — Gratis OAuth: använd livekatalogen som visas under **Instrumentpanel → Leverantörer → Kiro → Tillgängliga modeller**. Tillgängligheten beror på kontot och abonnemanget.
+**Kiro (`kr/`)** — FREE OAuth: använd livekatalogen som visas under** Dashboard → Leverantörer → Kiro → Tillgängliga modeller** . Tillgänglighet beror på kontot och planen.
-**Qoder (`if/`)** — Gratis OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mån fast pris eller per användning: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo platt eller per användning: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — API-nyckel: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API nyckel: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
**Groq (`groq/`)** — Ultrasnabb: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok nativt: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok infödd: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU-hostad: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU-värd: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Sökförstärkt: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Förvirring (`pplx/`)** — Search-augmented: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Öppen källkod: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (kostnadsfri), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — öppen källkod: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (gratis), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Snabb inferens: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Snabb slutledning: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
**Cerebras (`cerebras/`)** — Wafer-skala: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
**Cohere (`cohere/`)** — RAG-fokuserad: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Företag: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Synkroniseras live per API-nyckel från Google — ingen statisk lista. Anslut en nyckel under **Instrumentpanel → Leverantörer** och använd sedan **Tillgängliga modeller** för att importera den aktuella katalogen (t.ex. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : Synkroniserad live per API nyckel från Google — ingen statisk lista. Koppla in en nyckel** Dashboard → leverantörer** använd sedan** Tillgängliga modeller** för att importera den aktuella katalogen (t.ex. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Andra kompatibla leverantörer** (urval): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (genomströmningskatalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Var och en underhåller sin egen modellista i `providerRegistry.ts` och kan synkroniseras automatiskt när leverantören exponerar en `/models`-slutpunkt.
+**Andra kompatibla leverantörer** (valda): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (via `aws-bedrock`), `azure-ai`, `openrouter` (genomföringskatalog), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `friendliai`, `vercel-ai-gateway`, `bazaarlink`, , `nous-research`, `reka`, `volcengine`, `ai21` `gigachat` Var och en upprätthåller sin egen modelllista i `providerRegistry.ts` och kan automatiskt synkroniseras när leverantören exponerar en `/models` slutpunkt.
-**Obs angående modell-ID:n:** OmniRoute använder leverantörsspecifika ID:n (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Vissa ID:n innehåller punktseparerade versioner eftersom uppströms-API:et förväntar sig dem på det sättet. Om en modell inte listas ovan kör du `omniroute models --search ` eller anropar `GET /api/models/catalog` för att bekräfta tillgängligheten.
+**Anmärkning om modellen IDs:** OmniRoute använder leverantörsnative IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Vissa IDs inkluderar prickade versioner eftersom det är så uppströms API förväntar sig dem. Om en modell inte är listad ovan, kör `omniroute models --search ` eller tryck på `GET /api/models/catalog` för att bekräfta tillgängligheten.
diff --git a/docs/i18n/sw/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/sw/docs/architecture/RESILIENCE_GUIDE.md
index 91023cfae218..37b18602b54a 100644
--- a/docs/i18n/sw/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/sw/docs/architecture/RESILIENCE_GUIDE.md
@@ -286,21 +286,17 @@ zinazotumika ni ya muda tu (ephemeral).
---
-## 4. Udhibiti wa Usambamba wa Quota-Share (v3.8.36)
+## 4. Udhibiti wa Kiasi wa Kushiriki Fedha (v3.8.36)
-Akaunti za usajili (GLM, MiniMax, n.k.) mara nyingi hukubali miombi ~1–3 sambamba tu; kuzidi hapo husababisha 429 na cooldown. Hili ni suala kali zaidi chini ya combo za **quota-share** (`qtSd/…`), ambapo funguo kadhaa za API hushiriki akaunti moja ya upstream. Tabaka tatu huzuia akaunti inayoshirikiwa isifurikwe.
+Akaunti za usajili (GLM, MiniMax, n.k.) mara nyingi hukubali maombi ~ 1–3 pekee; kuzidi hiyo husababisha 429s na baridi. Hii ni papo hapo chini** sehemu ya upendeleo** (`qtSd/…`) mchanganyiko, ambapo vitufe kadhaa API hushiriki akaunti moja ya juu. Tabaka tatu huzuia akaunti iliyoshirikiwa isijaribiwe.
-### Kikomo cha usambamba cha kila muunganisho (`max_concurrent`)
+### Kofia ya sarafu ya kila muunganisho (`max_concurrent`)
-Kila muunganisho wa mtoa huduma unaweza kutangaza kikomo cha juu cha `max_concurrent`
-(`provider_connections.max_concurrent`, kinachowekwa kwenye modali ya muunganisho / API / DB).
-Kiache wazi kwa hakuna kikomo. Hiki ndicho kitufe pekee kinachoendesha tabaka la ufuatanyaji
-lililo hapa chini — kikiweke kwenye usambamba halisi wa akaunti (k.m. GLM ~1, MiniMax ~2).
+Kila muunganisho wa mtoa huduma unaweza kutangaza dari `max_concurrent` (`provider_connections.max_concurrent`, iliyowekwa katika modal ya uunganisho / API / DB). Iache tupu bila kikomo. Hiki ndicho kifundo kimoja kinachoendesha safu ya ufuataji chini ya — kuiweka kwa upatanifu halisi wa akaunti (km GLM ~ 1, MiniMax ~ 2).
-### Vikomo vya usambamba vya kila modeli (`modelConcurrency`)
+### Kofia za upatanisho za kila mfano (`modelConcurrency`)
-Muunganisho unaweza pia kutangaza vikomo halisi vya juu vya usambamba vya kila modeli
-ndani ya ramani yake ya `rateLimitOverrides`:
+Muunganisho unaweza pia kutangaza dari halisi za upatanisho wa kila mfano ndani ya ramani yake `rateLimitOverrides` :
```json
{
@@ -311,73 +307,32 @@ ndani ya ramani yake ya `rateLimitOverrides`:
}
```
-Viweke kwenye modali ya muunganisho (**Mapuuza ya vikomo vya kiwango → Vikomo vya
-usambamba vya kila modeli**, `model=cap` moja kwa kila mstari) au kupitia
-`PATCH /api/providers/[id]` kwa umbo lile lile la JSON. Semantiki muhimu:
-
-- **Kikomo cha muunganisho mzima dhidi ya kile cha modeli mahususi:** `maxConcurrent` hubaki
- kikomo cha juu cha pamoja cha muunganisho mzima. Zote zikitumika, milango yote miwili
- hupatikana kwa atomiki ndani ya lango moja la mchanganyiko
- (`global → provider → account → model`); tabia inayotumika ni
- kikomo kali zaidi kinachohusika.
-- **Ulinganifu halisi wa ufunguo wa modeli:** ufunguo ni mfuatano wa modeli unaopitishwa
- kwa kitekelezaji baada ya utatuzi wa uelekezaji — kwa kawaida kitambulisho safi cha modeli
- ya upstream (`glm-5`), si jina bandia la `provider/model` la upande wa mteja
- (`zai/glm-5` hailingani na `glm-5`). Thamani ni vikomo vya juu vya miombi sambamba
- vya namba nzima chanya.
-- **Foleni ya ndani, hakuna ugunduzi:** miombi ya ziada huingia kwenye foleni ya ndani kwa
- semantiki zilizopo za foleni/timeout (makosa ya udahili yaliyoainishwa `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL`). OmniRoute haugundui wala kuhitimisha sera ya upstream —
- hutekeleza vikomo halisi ambavyo mwendeshaji alisanidi. Lango la modeli lililojaa
- kamwe halimzuii mtoa huduma wala haliumbi kufuli ya kudumu ya modeli; tabia ya
- 429/cooldown/fallback ya upstream hubaki kama kinga ya mwisho ya makosa.
-- **Wigo wa kila muunganisho, kila mchakato:** vikomo ni vya kila muunganisho wa
- hifadhidata na huhifadhiwa kwenye kumbukumbu, hivyo miunganisho miwili inayotumia tena
- ufunguo ule ule wa API wa upstream hairatibu wao kwa wao.
-- **Kutokusanidiwa kunamaanisha hakuna mabadiliko:** kuacha ramani (au kuacha
- uga wa dashibodi wazi) hakuongezi lango lolote la modeli. Mfano wa usanidi bila
- kudai kikomo chochote cha jumla cha mtoa huduma:
+Iweke katika moduli ya unganisho (** Kiwango cha juu cha bei kinabatilisha → vikomo vya kubadilishana vya sarafu kwa kila mtindo** , `model=cap` moja kwa kila mstari) au kupitia `PATCH /api/providers/[id]` yenye umbo sawa JSON. Semantiki muhimu:
+
+- **Muunganisho mpana dhidi ya muundo mahususi:** `maxConcurrent` inabaki kuwa dari iliyoshirikiwa ya unganisho-pana. Wakati zote zinatumika, milango yote miwili hupatikana kwa atomi katika lango moja la mchanganyiko (`global → provider → account → model`); tabia ya ufanisi ni kikomo kinachotumika zaidi.
+- **Ulinganisho kamili wa ufunguo wa mfano:** ufunguo ni mfuatano wa mfuatano uliopitishwa kwa mtekelezaji baada ya azimio la kuelekeza — kwa kawaida kitambulisho cha mfano wa juu wa mto (`glm-5`), si lak `provider/model` la upande wa mteja (`zai/glm-5` hailingani na `glm-5`). Thamani ni dari chanya-jumla-ya ombi kwa wakati mmoja.
+- **Kupanga foleni ndani, hakuna ugunduzi:** maombi ya ziada kwenye foleni ya ndani na semantiki za queue/timeout zilizopo (hitilafu za uandikishaji zilizoandikwa `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ). OmniRoute haigundui au kukisia sera ya juu ya mkondo — inatekeleza viwango kamili ambavyo opereta aliweka. Lango la modeli iliyojaa kamwe halizima mtoa huduma na kamwe haliundi mtindo wa kufuli wa kudumu; tabia 429/cooldown/fallback ya juu inabaki kuwa kizuizi cha makosa.
+- **Kwa muunganisho, wigo wa kila mchakato:** kofia ni kwa kila muunganisho wa hifadhidata na huhifadhiwa kwenye kumbukumbu, kwa hivyo miunganisho miwili inayotumia tena ufunguo sawa API wa juu haushirikiani.
+- **Haijasanidiwa inamaanisha kuwa haijabadilishwa:** kuacha ramani (au kuacha uga wa dashibodi wazi) hakuongezi lango la mfano. Usanidi wa mfano bila kusisitiza kikomo chochote cha mtoaji:
```text
glm-5=1
glm-4.7=3
```
-### Ufuatanyaji wa miombi ya quota-share
-
-Upelekaji wa quota-share unapolenga muunganisho unaotangaza `max_concurrent`
-chanya, miombi sambamba kwa **akaunti** hiyo hufuatanywa kupitia semaphore ya
-kila muunganisho (ufunguo `qsconn:`): miombi ya ziada **husubiri kwenye
-foleni** badala ya kumwagilia akaunti. Ni **fail-open** — foleni iliyojaa au timeout
-huendelea bila nafasi badala ya kamwe kukataa ombi linaloweza kupelekwa. Washa/zima kwenye
-**Mipangilio → Ustahimilivu → Usambamba wa kila muunganisho wa quota-share**
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, chaguomsingi imewashwa).
-Bila kikomo cha `max_concurrent` tabia haibadiliki.
-
-> Lango la uelekezaji la quota-share (`selectQuotaShareTarget`, DRR + P2C) lenyewe ni
-> fail-open na _hupunguza kipaumbele_ tu cha muunganisho uliofikia kikomo — kwa
-> dimbwi la muunganisho mmoja haliwezi kuweka kikomo cha lazima, hivyo semaphore hii
-> ndicho kinachozuia mafuriko kweli kweli.
-
-### Ujaribio upya wa combo unaozingatia cooldown
-
-Kwa kila mkakati wa combo (ukiwa umewashwa), ombi ambalo lingethibitisha 429
-kwa cooldown FUPI ya mpito husubiri iishe na kupeleka upya badala ya
-kurudisha 429 — hii inashughulikia madirisha ya TPM/RPM ya darasa la Gemini (~60s retry-after)
-kwenye combo za modeli nyingi, k.m. malengo yote mawili ya combo ya modeli 2 kugonga kikomo
-cha kiwango cha kila modeli. Inapakwa na `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`,
-`budgetMs`) kwenye **Mipangilio → Ustahimilivu**. Kamwe haisubiri kwa `quota_exhausted`
-(imefungwa hadi usiku wa manane) wala sababu za uthibitishaji/haijapatikana.
-
-Lango lile lile linashughulikia hali ya kabla ya upelekaji (#16319): wakati kila lengo la
-combo linarukwa kabla ya jaribio lolote kufanywa kwa sababu modeli yake iko ndani ya kufuli
-fupi ya mpito, njia ya majaribio-sifuri husubiri kufuli iishe chini ya vikomo
-vile vile na kupeleka upya, badala ya kujibu
-`503 ALL_TARGETS_SKIPPED` isiyo na kidokezo. Wakati kusubiri hakuruhusiwi (kikomo,
-jaribio au bajeti imekwisha, au kipengele kimezimwa), jibu la mwisho hupandishwa hadi
-`429 rate_limit_error` likibeba `retry_after` / `reset_at` kutoka muda wa mapema zaidi
-wa kuisha kwa kufuli ya mpito; kufuli za quota, uthibitishaji na haijapatikana huhifadhi
-503 isiyo na kidokezo.
+### Urekebishaji wa ombi la kushiriki kiasi
+
+Wakati utumaji wa sehemu ya kiasi unalenga muunganisho unaotangaza `max_concurrent` chanya, maombi yanayofanana kwa hiyo.** akaunti** husasishwa kupitia semaphore ya kila muunganisho (ufunguo `qsconn:`): maombi ya ziada** subiri kwenye foleni** badala ya kujaza akaunti. Ni** kushindwa-wazi** — foleni iliyojaa au muda wa kuisha huendelea bila nafasi badala ya kukataa ombi linaloweza kutumwa. Washa** Mipangilio → Ustahimilivu → Kiwango cha kushiriki kwa kila muunganisho wa sarafu** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, chaguomsingi imewashwa). Bila kofia ya `max_concurrent` tabia haibadilika.
+
+> Lango la uelekezaji wa sehemu ya upendeleo (`selectQuotaShareTarget`, DRR + P2C) lenyewe haliko wazi na _inapunguza upendeleo tu — yenye kikomo cha muunganisho mmoja haiwezi kuweka kikomo, kwa hivyo semaphore hii ndiyo hasa inayo mafuriko.
+
+### Combo cooldown-aware jaribu tena
+
+For every combo strategy (when enabled), a request that would crystallize a 429 for a SHORT transient cooldown waits it out and re-dispatches instead of returning the 429 — this covers Gemini-class TPM/RPM windows (~60s retry-after) on multi-model combos, e.g. both targets of a 2-model combo hitting a per-model rate limit. Bounded by `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) in **Settings → Resilience**. It never waits on `quota_exhausted` (locked until midnight) or auth/not-found reasons.
+
+Mchanganyiko unaweza kuchagua kutoka kwa `config.comboCooldownWaitEnabled: false`. `false` halisi pekee ndiyo huzima kusubiri kwa michanganyiko hii iliyoshirikiwa (kupunguza kasi ya baada ya kutuma na kusubiri circuit-open/model-lock kabla ya kutuma) na kiendelezi cha sakafu ya muda wa kuisha kwa bajeti. Inakosekana au `true` inahifadhi sera ya kimataifa; `true` haiwezi kuwezesha kusubiri kwa walemavu duniani kote. `targetTimeoutMs` ya wazi bado inashinda. Kujiondoa huku hakubadilishi ungoja wa awali wa kutuma wa asili-Codex.
+
+Lango lile lile hufunika kipochi cha kabla ya kutuma (#16319): wakati kila lengo la mseto linarukwa kabla ya jaribio lolote kufanywa kwa sababu kielelezo chake kinakaa katika kizuizi kifupi cha muda mfupi, njia ya kujaribu sifuri inangoja kufuli chini ya dari zile zile na kutuma tena, badala ya kujibu `503 ALL_TARGETS_SKIPPED` isiyo na dokezo. Wakati hakuna kusubiri kunaruhusiwa (dari, jaribio au bajeti imeisha, au kipengele kimezimwa), jibu la mwisho linasasishwa hadi `429 rate_limit_error` inayobeba `retry_after` / `reset_at` kutoka kwa kuisha kwa kufuli ya muda mfupi mapema zaidi; nafasi, auth na kufuli ambazo hazipatikani huweka dokezo-chini ya 503.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/sw/docs/guides/USER_GUIDE.md b/docs/i18n/sw/docs/guides/USER_GUIDE.md
index fd8b11a454c6..d8b9ea5515b8 100644
--- a/docs/i18n/sw/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/sw/docs/guides/USER_GUIDE.md
@@ -612,55 +612,55 @@ Kwa marejeleo kamili ya vigezo vya mazingira, angalia [README](../README.md).
Tazama mifano yote inayopatikana
-> Orodha iliyo hapa chini imekusanywa kutoka `open-sse/config/providerRegistry.ts` kwa v3.8.0. Katalogi za wingu (Gemini, OpenRouter, n.k.) husawazishwa kiotomatiki — kwa katalogi kamili ya moja kwa moja fungua **Dashibodi → Watoa Huduma → [mtoa huduma] → Mifano Inayopatikana** au piga `GET /api/models/catalog`.
+> Orodha iliyo hapa chini imeratibiwa kutoka `open-sse/config/providerRegistry.ts` kwa v3.8.0. Katalogi za wingu (Gemini, OpenRouter, n.k.) zinasawazishwa kwa kasi — kwa orodha kamili ya moja kwa moja iliyofunguliwa.** Dashibodi → Watoa → [mtoa huduma] → Miundo Inayopatikana** au piga `GET /api/models/catalog`.
>
-> Ikiwa orodha iliyojengwa ndani ya mtoa huduma imechelewa, tumia **Ingiza kutoka /models** kwenye ukurasa huo (au washa **Usawazishaji Kiotomatiki**) kuvuta katalogi ya moja kwa moja ya upstream. Hii ilithibitishwa katika v3.8.50 kwa LLM7.io (`gemini-3.1-flash-lite`) na UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); ufikiaji wa Pollinations bila kujitambulisha uliendelea kuwa na vikwazo vya upstream wakati wa kipindi hicho hicho cha majaribio.
+> Ikiwa orodha iliyojumuishwa ya mtoa huduma imeyumba, tumia** Ingiza kutoka /mifano** kwenye ukurasa huo (au wezesha** Usawazishaji Kiotomatiki** ) kuvuta katalogi ya moja kwa moja ya mkondo wa juu. Hili lilithibitishwa katika v3.8.50 kwa LLM7.io (`gemini-3.1-flash-lite`) na UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Ufikiaji wa kuchavusha bila kukutambulisha ulibaki kuwa mdogo wakati wa pasi ile ile ya majaribio.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**msimbo Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ ngazi za juhudi: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ viwango vya juhudi: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth BURE: tumia katalogi ya moja kwa moja inayoonyeshwa chini ya **Dashibodi → Watoa Huduma → Kiro → Mifano Inayopatikana**. Upatikanaji unategemea akaunti na mpango.
+**Kiro (`kr/`)** — FREE OAuth: tumia katalogi ya moja kwa moja iliyoonyeshwa hapa chini** Dashibodi → Watoa Huduma → Kiro → Miundo Inayopatikana** . Upatikanaji hutegemea akaunti na mpango.
-**Qoder (`if/`)** — OAuth BURE: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mwezi (bei ya kudumu) au kwa matumizi: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo bapa au kwa matumizi: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — ufunguo wa API: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API ufunguo: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Kasi ya juu sana: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Haraka sana: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok asilia: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** asili ya — Grok : `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Inahifadhiwa EU: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — mwenyeji wa EU: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Imeimarishwa na utafutaji: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Kuchanganyikiwa (`pplx/`)** — Tafuta-imeongezwa: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Chanzo huria: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (bure), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — Chanzo-wazi: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (bure), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Inferensi ya haraka: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** Maoni ya haraka — : `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Kiwango cha wafer: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Wafer-scale: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Inayolenga RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG inayolenga: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Kiwango cha biashara: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** Biashara ya — : `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Inasawazishwa moja kwa moja kwa kila ufunguo wa API kutoka Google — hakuna orodha tuli. Unganisha ufunguo katika **Dashibodi → Watoa Huduma** kisha tumia **Mifano Inayopatikana** kuingiza katalogi ya sasa (k.m. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : Imesawazishwa moja kwa moja kwa kila kitufe cha API kutoka Google — hakuna orodha tuli. Unganisha ufunguo ndani** Dashibodi → Watoa huduma** kisha tumia** Miundo Inayopatikana** kuagiza katalogi ya sasa (km `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Watoa huduma wengine wanaoendana** (waliouchaguliwa): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (kupitia `aws-bedrock`), `azure-ai`, `openrouter` (katalogi ya kupitisha), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Kila mmoja hutunza orodha yake ya mifano katika `providerRegistry.ts` na inaweza kusawazishwa kiotomatiki wakati mtoa huduma anatoa endpoint ya `/models`.
+**Watoa huduma wengine wanaolingana** (imechaguliwa): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (kupitia `aws-bedrock`), `azure-ai`, `openrouter` (orodha ya njia), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai` `cloudflare-ai` `scaleway` zq , `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21` `gigachat` Kila moja hudumisha orodha yake ya kielelezo katika `providerRegistry.ts` na inaweza kusawazishwa kiotomatiki wakati mtoaji anapofichua ncha `/models`.
-**Kumbuka kuhusu vitambulisho vya mifano:** OmniRoute hutumia vitambulisho vya asili vya mtoa huduma (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Baadhi ya vitambulisho vinajumuisha matoleo yenye nukta kwa sababu ndivyo API ya upstream inavyovitarajia. Ikiwa mfano haujaorodheshwa hapo juu, endesha `omniroute models --search ` au tumia `GET /api/models/catalog` kuthibitisha upatikanaji.
+**Kumbuka juu ya mfano IDs:** OmniRoute hutumia mtoa huduma IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Baadhi ya IDs hujumuisha matoleo yenye vitone kwa sababu ndivyo API ya juu inavyotarajia. Ikiwa muundo haujaorodheshwa hapo juu, endesha `omniroute models --search ` au gonga `GET /api/models/catalog` ili kuthibitisha kupatikana.
diff --git a/docs/i18n/ta/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/ta/docs/architecture/RESILIENCE_GUIDE.md
index 2118b3a09ef5..ec46cadcfb3a 100644
--- a/docs/i18n/ta/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/ta/docs/architecture/RESILIENCE_GUIDE.md
@@ -259,25 +259,17 @@ UI: கண்காணிப்பு → குளிர்வுக் கா
---
-## 4. ஒதுக்கீடு-பகிர்வு ஒருங்குநிகழ்வுக் கட்டுப்பாடு (v3.8.36)
+## 4. ஒதுக்கீடு-பங்கு ஒத்திசைவு கட்டுப்பாடு (v3.8.36)
-சந்தாக் கணக்குகள் (GLM, MiniMax போன்றவை) பெரும்பாலும் ஒரே நேரத்தில் ~1–3
-கோரிக்கைகளை மட்டுமே ஏற்கும்; அதை மீறுவது 429 பிழைகளையும் குளிர்வுக் காலங்களையும் தூண்டும். பல API
-விசைகள் ஒரே மேல்நிலை கணக்கைப் பகிரும் **ஒதுக்கீடு-பகிர்வு** (`qtSd/…`)
-சேர்க்கைகளில் இது தீவிரமானது. பகிரப்பட்ட கணக்கில் அளவுக்கு அதிகமான கோரிக்கைகள் குவிவதை மூன்று அடுக்குகள் தடுக்கின்றன.
+சந்தா கணக்குகள் (GLM, MiniMax, முதலியன) பெரும்பாலும் ~ 1-3 ஒரே நேரத்தில் கோரிக்கைகளை மட்டுமே ஏற்கும்; அதைத் தாண்டினால் 429கள் மற்றும் கூல்டவுன்கள் தூண்டுகிறது. இது கீழ் கடுமையானது** ஒதுக்கீடு-பங்கு** (`qtSd/…`) சேர்க்கைகள், இதில் பல API விசைகள் ஒரு அப்ஸ்ட்ரீம் கணக்கைப் பகிர்ந்து கொள்கின்றன. மூன்று அடுக்குகள் பகிரப்பட்ட கணக்கை வெள்ளத்தில் இருந்து பாதுகாக்கின்றன.
-### இணைப்பு-வாரியான ஒருங்குநிகழ்வு உச்சவரம்பு (`max_concurrent`)
+### ஒரு இணைப்புக்கான கன்கரன்சி கேப் (`max_concurrent`)
-ஒவ்வொரு வழங்குநர் இணைப்பும் ஒரு `max_concurrent` உச்சவரம்பை அறிவிக்கலாம்
-(`provider_connections.max_concurrent`, இணைப்பு மாதிரி உரையாடல் / API / DB-இல் அமைக்கப்படுகிறது).
-வரம்பு தேவையில்லை எனில் இதை காலியாக விடவும். கீழே உள்ள வரிசைப்படுத்தல் அடுக்கை இயக்கும்
-ஒற்றைக் கட்டுப்பாடு இதுதான் — கணக்கின் உண்மையான ஒருங்குநிகழ்வு அளவுக்கு இதை அமைக்கவும்
-(எ.கா. GLM ~1, MiniMax ~2).
+ஒவ்வொரு வழங்குநர் இணைப்பும் `max_concurrent` உச்சவரம்பு (`provider_connections.max_concurrent`, இணைப்பு மாதிரியில் அமைக்கப்பட்டுள்ளது / API / DB) அறிவிக்க முடியும். வரம்பு இல்லாமல் காலியாக விடவும். இது — க்குக் கீழே உள்ள வரிசைப்படுத்தல் அடுக்கை இயக்கும் ஒற்றைக் குமிழ் அதை கணக்கின் உண்மையான ஒத்திசைவுக்கு அமைக்கிறது (எ.கா. GLM ~ 1, MiniMax ~ 2).
-### மாதிரி-வாரியான ஒருங்குநிகழ்வு உச்சவரம்புகள் (`modelConcurrency`)
+### ஒரு மாதிரி கன்கரன்சி கேப்ஸ் (`modelConcurrency`)
-ஓர் இணைப்பு, அதன் `rateLimitOverrides` வரைபடத்திற்குள் துல்லியமான
-மாதிரி-வாரியான ஒருங்குநிகழ்வு உச்சவரம்புகளையும் கூடுதலாக அறிவிக்கலாம்:
+ஒரு இணைப்பு, அதன் `rateLimitOverrides` வரைபடத்தில் ஒரு மாதிரியின் துல்லியமான ஒத்திசைவு உச்சவரம்புகளை கூடுதலாக அறிவிக்க முடியும்:
```json
{
@@ -288,74 +280,32 @@ UI: கண்காணிப்பு → குளிர்வுக் கா
}
```
-இணைப்பு மாதிரி உரையாடலில் (**விகித வரம்பு மேலெழுதல்கள் → மாதிரி-வாரியான
-ஒருங்குநிகழ்வு உச்சவரம்புகள்**, ஒவ்வொரு வரியிலும் ஒரு `model=cap`) அல்லது அதே JSON
-வடிவத்துடன் `PATCH /api/providers/[id]` வழியாக இதை அமைக்கவும். விசைகளின் பொருளியல்:
-
-- **இணைப்பு முழுவதற்குமானது மற்றும் மாதிரி-சார்ந்தது:** `maxConcurrent` என்பது பகிரப்பட்ட
- இணைப்பு முழுவதற்குமான உச்சவரம்பாகவே இருக்கும். இரண்டும் பொருந்தும்போது, ஒரே கூட்டுக் கட்டுப்பாட்டில்
- இரண்டு வாயில்களும் அணுப் பிரிக்கமுடியாத வகையில் பெறப்படும்
- (`global → provider → account → model`); பொருந்தக்கூடிய வரம்புகளில் கடுமையானதே
- நடைமுறை நடத்தையாக இருக்கும்.
-- **துல்லியமான மாதிரி-விசைப் பொருத்தம்:** வழிச்செலுத்தல் தீர்மானத்திற்குப் பிறகு
- செயலாக்கிக்குக் கடத்தப்படும் மாதிரி சரமே விசையாகும் — பொதுவாக வெறும் மேல்நிலை மாதிரி id
- (`glm-5`), கிளையன்ட்-பக்க `provider/model` மாற்றுப்பெயர் அல்ல (`zai/glm-5` என்பது
- `glm-5` உடன் பொருந்தாது). மதிப்புகள் ஒரே நேரத்தில் இயங்கும் கோரிக்கைகளுக்கான நேர்மறை முழு-எண் உச்சவரம்புகள்.
-- **உள்ளூர் வரிசைப்படுத்தல், கண்டறிதல் இல்லை:** ஏற்கெனவே உள்ள
- வரிசை/காலாவதி பொருளியலுடன் அதிகப்படியான கோரிக்கைகள் உள்ளூரிலேயே வரிசையில் காத்திருக்கும் (வகைப்படுத்தப்பட்ட
- `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` சேர்க்கைப் பிழைகள்). OmniRoute மேல்நிலைக்
- கொள்கையைக் கண்டறியவோ ஊகிக்கவோ செய்யாது — இயக்குநர் உள்ளமைத்த துல்லியமான
- உச்சவரம்புகளையே அது செயல்படுத்துகிறது. நிரம்பிய மாதிரி வாயில் வழங்குநரை ஒருபோதும்
- முடக்காது; நிரந்தரமான மாதிரிப் பூட்டையும் உருவாக்காது; மேல்நிலை 429/குளிர்வுக் காலம்/மாற்றுவழி நடத்தை
- பிழைகளுக்கான இறுதிப் பாதுகாப்பாகத் தொடரும்.
-- **இணைப்பு-வாரியான, செயல்முறை-வாரியான வரம்பு:** உச்சவரம்புகள் ஒவ்வொரு தரவுத்தள இணைப்பிற்கும்
- தனித்தனியாகவும் நினைவகத்திலேயே பராமரிக்கப்படுபவையாகவும் உள்ளன; எனவே ஒரே மேல்நிலை API விசையை மீண்டும் பயன்படுத்தும் இரண்டு
- இணைப்புகள் ஒன்றோடொன்று ஒருங்கிணையாது.
-- **உள்ளமைக்கப்படாதது என்பது மாற்றமில்லாதது:** வரைபடத்தைத் தவிர்ப்பது (அல்லது
- கட்டுப்பாட்டுப் பலகைப் புலத்தைக் காலியாக விடுவது) எந்த மாதிரி வாயிலையும் சேர்க்காது. அனைவருக்கும் பொதுவான வழங்குநர்
- வரம்பு எதையும் உறுதிப்படுத்தாமல் வழங்கப்படும் எடுத்துக்காட்டு உள்ளமைவு:
+இணைப்பு மாதிரியில் அமைக்கவும் (** விகித வரம்பு → ஒரு மாடல் கன்கரன்சி கேப்களை மீறுகிறது** , ஒரு வரிக்கு ஒரு `model=cap` ) அல்லது அதே JSON வடிவத்துடன் `PATCH /api/providers/[id]` வழியாக. முக்கிய சொற்பொருள்:
+
+- **இணைப்பு-அளவிலான vs மாதிரி-குறிப்பிட்டது:** `maxConcurrent` பகிரப்பட்ட இணைப்பு-அகலமான உச்சவரம்பாக உள்ளது. இரண்டும் பொருந்தும் போது, இரண்டு வாயில்களும் ஒரே கலப்பு வாயிலில் (`global → provider → account → model`) அணு ரீதியாக பெறப்படும்; பயனுள்ள நடத்தை என்பது கடுமையான பொருந்தக்கூடிய வரம்பு.
+- **சரியான மாதிரி-முக்கிய பொருத்தம்:** விசையானது — தெளிவுத்திறனை இயக்கிய பிறகு எக்ஸிகியூட்டருக்கு அனுப்பப்பட்ட மாதிரி சரம் பொதுவாக வெர் அப்ஸ்ட்ரீம் மாடல் ஐடி (`glm-5`), கிளையன்ட் பக்க `provider/model` மாற்றுப்பெயர் அல்ல (`zai/glm-5` `glm-5` உடன் பொருந்தவில்லை). மதிப்புகள் நேர்மறை-முழு ஒரே நேரத்தில்-கோரிக்கை உச்சவரம்புகள்.
+- **Local queueing, no discovery:** excess requests queue locally with the existing queue/timeout semantics (typed `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` admission errors). OmniRoute does not discover or infer upstream policy — it enforces the exact ceilings the operator configured. A saturated model gate never disables the provider and never creates a permanent model lockout; upstream 429/cooldown/fallback behavior remains the error backstop.
+- **ஒரு இணைப்பு, ஒவ்வொரு செயல்முறை நோக்கம்:** கேப்கள் ஒரு தரவுத்தள இணைப்பு மற்றும் நினைவகத்தில் வைக்கப்படுகின்றன, எனவே ஒரே அப்ஸ்ட்ரீம் API விசையை மீண்டும் பயன்படுத்தும் இரண்டு இணைப்புகள் ஒன்றுடன் ஒன்று ஒருங்கிணைவதில்லை.
+- **Unconfigured என்றால் மாறாதது:** வரைபடத்தைத் தவிர்ப்பது (அல்லது டாஷ்போர்டு புலத்தை காலியாக விடுவது) மாதிரி வாயிலைச் சேர்க்காது. எந்தவொரு உலகளாவிய வழங்குநர் வரம்பையும் உறுதிப்படுத்தாமல் எடுத்துக்காட்டு உள்ளமைவு:
```text
glm-5=1
glm-4.7=3
```
-### ஒதுக்கீடு-பகிர்வுக் கோரிக்கை வரிசைப்படுத்தல்
-
-நேர்மறையான `max_concurrent` மதிப்பை அறிவிக்கும் ஓர் இணைப்பை ஒதுக்கீடு-பகிர்வு அனுப்புகை
-இலக்காகக் கொள்ளும்போது, அந்த **கணக்கிற்கான** ஒருங்குநிகழ் கோரிக்கைகள் ஒவ்வொரு இணைப்பிற்குமான
-செமஃபோர் வழியாக வரிசைப்படுத்தப்படும் (விசை `qsconn:`): அதிகப்படியான கோரிக்கைகள்
-கணக்கில் குவிவதற்குப் பதிலாக **வரிசையில் காத்திருக்கும்**. இது **தோல்வியின்போதும் அனுமதிக்கும்** —
-நிரம்பிய வரிசை அல்லது காலாவதி ஏற்பட்டால், அனுப்பத்தக்க கோரிக்கையை நிராகரிப்பதற்குப் பதிலாக
-இடம் இல்லாமலேயே தொடரும். **அமைப்புகள் → மீட்சித்திறன் → ஒதுக்கீடு-பகிர்வு இணைப்பு-வாரியான
-ஒருங்குநிகழ்வு** என்பதில் மாற்றி அமைக்கவும் (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, இயல்பாக
-இயக்கப்பட்டிருக்கும்). `max_concurrent` உச்சவரம்பு இல்லையெனில் நடத்தையில் மாற்றமில்லை.
-
-> ஒதுக்கீடு-பகிர்வு வழிச்செலுத்தல் வாயில் (`selectQuotaShareTarget`, DRR + P2C) தானாகவே
-> தோல்வியின்போதும் அனுமதிக்கும் தன்மையுடையது; மேலும் உச்சவரம்பை எட்டிய இணைப்பிற்கு
-> _குறைந்த முன்னுரிமை_ மட்டுமே அளிக்கும் — ஓர் ஒற்றை-இணைப்புத் தொகுப்பில் அதனால் கடுமையான வரம்பை விதிக்க முடியாது;
-> எனவே வெள்ளமெனக் குவியும் கோரிக்கைகளை உண்மையில் கட்டுப்படுத்துவது இந்தச் செமஃபோர்தான்.
-
-### குளிர்வுக் காலத்தை உணரும் சேர்க்கை மறுமுயற்சி
-
-ஒவ்வொரு சேர்க்கை உத்திக்கும் (இயக்கப்பட்டிருக்கும்போது), குறுகிய தற்காலிகக் குளிர்வுக் காலத்திற்காக
-429 பிழையை இறுதிப்படுத்தவிருந்த ஒரு கோரிக்கை, அந்தக் காலம் முடியும் வரை காத்திருந்து 429-ஐத்
-திருப்பித் தருவதற்குப் பதிலாக மீண்டும் அனுப்பப்படும் — இது பல-மாதிரிச் சேர்க்கைகளில் Gemini-வகை
-TPM/RPM சாளரங்களை (~60வி. மறுமுயற்சி-பிறகு) கையாள்கிறது; எ.கா. 2-மாதிரிச் சேர்க்கையின் இரு
-இலக்குகளும் மாதிரி-வாரியான விகித வரம்பை எட்டுவது. **அமைப்புகள் → மீட்சித்திறன்** என்பதில் உள்ள
-`comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) மூலம் இது
-வரம்பிடப்படுகிறது. `quota_exhausted` (நள்ளிரவு வரை பூட்டப்பட்டது) அல்லது அங்கீகாரம்/கிடைக்கவில்லை
-காரணங்களுக்காக இது ஒருபோதும் காத்திருக்காது.
-
-இதே வாயில் அனுப்புகைக்கு முந்தைய நிலையையும் (#16319) கையாள்கிறது: எந்த முயற்சியும்
-செய்யப்படுவதற்கு முன்பே, சேர்க்கையின் ஒவ்வொரு இலக்கும் அதன் மாதிரி குறுகிய தற்காலிகப் பூட்டில்
-இருப்பதால் தவிர்க்கப்படும்போது, பூச்சிய-முயற்சிப் பாதை குறிப்பில்லாத
-`503 ALL_TARGETS_SKIPPED` பதிலை வழங்குவதற்குப் பதிலாக, அதே உச்சவரம்புகளின் கீழ் பூட்டு
-நீங்கும் வரை காத்திருந்து மீண்டும் அனுப்புகிறது. காத்திருத்தல் அனுமதிக்கப்படாதபோது (உச்சவரம்பு,
-முயற்சி அல்லது செலவுத்திட்டம் தீர்ந்திருந்தால், அல்லது அம்சம் முடக்கப்பட்டிருந்தால்), இறுதிப் பதில்
-`429 rate_limit_error` ஆக மேம்படுத்தப்பட்டு, மிக முன்னதாக முடிவடையும் தற்காலிகப் பூட்டிலிருந்து
-`retry_after` / `reset_at` மதிப்புகளை ஏந்தும்; ஒதுக்கீடு, அங்கீகாரம் மற்றும் கிடைக்கவில்லை பூட்டுகள்
-குறிப்பில்லாத 503 பதிலையே தக்கவைத்துக்கொள்ளும்.
+### ஒதுக்கீடு-பகிர்வு கோரிக்கை வரிசைப்படுத்தல்
+
+ஒரு கோட்டா-பங்கு அனுப்புதல் ஒரு நேர்மறை `max_concurrent` அறிவிக்கும் இணைப்பை இலக்காகக் கொண்டால், அதற்கான ஒரே நேரத்தில் கோரிக்கைகள்** கணக்கு** ஒரு இணைப்பு செமாஃபோர் (கீ `qsconn:`) மூலம் வரிசைப்படுத்தப்படுகின்றன: அதிகப்படியான கோரிக்கைகள்** வரிசையில் காத்திருக்கவும்** கணக்கை நிரப்புவதற்கு பதிலாக. அது** தோல்வி-திறந்த** — அனுப்பக்கூடிய கோரிக்கையை நிராகரிப்பதை விட ஒரு நிறைவுற்ற வரிசை அல்லது காலக்கெடு ஸ்லாட் இல்லாமல் தொடர்கிறது. மாறவும்** அமைப்புகள் → மீள்தன்மை → ஒதுக்கீடு-ஒவ்வொரு இணைப்பிற்கும் பகிர்வு ஒத்திசைவு** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, இயல்புநிலை ஆன்). `max_concurrent` தொப்பி இல்லாமல் நடத்தை மாறாது.
+
+> ஒதுக்கீடு-பங்கு ரூட்டிங் கேட் (`selectQuotaShareTarget`, DRR + P2C) தானே தோல்வியடைகிறது, மேலும் ஒற்றை-இணைப்புக் குளத்துடன் கூடிய அட்-கேப் இணைப்பு — மட்டுமே _deprioritizes_ அது கடின-வரம்புக்குட்படுத்த முடியாது, எனவே இந்த செமாஃபோர் தான் உண்மையில் வெள்ளத்தைக் கொண்டுள்ளது.
+
+### காம்போ கூல்டவுன்-அறிவு மீண்டும் முயற்சிக்கவும்
+
+ஒவ்வொரு காம்போ உத்திக்கும் (இயக்கப்படும் போது), ஒரு SHORT தற்காலிக கூல்டவுனுக்கான 429 ஐ படிகமாக்கும் கோரிக்கை காத்திருக்கிறது மற்றும் 429 — ஐ திருப்பி அனுப்புவதற்குப் பதிலாக மீண்டும் அனுப்புகிறது, இது ஜெமினி-கிளாஸ் TPM/RPM சாளரங்களை (~ 60s retry-after) மல்டி-மாடல் ஹிட் காம்போஸ், மல்டி மாடல் 2 ஹிட் மோடல்களில் ஒவ்வொரு மாதிரி வீத வரம்பு. `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) இல்** அமைப்புகள் → மீள்தன்மை** . இது ஒருபோதும் `quota_exhausted` (நள்ளிரவு வரை பூட்டப்பட்டுள்ளது) அல்லது auth/not-found காரணங்களில் காத்திருக்காது.
+
+ஒரு சேர்க்கை `config.comboCooldownWaitEnabled: false` உடன் விலகலாம். நேரடியான `false` மட்டுமே இந்த பகிரப்பட்ட காம்போ காத்திருப்புகளையும் (போஸ்ட்-டிஸ்பாட்ச் கூல்டவுன் மற்றும் ப்ரீ-டிஸ்பாட்ச் circuit-open/model-lock காத்திருப்பு) மற்றும் அவற்றின் காத்திருப்பு-பட்ஜெட் காலக்கெடு-தள நீட்டிப்புகளையும் முடக்குகிறது. விடுபட்ட அல்லது `true` உலகளாவிய கொள்கையைப் பாதுகாக்கிறது; `true` உலகளவில் முடக்கப்பட்ட காத்திருப்பை இயக்க முடியாது. ஒரு வெளிப்படையான `targetTimeoutMs` இன்னும் வெற்றி பெறுகிறது. இந்த விலகல் தனி நேட்டிவ்-கோடெக்ஸ் டர்ன்-பின் ப்ரீ-டிஸ்பாட்ச் காத்திருப்பை மாற்றாது.
+
+அதே கேட், ப்ரீ-டிஸ்பாட்ச் கேஸை உள்ளடக்கியது (#16319): ஒரு காம்போவின் ஒவ்வொரு இலக்கும் எந்த முயற்சியும் செய்யப்படுவதற்கு முன்பு, அதன் மாதிரியானது குறுகிய தற்காலிக லாக் அவுட்டில் இருப்பதால், பூஜ்ஜிய-முயற்சி பாதையானது, குறிப்பு-குறைவான `503 ALL_TARGETS_SKIPPED` பதிலளிப்பதற்குப் பதிலாக, அதே உச்சவரம்புகளின் கீழ் லாக் அவுட்டை காத்திருக்கிறது மற்றும் மீண்டும் அனுப்புகிறது. காத்திருப்பு அனுமதிக்கப்படாத போது (உச்சவரம்பு, முயற்சி அல்லது பட்ஜெட் தீர்ந்துவிட்டது, அல்லது அம்சம் முடக்கப்பட்டது), ஆரம்ப நிலையற்ற பூட்டு காலாவதியிலிருந்து `retry_after` / `reset_at` கொண்டு செல்லும் முனையப் பதில் `429 rate_limit_error` க்கு மேம்படுத்தப்படுகிறது; ஒதுக்கீடு, அங்கீகாரம் மற்றும் காணப்படாத பூட்டுகள் குறிப்பு-குறைவான 503 ஐ வைத்திருக்கின்றன.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/ta/docs/guides/USER_GUIDE.md b/docs/i18n/ta/docs/guides/USER_GUIDE.md
index 0e25302d3a5c..b071944b19b9 100644
--- a/docs/i18n/ta/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/ta/docs/guides/USER_GUIDE.md
@@ -609,60 +609,60 @@ post_install() {
---
-## 📊 கிடைக்கும் மாதிரிகள்
+## 📊 கிடைக்கக்கூடிய மாதிரிகள்
-கிடைக்கும் அனைத்து மாதிரிகளையும் காண்க
+கிடைக்கக்கூடிய அனைத்து மாடல்களையும் பார்க்கவும்
-> கீழுள்ள பட்டியல் v3.8.0-க்காக `open-sse/config/providerRegistry.ts`-இலிருந்து தொகுக்கப்பட்டது. கிளவுட் பட்டியல்கள் (Gemini, OpenRouter போன்றவை) டைனமிக்காக ஒத்திசைக்கப்படுகின்றன — முழு நேரடி பட்டியலுக்கு **Dashboard → Providers → [provider] → Available Models** ஐத் திறக்கவும் அல்லது `GET /api/models/catalog` ஐ அழைக்கவும்.
+> கீழே உள்ள பட்டியல் v3.8.0 க்கான `open-sse/config/providerRegistry.ts` இலிருந்து தொகுக்கப்பட்டுள்ளது. கிளவுட் பட்டியல்கள் (Gemini, OpenRouter, முதலியன) முழு நேரலை பட்டியலைத் திறக்க — மாறும் வகையில் ஒத்திசைக்கப்படுகின்றன** டாஷ்போர்டு → வழங்குநர்கள் → [வழங்குபவர்] → கிடைக்கும் மாதிரிகள்** அல்லது `GET /api/models/catalog` ஐ அழைக்கவும்.
>
-> ஒரு வழங்குநரின் உள்ளமைக்கப்பட்ட பட்டியல் மாறிவிட்டால், நேரடி அப்ஸ்ட்ரீம் பட்டியலைப் பெற அந்தப் பக்கத்தில் உள்ள **Import from /models** ஐப் பயன்படுத்தவும் (அல்லது **Auto-Sync** ஐ இயக்கவும்). இது v3.8.50-இல் LLM7.io (`gemini-3.1-flash-lite`) மற்றும் UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) ஆகியவற்றுக்கு சரிபார்க்கப்பட்டது; அதே சோதனைச் சுற்றில் Pollinations அநாமதேய அணுகல் அப்ஸ்ட்ரீம் வரம்புக்கு உட்பட்டதாகவே இருந்தது.
+> வழங்குநரின் உள்ளமைக்கப்பட்ட பட்டியல் மாறியிருந்தால், பயன்படுத்தவும்** /மாடல்களில் இருந்து இறக்குமதி செய்யவும்** அந்தப் பக்கத்தில் (அல்லது இயக்கு** தானியங்கு ஒத்திசைவு** ) லைவ் அப்ஸ்ட்ரீம் பட்டியலை இழுக்க. இது LLM7.io (`gemini-3.1-flash-lite`) மற்றும் UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) க்கு v3.8.50 இல் சரிபார்க்கப்பட்டது; மகரந்தச் சேர்க்கைகள் அநாமதேய அணுகல் அதே சோதனை பாஸ் போது அப்ஸ்ட்ரீம் வரம்பிடப்பட்டது.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude குறியீடு (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ முயற்சி நிலைகள்: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ முயற்சி அடுக்குகள்: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — இலவச OAuth: **Dashboard → Providers → Kiro → Available Models** இல் காண்பிக்கப்படும் நேரடி பட்டியலைப் பயன்படுத்தவும். கிடைக்கும் தன்மை கணக்கு மற்றும் திட்டத்தைப் பொறுத்து மாறுபடும்.
+**Kiro (`kr/`)** — FREE OAuth: கீழ் காட்டப்பட்டுள்ள நேரடி அட்டவணையைப் பயன்படுத்தவும்** டாஷ்போர்டு → வழங்குநர்கள் → Kiro → கிடைக்கும் மாதிரிகள்** . கணக்கு மற்றும் திட்டத்தைப் பொறுத்து கிடைக்கும்.
-**Qoder (`if/`)** — இலவச OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/மாதம் நிலையான கட்டணம் அல்லது பயன்பாட்டிற்கேற்ப: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo பிளாட் அல்லது ஒரு-பயன்பாட்டிற்கு: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — API விசை: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — மிக வேகமானது: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — அல்ட்ரா-ஃபாஸ்ட்: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok நேட்டிவ்: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok பூர்வீகம்: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU-இல் ஹோஸ்ட் செய்யப்பட்டது: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU ஹோஸ்ட்: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — தேடல்-மேம்படுத்தப்பட்டது: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**குழப்பம் (`pplx/`)** — தேடல்-ஆக்மென்ட்: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
**Together AI (`together/`)** — திறந்த மூல: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (இலவசம்), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — வேகமான இன்ஃபரன்ஸ்: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — வேகமான அனுமானம்: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — வேஃபர்-அளவு: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Wafer-scale: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — RAG-மையம்: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG-ஃபோகஸ்டு: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
**NVIDIA NIM (`nvidia/`)** — எண்டர்பிரைஸ்: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama மேகம் (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Google-இலிருந்து API விசை வாரியாக நேரடியாக ஒத்திசைக்கப்படுகிறது — நிலையான பட்டியல் இல்லை. **Dashboard → Providers** இல் ஒரு விசையை இணைத்துவிட்டு, தற்போதைய பட்டியலை இறக்குமதி செய்ய **Available Models** ஐப் பயன்படுத்தவும் (எ.கா. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google கிளவுட் `gemini/`)** : Google — இலிருந்து ஒரு API விசைக்கு நேரலை ஒத்திசைக்கப்பட்டது நிலையான பட்டியல் இல்லை. ஒரு விசையை இணைக்கவும்** டாஷ்போர்டு → வழங்குநர்கள்** பின்னர் பயன்படுத்த** கிடைக்கும் மாதிரிகள்** தற்போதைய அட்டவணையை இறக்குமதி செய்ய (எ.கா. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**மற்ற இணக்கமான வழங்குநர்கள்** (தேர்ந்தெடுக்கப்பட்டவை): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (`aws-bedrock` வழியாக), `azure-ai`, `openrouter` (பாஸ்த்ரூ பட்டியல்), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. ஒவ்வொன்றும் `providerRegistry.ts`-இல் தனது சொந்த மாதிரி பட்டியலைப் பராமரிக்கிறது; வழங்குநர் `/models` எண்ட்பாயிண்ட்டை வெளிப்படுத்தும்போது தானாகவே ஒத்திசைக்கப்படலாம்.
+**பிற இணக்கமான வழங்குநர்கள்** (தேர்ந்தெடுக்கப்பட்டது): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` ( `aws-bedrock`), `azure-ai`, `openrouter` ( `friendliai` கேட்லாக்), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `nous-research` `volcengine` `reka`, `ai21` `gigachat` ஒவ்வொன்றும் அதன் சொந்த மாதிரி பட்டியலை `providerRegistry.ts` இல் பராமரிக்கிறது மற்றும் வழங்குநர் `/models` இறுதிப் புள்ளியை வெளிப்படுத்தும் போது தானாக ஒத்திசைக்க முடியும்.
-**மாதிரி ID-கள் குறித்த குறிப்பு:** OmniRoute வழங்குநர்-நேட்டிவ் ID-களைப் பயன்படுத்துகிறது (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). சில ID-கள் புள்ளியிட்ட பதிப்புகளைக் கொண்டுள்ளன, ஏனெனில் அப்ஸ்ட்ரீம் API அவற்றை அவ்வாறே எதிர்பார்க்கிறது. ஏதேனும் மாதிரி மேலே பட்டியலிடப்படவில்லை என்றால், கிடைக்கும் தன்மையை உறுதிப்படுத்த `omniroute models --search ` ஐ இயக்கவும் அல்லது `GET /api/models/catalog` ஐ அணுகவும்.
+**மாதிரி IDs பற்றிய குறிப்பு:** OmniRoute வழங்குநர்-நேட்டிவ் IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`) ஐப் பயன்படுத்துகிறது. சில IDs புள்ளியிடப்பட்ட பதிப்புகளை உள்ளடக்கியது, ஏனெனில் அப்ஸ்ட்ரீம் API அவற்றை எதிர்பார்க்கிறது. ஒரு மாதிரி மேலே பட்டியலிடப்படவில்லை என்றால், `omniroute models --search ` இயக்கவும் அல்லது கிடைப்பதை உறுதிப்படுத்த `GET /api/models/catalog` அழுத்தவும்.
diff --git a/docs/i18n/te/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/te/docs/architecture/RESILIENCE_GUIDE.md
index fc989383d428..a5416b04853f 100644
--- a/docs/i18n/te/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/te/docs/architecture/RESILIENCE_GUIDE.md
@@ -280,24 +280,17 @@ UI: మానిటరింగ్ → కూల్డౌన్ మేనేజ
---
-## 4. కోటా-షేర్ కన్కరెన్సీ నియంత్రణ (v3.8.36)
+## 4. కోటా-షేర్ కాన్కరెన్సీ కంట్రోల్ (v3.8.36)
-సబ్స్క్రిప్షన్ ఖాతాలు (GLM, MiniMax మొదలైనవి) తరచుగా కేవలం ~1–3 కన్కరెంట్
-రిక్వెస్ట్లను మాత్రమే అంగీకరిస్తాయి; దాన్ని మించితే 429లు మరియు కూల్డౌన్లు ట్రిగ్గర్ అవుతాయి. ఇది
-**కోటా-షేర్** (`qtSd/…`) కాంబోల కింద చాలా తీవ్రంగా ఉంటుంది, ఇక్కడ అనేక API కీలు ఒకే అప్స్ట్రీమ్
-ఖాతాను పంచుకుంటాయి. పంచుకునే ఖాతా ముంపుకు గురికాకుండా మూడు స్థాయిలు కాపాడతాయి.
+సబ్స్క్రిప్షన్ ఖాతాలు (GLM, MiniMax, మొదలైనవి) తరచుగా ~ 1–3 ఏకకాల అభ్యర్థనలను మాత్రమే అంగీకరిస్తాయి; మించితే 429లు మరియు కూల్డౌన్లను ప్రేరేపిస్తుంది. ఇది కింద తీవ్రంగా ఉంటుంది** కోటా-వాటా** (`qtSd/…`) కాంబోలు, ఇక్కడ అనేక API కీలు ఒక అప్స్ట్రీమ్ ఖాతాను పంచుకుంటాయి. మూడు లేయర్లు భాగస్వామ్య ఖాతాను వరదలకు గురికాకుండా ఉంచుతాయి.
-### కనెక్షన్-వారీ కన్కరెన్సీ పరిమితి (`max_concurrent`)
+### పర్-కనెక్షన్ కాన్కరెన్సీ క్యాప్ (`max_concurrent`)
-ప్రతి ప్రొవైడర్ కనెక్షన్ ఒక `max_concurrent` హద్దును డిక్లేర్ చేయవచ్చు
-(`provider_connections.max_concurrent`, కనెక్షన్ మోడల్ / API / DB లో సెట్ చేయవచ్చు).
-పరిమితి లేకపోవాలంటే దాన్ని ఖాళీగా ఉంచండి. ఇదే క్రింది సీరియలైజేషన్
-స్థాయిని నడిపే ఏకైక నాబ్ — దాన్ని ఖాతా యొక్క వాస్తవ కన్కరెన్సీకి సెట్ చేయండి (ఉదా. GLM ~1, MiniMax ~2).
+ప్రతి ప్రొవైడర్ కనెక్షన్ `max_concurrent` సీలింగ్ను ప్రకటించగలదు (`provider_connections.max_concurrent`, కనెక్షన్ మోడల్లో సెట్ చేయబడింది / API / DB). పరిమితి లేకుండా ఖాళీగా ఉంచండి. ఇది — దిగువన ఉన్న సీరియలైజేషన్ లేయర్ను డ్రైవ్ చేసే సింగిల్ నాబ్, దీన్ని ఖాతా యొక్క నిజమైన కాన్కరెన్సీకి సెట్ చేస్తుంది (ఉదా GLM ~ 1, MiniMax ~ 2).
-### మోడల్-వారీ కన్కరెన్సీ పరిమితులు (`modelConcurrency`)
+### ప్రతి మోడల్ కాన్కరెన్సీ క్యాప్స్ (`modelConcurrency`)
-ఒక కనెక్షన్ తన `rateLimitOverrides` మ్యాప్ లోపల ఖచ్చితమైన మోడల్-వారీ కన్కరెన్సీ
-హద్దులను అదనంగా డిక్లేర్ చేయవచ్చు:
+ఒక కనెక్షన్ దాని `rateLimitOverrides` మ్యాప్ లోపల ఖచ్చితమైన ప్రతి మోడల్ కాన్కరెన్సీ సీలింగ్లను అదనంగా ప్రకటించగలదు:
```json
{
@@ -308,71 +301,32 @@ UI: మానిటరింగ్ → కూల్డౌన్ మేనేజ
}
```
-దాన్ని కనెక్షన్ మోడల్లో సెట్ చేయండి (**Rate limit overrides → Per-model
-concurrency caps**, ప్రతి లైన్కు ఒక `model=cap`) లేదా
-అదే JSON ఆకృతితో `PATCH /api/providers/[id]` ద్వారా సెట్ చేయండి. ముఖ్య సెమాంటిక్స్:
-
-- **కనెక్షన్-వైడ్ vs మోడల్-నిర్దిష్ట:** `maxConcurrent` పంచుకునే
- కనెక్షన్-వైడ్ హద్దుగానే ఉంటుంది. రెండూ వర్తించినప్పుడు, రెండు గేట్లు
- ఒకే కాంపోజిట్ గేట్లో ఆటామిక్గా పొందబడతాయి
- (`global → provider → account → model`); ప్రభావవంతమైన ప్రవర్తన
- వర్తించే కఠినమైన పరిమితి.
-- **ఖచ్చితమైన మోడల్-కీ మ్యాచ్:** కీ అనేది రూటింగ్ రిజల్యూషన్ తర్వాత
- ఎగ్జిక్యూటర్కు పంపబడిన మోడల్ స్ట్రింగ్ — సాధారణంగా బేర్ అప్స్ట్రీమ్ మోడల్ id
- (`glm-5`), క్లయింట్-సైడ్ `provider/model` అలియాస్ కాదు (`zai/glm-5`
- `glm-5`తో మ్యాచ్ అవ్వదు). విలువలు పాజిటివ్-ఇంటిజర్ కన్కరెంట్-రిక్వెస్ట్ హద్దులు.
-- **లోకల్ క్యూయింగ్, డిస్కవరీ లేదు:** అదనపు రిక్వెస్ట్లు ఇప్పటికే ఉన్న
- క్యూ/టైమ్అవుట్ సెమాంటిక్స్తో లోకల్గా క్యూలో వేచి ఉంటాయి (టైప్ చేసిన `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL` అడ్మిషన్ ఎర్రర్లు). OmniRoute అప్స్ట్రీమ్ పాలసీని కనుగొనదు లేదా
- అనుమానించదు — ఇది ఆపరేటర్ కాన్ఫిగర్ చేసిన ఖచ్చితమైన హద్దులను
- అమలు చేస్తుంది. స్యాచురేటెడ్ మోడల్ గేట్ ఎప్పుడూ ప్రొవైడర్ను డిసేబుల్ చేయదు మరియు ఎప్పుడూ
- శాశ్వత మోడల్ లాక్అవుట్ను సృష్టించదు; అప్స్ట్రీమ్ 429/కూల్డౌన్/ఫాల్బ్యాక్ ప్రవర్తన
- ఎర్రర్ బ్యాక్స్టాప్గా ఉంటుంది.
-- **కనెక్షన్-వారీ, ప్రాసెస్-వారీ స్కోప్:** పరిమితులు డేటాబేస్ కనెక్షన్ వారీగా
- ఉంటాయి మరియు ఇన్-మెమరీలో నిలవ చేయబడతాయి, కాబట్టి అదే అప్స్ట్రీమ్ API కీని
- పునర్వినియోగం చేసే రెండు కనెక్షన్లు ఒకదానితో ఒకటి సమన్వయం చేసుకోవు.
-- **కాన్ఫిగర్ చేయకపోవడం అంటే మార్పు లేదు:** మ్యాప్ను విస్మరించడం (లేదా
- డాష్బోర్డ్ ఫీల్డ్ను ఖాళీగా ఉంచడం) మోడల్ గేట్ను జోడించదు. ఏ యూనివర్సల్ ప్రొవైడర్
- పరిమితిని చెప్పకుండా ఉదాహరణ కాన్ఫిగరేషన్:
+దీన్ని కనెక్షన్ మోడల్లో సెట్ చేయండి (** ధర పరిమితి → పర్-మోడల్ కాన్కరెన్సీ క్యాప్లను భర్తీ చేస్తుంది** , ఒక పంక్తికి ఒక `model=cap` ) లేదా అదే JSON ఆకారంతో `PATCH /api/providers/[id]` ద్వారా. ముఖ్య అర్థశాస్త్రం:
+
+- **కనెక్షన్-వైడ్ vs మోడల్-నిర్దిష్ట:** `maxConcurrent` భాగస్వామ్య కనెక్షన్-వైడ్ సీలింగ్గా మిగిలిపోయింది. రెండూ వర్తించినప్పుడు, రెండు గేట్లు ఒకే కాంపోజిట్ గేట్లో (`global → provider → account → model`) పరమాణుపరంగా పొందబడతాయి; సమర్థవంతమైన ప్రవర్తన అనేది కఠినమైన వర్తించే పరిమితి.
+- **ఖచ్చితమైన మోడల్-కీ మ్యాచ్:** రిజల్యూషన్ — ని రౌటింగ్ చేసిన తర్వాత ఎగ్జిక్యూటర్కు అందించిన మోడల్ స్ట్రింగ్ కీ, సాధారణంగా బేర్ అప్స్ట్రీమ్ మోడల్ ఐడి (`glm-5`), క్లయింట్ వైపు `provider/model` అలియాస్ కాదు (`zai/glm-5` `glm-5` తో సరిపోలడం లేదు). విలువలు సానుకూల-పూర్ణాంకం ఏకకాలిక-అభ్యర్థన పైకప్పులు.
+- **స్థానిక క్యూలో ఉంది, కనుగొనబడలేదు:** ఇప్పటికే ఉన్న queue/timeout సెమాంటిక్స్తో స్థానికంగా అదనపు అభ్యర్థనలు క్యూలో ఉన్నాయి (టైప్ చేసిన `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` అడ్మిషన్ లోపాలు). OmniRoute అప్స్ట్రీమ్ పాలసీని కనుగొనలేదు లేదా ఊహించలేదు — ఇది ఆపరేటర్ కాన్ఫిగర్ చేసిన ఖచ్చితమైన సీలింగ్లను అమలు చేస్తుంది. సంతృప్త మోడల్ గేట్ ప్రొవైడర్ను ఎప్పటికీ నిలిపివేయదు మరియు శాశ్వత మోడల్ లాకౌట్ను సృష్టించదు; అప్స్ట్రీమ్ 429/cooldown/fallback ప్రవర్తన లోపం బ్యాక్స్టాప్గా మిగిలిపోయింది.
+- **ప్రతి-కనెక్షన్, ప్రతి-ప్రాసెస్ పరిధి:** క్యాప్లు ఒక్కో డేటాబేస్ కనెక్షన్కి ఉంటాయి మరియు మెమరీలో ఉంచబడతాయి, కాబట్టి ఒకే అప్స్ట్రీమ్ API కీని మళ్లీ ఉపయోగించే రెండు కనెక్షన్లు ఒకదానితో ఒకటి సమన్వయం చేసుకోవు.
+- **కాన్ఫిగర్ చేయబడలేదు అంటే మారలేదు:** మ్యాప్ను వదిలివేయడం (లేదా డాష్బోర్డ్ ఫీల్డ్ను ఖాళీగా ఉంచడం) మోడల్ గేట్ను జోడించదు. యూనివర్సల్ ప్రొవైడర్ పరిమితిని నిర్దేశించకుండా ఉదాహరణ కాన్ఫిగరేషన్:
```text
glm-5=1
glm-4.7=3
```
-### కోటా-షేర్ రిక్వెస్ట్ సీరియలైజేషన్
-
-కోటా-షేర్ డిస్ప్యాచ్ పాజిటివ్ `max_concurrent` డిక్లేర్ చేసిన కనెక్షన్ను లక్ష్యంగా చేసుకున్నప్పుడు,
-ఆ **ఖాతా**కు కన్కరెంట్ రిక్వెస్ట్లు పెర్-కనెక్షన్ సెమాఫోర్ ద్వారా సీరియలైజ్ చేయబడతాయి
-(కీ `qsconn:`): అదనపు రిక్వెస్ట్లు ఖాతాను ముంపుకు గురిచేయడానికి బదులు **క్యూలో
-వేచి ఉంటాయి**. ఇది **ఫెయిల్-ఓపెన్** — స్యాచురేటెడ్ క్యూ లేదా టైమ్అవుట్ స్లాట్ లేకుండా కొనసాగుతుంది,
-డిస్ప్యాచ్ చేయగల రిక్వెస్ట్ను ఎప్పుడూ రిజెక్ట్ చేయదు. **Settings → Resilience → Quota-share
-per-connection concurrency** లో టాగుల్ చేయండి
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, డిఫాల్ట్ ఆన్).
-`max_concurrent` పరిమితి లేకుంటే ప్రవర్తన మారదు.
-
-> కోటా-షేర్ రూటింగ్ గేట్ (`selectQuotaShareTarget`, DRR + P2C) కూడా
-> ఫెయిల్-ఓపెన్ మరియు కేవలం పరిమితి చేరిన కనెక్షన్ను _డిప్రైయరిటైజ్_ చేస్తుంది —
-> సింగిల్-కనెక్షన్ పూల్తో అది హార్డ్-లిమిట్ చేయలేదు, కాబట్టి ముంపును నిజంగా
-> అడ్డుకునేది ఈ సెమాఫోర్.
-
-### కాంబో కూల్డౌన్-అవేర్ రీట్రై
-
-ప్రతి కాంబో స్ట్రాటజీ కోసం (ఎనేబుల్ చేసినప్పుడు), SHORT ట్రాన్షియంట్ కూల్డౌన్ కోసం
-429ను స్థిరపరచే రిక్వెస్ట్ 429ను రిటర్న్ చేయడానికి బదులు దాని కోసం వేచి ఉండి
-మళ్లీ డిస్ప్యాచ్ చేస్తుంది — ఇది మల్టీ-మోడల్ కాంబోలపై Gemini-క్లాస్ TPM/RPM విండోలను
-(~60s retry-after) కవర్ చేస్తుంది, ఉదా. 2-మోడల్ కాంబో యొక్క రెండు టార్గెట్లు పెర్-మోడల్
-రేట్ లిమిట్ను తాకడం. **Settings → Resilience** లోని `comboCooldownWait` (`enabled`,
-`maxWaitMs`, `maxAttempts`, `budgetMs`) ద్వారా పరిమితం చేయబడింది. ఇది ఎప్పుడూ `quota_exhausted`
-(అర్ధరాత్రి వరకు లాక్ చేయబడింది) లేదా auth/not-found కారణాల కోసం వేచి ఉండదు.
-
-అదే గేట్ ప్రీ-డిస్ప్యాచ్ కేసును కవర్ చేస్తుంది (#16319): కాంబో యొక్క ప్రతి టార్గెట్
-దాని మోడల్ షార్ట్ ట్రాన్షియంట్ లాక్అవుట్లో ఉండటం వల్ల ఏ అటెంప్ట్ చేయకముందే స్కిప్ చేయబడినప్పుడు,
-జీరో-అటెంప్ట్ పాత్ అదే హద్దుల కింద లాక్ ముగిసే వరకు వేచి ఉండి మళ్లీ డిస్ప్యాచ్ చేస్తుంది,
-హింట్ లేని `503 ALL_TARGETS_SKIPPED`కు సమాధానం ఇవ్వడానికి బదులు. ఎలాంటి వెయిట్ అనుమతించబడనప్పుడు
-(హద్దు, అటెంప్ట్ లేదా బడ్జెట్ అయిపోవడం, లేదా ఫీచర్ ఆఫ్ చేయబడినప్పుడు), టెర్మినల్ రెస్పాన్స్
-`429 rate_limit_error`కు అప్గ్రేడ్ అవుతుంది, ఇది మొదటి ట్రాన్షియంట్ లాక్ ఎక్స్పైరీ నుండి
-`retry_after` / `reset_at`ను మోస్తుంది; కోటా, auth మరియు not-found లాక్లు హింట్ లేని 503నే ఉంచుతాయి.
+### కోటా-షేర్ అభ్యర్థన సీరియలైజేషన్
+
+కోటా-షేర్ డిస్పాచ్ సానుకూల `max_concurrent` ప్రకటించే కనెక్షన్ను లక్ష్యంగా చేసుకున్నప్పుడు, దానికి ఏకకాల అభ్యర్థనలు** ఖాతా** ప్రతి-కనెక్షన్ సెమాఫోర్ (కీ `qsconn:`) ద్వారా సీరియలైజ్ చేయబడతాయి: అదనపు అభ్యర్థనలు** క్యూలో వేచి ఉండండి** అకౌంట్ని నింపే బదులు. ఇది** విఫలం-ఓపెన్** — ఒక సంతృప్త క్యూ లేదా గడువు ముగిసినప్పుడు పంపదగిన అభ్యర్థనను తిరస్కరించడం కంటే స్లాట్ లేకుండా కొనసాగుతుంది. టోగుల్ ఇన్ చేయండి** సెట్టింగ్లు → రెసిలెన్స్ → కోటా-షేర్ పర్-కనెక్షన్ కాన్కరెన్సీ** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, డిఫాల్ట్ ఆన్). `max_concurrent` క్యాప్ లేకుండా ప్రవర్తన మారదు.
+
+> కోటా-షేర్ రూటింగ్ గేట్ (`selectQuotaShareTarget`, DRR + P2C) దానంతట అదే విఫలం-ఓపెన్ చేయబడింది మరియు సింగిల్-కనెక్షన్ పూల్తో అట్-క్యాప్ కనెక్షన్ — మాత్రమే _deprioritizes_ అది హార్డ్-లిమిట్ చేయలేనిది, కాబట్టి ఈ సెమాఫోర్ వాస్తవానికి వరదను కలిగి ఉంటుంది.
+
+### కాంబో కూల్డౌన్-అవేర్ మళ్లీ ప్రయత్నించండి
+
+ప్రతి కాంబో స్ట్రాటజీకి (ఎనేబుల్ చేసినప్పుడు), SHORT ట్రాన్సియెంట్ కూల్డౌన్ కోసం 429ని స్ఫటికీకరించే అభ్యర్థన వేచి ఉండి, 429 — ని తిరిగి ఇచ్చే బదులు మళ్లీ పంపబడుతుంది, ఇది జెమిని-క్లాస్ TPM/RPM విండోలను (~ 60s రీట్రీ-తర్వాత) కవర్ చేస్తుంది, మల్టీ-ఉదాహరణకు, కాంబో 2 కాంబోస్ల కాంబోస్లో 2. ప్రతి మోడల్ రేటు పరిమితి. లో `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) ద్వారా సరిహద్దు** సెట్టింగులు → స్థితిస్థాపకత** . ఇది `quota_exhausted` (అర్ధరాత్రి వరకు లాక్ చేయబడింది) లేదా auth/not-found కారణాలపై ఎప్పుడూ వేచి ఉండదు.
+
+`config.comboCooldownWaitEnabled: false` తో కాంబో నిలిపివేయవచ్చు. లిటరల్ `false` మాత్రమే ఈ భాగస్వామ్య కాంబో వెయిట్లను (పోస్ట్-డిస్పాచ్ కూల్డౌన్ మరియు ప్రీ-డిస్పాచ్ circuit-open/model-lock వెయిట్లు) మరియు వాటి వెయిట్-బడ్జెట్ టైమ్ అవుట్-ఫ్లోర్ ఎక్స్టెన్షన్ను నిలిపివేస్తుంది. తప్పిపోయిన లేదా `true` ప్రపంచ విధానాన్ని సంరక్షిస్తుంది; `true` ప్రపంచవ్యాప్తంగా డిసేబుల్ వెయిటింగ్ని ప్రారంభించలేదు. స్పష్టమైన `targetTimeoutMs` ఇప్పటికీ గెలుస్తుంది. ఈ నిలిపివేత ప్రత్యేక స్థానిక-కోడెక్స్ టర్న్-పిన్ ప్రీ-డిస్పాచ్ నిరీక్షణను మార్చదు.
+
+అదే గేట్ ప్రీ-డిస్పాచ్ కేస్ను కవర్ చేస్తుంది (#16319): కాంబో యొక్క ప్రతి లక్ష్యం ఏదైనా ప్రయత్నం చేసే ముందు దాని మోడల్ చిన్న తాత్కాలిక లాకౌట్లో ఉన్నందున దాటవేయబడినప్పుడు, సున్నా-ప్రయత్నం మార్గం సూచన లేని `503 ALL_TARGETS_SKIPPED` సమాధానం ఇవ్వడానికి బదులుగా అదే పైకప్పుల క్రింద లాక్ అవుట్ కోసం వేచి ఉండి, మళ్లీ పంపుతుంది. వేచి ఉండాల్సిన అవసరం లేనప్పుడు (సీలింగ్, ప్రయత్నం లేదా బడ్జెట్ అయిపోయినది లేదా ఫీచర్ ఆఫ్లో ఉంది), టెర్మినల్ ప్రతిస్పందన `429 rate_limit_error` క్యారీయింగ్ `retry_after` / `reset_at` కి ప్రారంభ తాత్కాలిక లాక్ గడువు నుండి అప్గ్రేడ్ అవుతుంది; కోటా, ప్రామాణీకరణ మరియు కనుగొనబడని లాక్లు సూచన-తక్కువ 503ని ఉంచుతాయి.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/te/docs/guides/USER_GUIDE.md b/docs/i18n/te/docs/guides/USER_GUIDE.md
index 260b4a0b07c2..180175f99d25 100644
--- a/docs/i18n/te/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/te/docs/guides/USER_GUIDE.md
@@ -607,60 +607,60 @@ post_install() {
---
-## 📊 అందుబాటులో ఉన్న మోడళ్లు
+## 📊 అందుబాటులో ఉన్న నమూనాలు
-అందుబాటులో ఉన్న అన్ని మోడళ్లను చూడండి
+అందుబాటులో ఉన్న అన్ని మోడళ్లను వీక్షించండి
-> క్రింది జాబితా v3.8.0 కోసం `open-sse/config/providerRegistry.ts` నుండి క్యూరేట్ చేయబడింది. క్లౌడ్ క్యాటలాగ్లు (Gemini, OpenRouter మొదలైనవి) డైనమిక్గా సింక్ అవుతాయి — పూర్తి లైవ్ క్యాటలాగ్ కోసం **Dashboard → Providers → [provider] → Available Models** తెరవండి లేదా `GET /api/models/catalog`ని కాల్ చేయండి.
+> దిగువ జాబితా v3.8.0 కోసం `open-sse/config/providerRegistry.ts` నుండి క్యూరేట్ చేయబడింది. క్లౌడ్ కేటలాగ్లు (Gemini, OpenRouter, మొదలైనవి) డైనమిక్గా — సమకాలీకరించబడతాయి.** డాష్బోర్డ్ → ప్రొవైడర్లు → [ప్రొవైడర్] → అందుబాటులో ఉన్న మోడల్లు** లేదా `GET /api/models/catalog` కి కాల్ చేయండి.
>
-> ఏదైనా ప్రొవైడర్ యొక్క బిల్ట్-ఇన్ జాబితా కాలానుగుణంగా మారిపోయినట్లయితే, లైవ్ అప్స్ట్రీమ్ క్యాటలాగ్ను పొందడానికి ఆ పేజీలోని **Import from /models** ఉపయోగించండి (లేదా **Auto-Sync** ప్రారంభించండి). ఇది v3.8.50లో LLM7.io (`gemini-3.1-flash-lite`) మరియు UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) కోసం ధృవీకరించబడింది; అదే పరీక్షా దశలో Pollinations anonymous యాక్సెస్ అప్స్ట్రీమ్-పరిమితంగానే కొనసాగింది.
+> ప్రొవైడర్ యొక్క అంతర్నిర్మిత జాబితా డ్రిఫ్ట్ అయినట్లయితే, ఉపయోగించండి** /మోడల్స్ నుండి దిగుమతి చేయండి** ఆ పేజీలో (లేదా ఎనేబుల్ చేయండి** స్వీయ-సమకాలీకరణ** ) లైవ్ అప్స్ట్రీమ్ కేటలాగ్ని లాగడానికి. ఇది LLM7.io (`gemini-3.1-flash-lite`) మరియు UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) కోసం v3.8.50లో ధృవీకరించబడింది; అదే పరీక్ష పాస్ సమయంలో పరాగసంపర్క అనామక యాక్సెస్ అప్స్ట్రీమ్-పరిమితమైంది.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude కోడ్ (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort టయర్లు: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ ప్రయత్నం శ్రేణులు: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — ఉచిత OAuth: **Dashboard → Providers → Kiro → Available Models** కింద చూపబడే లైవ్ క్యాటలాగ్ను ఉపయోగించండి. అందుబాటు ఖాతా మరియు ప్లాన్పై ఆధారపడి ఉంటుంది.
+**Kiro (`kr/`)** — FREE OAuth: క్రింద చూపబడిన ప్రత్యక్ష జాబితాను ఉపయోగించండి** డాష్బోర్డ్ → ప్రొవైడర్లు → Kiro → అందుబాటులో ఉన్న మోడల్లు** . లభ్యత ఖాతా మరియు ప్రణాళికపై ఆధారపడి ఉంటుంది.
-**Qoder (`if/`)** — ఉచిత OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/నెల ఫ్లాట్ లేదా ఉపయోగం-ఆధారితం: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo ఫ్లాట్ లేదా పర్-యూజ్: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — API కీ: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — అత్యంత వేగవంతమైనది: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — అల్ట్రా-ఫాస్ట్: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok నేటివ్: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok స్థానికం: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU-హోస్ట్ చేయబడింది: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU-హోస్ట్ చేయబడింది: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — శోధన-విస్తరిత: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**కలవరము (`pplx/`)** — శోధన-అగ్మెంటెడ్: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — ఓపెన్-సోర్స్: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ఉచితం), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — ఓపెన్ సోర్స్: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ఉచిత), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — వేగవంతమైన ఇన్ఫరెన్స్: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — వేగవంతమైన అనుమితి: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
**Cerebras (`cerebras/`)** — వేఫర్-స్కేల్: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
**Cohere (`cohere/`)** — RAG-కేంద్రీకృతం: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — ఎంటర్ప్రైజ్: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama క్లౌడ్ (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Google నుండి ప్రతి API కీకి లైవ్గా సింక్ చేయబడుతుంది — స్టాటిక్ జాబితా లేదు. **Dashboard → Providers**లో కీని కనెక్ట్ చేసి, ప్రస్తుత క్యాటలాగ్ను ఇంపోర్ట్ చేయడానికి **Available Models** ఉపయోగించండి (ఉదా. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google క్లౌడ్ `gemini/`)** : Google — నుండి API కీకి ప్రత్యక్షంగా సమకాలీకరించబడింది స్టాటిక్ జాబితా లేదు. ఒక కీని కనెక్ట్ చేయండి** డాష్బోర్డ్ → ప్రొవైడర్లు** అప్పుడు ఉపయోగించండి** అందుబాటులో ఉన్న నమూనాలు** ప్రస్తుత కేటలాగ్ను దిగుమతి చేయడానికి (ఉదా `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**ఇతర అనుకూల ప్రొవైడర్లు** (ఎంపిక చేయబడినవి): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (`aws-bedrock` ద్వారా), `azure-ai`, `openrouter` (పాస్త్రూ క్యాటలాగ్), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. ప్రతి ఒక్కటి `providerRegistry.ts`లో తన స్వంత మోడల్ జాబితాను నిర్వహిస్తుంది మరియు ప్రొవైడర్ `/models` ఎండ్పాయింట్ను బహిర్గతం చేసినప్పుడు ఆటో-సింక్ చేయబడవచ్చు.
+**ఇతర అనుకూల ప్రొవైడర్లు** (ఎంచుకున్నది): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` ( `aws-bedrock` `nous-research`, `azure-ai`, `openrouter` `reka` పాస్త్రూ కేటలాగ్), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `volcengine`, `ai21` `gigachat` ప్రతి ఒక్కటి `providerRegistry.ts` లో దాని స్వంత మోడల్ జాబితాను నిర్వహిస్తుంది మరియు ప్రొవైడర్ `/models` ముగింపు బిందువును బహిర్గతం చేసినప్పుడు స్వయంచాలకంగా సమకాలీకరించబడుతుంది.
-**మోడల్ IDల గురించి గమనిక:** OmniRoute ప్రొవైడర్-నేటివ్ IDలను ఉపయోగిస్తుంది (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). కొన్ని IDలు డాటెడ్ వెర్షన్లను కలిగి ఉంటాయి ఎందుకంటే అప్స్ట్రీమ్ API వాటిని అలాగే ఆశిస్తుంది. ఏదైనా మోడల్ పైన జాబితా చేయబడకపోతే, `omniroute models --search ` నడపండి లేదా అందుబాటును నిర్ధారించడానికి `GET /api/models/catalog`ని ఉపయోగించండి.
+**మోడల్ IDs పై గమనిక:** OmniRoute ప్రొవైడర్-నేటివ్ IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`)ని ఉపయోగిస్తుంది. కొన్ని IDs చుక్కల సంస్కరణలను కలిగి ఉంటాయి ఎందుకంటే అప్స్ట్రీమ్ API వాటిని ఎలా ఆశించింది. మోడల్ పైన జాబితా చేయబడకపోతే, లభ్యతను నిర్ధారించడానికి `omniroute models --search ` అమలు చేయండి లేదా `GET /api/models/catalog` నొక్కండి.
diff --git a/docs/i18n/th/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/th/docs/architecture/RESILIENCE_GUIDE.md
index 41800c377ad6..6a4bcd354e81 100644
--- a/docs/i18n/th/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/th/docs/architecture/RESILIENCE_GUIDE.md
@@ -286,19 +286,17 @@ exact-scope ใช้คีย์ `provider:connectionId:exact:model`)
---
-## 4. การควบคุมการทำงานพร้อมกันแบบ Quota-Share (v3.8.36)
+## 4. การควบคุมการแบ่งปันโควต้า (v3.8.36)
-บัญชีแบบสมัครสมาชิก (GLM, MiniMax ฯลฯ) มักรับคำขอพร้อมกันได้เพียงประมาณ 1–3 คำขอเท่านั้น หากเกินกว่านั้นจะทำให้เกิด 429 และ cooldown ปัญหานี้รุนแรงเป็นพิเศษภายใต้คอมโบแบบ **quota-share** (`qtSd/…`) ซึ่งมี API key หลายตัวใช้บัญชี upstream เดียวกัน กลไกสามชั้นต่อไปนี้ช่วยป้องกันไม่ให้บัญชีที่ใช้ร่วมกันถูกคำขอท่วม
+บัญชีสมัครสมาชิก (GLM, MiniMax ฯลฯ ) มักจะยอมรับเฉพาะคำขอ ~ 1–3 ที่เกิดขึ้นพร้อมกันเท่านั้น เกินกว่านั้นจะทำให้เกิด 429 วินาทีและคูลดาวน์ นี่คือเฉียบพลันภายใต้** โควต้าแบ่งปัน** (`qtSd/…`) คอมโบ โดยที่คีย์ API หลายคีย์ใช้บัญชีอัปสตรีมร่วมกัน สามชั้นป้องกันไม่ให้บัญชีที่ใช้ร่วมกันถูกน้ำท่วม
-### เพดานการทำงานพร้อมกันต่อการเชื่อมต่อ (`max_concurrent`)
+### ขีดจำกัดการทำงานพร้อมกันต่อการเชื่อมต่อ (`max_concurrent`)
-การเชื่อมต่อ provider แต่ละรายการสามารถประกาศเพดาน `max_concurrent` ได้
-(`provider_connections.max_concurrent` ตั้งค่าได้ใน connection modal / API / DB)
-เว้นว่างไว้หากไม่ต้องการจำกัด นี่คือตัวควบคุมเพียงตัวเดียวที่ขับเคลื่อนเลเยอร์ serialization ด้านล่าง — ตั้งค่าให้ตรงกับระดับการทำงานพร้อมกันจริงของบัญชี (เช่น GLM ~1, MiniMax ~2)
+การเชื่อมต่อของผู้ให้บริการแต่ละรายสามารถประกาศเพดาน `max_concurrent` (`provider_connections.max_concurrent` ตั้งค่าใน modal การเชื่อมต่อ / API / DB) ปล่อยว่างไว้ไม่มีขีดจำกัด นี่คือปุ่มเดียวที่ขับเคลื่อนเลเยอร์การทำให้เป็นอนุกรมด้านล่าง — ตั้งค่าเป็นการทำงานพร้อมกันที่แท้จริงของบัญชี (เช่น GLM ~ 1, MiniMax ~ 2)
-### เพดานการทำงานพร้อมกันระดับโมเดล (`modelConcurrency`)
+### ขีดจำกัดการทำงานพร้อมกันต่อรุ่น (`modelConcurrency`)
-การเชื่อมต่อยังสามารถประกาศเพดานการทำงานพร้อมกันระดับโมเดลแบบระบุชัดเจนได้ภายใน map `rateLimitOverrides`:
+การเชื่อมต่อยังสามารถประกาศเพดานการทำงานพร้อมกันต่อรุ่นที่แน่นอนเพิ่มเติมภายในแผนที่ `rateLimitOverrides` :
```json
{
@@ -309,40 +307,32 @@ exact-scope ใช้คีย์ `provider:connectionId:exact:model`)
}
```
-ตั้งค่าได้ใน connection modal (**Rate limit overrides → Per-model
-concurrency caps** โดยใส่ `model=cap` หนึ่งรายการต่อบรรทัด) หรือผ่าน
-`PATCH /api/providers/[id]` ด้วยโครงสร้าง JSON เดียวกัน หลักการสำคัญ:
+ตั้งไว้ในโมดอลการเชื่อมต่อ (** ขีดจำกัดอัตราจะแทนที่ → ขีดจำกัดการทำงานพร้อมกันต่อโมเดล** , หนึ่ง `model=cap` ต่อบรรทัด) หรือผ่าน `PATCH /api/providers/[id]` ที่มีรูปร่าง JSON เหมือนกัน ความหมายที่สำคัญ:
-- **ทั้งการเชื่อมต่อเทียบกับเฉพาะโมเดล:** `maxConcurrent` ยังคงเป็นเพดานกลางระดับการเชื่อมต่อ เมื่อใช้ทั้งสองอย่างพร้อมกัน เกตทั้งสองจะถูกจองแบบ atomic ใน composite gate เดียวกัน
- (`global → provider → account → model`) พฤติกรรมที่มีผลจริงคือขีดจำกัดที่เข้มงวดกว่าในบรรดาที่ใช้บังคับ
-- **การจับคู่ model key แบบตรงตัว:** key คือสตริงโมเดลที่ส่งให้ executor หลังจาก resolve เส้นทางแล้ว — โดยปกติคือ upstream model id ล้วน ๆ
- (`glm-5`) ไม่ใช่ alias ฝั่งไคลเอนต์แบบ `provider/model` (`zai/glm-5` ไม่ตรงกับ
- `glm-5`) ค่าต้องเป็นจำนวนเต็มบวกที่เป็นเพดานจำนวนคำขอพร้อมกัน
-- **คิวในเครื่อง ไม่มีการค้นหานโยบาย:** คำขอส่วนเกินจะเข้าคิวในเครื่องด้วย semantics ของคิว/timeout เดิม (ข้อผิดพลาด admission ที่มีชนิดเป็น `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL`) OmniRoute ไม่ค้นหาหรืออนุมานนโยบายของ upstream — มันบังคับใช้เพดานตามที่ผู้ดูแลกำหนดไว้เท่านั้น เกตโมเดลที่อิ่มตัวจะไม่ปิดการใช้งาน provider และไม่สร้างการล็อกโมเดลแบบถาวร พฤติกรรม 429/cooldown/fallback ของ upstream ยังคงเป็นตัวรองรับข้อผิดพลาด
-- **ขอบเขตต่อการเชื่อมต่อ ต่อโปรเซส:** เพดานผูกกับการเชื่อมต่อในฐานข้อมูลแต่ละรายการและถูกเก็บไว้ในหน่วยความจำ ดังนั้นการเชื่อมต่อสองรายการที่ใช้ upstream API key เดียวกันจะไม่ประสานงานกัน
-- **ไม่ตั้งค่าหมายถึงไม่เปลี่ยนแปลง:** การไม่ใส่ map (หรือเว้นช่องในแดชบอร์ดว่างไว้) จะไม่เพิ่มเกตโมเดลใด ๆ ตัวอย่างการตั้งค่าโดยไม่ยืนยันขีดจำกัดสากลของ provider ใด ๆ:
+- **การเชื่อมต่อทั่วทั้งเทียบกับเฉพาะรุ่น:** `maxConcurrent` ยังคงเป็นเพดานการเชื่อมต่อที่ใช้ร่วมกัน เมื่อทั้งสองใช้ เกตทั้งสองจะได้รับอะตอมในเกตคอมโพสิตเดียวกัน (`global → provider → account → model`) พฤติกรรมที่มีประสิทธิผลคือขีดจำกัดที่บังคับใช้ที่เข้มงวดยิ่งขึ้น
+- **การจับคู่คีย์โมเดลที่ตรงกันทุกประการ:** กุญแจสำคัญคือสตริงโมเดลที่ส่งผ่านไปยังตัวดำเนินการหลังจากการกำหนดเส้นทางความละเอียด — โดยปกติแล้วจะเป็นรหัสโมเดลอัปสตรีมเปลือย (`glm-5`) ไม่ใช่นามแฝง `provider/model` ฝั่งไคลเอ็นต์ (`zai/glm-5` ไม่ตรงกับ `glm-5`) ค่าเป็นเพดานคำขอจำนวนเต็มบวกพร้อมกัน
+- **การรอคิวในพื้นที่ ไม่มีการค้นพบ:** คำขอส่วนเกินเข้าคิวภายในเครื่องด้วยซีแมนทิกส์ queue/timeout ที่มีอยู่ (พิมพ์ข้อผิดพลาดการรับเข้า `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ) OmniRoute ไม่พบหรืออนุมานนโยบายอัปสตรีม — จะบังคับใช้เพดานที่แน่นอนตามที่ผู้ปฏิบัติงานกำหนดค่าไว้ ประตูโมเดลอิ่มตัวจะไม่ปิดการใช้งานผู้ให้บริการ และไม่เคยสร้างการล็อกโมเดลถาวร พฤติกรรม 429/cooldown/fallback ของอัปสตรีมยังคงเป็นแบ็คสต็อปข้อผิดพลาด
+- **ขอบเขตต่อการเชื่อมต่อ ต่อกระบวนการ:** ตัวพิมพ์ใหญ่ต่อการเชื่อมต่อฐานข้อมูลและเก็บไว้ในหน่วยความจำ ดังนั้นการเชื่อมต่อสองรายการที่ใช้คีย์ API อัปสตรีมเดียวกันซ้ำจึงไม่ทำงานร่วมกัน
+- **ไม่ได้กำหนดค่าหมายถึงไม่เปลี่ยนแปลง:** การละเว้นแผนที่ (หรือปล่อยให้ฟิลด์แดชบอร์ดว่าง) จะไม่มีการเพิ่มประตูแบบจำลอง ตัวอย่างการกำหนดค่าโดยไม่ต้องยืนยันขีดจำกัดของผู้ให้บริการสากล:
```text
glm-5=1
glm-4.7=3
```
-### การทำ serialization ของคำขอแบบ quota-share
+### การซีเรียลไลซ์คำขอแบ่งใช้โควต้า
-เมื่อการ dispatch แบบ quota-share มุ่งไปยังการเชื่อมต่อที่ประกาศ `max_concurrent` เป็นค่าบวก คำขอพร้อมกันที่ไปยัง**บัญชี**นั้นจะถูกทำ serialization ผ่าน semaphore ต่อการเชื่อมต่อ (key `qsconn:`): คำขอส่วนเกินจะ**รอในคิว**แทนที่จะท่วมบัญชี กลไกนี้เป็นแบบ **fail-open** — คิวที่อิ่มตัวหรือ timeout จะดำเนินการต่อโดยไม่มี slot แทนที่จะปฏิเสธคำขอที่ dispatch ได้ สลับการใช้งานได้ที่ **Settings → Resilience → Quota-share per-connection
-concurrency** (`resilienceSettings.quotaShareConcurrencyLimit.enabled` ค่าเริ่มต้นคือเปิด) หากไม่มีเพดาน `max_concurrent` พฤติกรรมจะไม่เปลี่ยนแปลง
+เมื่อการจัดส่งโควต้าแชร์กำหนดเป้าหมายการเชื่อมต่อที่ประกาศค่าบวก `max_concurrent` คำขอนั้นพร้อมกัน** บัญชี** ถูกทำให้เป็นอนุกรมผ่านเซมาฟอร์ต่อการเชื่อมต่อ (คีย์ `qsconn:`): คำขอที่มากเกินไป** รออยู่ในคิว** แทนที่จะท่วมบัญชี มันคือ** เปิดไม่สำเร็จ** — คิวที่อิ่มตัวหรือการหมดเวลาจะดำเนินการโดยไม่มีช่อง แทนที่จะปฏิเสธคำขอที่สามารถจัดส่งได้ สลับเข้า** การตั้งค่า → ความยืดหยุ่น → โควต้าแบ่งปันต่อการเชื่อมต่อพร้อมกัน** (`resilienceSettings.quotaShareConcurrencyLimit.enabled` เป็นค่าเริ่มต้น) หากไม่มี `max_concurrent` cap พฤติกรรมจะไม่เปลี่ยนแปลง
-> เกตการกำหนดเส้นทางของ quota-share (`selectQuotaShareTarget`, DRR + P2C) นั้นเป็น fail-open ในตัวเอง และเพียงแค่_ลดลำดับความสำคัญ_ของการเชื่อมต่อที่ถึงขีดจำกัด — ด้วยพูลที่มีการเชื่อมต่อเพียงตัวเดียว มันไม่สามารถจำกัดแบบ hard-limit ได้ ดังนั้น semaphore นี้จึงเป็นตัวที่ยับยั้งการท่วมจริง ๆ
+> ประตูการกำหนดเส้นทางการแบ่งโควต้า (`selectQuotaShareTarget`, DRR + P2C) นั้นเปิดไม่ได้และมีเพียง _deprioritizes_ การเชื่อมต่อ at-cap — พร้อมด้วยพูลการเชื่อมต่อเดี่ยวซึ่งไม่สามารถจำกัดได้ยาก ดังนั้นเซมาฟอร์นี้จึงเป็นสิ่งที่มีน้ำท่วมจริง
-### การ retry ที่รับรู้ cooldown ของคอมโบ
+### ลองอีกครั้งโดยคำนึงถึงคูลดาวน์คอมโบ
-สำหรับกลยุทธ์คอมโบทุกแบบ (เมื่อเปิดใช้งาน) คำขอที่กำลังจะตกผลึกเป็น 429 เนื่องจาก cooldown ชั่วคราวระยะสั้นจะรอจนหมดเวลาแล้ว dispatch ใหม่แทนที่จะส่ง 429 กลับ — ซึ่งครอบคลุมหน้าต่าง TPM/RPM ระดับ Gemini (retry-after ประมาณ 60 วินาที) บนคอมโบหลายโมเดล เช่น เป้าหมายทั้งสองของคอมโบ 2 โมเดลติด rate limit ระดับโมเดลพร้อมกัน ถูกจำกัดขอบเขตด้วย `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`,
-`budgetMs`) ใน **Settings → Resilience** โดยจะไม่รอในกรณี `quota_exhausted`
-(ล็อกจนถึงเที่ยงคืน) หรือเหตุผลด้าน auth/not-found
+สำหรับทุกกลยุทธ์คอมโบ (เมื่อเปิดใช้งาน) คำขอที่จะตกผลึก 429 สำหรับคูลดาวน์ชั่วคราว SHORT จะรอและจัดส่งใหม่แทนที่จะส่งคืน 429 — ซึ่งครอบคลุมหน้าต่าง TPM/RPM คลาส Gemini (~ 60 วินาทีลองใหม่หลังจาก) ในคอมโบหลายรุ่น เช่น เป้าหมายทั้งสองของคอมโบ 2 โมเดลที่มีอัตราจำกัดต่อโมเดล ล้อมรอบด้วย `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) ใน** การตั้งค่า → ความยืดหยุ่น** . มันไม่เคยรอ `quota_exhausted` (ล็อคจนถึงเที่ยงคืน) หรือเหตุผล auth/not-found
-เกตเดียวกันนี้ยังครอบคลุมกรณีก่อน dispatch ด้วย (#16319): เมื่อเป้าหมายทุกตัวของคอมโบถูกข้ามก่อนที่จะมีการพยายามใด ๆ เนื่องจากโมเดลของมันติดการล็อกชั่วคราวระยะสั้น เส้นทางแบบ zero-attempt จะรอการล็อกนั้นภายใต้เพดานเดียวกันแล้ว dispatch ใหม่ แทนที่จะตอบกลับด้วย `503 ALL_TARGETS_SKIPPED` ที่ไม่มีคำใบ้ เมื่อไม่อนุญาตให้รอ (เพดาน จำนวนครั้ง หรืองบประมาณหมด หรือฟีเจอร์ถูกปิด) การตอบกลับขั้นสุดท้ายจะถูกอัปเกรดเป็น
-`429 rate_limit_error` พร้อมพก `retry_after` / `reset_at` จากการหมดอายุของการล็อกชั่วคราวที่เร็วที่สุด ส่วนการล็อก quota, auth และ not-found จะยังคงเป็น 503 ที่ไม่มีคำใบ้
+คำสั่งผสมสามารถเลือกไม่ใช้ `config.comboCooldownWaitEnabled: false` ได้ เฉพาะ `false` ตามตัวอักษรเท่านั้นที่ปิดใช้งานการรอคอมโบที่ใช้ร่วมกันเหล่านี้ (คูลดาวน์หลังการจัดส่งและการรอ circuit-open/model-lock ก่อนการจัดส่ง) และส่วนขยายการหมดเวลาการรองบประมาณรอ Missing หรือ `true` รักษานโยบายสากลไว้ `true` ไม่สามารถเปิดใช้งานการรอที่ปิดใช้งานทั่วโลกได้ `targetTimeoutMs` ที่ชัดเจนยังคงชนะ การเลือกไม่รับนี้จะไม่เปลี่ยนการรอก่อนการจัดส่งแบบ Native-Codex ที่แยกต่างหาก
+
+เกตเดียวกันครอบคลุมกรณีก่อนการจัดส่ง (#16319): เมื่อทุกเป้าหมายของคอมโบถูกข้ามก่อนที่จะพยายามใดๆ เกิดขึ้น เนื่องจากโมเดลอยู่ในการล็อกเอาต์ชั่วคราวระยะสั้น พาธการพยายามเป็นศูนย์จะรอการล็อกไว้ใต้เพดานเดียวกันและจัดส่งใหม่ แทนที่จะตอบ `503 ALL_TARGETS_SKIPPED` ที่ไม่มีคำใบ้ เมื่อไม่อนุญาตให้รอ (เพดาน ความพยายามหรืองบประมาณหมด หรือคุณลักษณะปิด) การตอบสนองของเทอร์มินัลจะอัปเกรดเป็น `429 rate_limit_error` ที่มี `retry_after` / `reset_at` จากการหมดอายุการล็อกชั่วคราวที่เร็วที่สุด โควต้า การตรวจสอบสิทธิ์ และการล็อกที่ไม่พบ จะคงค่า Hint-less 503 ไว้
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/th/docs/guides/USER_GUIDE.md b/docs/i18n/th/docs/guides/USER_GUIDE.md
index 3cb5d3d3ed81..e9fb0af33ad6 100644
--- a/docs/i18n/th/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/th/docs/guides/USER_GUIDE.md
@@ -605,60 +605,60 @@ post_install() {
---
-## 📊 โมเดลที่ใช้งานได้
+## 📊 รุ่นที่มีจำหน่าย
-ดูโมเดลที่ใช้งานได้ทั้งหมด
+ดูรุ่นที่มีจำหน่ายทั้งหมด
-> รายการด้านล่างนี้คัดสรรมาจาก `open-sse/config/providerRegistry.ts` สำหรับ v3.8.0 แคตตาล็อกบนคลาวด์ (Gemini, OpenRouter ฯลฯ) จะถูกซิงก์แบบไดนามิก — สำหรับแคตตาล็อกสดฉบับเต็ม ให้เปิด **แดชบอร์ด → ผู้ให้บริการ → [provider] → โมเดลที่ใช้งานได้** หรือเรียก `GET /api/models/catalog`
+> รายการด้านล่างได้รับการดูแลจัดการจาก `open-sse/config/providerRegistry.ts` สำหรับ v3.8.0 แคตตาล็อกคลาวด์ (Gemini, OpenRouter, ฯลฯ ) จะถูกซิงค์แบบไดนามิก — สำหรับแค็ตตาล็อกสดแบบเต็มที่เปิด** แดชบอร์ด → Providers → [ผู้ให้บริการ] → รุ่นที่มีจำหน่าย** หรือโทร `GET /api/models/catalog`
>
-> หากรายการในตัว (built-in) ของผู้ให้บริการรายใดคลาดเคลื่อนไปจากของจริง ให้ใช้ **นำเข้าจาก /models** บนหน้านั้น (หรือเปิดใช้งาน **ซิงก์อัตโนมัติ**) เพื่อดึงแคตตาล็อกสดจากต้นทาง เรื่องนี้ได้รับการยืนยันแล้วใน v3.8.50 สำหรับ LLM7.io (`gemini-3.1-flash-lite`) และ UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); ส่วนการเข้าถึงแบบไม่ระบุตัวตนของ Pollinations ยังคงถูกจำกัดจากฝั่งต้นทางในรอบการทดสอบเดียวกัน
+> หากรายการในตัวของผู้ให้บริการลอยไป ให้ใช้** นำเข้าจาก /models** ในหน้านั้น (หรือเปิดใช้งาน** ซิงค์อัตโนมัติ** ) เพื่อดึงแค็ตตาล็อกอัพสตรีมแบบสด สิ่งนี้ได้รับการตรวจสอบในเวอร์ชัน 3.8.50 สำหรับ LLM7.io (`gemini-3.1-flash-lite`) และ UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); การเข้าถึงโดยไม่ระบุชื่อการผสมเกสรยังคงจำกัดต้นน้ำในระหว่างการทดสอบผ่านการทดสอบเดียวกัน
-**Claude Code (`cc/`)** — OAuth แบบ Pro/Max: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**รหัส Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — OAuth แบบ Plus/Pro: `cx/gpt-5.5` (+ ระดับ effort: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort tiers: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth ฟรี: ใช้แคตตาล็อกสดที่แสดงอยู่ใน **แดชบอร์ด → ผู้ให้บริการ → Kiro → โมเดลที่ใช้งานได้** ความพร้อมใช้งานขึ้นอยู่กับบัญชีและแพลนที่ใช้
+**Kiro (`kr/`)** — FREE OAuth: ใช้แคตตาล็อกสดที่แสดงด้านล่าง** แดชบอร์ด → ผู้ให้บริการ → Kiro → รุ่นที่มีจำหน่าย** . ความพร้อมใช้งานขึ้นอยู่กับบัญชีและแผน
-**Qoder (`if/`)** — OAuth ฟรี: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/เดือน แบบเหมาจ่ายหรือจ่ายตามการใช้งาน: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo flat หรือต่อการใช้งาน: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — คีย์ API: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — คีย์ API : `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — ความเร็วสูงพิเศษ: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — เร็วมาก: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok เนทีฟ: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok พื้นเมือง: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — โฮสต์ในยุโรป: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — โฮสต์ในสหภาพยุโรป: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — เสริมความสามารถด้วยการค้นหา: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**ความฉงนสนเท่ห์ (`pplx/`)** — ค้นหาเสริม: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — โอเพนซอร์ส: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ฟรี), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — โอเพ่นซอร์ส: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ฟรี), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — อินเฟอเรนซ์ความเร็วสูง: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — การอนุมานอย่างรวดเร็ว: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — เทคโนโลยีระดับเวเฟอร์: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — เวเฟอร์ขนาด: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — เน้นงาน RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG เน้น: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — สำหรับองค์กร: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** องค์กร — : `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
-**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
+**Baidu เฉียนฟาน (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama เมฆ (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: ซิงก์สดตามคีย์ API แต่ละคีย์จาก Google — ไม่มีรายการแบบคงที่ เชื่อมต่อคีย์ใน **แดชบอร์ด → ผู้ให้บริการ** จากนั้นใช้ **โมเดลที่ใช้งานได้** เพื่อนำเข้าแคตตาล็อกปัจจุบัน (เช่น `gemini/gemini-3-pro`, `gemini/gemini-3-flash`)
+**Gemini (Google เมฆ `gemini/`)** : ซิงค์สดต่อคีย์ API จาก Google — ไม่มีรายการคงที่ เชื่อมต่อคีย์เข้า** ผู้ให้บริการแดชบอร์ด →** จากนั้นใช้** รุ่นที่มีจำหน่าย** เพื่อนำเข้าแค็ตตาล็อกปัจจุบัน (เช่น `gemini/gemini-3-pro`, `gemini/gemini-3-flash`)
-**ผู้ให้บริการอื่นที่รองรับ** (บางส่วน): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (ผ่าน `aws-bedrock`), `azure-ai`, `openrouter` (แคตตาล็อกแบบ passthrough), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat` แต่ละรายดูแลรักษารายการโมเดลของตนเองไว้ใน `providerRegistry.ts` และสามารถซิงก์อัตโนมัติได้เมื่อผู้ให้บริการนั้นมี endpoint `/models` ให้ใช้งาน
+**ผู้ให้บริการรายอื่นที่เข้ากันได้** (เลือกแล้ว): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (ผ่าน `aws-bedrock`), `azure-ai`, `openrouter` (แคตตาล็อกส่งผ่าน), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat` แต่ละรายการจะรักษารายการโมเดลของตัวเองใน `providerRegistry.ts` และสามารถซิงค์อัตโนมัติได้เมื่อผู้ให้บริการเปิดเผยตำแหน่งข้อมูล `/models`
-**หมายเหตุเกี่ยวกับ ID โมเดล:** OmniRoute ใช้ ID แบบดั้งเดิมของแต่ละผู้ให้บริการ (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`) ID บางรายการมีเลขเวอร์ชันแบบมีจุด เพราะนั่นคือรูปแบบที่ API ต้นทางคาดหวัง หากไม่พบโมเดลใดในรายการข้างต้น ให้รัน `omniroute models --search ` หรือเรียก `GET /api/models/catalog` เพื่อยืนยันความพร้อมใช้งาน
+**หมายเหตุเกี่ยวกับรุ่น IDs:** OmniRoute ใช้ผู้ให้บริการพื้นเมือง IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`) IDs บางตัวมีเวอร์ชันจุดเพราะนั่นคือสิ่งที่ API อัปสตรีมคาดหวังไว้ หากรุ่นไม่อยู่ในรายการด้านบน ให้รัน `omniroute models --search ` หรือกด `GET /api/models/catalog` เพื่อยืนยันความพร้อมใช้งาน
diff --git a/docs/i18n/tr/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/tr/docs/architecture/RESILIENCE_GUIDE.md
index 432d11988b21..f76bd8c5943b 100644
--- a/docs/i18n/tr/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/tr/docs/architecture/RESILIENCE_GUIDE.md
@@ -258,21 +258,17 @@ Ayarlar normal ayar deposu aracılığıyla kalıcı olur ve dayanıklılık aya
---
-## 4. Kota-Paylaşımı Eşzamanlılık Kontrolü (v3.8.36)
+## 4. Kota-Paylaşım Eşzamanlılık Kontrolü (v3.8.36)
-Abonelik hesapları (GLM, MiniMax vb.) genellikle yalnızca ~1–3 eşzamanlı isteği kabul eder; bu sınırın aşılması 429 hatalarını ve bekleme sürelerini (cooldown) tetikler. Bu durum, birden fazla API anahtarının tek bir upstream hesabını paylaştığı **kota-paylaşımı** (`qtSd/…`) kombinasyonlarında özellikle kritiktir. Üç katman, paylaşılan bir hesabın isteklerle boğulmasını engeller.
+Abonelik hesapları (GLM, MiniMax vb.) genellikle yalnızca ~ 1-3 eşzamanlı isteği kabul eder; bunun aşılması 429'ları ve bekleme sürelerini tetikler. Bu durum akut** kota paylaşımı** (`qtSd/…`) birden fazla API anahtarının bir yukarı akış hesabını paylaştığı kombinasyonlar. Üç katman, paylaşılan bir hesabın su basmasını önler.
### Bağlantı başına eşzamanlılık sınırı (`max_concurrent`)
-Her sağlayıcı bağlantısı bir `max_concurrent` üst sınırı tanımlayabilir
-(`provider_connections.max_concurrent`, bağlantı penceresi / API / veritabanı üzerinden ayarlanır).
-Sınır olmaması için boş bırakın. Bu, aşağıdaki serileştirme katmanını yöneten tek
-düğümdür — hesabın gerçek eşzamanlılık değerine ayarlayın (ör. GLM ~1, MiniMax ~2).
+Her sağlayıcı bağlantısı bir `max_concurrent` tavanı bildirebilir (`provider_connections.max_concurrent`, / API / DB bağlantı modelinde ayarlanır). Sınırsız olarak boş bırakın. Bu, — altındaki serileştirme katmanını hesabın gerçek eşzamanlılığına ayarlayan tek düğmedir (örn. GLM ~ 1, MiniMax ~ 2).
### Model başına eşzamanlılık sınırları (`modelConcurrency`)
-Bir bağlantı, `rateLimitOverrides` haritası içinde ayrıca model bazında kesin
-eşzamanlılık üst sınırları tanımlayabilir:
+Bir bağlantı ayrıca `rateLimitOverrides` haritasında model başına kesin eşzamanlılık tavanlarını bildirebilir:
```json
{
@@ -283,74 +279,32 @@ eşzamanlılık üst sınırları tanımlayabilir:
}
```
-Bağlantı penceresinde (**Hız sınırı geçersiz kılmaları → Model başına
-eşzamanlılık sınırları**, her satıra bir `model=cap`) veya aynı JSON yapısıyla
-`PATCH /api/providers/[id]` üzerinden ayarlayın. Temel anlambilim:
-
-- **Bağlantı genelinde ve modele özgü:** `maxConcurrent`, paylaşılan
- bağlantı genelindeki üst sınır olmaya devam eder. Her ikisi de geçerli olduğunda,
- her iki kapı da aynı bileşik kapıda atomik olarak edinilir
- (`global → provider → account → model`); geçerli davranış, uygulanabilir en katı
- sınırdır.
-- **Tam model anahtarı eşleşmesi:** anahtar, yönlendirme çözümlemesinden sonra
- yürütücüye iletilen model dizesidir — normalde çıplak upstream model kimliğidir
- (`glm-5`), istemci tarafı bir `provider/model` takma adı değildir (`zai/glm-5`,
- `glm-5` ile eşleşmez). Değerler, pozitif tam sayı eşzamanlı istek üst
- sınırlarıdır.
-- **Yerel kuyruklama, keşif yok:** fazla istekler, mevcut kuyruk/zaman aşımı
- anlambilimiyle yerel olarak kuyruğa alınır (tiplendirilmiş `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL` kabul hataları). OmniRoute, upstream politikasını keşfetmez
- veya tahmin etmez — operatörün yapılandırdığı kesin üst sınırları uygular.
- Doymuş bir model kapısı sağlayıcıyı asla devre dışı bırakmaz ve kalıcı bir model
- kilidi oluşturmaz; upstream 429/cooldown/fallback davranışı hatalar için son
- savunma hattı olmaya devam eder.
-- **Bağlantı başına, süreç başına kapsam:** sınırlar veritabanı bağlantısı
- başınadır ve bellek içinde tutulur; bu nedenle aynı upstream API anahtarını
- yeniden kullanan iki bağlantı birbirleriyle koordinasyon kurmaz.
-- **Yapılandırılmamış olması değişiklik yok demektir:** haritanın atlanması (veya
- panel alanının boş bırakılması) model kapısı eklemez. Evrensel bir sağlayıcı
- sınırı dayatmayan örnek yapılandırma:
+Bağlantı modunda ayarlayın (** Hız sınırı → geçersiz kılar Model başına eşzamanlılık sınırları** , satır başına bir `model=cap` ) veya aynı JSON şekline sahip `PATCH /api/providers/[id]` aracılığıyla. Anahtar anlambilim:
+
+- **Bağlantı genelinde ve modele özel:** `maxConcurrent` bağlantı genelinde paylaşılan tavan olmaya devam ediyor. Her ikisi de geçerli olduğunda, her iki geçit de aynı bileşik geçitte (`global → provider → account → model`) atomik olarak elde edilir; etkili davranış daha katı uygulanabilir sınırdır.
+- **Tam model-anahtar eşleşmesi:** anahtar, — çözümünü yönlendirdikten sonra yürütücüye iletilen model dizisidir, normalde istemci tarafı `provider/model` takma adı değil (`zai/glm-5` `glm-5` ile eşleşmez), çıplak yukarı akış model kimliğidir (`glm-5`). Değerler pozitif tamsayı eşzamanlı istek tavanlarıdır.
+- **Yerel sıraya alma, keşif yok:** fazla istekler, mevcut queue/timeout semantiğiyle ( `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` kabul hataları yazılan) yerel olarak sıraya girer. OmniRoute yukarı akış politikasını keşfetmez veya çıkarım yapmaz — operatörün yapılandırdığı tavanları tam olarak uygular. Doymuş bir model kapısı hiçbir zaman sağlayıcıyı devre dışı bırakmaz ve hiçbir zaman kalıcı bir model kilitlemesi yaratmaz; yukarı akış 429/cooldown/fallback davranışı hata geri döndürmez olarak kalır.
+- **Bağlantı başına, işlem başına kapsam:** Büyük harfler veritabanı bağlantısı başınadır ve bellekte tutulur; dolayısıyla aynı yukarı akış API anahtarını yeniden kullanan iki bağlantı birbiriyle koordine olmaz.
+- **Yapılandırılmamış, değişmemiş anlamına gelir:** haritayı atlamak (veya kontrol paneli alanını boş bırakmak) hiçbir model kapısı eklemez. Herhangi bir evrensel sağlayıcı sınırı belirtmeden örnek yapılandırma:
```text
glm-5=1
glm-4.7=3
```
-### Kota-paylaşımı istek serileştirmesi
-
-Bir kota-paylaşımı gönderimi, pozitif bir `max_concurrent` tanımlayan bir bağlantıyı
-hedeflediğinde, o **hesaba** yapılan eşzamanlı istekler bağlantı başına bir semafor
-(anahtar `qsconn:`) aracılığıyla serileştirilir: fazla istekler hesabı
-boğmak yerine **kuyrukta bekler**. **Fail-open**'dır — doymuş bir kuyruk veya zaman
-aşımı, gönderilebilir bir isteği asla reddetmek yerine slot olmadan devam eder.
-**Ayarlar → Dayanıklılık → Kota-paylaşımı bağlantı başına eşzamanlılık** altından
-açılıp kapatılabilir (`resilienceSettings.quotaShareConcurrencyLimit.enabled`,
-varsayılan açık). `max_concurrent` sınırı olmadan davranış değişmez.
-
-> Kota-paylaşımı yönlendirme kapısı (`selectQuotaShareTarget`, DRR + P2C) kendisi de
-> fail-open'dır ve sınırına ulaşmış bir bağlantıyı yalnızca _önceliksizleştirir_ —
-> tek bağlantılı bir havuzda katı sınırlama yapamaz; bu nedenle taşkını gerçekten
-> dizginleyen bu semafordur.
-
-### Cooldown farkındalıklı kombo yeniden denemesi
-
-Her kombo stratejisi için (etkinleştirildiğinde), KISA bir geçici cooldown için 429
-oluşturacak bir istek, 429'u döndürmek yerine sürenin dolmasını bekler ve yeniden
-gönderir — bu, çok modelli kombinasyonlarda Gemini sınıfı TPM/RPM pencerelerini
-(~60s retry-after) kapsar; örneğin 2 modelli bir kombonun her iki hedefinin de model
-başına hız sınırına takılması. **Ayarlar → Dayanıklılık** altındaki
-`comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) ile
-sınırlanır. `quota_exhausted` (gece yarısına kadar kilitli) veya kimlik
-doğrulama/bulunamadı nedenleri için asla beklemez.
-
-Aynı kapı, gönderim öncesi durumu da kapsar (#16319): bir kombonun her hedefi,
-modeli kısa bir geçici kilitlemede olduğu için herhangi bir deneme yapılmadan
-atlandığında, sıfır-denemeli yol, ipucu içermeyen `503 ALL_TARGETS_SKIPPED` yanıtı
-vermek yerine aynı üst sınırlar altında kilidin dolmasını bekler ve yeniden
-gönderir. Beklemeye izin verilmediğinde (üst sınır, deneme veya bütçe tükenmiş ya da
-özellik kapalı), son yanıt, en erken geçici kilit bitişinden alınan `retry_after` /
-`reset_at` değerlerini taşıyan `429 rate_limit_error` yanıtına yükseltilir; kota,
-kimlik doğrulama ve bulunamadı kilitleri ipucu içermeyen 503'ü korur.
+### Kota paylaşımı isteği serileştirme
+
+Bir kota paylaşımı gönderimi, pozitif `max_concurrent` bildiren bir bağlantıyı hedeflediğinde, buna yönelik eşzamanlı istekler** hesap** bağlantı başına bir semafor (anahtar `qsconn:`) aracılığıyla serileştirilir: aşırı istekler** kuyrukta bekle** hesabı su basmak yerine. öyle** arızalı açma** — doymuş bir kuyruk veya zaman aşımı, dağıtılabilir bir isteği reddetmek yerine bir yuva olmadan ilerler. Geçiş yap** Ayarlar → Dayanıklılık → Bağlantı başına kota paylaşımı eşzamanlılığı** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, varsayılan olarak açık). `max_concurrent` sınırı olmadan davranış değişmez.
+
+> Kota paylaşımlı yönlendirme kapısının (`selectQuotaShareTarget`, DRR + P2C) kendisi arıza durumunda açıktır ve yalnızca sabit sınırlayamadığı tek bağlantı havuzuna sahip bir üst sınır bağlantısı — önceliklerini kaldırır, dolayısıyla bu semafor aslında seli içeren şeydir.
+
+### Kombine soğuma süresine duyarlı yeniden deneme
+
+Her kombo stratejisi için (etkinleştirildiğinde), SHORT geçici soğuma süresi için 429'u kristalize edecek bir istek, onu bekler ve 429 — döndürmek yerine yeniden gönderir; bu, çoklu model kombolarda Gemini sınıfı TPM/RPM pencerelerini (~ 60s yeniden deneme) kapsar, örneğin 2 modelli kombonun her iki hedefi de model başına hız sınırına ulaşır. `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) ile sınırlanmıştır** Ayarlar → Esneklik** . Asla `quota_exhausted` (gece yarısına kadar kilitli) veya auth/not-found nedenlerini beklemez.
+
+Bir kombinasyon `config.comboCooldownWaitEnabled: false` ile devre dışı bırakılabilir. Yalnızca değişmez `false` bu paylaşılan birleşik beklemeleri (gönderim sonrası soğuma süresi ve dağıtım öncesi circuit-open/model-lock beklemeleri) ve bunların bekleme bütçesi zaman aşımı taban uzatmasını devre dışı bırakır. Eksik veya `true` küresel politikayı korur; `true` genel olarak devre dışı bırakılmış beklemeyi etkinleştiremez. Açık bir `targetTimeoutMs` hala kazanıyor. Bu vazgeçme, ayrı yerel Kodeks dönüş pimi dağıtım öncesi bekleme süresini değiştirmez.
+
+Aynı kapı, dağıtım öncesi durumu (#16319) kapsar: modeli kısa bir geçici kilitlemede olduğundan bir kombonun her hedefi herhangi bir girişimde bulunulmadan atlandığında, sıfır denemeli yol, ipucu içermeyen bir `503 ALL_TARGETS_SKIPPED` yanıt vermek yerine kilitlemeyi aynı tavanlar altında bekler ve yeniden gönderim yapar. Beklemeye izin verilmediğinde (tavan, deneme veya bütçe tükendiğinde veya özellik kapalı), terminal yanıtı, en erken geçici kilit süresinin sona ermesinden itibaren `retry_after` / `reset_at` taşıyan `429 rate_limit_error` yükseltilir; kota, kimlik doğrulama ve bulunamadı kilitleri ipucu içermeyen 503'ü korur.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/tr/docs/guides/USER_GUIDE.md b/docs/i18n/tr/docs/guides/USER_GUIDE.md
index b059691a4ecf..0606de426850 100644
--- a/docs/i18n/tr/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/tr/docs/guides/USER_GUIDE.md
@@ -609,43 +609,43 @@ Ortam değişkenlerinin tam listesi için [README](../README.md) dosyasına bak
## 📊 Mevcut Modeller
-Tüm mevcut modelleri görüntüle
+Mevcut tüm modelleri görüntüle
-> Aşağıdaki liste, v3.8.0 için `open-sse/config/providerRegistry.ts` dosyasından derlenmiştir. Bulut katalogları (Gemini, OpenRouter vb.) dinamik olarak senkronize edilir — canlı kataloğun tamamı için **Panel → Sağlayıcılar → [sağlayıcı] → Mevcut Modeller** yolunu açın veya `GET /api/models/catalog` çağrısını yapın.
+> Aşağıdaki liste v3.8.0 için `open-sse/config/providerRegistry.ts` derlenmiştir. Bulut katalogları (Gemini, OpenRouter, vb.), tam canlı kataloğun açık olması için — dinamik olarak senkronize edilir** Kontrol Paneli → Sağlayıcıları → [sağlayıcı] → Mevcut Modeller** veya `GET /api/models/catalog` arayın.
>
-> Bir sağlayıcının yerleşik listesi sapmışsa, canlı yukarı akış kataloğunu çekmek için o sayfadaki **/models'den İçe Aktar** seçeneğini kullanın (veya **Otomatik Senkronizasyon**'u etkinleştirin). Bu, v3.8.50 sürümünde LLM7.io (`gemini-3.1-flash-lite`) ve UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) için doğrulanmıştır; Pollinations anonim erişimi aynı test turunda yukarı akış tarafında sınırlı kaldı.
+> Bir sağlayıcının yerleşik listesi kaymışsa şunu kullanın:** /models'ten içe aktar** o sayfada (veya etkinleştirin)** Otomatik Senkronizasyon** ) canlı yukarı akış kataloğunu çekmek için. Bu, LLM7.io (`gemini-3.1-flash-lite`) ve UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) için v3.8.50'de doğrulandı; Tozlaşmanın anonim erişimi aynı test geçişi sırasında yukarı akışla sınırlı kaldı.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude Kodu (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort kademeleri: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ çaba katmanları: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — ÜCRETSİZ OAuth: **Panel → Sağlayıcılar → Kiro → Mevcut Modeller** altında gösterilen canlı kataloğu kullanın. Kullanılabilirlik hesaba ve plana bağlıdır.
+**Kiro (`kr/`)** — FREE OAuth: aşağıda gösterilen canlı kataloğu kullanın** Kontrol Paneli → Sağlayıcıları → Kiro → Mevcut Modeller** . Kullanılabilirlik hesaba ve plana bağlıdır.
-**Qoder (`if/`)** — ÜCRETSİZ OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — Aylık $9 sabit ücret veya kullanım başına: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo düz veya kullanım başına: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — API anahtarı: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
**Groq (`groq/`)** — Ultra hızlı: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Yerel Grok: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok yerel: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — AB'de barındırılan: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — AB tarafından barındırılan: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Arama destekli: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Şaşkınlık (`pplx/`)** — Aramayla zenginleştirilmiş: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
**Together AI (`together/`)** — Açık kaynak: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ücretsiz), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
**Fireworks AI (`fireworks/`)** — Hızlı çıkarım: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Wafer ölçekli: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Gofret ölçeği: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
**Cohere (`cohere/`)** — RAG odaklı: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
@@ -653,13 +653,13 @@ Ortam değişkenlerinin tam listesi için [README](../README.md) dosyasına bak
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Bulut (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Google'dan API anahtarı başına canlı olarak senkronize edilir — statik liste yoktur. **Panel → Sağlayıcılar** bölümünden bir anahtar bağlayın, ardından güncel kataloğu içe aktarmak için **Mevcut Modeller** seçeneğini kullanın (örn. `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Bulut `gemini/`)** : Statik liste olmadan Google — API anahtarı başına canlı olarak senkronize edildi. Bir anahtar bağlayın** Kontrol Paneli → Sağlayıcıları** sonra kullan** Mevcut Modeller** geçerli kataloğu içe aktarmak için (örneğin `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Diğer uyumlu sağlayıcılar** (seçilmiş): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (`aws-bedrock` aracılığıyla), `azure-ai`, `openrouter` (doğrudan aktarım kataloğu), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Her biri kendi model listesini `providerRegistry.ts` içinde tutar ve sağlayıcı bir `/models` uç noktası sunduğunda otomatik olarak senkronize edilebilir.
+**Diğer uyumlu sağlayıcılar** (seçili): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` ( `aws-bedrock` aracılığıyla), `azure-ai`, `openrouter` (geçiş kataloğu), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Her biri `providerRegistry.ts` kendi model listesini tutar ve sağlayıcı bir `/models` uç noktasını kullanıma sunduğunda otomatik olarak senkronize edilebilir.
-**Model kimlikleri hakkında not:** OmniRoute, sağlayıcıya özgü kimlikler kullanır (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Bazı kimlikler noktalı sürümler içerir çünkü yukarı akış API'si bunları bu biçimde bekler. Bir model yukarıda listelenmemişse, kullanılabilirliği doğrulamak için `omniroute models --search ` komutunu çalıştırın veya `GET /api/models/catalog` çağrısını yapın.
+**IDs modeli hakkında not:** OmniRoute sağlayıcıya özgü IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`) kullanır. Bazı IDs noktalı versiyonlar içerir çünkü yukarı akışlı API onları bu şekilde bekler. Bir model yukarıda listelenmiyorsa kullanılabilirliği onaylamak için `omniroute models --search ` çalıştırın veya `GET /api/models/catalog` basın.
diff --git a/docs/i18n/uk-UA/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/uk-UA/docs/architecture/RESILIENCE_GUIDE.md
index d6ff1c28bab5..46ec85a12391 100644
--- a/docs/i18n/uk-UA/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/uk-UA/docs/architecture/RESILIENCE_GUIDE.md
@@ -253,22 +253,17 @@ OmniRoute має три різні, але пов’язані механізм
---
-## 4. Контроль паралельності quota-share (v3.8.36)
+## 4. Контроль паралельності квотування (v3.8.36)
-Облікові записи за підпискою (GLM, MiniMax тощо) часто приймають лише ~1–3 паралельні запити; перевищення цього порогу спричиняє помилки 429 і кулдауни. Це особливо гостро в **quota-share**-комбо (`qtSd/…`), де кілька API-ключів спільно використовують один апстрім-акаунт. Три рівні захисту не дають затопити спільний акаунт.
+Підписні облікові записи (GLM, MiniMax тощо) часто приймають лише ~ 1–3 одночасних запити; перевищення цього рівня запускає 429 секунд і час відновлення. Це гостро під** квота-частка** (`qtSd/…`) комбо, де кілька ключів API спільно використовують один висхідний обліковий запис. Три рівні захищають спільний обліковий запис від затоплення.
-### Обмеження паралельності на з'єднання (`max_concurrent`)
+### Обмеження паралельного підключення (`max_concurrent`)
-Кожне з'єднання провайдера може оголошувати стелю `max_concurrent`
-(`provider_connections.max_concurrent`, задається в модальному вікні з'єднання / API / БД).
-Залиште поле порожнім, щоб обмеження не було. Це єдиний регулятор, який керує рівнем
-серіалізації нижче — встановіть його відповідно до реальної паралельності акаунта
-(напр., GLM ~1, MiniMax ~2).
+Кожне підключення провайдера може оголосити стелю `max_concurrent` (`provider_connections.max_concurrent`, встановлене в підключенні modal / API / DB). Залиште його пустим, щоб не було обмежень. Це єдина ручка, яка керує шаром серіалізації нижче — встановлюючи його на реальний паралелізм облікового запису (наприклад, GLM ~ 1, MiniMax ~ 2).
-### Обмеження паралельності за моделлю (`modelConcurrency`)
+### Обмеження паралельності для кожної моделі (`modelConcurrency`)
-З'єднання може додатково оголошувати точні стелі паралельності за моделлю
-всередині своєї мапи `rateLimitOverrides`:
+Підключення може додатково оголосити точні межі паралельності для кожної моделі всередині своєї карти `rateLimitOverrides` :
```json
{
@@ -279,73 +274,32 @@ OmniRoute має три різні, але пов’язані механізм
}
```
-Задається в модальному вікні з'єднання (**Перевизначення rate-лімітів → Обмеження
-паралельності за моделлю**, по одному `model=cap` у рядку) або через
-`PATCH /api/providers/[id]` із тим самим JSON-форматом. Ключова семантика:
-
-- **Загальне для з'єднання vs специфічне для моделі:** `maxConcurrent` залишається
- спільною стелею для всього з'єднання. Коли застосовуються обидва, обидва шлюзи
- захоплюються атомарно в одному композитному шлюзі
- (`global → provider → account → model`); ефективною є поведінка суворішого
- застосовного ліміту.
-- **Точна відповідність ключа моделі:** ключ — це рядок моделі, що передається
- виконавцю після розв'язання маршрутизації — зазвичай голий ідентифікатор
- апстрім-моделі (`glm-5`), а не клієнтський аліас `provider/model` (`zai/glm-5` не
- збігається з `glm-5`). Значення — стелі кількості паралельних запитів у вигляді
- додатних цілих чисел.
-- **Локальне чергування, без виявлення:** надлишкові запити стають у локальну чергу
- з існуючою семантикою черги/таймауту (типізовані помилки допуску `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL`). OmniRoute не виявляє й не виводить апстрім-політику — він
- застосовує точні стелі, які налаштував оператор. Насичений шлюз моделі ніколи не
- вимикає провайдера й ніколи не створює постійного блокування моделі; поведінка
- апстріму щодо 429/кулдаунів/фолбеку залишається запобіжником від помилок.
-- **Область дії — на з'єднання, на процес:** стелі діють на з'єднання в базі даних
- і зберігаються в пам'яті, тому два з'єднання, що повторно використовують один і той
- самий апстрім API-ключ, не координуються між собою.
-- **Не налаштовано — без змін:** пропуск мапи (або порожнє поле на дашборді) не додає
- шлюз моделі. Приклад конфігурації без ствердження будь-якого універсального ліміту
- провайдера:
+Встановіть його в режимі підключення (** Обмеження швидкості перекриває обмеження на паралелізм → для кожної моделі** , один `model=cap` на рядок) або через `PATCH /api/providers/[id]` з тією самою формою JSON. Ключова семантика:
+
+- **Для всього підключення та для конкретної моделі:** `maxConcurrent` залишається спільною стелею для всього підключення. Коли обидва застосовуються, обидва вентилі отримуються атомарно в тому самому складеному вентилі (`global → provider → account → model`); ефективна поведінка є більш суворим застосовним обмеженням.
+- **Точна відповідність ключа моделі:** ключ — це рядок моделі, який передається виконавцю після вирішення маршрутизації — як правило, голий ідентифікатор моделі висхідного потоку (`glm-5`), а не псевдонім `provider/model` на стороні клієнта (`zai/glm-5` не відповідає `glm-5`). Значення — це граничні цілі одночасних запитів.
+- **Локальна черга, без виявлення:** надлишкові запити ставляться в чергу локально з існуючою семантикою queue/timeout (введені помилки доступу `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` ). OmniRoute не виявляє та не робить висновок про політику висхідного потоку. — він забезпечує точні обмеження, налаштовані оператором. Насичений шлюз моделі ніколи не вимикає постачальника та ніколи не створює постійне блокування моделі; Поведінка 429/cooldown/fallback вгорі залишається помилковою зупинкою.
+- **На підключення, на процес:** caps є для кожного з’єднання з базою даних і зберігаються в пам’яті, тому два з’єднання, які повторно використовують один і той же вихідний ключ API не координуються одне з одним.
+- **Неналаштований означає незмінний:** пропуск карти (або залишення поля приладової панелі порожнім) не додає воріт моделі. Приклад конфігурації без обмеження універсального постачальника:
```text
glm-5=1
glm-4.7=3
```
-### Серіалізація quota-share-запитів
-
-Коли відправлення quota-share націлене на з'єднання, що оголошує додатний
-`max_concurrent`, паралельні запити до цього **акаунта** серіалізуються через
-семафор на з'єднання (ключ `qsconn:`): надлишкові запити **чекають у
-черзі** замість того, щоб затоплювати акаунт. Він працює в режимі **fail-open** —
-насичена черга або таймаут продовжує виконання без слота, а не відхиляє запит,
-придатний до відправлення. Перемикається в **Налаштування → Стійкість → Паралельність
-quota-share на з'єднання** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`,
-типово увімкнено). Без стелі `max_concurrent` поведінка не змінюється.
-
-> Шлюз маршрутизації quota-share (`selectQuotaShareTarget`, DRR + P2C) сам по собі
-> працює в режимі fail-open і лише _знижує пріоритет_ з'єднання, що досягло стелі —
-> з пулом з одного з'єднання він не може жорстко обмежити, тому саме цей семафор
-> фактично стримує потік.
-
-### Повтор комбо з урахуванням кулдаунів
-
-Для кожної комбо-стратегії (коли ввімкнено) запит, який закристалізував би 429 через
-КОРОТКИЙ тимчасовий кулдаун, дочікується його завершення та повторно відправляється
-замість повернення 429 — це покриває вікна TPM/RPM класу Gemini (~60 с retry-after)
-у мультимодельних комбо, напр. коли обидві цілі комбо з 2 моделей влучають у
-rate-ліміт на модель. Обмежується параметрами `comboCooldownWait` (`enabled`,
-`maxWaitMs`, `maxAttempts`, `budgetMs`) у **Налаштування → Стійкість**. Він ніколи не
-чекає у разі `quota_exhausted` (заблоковано до опівночі) чи причин автентифікації /
-«не знайдено».
-
-Той самий шлюз покриває випадок перед відправленням (#16319): коли кожна ціль комбо
-пропускається ще до будь-якої спроби, оскільки її модель перебуває в короткому
-тимчасовому блокуванні, шлях із нульовими спробами очікує зняття блокування за тими
-самими стелями та повторно відправляє, замість відповіді `503 ALL_TARGETS_SKIPPED`
-без підказки. Коли очікування не дозволено (стелю, спроби чи бюджет вичерпано, або
-функцію вимкнено), кінцева відповідь підвищується до `429 rate_limit_error`, що несе
-`retry_after` / `reset_at` від найранішого завершення тимчасового блокування;
-блокування за квотою, автентифікацією та «не знайдено» зберігають 503 без підказки.
+### Серіалізація запиту на розподіл квоти
+
+Коли розсилка з розподілом квоти спрямована на з’єднання, яке оголошує позитивний `max_concurrent`, одночасні запити до цього** рахунок** серіалізуються через семафор для кожного з’єднання (ключ `qsconn:`): надлишкові запити** чекати в черзі** замість того, щоб зливати рахунок. Це так** безвідмовно відкритий** — насичена черга або тайм-аут продовжується без слота, а не відхиляє запит, який можна відправити. Увімкнути** Параметри → Стійкість → Частка квот на підключення паралельність** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, за замовчуванням увімкнено). Без обмеження `max_concurrent` поведінка не зміниться.
+
+> Шлюз маршрутизації спільного використання квот (`selectQuotaShareTarget`, DRR + P2C) сам по собі є відкритим при збоях і лише _знищує пріоритет_ з’єднання at-cap — з пулом з одним з’єднанням, який він не може жорстко обмежити, тому цей семафор — це те, що насправді містить флуд.
+
+### Комбінована повторна спроба з урахуванням часу відновлення
+
+Для кожної комбінованої стратегії (якщо ввімкнено) запит, який кристалізує 429 для тимчасового відновлення SHORT, очікує його завершення та повторно відправляє замість повернення 429 — Це охоплює вікна TPM/RPM класу Gemini (~ 60s повторна спроба після) у мультимодельних комбо, наприклад, обидві цілі комбо з 2 моделями досягають частоти для кожної моделі обмеження. Обмежений `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) у** Налаштування → Resilience** . Він ніколи не чекає на причини `quota_exhausted` (заблоковано до півночі) або auth/not-found.
+
+Комбінацію можна вимкнути за допомогою `config.comboCooldownWaitEnabled: false`. Лише літерал `false` вимикає ці спільні комбіновані очікування (очікування після відправлення та очікування circuit-open/model-lock перед відправленням) і їх розширення очікування-бюджету та мінімального очікування. Відсутній або `true` зберігає глобальну політику; `true` не може ввімкнути глобально вимкнене очікування. Явний `targetTimeoutMs` все ще виграє. Ця відмова не змінює окреме очікування перед відправленням для повороту штифтів нативного Codex.
+
+Той самий шлюз охоплює випадок перед відправкою (#16319): коли кожна ціль комбо пропускається до того, як буде зроблена будь-яка спроба, оскільки її модель перебуває в короткому тимчасовому блокуванні, шлях без спроби чекає блокування під тими самими межами та повторно відправляє замість відповіді на `503 ALL_TARGETS_SKIPPED` без підказок. Якщо очікування не дозволено (стеля, спроба або бюджет вичерпано, або функцію вимкнено), відповідь терміналу оновлюється до `429 rate_limit_error` що переносить `retry_after` / `reset_at` з найранішого закінчення тимчасового блокування; Блокування квот, автентифікації та не знайдено зберігають без підказок 503.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/uk-UA/docs/guides/USER_GUIDE.md b/docs/i18n/uk-UA/docs/guides/USER_GUIDE.md
index 7a2c137a816b..89d467a21744 100644
--- a/docs/i18n/uk-UA/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/uk-UA/docs/guides/USER_GUIDE.md
@@ -612,55 +612,55 @@ post_install() {
Переглянути всі доступні моделі
-> Наведений нижче список підготовлено на основі `open-sse/config/providerRegistry.ts` для v3.8.0. Хмарні каталоги (Gemini, OpenRouter тощо) синхронізуються динамічно — повний актуальний каталог дивіться в **Панель керування → Провайдери → [provider] → Доступні моделі** або виконайте запит `GET /api/models/catalog`.
+> Наведений нижче список створено з `open-sse/config/providerRegistry.ts` для v3.8.0. Хмарні каталоги (Gemini, OpenRouter тощо) динамічно синхронізуються — для повного відкритого живого каталогу** Панель інструментів → Провайдери → [провайдер] → Доступні моделі** або зателефонуйте в `GET /api/models/catalog`.
>
-> Якщо вбудований список провайдера застарів, скористайтеся **Імпорт з /models** на цій сторінці (або увімкніть **Автосинхронізацію**), щоб отримати актуальний апстрим-каталог. Це було перевірено у v3.8.50 для LLM7.io (`gemini-3.1-flash-lite`) та UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); анонімний доступ Pollinations під час того ж тестового прогону залишався обмеженим на боці апстріму.
+> Якщо вбудований список постачальника змінився, використовуйте** Імпортувати з /models** на цій сторінці (або ввімкніть** Автоматична синхронізація** ), щоб отримати доступний каталог. Це було перевірено у v3.8.50 для LLM7.io (`gemini-3.1-flash-lite`) і UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Анонімний доступ до запилення залишався обмеженим вгору під час того самого проходження тесту.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**код Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ рівні effort: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort tiers: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — БЕЗКОШТОВНИЙ OAuth: використовуйте актуальний каталог, показаний у **Панель керування → Провайдери → Kiro → Доступні моделі**. Доступність залежить від облікового запису та тарифного плану.
+**Kiro (`kr/`)** — FREE OAuth: використовуйте живий каталог, показаний нижче** Інформаційна панель → Постачальники → Kiro → Доступні моделі** . Доступність залежить від облікового запису та плану.
-**Qoder (`if/`)** — БЕЗКОШТОВНИЙ OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/міс фіксовано або оплата за використання: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo плоский або індивідуальний: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — Ключ API: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API ключ: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
**Groq (`groq/`)** — Надшвидкий: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Нативний Grok: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok рідний: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Розміщено в ЄС: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — розміщений у ЄС: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — З пошуковим доповненням: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Розгубленість (`pplx/`)** — Доповнений пошук: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Відкритий код: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (безкоштовна), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — з відкритим кодом: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (безкоштовно), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Швидкий інференс: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Швидкий висновок: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Wafer-scale: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Вафельна шкала: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Орієнтований на RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG-орієнтований: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Корпоративний: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Enterprise: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Хмара Ollama (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Синхронізується наживо для кожного ключа API від Google — статичного списку немає. Підключіть ключ у **Панель керування → Провайдери**, потім скористайтеся **Доступні моделі**, щоб імпортувати поточний каталог (напр., `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : синхронізовано наживо за ключем API із Google — без статичного списку. Підключіть ключ** Інформаційна панель → провайдерів** потім використовуйте** Доступні моделі** щоб імпортувати поточний каталог (наприклад, `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Інші сумісні провайдери** (вибрані): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (через `aws-bedrock`), `azure-ai`, `openrouter` (транзитний каталог), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Кожен підтримує власний список моделей у `providerRegistry.ts` і може автоматично синхронізуватися, якщо провайдер надає ендпоінт `/models`.
+**Інші сумісні постачальники** (вибрано): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (через `aws-bedrock`), `azure-ai`, `openrouter` (перехідний каталог), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Кожен з них підтримує власний список моделей у `providerRegistry.ts` та може бути автоматично синхронізований, коли постачальник відкриває кінцеву точку `/models`.
-**Примітка щодо ідентифікаторів моделей:** OmniRoute використовує нативні ідентифікатори провайдерів (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Деякі ідентифікатори містять версії з крапками, оскільки саме так їх очікує апстрим-API. Якщо моделі немає у списку вище, виконайте `omniroute models --search ` або надішліть запит `GET /api/models/catalog`, щоб підтвердити доступність.
+**Примітка щодо моделі IDs:** OmniRoute використовує власний IDs постачальника (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Деякі IDs включають версії з пунктиром, тому що це те, що їх очікує попередній API. Якщо моделі немає в списку вище, запустіть `omniroute models --search ` або натисніть `GET /api/models/catalog`, щоб підтвердити наявність.
diff --git a/docs/i18n/ur/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/ur/docs/architecture/RESILIENCE_GUIDE.md
index 86800056aad3..5b1588f3c784 100644
--- a/docs/i18n/ur/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/ur/docs/architecture/RESILIENCE_GUIDE.md
@@ -274,23 +274,17 @@ resilience سیٹنگز اسکیما کے ذریعے توثیق ہوتی ہیں
---
-## 4. کوٹا-شیئر کنکرنسی کنٹرول (v3.8.36)
+## 4. کوٹا شیئر کنکرنسی کنٹرول (v3.8.36)
-سبسکرپشن اکاؤنٹس (GLM، MiniMax وغیرہ) اکثر صرف ~1–3 متوازی درخواستیں قبول
-کرتے ہیں؛ اس سے تجاوز کرنے پر 429 ایررز اور کول ڈاؤن شروع ہو جاتے ہیں۔ یہ مسئلہ
-**quota-share** (`qtSd/…`) کومبوز میں خاص طور پر شدید ہوتا ہے، جہاں متعدد API کیز
-ایک ہی اپ اسٹریم اکاؤنٹ شیئر کرتی ہیں۔ تین تہیں شیئرڈ اکاؤنٹ کو فلڈ ہونے سے بچاتی ہیں۔
+سبسکرپشن اکاؤنٹس (GLM، MiniMax، وغیرہ) اکثر صرف ~ 1–3 سمورتی درخواستیں قبول کرتے ہیں۔ اس سے تجاوز کرنا 429s اور کولڈاؤن کو متحرک کرتا ہے۔ اس کے تحت شدید ہے** کوٹہ کا حصہ** (`qtSd/…`) combos، جہاں متعدد API کیز ایک اپ اسٹریم اکاؤنٹ کا اشتراک کرتی ہیں۔ تین پرتیں ایک مشترکہ اکاؤنٹ کو سیلاب سے بچاتی ہیں۔
-### فی-کنکشن کنکرنسی کیپ (`max_concurrent`)
+### فی کنکشن کنکرنسی کیپ (`max_concurrent`)
-ہر پرووائیڈر کنکشن ایک `max_concurrent` حد متعین کر سکتا ہے
-(`provider_connections.max_concurrent`، جو کنکشن موڈل / API / DB میں سیٹ کی جاتی ہے)۔
-لاٹ محدود رکھنے کے لیے اسے خالی چھوڑ دیں۔ یہی واحد کنٹرول ہے جو نیچے دی گئی سیریلائزیشن
-لیئر کو چلاتا ہے — اسے اکاؤنٹ کی اصل کنکرنسی پر سیٹ کریں (مثلاً GLM ~1، MiniMax ~2)۔
+ہر فراہم کنندہ کنکشن `max_concurrent` سیلنگ کا اعلان کر سکتا ہے (`provider_connections.max_concurrent`، کنکشن موڈل / API / DB میں سیٹ کیا گیا ہے)۔ بغیر کسی حد کے اسے خالی چھوڑ دیں۔ یہ واحد نوب ہے جو — کے نیچے سیریلائزیشن پرت کو چلاتا ہے اسے اکاؤنٹ کی حقیقی ہم آہنگی پر سیٹ کرتا ہے (جیسے GLM ~ 1، MiniMax ~ 2)۔
-### فی-ماڈل کنکرنسی کیپس (`modelConcurrency`)
+### فی ماڈل کنکرنسی کیپس (`modelConcurrency`)
-ایک کنکشن اپنے `rateLimitOverrides` میپ کے اندر عین فی-ماڈل کنکرنسی حدود بھی متعین کر سکتا ہے:
+ایک کنکشن اضافی طور پر اپنے `rateLimitOverrides` نقشے کے اندر عین مطابق فی ماڈل کنکرنسی سیلنگ کا اعلان کر سکتا ہے:
```json
{
@@ -301,73 +295,32 @@ resilience سیٹنگز اسکیما کے ذریعے توثیق ہوتی ہیں
}
```
-اسے کنکشن موڈل میں سیٹ کریں (**Rate limit overrides → Per-model
-concurrency caps**، ہر لائن پر ایک `model=cap`) یا
-`PATCH /api/providers/[id]` کے ذریعے اسی JSON شکل کے ساتھ۔ اہم سیمینٹکس:
-
-- **کنکشن-وائیڈ بمقابلہ ماڈل-مخصوص:** `maxConcurrent` مشترک کنکشن-وائیڈ
- حد ہی رہتی ہے۔ جب دونوں لاگو ہوں تو دونوں گیٹس ایک ہی کمپوزٹ گیٹ میں
- ایٹمی طور پر حاصل کیے جاتے ہیں
- (`global → provider → account → model`)؛ مؤثر رویہ وہی ہوتا ہے جو
- قابلِ اطلاق سخت ترین حد ہو۔
-- **عین ماڈل-کی میچ:** کی وہی ماڈل اسٹرنگ ہے جو روٹنگ ریزولوشن کے بعد
- ایگزیکیوٹر کو دی جاتی ہے — عام طور پر ننگی اپ اسٹریم ماڈل آئی ڈی
- (`glm-5`)، نہ کہ کلائنٹ-سائیڈ `provider/model` عرف (`zai/glm-5` کا
- `glm-5` سے میچ نہیں ہوتا)۔ ویلیوز مثبت-انٹیجر متوازی-درخواست حدود ہیں۔
-- **مقامی قطار، کوئی ڈسکوری نہیں:** اضافی درخواستیں موجودہ queue/timeout
- سیمینٹکس کے ساتھ مقامی طور پر قطار میں لگتی ہیں (ٹائپ شدہ `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL` ایڈمشن ایررز)۔ OmniRoute اپ اسٹریم پالیسی دریافت یا
- اندازہ نہیں لگاتا — وہ صرف وہی عین حدود نافذ کرتا ہے جو آپریٹر نے کنفیگر کی ہوں۔
- سیر شدہ ماڈل گیٹ کبھی بھی پرووائیڈر کو غیر فعال نہیں کرتا اور نہ ہی کوئی
- مستقل ماڈل لاک آؤٹ بناتا ہے؛ اپ اسٹریم 429/کول ڈاؤن/فال بیک رویہ
- بطور ایرر بیک اسٹاپ برقرار رہتا ہے۔
-- **فی-کنکشن، فی-پراسیس اسکوپ:** کیپس فی ڈیٹابیس کنکشن ہیں اور اِن-میموری رکھی
- جاتی ہیں، لہٰذا ایک ہی اپ اسٹریم API کی دوبارہ استعمال کرنے والے دو کنکشنز
- آپس میں کوآرڈینیٹ نہیں کرتے۔
-- **غیر کنفیگرڈ کا مطلب غیر تبدیل شدہ:** میپ کو شامل نہ کرنا (یا ڈیش بورڈ
- فیلڈ کو خالی چھوڑنا) کوئی ماڈل گیٹ شامل نہیں کرتا۔ کسی بھی عالمگیر پرووائیڈر
- حد کے دعوے کے بغیر مثالی کنفیگریشن:
+اسے کنکشن موڈل میں سیٹ کریں (** شرح کی حد → فی ماڈل کنکرنسی کیپس کو اوور رائیڈ کرتی ہے۔** ، ایک `model=cap` فی لائن) یا اسی JSON شکل کے ساتھ `PATCH /api/providers/[id]` کے ذریعے۔ کلیدی الفاظ:
+
+- **کنکشن وسیع بمقابلہ ماڈل مخصوص:** `maxConcurrent` مشترکہ کنکشن کی وسیع چھت ہے۔ جب دونوں لاگو ہوتے ہیں، دونوں گیٹ ایک ہی جامع گیٹ (`global → provider → account → model`) میں ایٹمی طور پر حاصل کیے جاتے ہیں۔ مؤثر رویہ سخت قابل اطلاق حد ہے۔
+- **عین مطابق ماڈل کلید میچ:** کلید وہ ماڈل سٹرنگ ہے جو ریزولوشن — کو روٹنگ کرنے کے بعد ایگزیکیوٹر کو بھیجی جاتی ہے عام طور پر ننگی اپ اسٹریم ماڈل آئی ڈی (`glm-5`)، نہ کہ کلائنٹ سائیڈ `provider/model` عرف (`zai/glm-5` `glm-5` سے مماثل نہیں ہے)۔ اقدار مثبت-انٹیجر سمورتی-درخواست کی چھتیں ہیں۔
+- **مقامی قطار، کوئی دریافت نہیں:** اضافی درخواستیں مقامی طور پر موجودہ queue/timeout سیمنٹکس (ٹائپ شدہ `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` داخلے کی غلطیاں) کے ساتھ قطار میں ہیں۔ OmniRoute اپ اسٹریم پالیسی کو دریافت یا اندازہ نہیں لگاتا ہے — یہ آپریٹر کی ترتیب کردہ عین مطابق حدوں کو نافذ کرتا ہے۔ ایک سیر شدہ ماڈل گیٹ کبھی بھی فراہم کنندہ کو غیر فعال نہیں کرتا ہے اور کبھی بھی مستقل ماڈل لاک آؤٹ نہیں بناتا ہے۔ upstream 429/cooldown/fallback برتاؤ غلطی کا بیک اسٹاپ رہتا ہے۔
+- **فی کنکشن، فی عمل کی گنجائش:** caps فی ڈیٹا بیس کنکشن ہوتے ہیں اور میموری میں رکھے جاتے ہیں، لہذا ایک ہی upstream API کلید کو دوبارہ استعمال کرنے والے دو کنکشن ایک دوسرے کے ساتھ ہم آہنگ نہیں ہوتے ہیں۔
+- **غیر ترتیب شدہ کا مطلب غیر تبدیل شدہ:** نقشہ کو چھوڑنا (یا ڈیش بورڈ فیلڈ کو خالی چھوڑنا) کوئی ماڈل گیٹ نہیں ڈالتا ہے۔ کسی بھی آفاقی فراہم کنندہ کی حد کو ظاہر کیے بغیر ترتیب کی مثال:
```text
glm-5=1
glm-4.7=3
```
-### کوٹا-شیئر درخواست سیریلائزیشن
-
-جب کوئی کوٹا-شیئر ڈسپیچ کسی ایسے کنکشن کو ہدف بناتا ہے جو مثبت
-`max_concurrent` کا اعلان کرتا ہے، تو اس **اکاؤنٹ** کو جانے والی متوازی درخواستیں
-فی-کنکشن سیمافور (کی `qsconn:`) کے ذریعے سیریلائز کی جاتی ہیں: اضافی
-درخواستیں اکاؤنٹ کو فلڈ کرنے کے بجائے **قطار میں انتظار کرتی ہیں**۔ یہ **fail-open** ہے —
-سیر شدہ قطار یا ٹائم آؤٹ کی صورت میں درخواست سلاٹ کے بغیر آگے بڑھ جاتی ہے، بجائے اس کے کہ
-کسی قابلِ ڈسپیچ درخواست کو کبھی مسترد کیا جائے۔ **Settings → Resilience → Quota-share
-per-connection concurrency** میں ٹوگل کریں
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`، ڈیفالٹ آن)۔ `max_concurrent`
-کیپ کے بغیر رویہ غیر تبدیل شدہ رہتا ہے۔
-
-> کوٹا-شیئر روٹنگ گیٹ (`selectQuotaShareTarget`، DRR + P2C) خود بھی
-> fail-open ہے اور کیپ پر پہنچے کنکشن کو صرف _ترجیح سے کم_ کرتا ہے —
-> واحد-کنکشن پول کے ساتھ وہ ہارڈ لیمٹ نہیں لگا سکتا، لہٰذا اصل میں فلڈ کو روکنے
-> والا یہی سیمافور ہے۔
-
-### کومبو کول ڈاؤن-آویئر ریٹرائی
-
-ہر کومبو اسٹریٹیجی کے لیے (جب فعال ہو)، ایسی درخواست جو SHORT عارضی کول ڈاؤن کے لیے
-429 پیدا کرنے والی ہو، اسے واپس کرنے کے بجائے اس کا انتظار کر کے دوبارہ ڈسپیچ کرتی ہے —
-یہ ملٹی-ماڈل کومبوز پر Gemini-کلاس TPM/RPM ونڈوز (~60s retry-after) کو بھی
-کور کرتا ہے، مثلاً 2-ماڈل کومبو کے دونوں ٹارگٹس کا فی-ماڈل ریٹ لیمٹ سے ٹکرانا۔
-یہ `comboCooldownWait` (`enabled`، `maxWaitMs`، `maxAttempts`،
-`budgetMs`) کے ذریعے **Settings → Resilience** میں محدود ہے۔ یہ کبھی بھی
-`quota_exhausted` (آدھی رات تک لاک) یا auth/not-found وجوہات پر انتظار نہیں کرتا۔
-
-یہی گیٹ پری-ڈسپیچ کیس (#16319) کو بھی کور کرتا ہے: جب کومبو کے تمام ٹارگٹس
-کوئی بھی کوشش کیے بغیر اس لیے اسکپ کر دیے جائیں کہ ان کا ماڈل کسی مختصر عارضی
-لاک آؤٹ میں ہو، تو زیرو-اٹیمپٹ راستہ اسی حدود کے تحت لاک کے ختم ہونے کا انتظار
-کر کے دوبارہ ڈسپیچ کرتا ہے، بجائے اس کے کہ بغیر اشارے والا
-`503 ALL_TARGETS_SKIPPED` جواب دے۔ جب انتظار کی اجازت نہ ہو (حد، کوشش یا بجٹ
-ختم، یا فیچر بند)، تو حتمی جواب `429 rate_limit_error` میں اپ گریڈ ہو جاتا ہے
-جو سب سے جلد ختم ہونے والی عارضی لاک سے `retry_after` / `reset_at` ساتھ
-لے کر آتا ہے؛ کوٹا، auth اور not-found لاکس بغیر اشارے والے 503 کو برقرار رکھتے ہیں۔
+### کوٹہ شیئر کی درخواست سیریلائزیشن
+
+جب کوٹہ شیئر ڈسپیچ کسی ایسے کنکشن کو نشانہ بناتا ہے جو مثبت `max_concurrent` اعلان کرتا ہے تو اس کے لیے ہم آہنگ درخواستیں** اکاؤنٹ** فی کنکشن سیمفور (کلیدی `qsconn:`) کے ذریعے سیریلائز کیا جاتا ہے: اضافی درخواستیں** قطار میں انتظار کرو** اکاؤنٹ میں پانی بھرنے کے بجائے۔ یہ ہے** ناکام کھلا** — ایک سیر شدہ قطار یا ٹائم آؤٹ بغیر کسی سلاٹ کے آگے بڑھتا ہے بجائے اس کے کہ کبھی بھی بھیجی جانے والی درخواست کو مسترد کر دے۔ ٹوگل ان کریں۔** ترتیبات → لچکدار → کوٹہ شیئر فی کنکشن کنکرنسی** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`، ڈیفالٹ آن)۔ `max_concurrent` کیپ کے بغیر رویہ تبدیل نہیں ہوتا۔
+
+> کوٹہ شیئر روٹنگ گیٹ (`selectQuotaShareTarget`, DRR + P2C) بذات خود فیل کھلا ہے اور صرف _deprioritizes_ ایک ایٹ-کیپ کنکشن — سنگل کنکشن پول کے ساتھ سخت حد تک محدود نہیں کر سکتا، لہذا یہ سیمفور وہ ہے جو دراصل سیلاب پر مشتمل ہے۔
+
+### کومبو کولڈاؤن آگاہی کی دوبارہ کوشش کریں۔
+
+ہر کومبو حکمت عملی کے لیے (جب فعال ہو)، ایک درخواست جو SHORT عارضی کولڈاؤن کے لیے 429 کو کرسٹالائز کرے گی، اس کا انتظار کرتی ہے اور 429 — واپس کرنے کے بجائے دوبارہ ڈسپیچ کرتی ہے جس میں Gemini-class TPM/RPM ونڈوز (~ 60s retry-after) کا احاطہ کیا گیا ہے فی ماڈل کی شرح کی حد `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) سے پابند** ترتیبات → لچک** . یہ کبھی بھی `quota_exhausted` (آدھی رات تک بند) یا auth/not-found وجوہات پر انتظار نہیں کرتا ہے۔
+
+ایک کومبو `config.comboCooldownWaitEnabled: false` کے ساتھ آپٹ آؤٹ کر سکتا ہے۔ صرف لفظی `false` ان مشترکہ کومبو انتظاروں کو غیر فعال کرتا ہے (پوسٹ ڈسپیچ کول ڈاؤن اور پری ڈسپیچ circuit-open/model-lock انتظار) اور ان کے انتظار کے بجٹ کے ٹائم آؤٹ فلور ایکسٹینشن کو۔ غائب یا `true` عالمی پالیسی کو محفوظ رکھتا ہے۔ `true` عالمی سطح پر معذور انتظار کو فعال نہیں کر سکتا۔ ایک واضح `targetTimeoutMs` اب بھی جیتتا ہے۔ یہ آپٹ آؤٹ علیحدہ مقامی کوڈیکس ٹرن پن پری ڈسپیچ انتظار کو تبدیل نہیں کرتا ہے۔
+
+وہی گیٹ پری ڈسپیچ کیس (#16319) کا احاطہ کرتا ہے: جب کسی بھی کوشش سے پہلے کسی کامبو کے ہر ہدف کو چھوڑ دیا جاتا ہے کیونکہ اس کا ماڈل ایک مختصر عارضی لاک آؤٹ میں بیٹھتا ہے، صفر کی کوشش کا راستہ اسی چھتوں کے نیچے لاک آؤٹ کا انتظار کرتا ہے اور بغیر اشارے کے `503 ALL_TARGETS_SKIPPED` جواب دینے کے بجائے دوبارہ ڈسپیچ کرتا ہے۔ جب کسی انتظار کی اجازت نہ ہو (چھت، کوشش یا بجٹ ختم ہو جائے، یا فیچر آف ہو جائے)، ٹرمینل رسپانس `429 rate_limit_error` میں اپ گریڈ ہو جاتا ہے جو `retry_after` / `reset_at` کو لے جانے والے عارضی لاک ایکسپائری سے شروع ہو جاتا ہے۔ کوٹہ، تصدیق اور نہ ملے تالے اشارہ سے کم 503 کو برقرار رکھتے ہیں۔
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/ur/docs/guides/USER_GUIDE.md b/docs/i18n/ur/docs/guides/USER_GUIDE.md
index e54b0bcae93f..da96fccc503b 100644
--- a/docs/i18n/ur/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/ur/docs/guides/USER_GUIDE.md
@@ -612,55 +612,55 @@ post_install() {
تمام دستیاب ماڈلز دیکھیں
-> نیچے دی گئی فہرست v3.8.0 کے لیے `open-sse/config/providerRegistry.ts` سے مرتب کی گئی ہے۔ کلاؤڈ کیٹلاگز (Gemini، OpenRouter وغیرہ) متحرک طور پر سنک ہوتے ہیں — مکمل لائیو کیٹلاگ کے لیے **Dashboard → Providers → [provider] → Available Models** کھولیں یا `GET /api/models/catalog` کال کریں۔
+> ذیل کی فہرست `open-sse/config/providerRegistry.ts` سے v3.8.0 کے لیے تیار کی گئی ہے۔ کلاؤڈ کیٹلاگ (Gemini، OpenRouter، وغیرہ) کو مکمل لائیو کیٹلاگ کھلنے کے لیے متحرک طور پر — مطابقت پذیری کی جاتی ہے** ڈیش بورڈ → فراہم کنندگان → [provider] → دستیاب ماڈلز** یا `GET /api/models/catalog` پر کال کریں۔
>
-> اگر کسی پرووائیڈر کی بلٹ اِن فہرست پرانی ہو گئی ہو تو لائیو اپ اسٹریم کیٹلاگ حاصل کرنے کے لیے اسی صفحے پر **Import from /models** استعمال کریں (یا **Auto-Sync** فعال کریں)۔ یہ تصدیق v3.8.50 میں LLM7.io (`gemini-3.1-flash-lite`) اور UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) کے لیے کی گئی؛ اسی ٹیسٹ مرحلے کے دوران Pollinations کی گمنام رسائی اپ اسٹریم کی جانب سے محدود رہی۔
+> اگر کسی فراہم کنندہ کی بلٹ ان لسٹ بڑھ گئی ہے تو استعمال کریں۔** /ماڈلز سے درآمد کریں۔** اس صفحہ پر (یا فعال کریں۔** خودکار مطابقت پذیری** ) براہ راست اپ اسٹریم کیٹلاگ کو کھینچنے کے لیے۔ اس کی تصدیق LLM7.io (`gemini-3.1-flash-lite`) اور UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) کے لیے v3.8.50 میں کی گئی تھی۔ اسی ٹیسٹ پاس کے دوران پولینیشن کی گمنام رسائی اپ اسٹریم تک محدود رہی۔
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude کوڈ (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort درجے: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ کوشش کے درجات: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`) , `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — مفت OAuth: **Dashboard → Providers → Kiro → Available Models** کے تحت دکھایا گیا لائیو کیٹلاگ استعمال کریں۔ دستیابی اکاؤنٹ اور پلان پر منحصر ہے۔
+**Kiro (`kr/`)** — FREE OAuth: نیچے دکھایا گیا لائیو کیٹلاگ استعمال کریں۔** ڈیش بورڈ → فراہم کرنے والے → Kiro → دستیاب ماڈلز** . دستیابی کا انحصار اکاؤنٹ اور پلان پر ہے۔
-**Qoder (`if/`)** — مفت OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo مقررہ یا فی استعمال: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo فلیٹ یا فی استعمال: `kimi/kimi-k2.6`، `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — API key: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API کلید: `ds/deepseek-v4-pro`، `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — انتہائی تیز رفتار: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — الٹرا فاسٹ: `groq/llama-3.3-70b-versatile`، `groq/meta-llama/llama-4-maverick-17b-128e-instruct`، `groq/qwen/qwen3-32b`، `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok نیٹو: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok مقامی: `xai/grok-4.3`، `xai/grok-4.20-multi-agent-0309`، `xai/grok-4.20-0309-reasoning`، `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — EU میں ہوسٹڈ: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU کی میزبانی: `mistral/mistral-large-latest`، `mistral/mistral-medium-3-5`، `mistral/mistral-small-latest`، `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — تلاش سے مزید بہتر: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**پریشانی (`pplx/`)** — تلاش بڑھا ہوا: `pplx/sonar-deep-research`، `pplx/sonar-reasoning-pro`، `pplx/sonar-pro`، `pplx/sonar`
-**Together AI (`together/`)** — اوپن سورس: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (مفت), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — اوپن سورس: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (مفت)، `together/meta-llama/Llama-Vision-Free`، `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`، `together/deepseek-ai/DeepSeek-R1`، `together/Qwen/Qwen3-235B-A22B`، `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — تیز انفرنس: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — فاسٹ انفرنس: `fireworks/accounts/fireworks/models/kimi-k2p6`، `fireworks/accounts/fireworks/models/minimax-m2p7`، `fireworks/accounts/fireworks/models/qwen3p6-plus`، `fireworks/accounts/fireworks/models/glm-5p1`، `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — ویفر اسکیل: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Wafer-scale: `cerebras/zai-glm-4.7`، `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — RAG پر مرکوز: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG پر مرکوز: `cohere/command-a-reasoning-08-2025`، `cohere/command-a-vision-07-2025`، `cohere/command-a-03-2025`، `cohere/command-r-08-2024`
**NVIDIA NIM (`nvidia/`)** — انٹرپرائز: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama کلاؤڈ (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: ہر API key کے لیے Google سے لائیو سنک کیا جاتا ہے — کوئی جامد فہرست نہیں۔ **Dashboard → Providers** میں key جوڑیں پھر موجودہ کیٹلاگ درآمد کرنے کے لیے **Available Models** استعمال کریں (مثلاً `gemini/gemini-3-pro`, `gemini/gemini-3-flash`)۔
+**Gemini (Google کلاؤڈ `gemini/`)** : Google — کوئی جامد فہرست سے لائیو فی API کلید کی مطابقت پذیری۔ اندر ایک کلید جوڑیں۔** ڈیش بورڈ → فراہم کرنے والے** پھر استعمال کریں** دستیاب ماڈلز** موجودہ کیٹلاگ درآمد کرنے کے لیے (جیسے `gemini/gemini-3-pro`، `gemini/gemini-3-flash`)۔
-**دیگر ہم آہنگ پرووائیڈرز** (منتخب): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (بذریعہ `aws-bedrock`), `azure-ai`, `openrouter` (پاس تھرو کیٹلاگ), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`۔ ہر ایک `providerRegistry.ts` میں اپنی ماڈل فہرست رکھتا ہے اور جب پرووائیڈر `/models` اینڈ پوائنٹ فراہم کرتا ہے تو اسے خودکار طور پر سنک کیا جا سکتا ہے۔
+**دوسرے ہم آہنگ فراہم کنندگان** (منتخب کردہ): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` ( `aws-bedrock` ذریعے) , `azure-ai`, `openrouter` (پاس تھرو کیٹلاگ) , `siliconflow`, `hyperbolic` `gigachat` `huggingface`, `featherless-ai`, `scaleway` `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `cloudflare-ai`, `volcengine`, `ai21` ہر ایک `providerRegistry.ts` میں اپنی ماڈل کی فہرست کو برقرار رکھتا ہے اور جب فراہم کنندہ ایک `/models` اختتامی نقطہ کو ظاہر کرتا ہے تو خود کار طریقے سے مطابقت پذیر ہوسکتا ہے۔
-**ماڈل IDs کے بارے میں نوٹ:** OmniRoute پرووائیڈر کے مقامی IDs استعمال کرتا ہے (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`)۔ کچھ IDs میں نقطہ دار ورژن شامل ہیں کیونکہ اپ اسٹریم API انہی کو اسی طرح متوقع کرتا ہے۔ اگر کوئی ماڈل اوپر فہرست میں نہ ہو تو دستیابی کی تصدیق کے لیے `omniroute models --search ` چلائیں یا `GET /api/models/catalog` استعمال کریں۔
+**ماڈل IDs پر نوٹ:** OmniRoute فراہم کنندہ کے مقامی IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`) استعمال کرتا ہے۔ کچھ IDs میں نقطے والے ورژن شامل ہوتے ہیں کیونکہ اسی طرح upstream API ان سے توقع کرتا ہے۔ اگر کوئی ماڈل اوپر درج نہیں ہے، تو `omniroute models --search ` چلائیں یا دستیابی کی تصدیق کے لیے `GET /api/models/catalog` دبائیں۔
diff --git a/docs/i18n/uz/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/uz/docs/architecture/RESILIENCE_GUIDE.md
index 774ac2667255..a64aee62d8d0 100644
--- a/docs/i18n/uz/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/uz/docs/architecture/RESILIENCE_GUIDE.md
@@ -288,21 +288,17 @@ saqlanadi; faol blokirovka _holati_ vaqtinchalikdir.
---
-## 4. Quota-share parallellik nazorati (v3.8.36)
+## 4. Kvota-ulashishning parallelligini nazorat qilish (v3.8.36)
-Obuna hisoblari (GLM, MiniMax va boshq.) ko'pincha atigi ~1–3 ta parallel so'rovni qabul qiladi; bundan oshib ketish 429 xatolarini va cooldown (sovutish) davrlarini keltirib chiqaradi. Bu **quota-share** (`qtSd/…`) kombinatsiyalarida keskin namoyon bo'ladi, bunda bir nechta API kalit bitta upstream hisobini bo'lishadi. Uch qatlam umumiy hisobning to'lib ketishidan (flood) himoya qiladi.
+Obuna hisoblari (GLM, MiniMax va boshqalar) ko'pincha faqat ~ 1–3 bir vaqtda so'rovlarni qabul qiladi; buning oshib ketishi 429 soniya va sovutish vaqtini ishga tushiradi. Bu o'tkir ostida** kvota-ulush** (`qtSd/…`) kombinatsiyalar, bu erda bir nechta API kalitlari bitta yuqori oqim hisobini baham ko'radi. Uchta qatlam umumiy hisobni suv bosishidan saqlaydi.
-### Har bir ulanish uchun parallellik chegarasi (`max_concurrent`)
+### Har bir ulanish uchun moslik chegarasi (`max_concurrent`)
-Har bir provayder ulanishi `max_concurrent` chegarasini e'lon qilishi mumkin
-(`provider_connections.max_concurrent`, ulanish modali / API / DB orqali o'rnatiladi).
-Cheklov bo'lmasligi uchun uni bo'sh qoldiring. Bu — quyidagi seriyalash qatlamini
-boshqaradigan yagona parametr: uni hisobning haqiqiy parallellik darajasiga o'rnating
-(masalan, GLM ~1, MiniMax ~2).
+Har bir provayder ulanishi `max_concurrent` shiftini e'lon qilishi mumkin (`provider_connections.max_concurrent`, ulanish modal / API / DB da o'rnatiladi). Hech qanday cheklovsiz uni bo'sh qoldiring. Bu — ostidagi ketma-ketlashtirish qatlamini boshqaradigan yagona tugma bo'lib, uni hisobning haqiqiy parallelligiga o'rnatadi (masalan, GLM ~ 1, MiniMax ~ 2).
-### Har bir model uchun parallellik chegaralari (`modelConcurrency`)
+### Har bir model uchun mos keladigan chegaralar (`modelConcurrency`)
-Ulanish qo'shimcha ravishda o'zining `rateLimitOverrides` xaritasi ichida har bir model uchun aniq parallellik chegaralarini e'lon qilishi mumkin:
+Ulanish qo'shimcha ravishda o'zining `rateLimitOverrides` xaritasi ichida har bir model uchun aniq moslik shiftini e'lon qilishi mumkin:
```json
{
@@ -313,79 +309,32 @@ Ulanish qo'shimcha ravishda o'zining `rateLimitOverrides` xaritasi ichida har bi
}
```
-Buni ulanish modalida (**Rate limit overrides → Har bir model uchun parallellik
-chegaralari**, har qatorda bitta `model=cap`) yoki xuddi shunday JSON ko'rinishi bilan
-`PATCH /api/providers/[id]` orqali o'rnating. Asosiy semantika:
-
-- **Butun ulanish bo'yicha va modelga xos:** `maxConcurrent` umumiy, butun
- ulanish bo'yicha chegara bo'lib qoladi. Ikkalasi ham qo'llanilganda, ikkala
- darvoza bir xil kompozit darvozada atomik tarzda olinadi
- (`global → provider → account → model`); amaliy natija — qo'llaniladigan
- eng qat'iy cheklovga teng.
-- **Model kalitining aniq mosligi:** kalit — marshrutlash aniqlangandan keyin
- ijrochiga uzatiladigan model satri, ya'ni odatda sof upstream model
- identifikatori (`glm-5`), mijoz tomonidagi `provider/model` taxallusi emas
- (`zai/glm-5` `glm-5` ga mos kelmaydi). Qiymatlar — musbat butun sonli parallel
- so'rovlar chegaralari.
-- **Mahalliy navbat, avtomatik aniqlash yo'q:** ortiqcha so'rovlar mavjud
- navbat/timeout semantikasi bilan mahalliy navbatga qo'yiladi (tipli
- `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` kirish xatolari). OmniRoute
- upstream siyosatini aniqlamaydi yoki taxmin qilmaydi — u operator sozlagan
- aniq chegaralarni qo'llaydi. To'yangan model darvozasi provayderni hech qachon
- o'chirmaydi va doimiy model blokirovkasini yaratmaydi; upstream
- 429/cooldown/fallback xatti-harakati xatolarning oxirgi himoyasi bo'lib qoladi.
-- **Har bir ulanish va har bir jarayon doirasida:** chegaralar har bir ma'lumotlar
- bazasi ulanishi uchun belgilanadi va xotirada saqlanadi, shuning uchun bir xil
- upstream API kalitini qayta ishlatadigan ikki ulanish bir-biri bilan
- muvofiqlashmaydi.
-- **Sozlanmagan — o'zgarmagan degani:** xaritani kiritmaslik (yoki boshqaruv
- paneli maydonini bo'sh qoldirish) hech qanday model darvozasini qo'shmaydi.
- Har qanday universal provayder chegarasini ta'kidlamagan holda misol
- konfiguratsiya:
+Uni ulanish rejimiga o'rnating (** Tarif chegarasi har bir model uchun → chegaralarini bekor qiladi** , har bir satr uchun bitta `model=cap` ) yoki bir xil JSON shakliga ega `PATCH /api/providers/[id]` orqali. Asosiy semantika:
+
+- **Ulanish bo'yicha va modelga xos:** `maxConcurrent` umumiy ulanish bo'yicha shift bo'lib qoladi. Ikkalasi ham qo'llanilganda, ikkala eshik ham bir xil kompozit eshikda (`global → provider → account → model`) atomik ravishda olinadi; samarali xatti-harakatlar qat'iyroq qo'llaniladigan chegaradir.
+- **Aniq model kaliti mosligi:** kalit — marshrutlashdan so'ng ijrochiga o'tkaziladigan model qatori odatda yalang'och yuqori oqim model identifikatori (`glm-5`), mijoz tomoni `provider/model` taxallus emas (`zai/glm-5` `glm-5` mos kelmaydi). Qiymatlar musbat-butun sonli bir vaqtning o'zida so'rovlar uchun shiftlardir.
+- **Mahalliy navbat, topilmadi:** ortiqcha so'rovlar mavjud queue/timeout semantikasi (yozilgan `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` kirish xatolari) bilan mahalliy navbatda. OmniRoute yuqori oqim siyosatini aniqlamaydi yoki xulosa qilmaydi — u operator sozlagan aniq shiftlarni amalga oshiradi. To'yingan model darvozasi hech qachon provayderni o'chirib qo'ymaydi va hech qachon doimiy model blokirovkasini yaratmaydi; upstream 429/cooldown/fallback xatti xato backstop bo'lib qoladi.
+- **Har bir ulanish, har bir jarayon doirasi:** bosh harflar har bir ma'lumotlar bazasi ulanishi va xotirada saqlanadi, shuning uchun bir xil yuqori oqim API kalitini qayta ishlatadigan ikkita ulanish bir-biri bilan muvofiqlashtirilmaydi.
+- **Konfiguratsiya o'zgarmagan degan ma'noni anglatadi:** xaritani o'tkazib yuborish (yoki asboblar paneli maydonini bo'sh qoldirish) hech qanday model darvozasini qo'shmaydi. Har qanday universal provayder chegarasini tasdiqlamasdan konfiguratsiyaga misol:
```text
glm-5=1
glm-4.7=3
```
-### Quota-share so'rovlarini seriyalash
-
-Quota-share yuborish (dispatch) musbat `max_concurrent` e'lon qilgan ulanishga
-qaratilganda, ushbu **hisobga** qilingan parallel so'rovlar har bir ulanish uchun
-semafor orqali seriyalanadi (kalit `qsconn:`): ortiqcha so'rovlar
-hisobni to'ldirib yuborish o'rniga **navbatda kutadi**. Bu **fail-open** — to'yangan
-navbat yoki timeout yuborilishi mumkin bo'lgan so'rovni hech qachon rad etish
-o'rniga, slotsiz davom etadi. **Sozlamalar → Chidamlilik → Quota-share har-ulanish
-parallelligi** bo'limida almashtiriladi
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, sukut bo'yicha yoqilgan).
-`max_concurrent` chegarasisiz xatti-harakat o'zgarmaydi.
-
-> Quota-share marshrutlash darvozasi (`selectQuotaShareTarget`, DRR + P2C) o'zi ham
-> fail-open bo'lib, chegaraga yetgan ulanishni faqat _ustuvorlikdan tushiradi_ —
-> bitta ulanishli hovuz (pool) bilan u qattiq cheklay olmaydi, shuning uchun
-> to'lqinni aslida ushbu semafor tiib turadi.
-
-### Kombinatsiya uchun cooldown'ni hisobga oluvchi qayta urinish
-
-Har bir kombinatsiya strategiyasi uchun (yoqilgan bo'lsa), QISQA vaqtinchalik
-cooldown sababli 429 ni keltirib chiqaradigan so'rov 429 ni qaytarish o'rniga
-uni kutib turadi va qayta yuboradi — bu ko'p modelli kombinatsiyalarda
-Gemini sinfidagi TPM/RPM oynalarini (~60s retry-after) qamrab oladi, masalan,
-2 modelli kombinatsiyaning ikkala nishoni ham model bo'yicha rate limit'ga duch
-kelganda. **Sozlamalar → Chidamlilik** dagi `comboCooldownWait` (`enabled`,
-`maxWaitMs`, `maxAttempts`, `budgetMs`) bilan chegaralanadi. U `quota_exhausted`
-(yarim tungacha qulflangan) yoki auth/not-found sabablari bo'yicha hech qachon
-kutmaydi.
-
-Xuddi shu darvoza yuborishdan oldingi holatni ham qamrab oladi (#16319): kombinatsiyaning
-har bir nishoni uning modeli qisqa vaqtinchalik blokirovkada bo'lgani uchun birorta
-urinish amalga oshirilishidan oldin o'tkazib yuborilsa, nol-urinishli yo'l xuddi
-shu chegaralar ostida qulfning ochilishini kutadi va qayta yuboradi — ishorasiz
-`503 ALL_TARGETS_SKIPPED` javobini berish o'rniga. Kutishga ruxsat bo'lmaganda
-(chegara, urinish yoki byudjet tugagan, yoki funksiya o'chirilgan), yakuniy javob
-eng erta vaqtinchalik qulfning tugash muddatidan olingan `retry_after` /
-`reset_at` qiymatlarini olib yuruvchi `429 rate_limit_error` ga ko'tariladi; kvota,
-auth va not-found qulflari ishorasiz 503 ni saqlab qoladi.
+### Kvota almashish soʻrovini ketma-ketlashtirish
+
+Kvota taqsimoti musbat `max_concurrent` e'lon qiladigan ulanishni maqsad qilganda, unga bir vaqtda so'rovlar yuboriladi.** hisob** har bir ulanish semafori (kalit `qsconn:`) orqali ketma-ketlashtiriladi: ortiqcha so'rovlar** navbatda kuting** hisobni to'ldirish o'rniga. Bu** muvaffaqiyatsiz ochiq** — to'yingan navbat yoki vaqt tugashi jo'natilishi mumkin bo'lgan so'rovni rad etishdan ko'ra, tirqishsiz davom etadi. Kirish** Parametrlar → Moslashuvchanlik → Kvota-ulanish uchun bir vaqtning o‘zida** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, sukut bo'yicha yoqilgan). `max_concurrent` qopqog'isiz xatti-harakatlar o'zgarmaydi.
+
+> Kvota-ulush marshrutlash eshigi (`selectQuotaShareTarget`, DRR + P2C) o'zi ishlamay qoladi va faqat bitta ulanishli hovuzga ega bo'lgan — ulanishini _deprioritizes_, u qattiq cheklay olmaydi, shuning uchun bu semafor aslida toshqinni o'z ichiga oladi.
+
+### Kombo sovishini biladigan qayta urinib ko'ring
+
+Har bir kombinatsiyalangan strategiya uchun (yoqilganda) SHORT vaqtinchalik sovutish uchun 429 ni kristallashtiradigan so'rov uni kutadi va 429 — ni qaytarish o'rniga qayta jo'natadi, bu Gemini-sinf TPM/RPM oynalarini (~ 60s qayta urinib ko'rishdan keyin) qamrab oladi, masalan, ko'p modelli kombo va har ikkala hi- tarif chegarasi. `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) bilan chegaralangan** → Moslashuvchanlik sozlamalari** . U hech qachon `quota_exhausted` (yarim tungacha qulflangan) yoki auth/not-found sabablarini kutmaydi.
+
+Kombo `config.comboCooldownWaitEnabled: false` bilan voz kechishi mumkin. Faqat literal `false` ushbu umumiy kombinatsiyalangan kutishlarni (jo'natishdan keyingi sovutish va jo'natishdan oldingi circuit-open/model-lock kutishlari) va ularning kutish-byudjet taymout-qavatini kengaytirishni o'chirib qo'yadi. Yo'qolgan yoki `true` global siyosatni saqlaydi; `true` global miqyosda o'chirilgan kutishni faollashtira olmaydi. Aniq `targetTimeoutMs` hali ham g'alaba qozonadi. Bu rad etish alohida mahalliy Codex burilishni oldindan jo'natishni kutishni o'zgartirmaydi.
+
+Xuddi shu darvoza jo'natishdan oldingi holatni (#16319) qamrab oladi: har qanday urinish amalga oshirilgunga qadar kombinatning har bir nishoni o'tkazib yuborilsa, uning modeli qisqa vaqtinchalik blokirovkada o'tirsa, nolga urinish yo'li bir xil shiftlar ostida qulfni kutadi va maslahatsiz `503 ALL_TARGETS_SKIPPED` javob berish o'rniga qayta jo'natadi. Kutishga ruxsat berilmaganda (shift, urinish yoki byudjet tugagan yoki xususiyat o'chirilgan), terminal javobi eng erta vaqtinchalik blokirovka muddati tugaganidan boshlab `retry_after` / `reset_at` ko'taruvchi `429 rate_limit_error` ga yangilanadi; kvota, auth va topilmagan qulflar maslahatsiz 503 ni saqlaydi.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/uz/docs/guides/USER_GUIDE.md b/docs/i18n/uz/docs/guides/USER_GUIDE.md
index b5023b7fa870..fe7bd7acfc80 100644
--- a/docs/i18n/uz/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/uz/docs/guides/USER_GUIDE.md
@@ -604,60 +604,60 @@ Muhit oʻzgaruvchilarining toʻliq maʼlumotnomasi uchun [README](../README.md)
---
-## 📊 Mavjud modellar
+## 📊 mavjud modellar
-Barcha mavjud modellarni koʻrish
+Barcha mavjud modellarni ko'ring
-> Quyidagi roʻyxat v3.8.0 uchun `open-sse/config/providerRegistry.ts` dan tayyorlangan. Bulutli kataloglar (Gemini, OpenRouter va boshqalar) dinamik ravishda sinxronlanadi — toʻliq jonli katalog uchun **Dashboard → Providers → [provider] → Available Models** boʻlimini oching yoki `GET /api/models/catalog` ni chaqiring.
+> Quyidagi roʻyxat `open-sse/config/providerRegistry.ts` dan v3.8.0 uchun tuzilgan. Bulutli kataloglar (Gemini, OpenRouter va boshqalar) toʻliq jonli katalogni ochish uchun dinamik ravishda — sinxronlashtiriladi.** Boshqaruv paneli → Provayderlar → [provayder] → Mavjud modellar** yoki `GET /api/models/catalog` ga qo'ng'iroq qiling.
>
-> Agar provayderning oʻrnatilgan roʻyxati eskirgan boʻlsa, jonli yuqori oqim katalogini olish uchun oʻsha sahifadagi **Import from /models** dan foydalaning (yoki **Auto-Sync** ni yoqing). Bu v3.8.50 da LLM7.io (`gemini-3.1-flash-lite`) va UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) uchun tasdiqlangan; Pollinations anonim kirishi xuddi shu test davomida yuqori oqim tomonidan cheklanganligicha qoldi.
+> Agar provayderning o'rnatilgan ro'yxati o'zgargan bo'lsa, foydalaning** /modellardan import qiling** o'sha sahifada (yoki yoqing** Avtomatik sinxronlash** ) jonli yuqoridagi katalogni tortib olish uchun. Bu LLM7.io (`gemini-3.1-flash-lite`) va UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) uchun v3.8.50 da tasdiqlangan; Changlanishlarga anonim kirish bir xil sinovdan o'tish vaqtida yuqori oqim bilan cheklangan bo'lib qoldi.
-**Claude Code (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude kodi (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort darajalari: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ harakat darajalari: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — BEPUL OAuth: **Dashboard → Providers → Kiro → Available Models** ostida koʻrsatilgan jonli katalogdan foydalaning. Mavjudlik hisob va rejaga bogʻliq.
+**Kiro (`kr/`)** — FREE OAuth: ostida ko‘rsatilgan jonli katalogdan foydalaning** Boshqaruv paneli → Provayderlar → Kiro → Mavjud modellar** . Mavjudligi hisob va rejaga bog'liq.
-**Qoder (`if/`)** — BEPUL OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — oyiga $9 belgilangan narx yoki har bir foydalanish uchun: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo tekis yoki foydalanish uchun: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — API kaliti: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Juda tezkor: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Ultra tezkor: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok native: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok mahalliy: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Yevropada joylashgan: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — Yevropa Ittifoqida joylashgan: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Qidiruv bilan kuchaytirilgan: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Chalkashlik (`pplx/`)** — kengaytirilgan qidiruv: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Ochiq kodli: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (bepul), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — Ochiq manba: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (bepul), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Tezkor inferens: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Tez xulosa: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Wafer-scale: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Gofret shkalasi: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — RAG ga yoʻnaltirilgan: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAGga yo‘naltirilgan: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Korporativ: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Korxona: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama Cloud (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Har bir API kaliti uchun Google dan jonli sinxronlanadi — statik roʻyxat yoʻq. **Dashboard → Providers** boʻlimida kalitni ulang, soʻng joriy katalogni import qilish uchun **Available Models** dan foydalaning (masalan, `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : Statik roʻyxatsiz Google — dan har bir API kaliti uchun jonli sinxronlangan. Kirish kalitini ulang** Boshqaruv paneli → provayderlari** keyin foydalaning** Mavjud modellar** joriy katalogni import qilish uchun (masalan `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Boshqa mos keluvchi provayderlar** (tanlangan): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (`aws-bedrock` orqali), `azure-ai`, `openrouter` (oʻtkazib yuborish katalogi), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Ularning har biri `providerRegistry.ts` da oʻz modellar roʻyxatini saqlaydi va provayder `/models` endpointini taqdim etganda avtomatik sinxronlanishi mumkin.
+**Boshqa mos keladigan provayderlar** (tanlangan): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` ( `aws-bedrock` orqali), `azure-ai`, `openrouter` (o‘tish katalogi), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, , `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai` `nous-research` `reka`, `volcengine`, `ai21` `gigachat` Har biri `providerRegistry.ts` -da o'z modellar ro'yxatini saqlaydi va provayder `/models` so'nggi nuqtasini ochganda avtomatik sinxronlashtirilishi mumkin.
-**Model ID lar haqida eslatma:** OmniRoute provayderga xos ID lardan foydalanadi (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Baʼzi ID lar nuqtali versiyalarni oʻz ichiga oladi, chunki yuqori oqim API si ularni aynan shunday kutadi. Agar model yuqorida keltirilmagan boʻlsa, mavjudligini tasdiqlash uchun `omniroute models --search ` ni ishga tushiring yoki `GET /api/models/catalog` ga murojaat qiling.
+**IDs modeli haqida eslatma:** OmniRoute provayder-native IDs dan foydalanadi (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Ba'zi IDs nuqtali versiyalarni o'z ichiga oladi, chunki yuqori oqim API ularni shunday kutadi. Agar model yuqorida ko'rsatilmagan bo'lsa, mavjudligini tasdiqlash uchun `omniroute models --search ` ishga tushiring yoki `GET /api/models/catalog` bosing.
diff --git a/docs/i18n/vi/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/vi/docs/architecture/RESILIENCE_GUIDE.md
index 160f041dfc67..5001352b3a59 100644
--- a/docs/i18n/vi/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/vi/docs/architecture/RESILIENCE_GUIDE.md
@@ -378,26 +378,17 @@ DB — chúng sẽ mất khi khởi động lại. Các _cài đặt_ thì đư
---
-## 4. Kiểm soát đồng thời Quota-Share (v3.8.36)
+## 4. Kiểm soát đồng thời chia sẻ hạn ngạch (v3.8.36)
-Các tài khoản thuê bao (GLM, MiniMax, v.v.) thường chỉ chấp nhận ~1–3 yêu cầu
-đồng thời; vượt quá mức đó sẽ gây ra lỗi 429 và cooldown. Điều này đặc biệt
-trầm trọng với các combo **quota-share** (`qtSd/…`), trong đó nhiều API key dùng
-chung một tài khoản upstream. Ba lớp bảo vệ giúp tài khoản dùng chung không bị
-dồn dập yêu cầu.
+Tài khoản đăng ký (GLM, MiniMax, v.v.) thường chỉ chấp nhận ~ 1–3 yêu cầu đồng thời; vượt quá mức đó sẽ kích hoạt 429 giây và thời gian hồi chiêu. Đây là tình trạng cấp tính dưới** chia sẻ hạn ngạch** (`qtSd/…`), trong đó một số khóa API chia sẻ một tài khoản ngược dòng. Ba lớp giữ cho tài khoản dùng chung không bị ngập.
-### Giới hạn đồng thời theo kết nối (`max_concurrent`)
+### Giới hạn đồng thời trên mỗi kết nối (`max_concurrent`)
-Mỗi kết nối provider có thể khai báo một ngưỡng trần `max_concurrent`
-(`provider_connections.max_concurrent`, đặt trong modal kết nối / API / DB).
-Để trống nếu không muốn giới hạn. Đây là núm vặn duy nhất điều khiển lớp tuần
-tự hóa bên dưới — hãy đặt nó bằng mức đồng thời thực tế của tài khoản (ví dụ:
-GLM ~1, MiniMax ~2).
+Mỗi kết nối nhà cung cấp có thể khai báo mức trần `max_concurrent` (`provider_connections.max_concurrent`, được đặt trong phương thức kết nối / API / DB). Để trống không có giới hạn. Đây là núm duy nhất điều khiển lớp tuần tự hóa bên dưới — đặt nó thành đồng thời thực sự của tài khoản (ví dụ GLM ~ 1, MiniMax ~ 2).
-### Giới hạn đồng thời theo model (`modelConcurrency`)
+### Giới hạn đồng thời cho mỗi mô hình (`modelConcurrency`)
-Một kết nối cũng có thể khai báo các ngưỡng trần đồng thời chính xác theo từng
-model bên trong map `rateLimitOverrides`:
+Ngoài ra, một kết nối có thể khai báo mức trần đồng thời chính xác cho mỗi mô hình bên trong bản đồ `rateLimitOverrides` của nó:
```json
{
@@ -408,77 +399,32 @@ model bên trong map `rateLimitOverrides`:
}
```
-Đặt giá trị này trong modal kết nối (**Ghi đè giới hạn tốc độ → Giới hạn đồng
-thời theo model**, mỗi dòng một `model=cap`) hoặc qua
-`PATCH /api/providers/[id]` với cùng cấu trúc JSON. Các ngữ nghĩa chính:
-
-- **Toàn kết nối so với theo model cụ thể:** `maxConcurrent` vẫn là ngưỡng
- trần chung cho toàn bộ kết nối. Khi cả hai cùng áp dụng, cả hai cổng đều
- được chiếm một cách nguyên tử trong cùng một cổng tổng hợp
- (`global → provider → account → model`); hành vi hiệu lực là giới hạn
- nghiêm ngặt hơn trong các giới hạn áp dụng được.
-- **Khớp chính xác khóa model:** khóa là chuỗi model được truyền tới executor
- sau khi phân giải định tuyến — thường là id model upstream thuần túy
- (`glm-5`), không phải alias `provider/model` phía client (`zai/glm-5` không
- khớp với `glm-5`). Giá trị là ngưỡng trần số yêu cầu đồng thời dạng số
- nguyên dương.
-- **Xếp hàng cục bộ, không khám phá:** các yêu cầu vượt mức sẽ xếp hàng cục bộ
- với ngữ nghĩa hàng đợi/timeout hiện có (các lỗi kiểm soát nhận yêu cầu có
- kiểu `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`). OmniRoute không khám phá
- hay suy luận chính sách upstream — nó chỉ thực thi chính xác các ngưỡng trần
- mà người vận hành đã cấu hình. Một cổng model bị bão hòa không bao giờ vô
- hiệu hóa provider và không bao giờ tạo ra khóa model vĩnh viễn; hành vi
- 429/cooldown/fallback từ upstream vẫn là chốt chặn lỗi cuối cùng.
-- **Phạm vi theo kết nối, theo tiến trình:** các giới hạn áp dụng cho từng kết
- nối trong cơ sở dữ liệu và được giữ trong bộ nhớ, vì vậy hai kết nối dùng
- chung một API key upstream sẽ không phối hợp với nhau.
-- **Không cấu hình nghĩa là không thay đổi:** bỏ qua map (hoặc để trống trường
- trên dashboard) sẽ không thêm cổng model nào. Cấu hình ví dụ không áp đặt
- bất kỳ giới hạn chung nào của provider:
+Đặt nó ở chế độ kết nối (** Giới hạn tốc độ ghi đè → Giới hạn đồng thời trên mỗi mô hình** , một `model=cap` trên mỗi dòng) hoặc qua `PATCH /api/providers/[id]` có cùng hình dạng JSON. Ngữ nghĩa chính:
+
+- **Kết nối trên toàn bộ so với mô hình cụ thể:** `maxConcurrent` vẫn là trần kết nối chung. Khi áp dụng cả hai, cả hai cổng đều được thu nhận nguyên tử trong cùng một cổng tổng hợp (`global → provider → account → model`); hành vi hiệu quả là giới hạn áp dụng chặt chẽ hơn.
+- **Kết hợp khóa mô hình chính xác:** khóa là chuỗi mô hình được chuyển cho người thực thi sau khi định tuyến độ phân giải — thông thường là id mô hình ngược dòng trần (`glm-5`), không phải bí danh `provider/model` phía máy khách (`zai/glm-5` không khớp với `glm-5`). Giá trị là mức trần yêu cầu đồng thời số nguyên dương.
+- **Xếp hàng cục bộ, không có khám phá:** các yêu cầu vượt quá xếp hàng cục bộ với ngữ nghĩa queue/timeout hiện có (lỗi nhập `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` đã nhập). OmniRoute không phát hiện hoặc suy ra chính sách ngược dòng — nó thực thi các mức trần chính xác mà nhà điều hành đã định cấu hình. Cổng mô hình bão hòa không bao giờ vô hiệu hóa nhà cung cấp và không bao giờ tạo ra khóa mô hình vĩnh viễn; hành vi 429/cooldown/fallback ngược dòng vẫn là lỗi dừng lại.
+- **Phạm vi mỗi kết nối, mỗi quy trình:** giới hạn dành cho mỗi kết nối cơ sở dữ liệu và được giữ trong bộ nhớ, do đó, hai kết nối sử dụng lại cùng một khóa API ngược dòng không phối hợp với nhau.
+- **Chưa được định cấu hình có nghĩa là không thay đổi:** bỏ qua bản đồ (hoặc để trống trường bảng thông tin) sẽ không thêm cổng mô hình. Cấu hình ví dụ mà không xác nhận bất kỳ giới hạn nào của nhà cung cấp phổ quát:
```text
glm-5=1
glm-4.7=3
```
-### Tuần tự hóa yêu cầu Quota-share
-
-Khi một lượt điều phối quota-share nhắm tới một kết nối có khai báo
-`max_concurrent` dương, các yêu cầu đồng thời tới **tài khoản** đó sẽ được
-tuần tự hóa qua một semaphore theo kết nối (khóa `qsconn:`): các
-yêu cầu vượt mức sẽ **chờ trong hàng đợi** thay vì dồn dập vào tài khoản. Cơ
-chế này là **fail-open** — hàng đợi bão hòa hoặc hết thời gian chờ sẽ tiếp tục
-mà không có slot, thay vì từ chối một yêu cầu vốn có thể điều phối được.
-Bật/tắt trong **Cài đặt → Khả năng phục hồi → Đồng thời theo kết nối
-Quota-share** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, mặc
-định bật). Nếu không có ngưỡng `max_concurrent`, hành vi không thay đổi.
-
-> Cổng định tuyến quota-share (`selectQuotaShareTarget`, DRR + P2C) bản thân
-> nó cũng fail-open và chỉ _giảm mức ưu tiên_ của một kết nối đã đạt ngưỡng —
-> với một pool chỉ có một kết nối, nó không thể giới hạn cứng, vì vậy
-> semaphore này mới chính là thứ thực sự ngăn chặn làn sóng yêu cầu.
-
-### Thử lại có nhận biết cooldown của combo
-
-Với mọi chiến lược combo (khi được bật), một yêu cầu mà lẽ ra sẽ trở thành lỗi
-429 do một cooldown tạm thời NGẮN sẽ chờ hết thời gian đó rồi điều phối lại
-thay vì trả về 429 — điều này bao phủ các cửa sổ TPM/RPM kiểu Gemini (~60s
-retry-after) trên các combo nhiều model, ví dụ cả hai đích của một combo 2
-model cùng chạm giới hạn tốc độ theo model. Được giới hạn bởi
-`comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) trong
-**Cài đặt → Khả năng phục hồi**. Nó không bao giờ chờ với `quota_exhausted`
-(bị khóa tới nửa đêm) hoặc các lý do xác thực/không tìm thấy.
-
-Cổng này cũng bao phủ trường hợp trước khi điều phối (#16319): khi mọi đích
-của một combo đều bị bỏ qua trước khi có bất kỳ lần thử nào vì model của nó
-đang nằm trong một khóa tạm thời ngắn, nhánh xử lý không-có-lần-thử sẽ chờ hết
-khóa trong cùng các ngưỡng trần rồi điều phối lại, thay vì trả về
-`503 ALL_TARGETS_SKIPPED` không kèm gợi ý. Khi không được phép chờ (đã hết
-ngưỡng, hết lượt thử hoặc hết ngân sách thời gian, hoặc tính năng bị tắt),
-phản hồi cuối cùng được nâng cấp thành `429 rate_limit_error` kèm theo
-`retry_after` / `reset_at` từ thời điểm hết hạn của khóa tạm thời sớm nhất;
-các khóa do hạn ngạch, xác thực và không tìm thấy vẫn giữ nguyên mã 503 không
-kèm gợi ý.
+### Tuần tự hóa yêu cầu chia sẻ hạn ngạch
+
+Khi công văn chia sẻ hạn ngạch nhắm mục tiêu kết nối khai báo `max_concurrent` dương, các yêu cầu đồng thời tới kết nối đó** tài khoản** được tuần tự hóa thông qua một semaphore trên mỗi kết nối (khóa `qsconn:`): yêu cầu vượt quá** chờ trong hàng đợi** thay vì làm ngập tài khoản. Đó là** mở không thành công** — một hàng đợi bão hòa hoặc hết thời gian chờ sẽ tiếp tục mà không có thời điểm thay vì từ chối một yêu cầu có thể gửi đi. Chuyển đổi trong** Cài đặt → Khả năng phục hồi → Hạn ngạch chia sẻ đồng thời trên mỗi kết nối** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, bật mặc định). Nếu không có giới hạn `max_concurrent` thì hành vi sẽ không thay đổi.
+
+> Cổng định tuyến chia sẻ hạn ngạch (`selectQuotaShareTarget`, DRR + P2C) tự mở không thành công và chỉ _deprioritizes_ một kết nối giới hạn — với một nhóm kết nối duy nhất mà nó không thể giới hạn cứng, vì vậy semaphore này thực sự chứa lũ.
+
+### Thử lại nhận biết thời gian hồi chiêu của combo
+
+Đối với mọi chiến lược kết hợp (khi được bật), một yêu cầu sẽ kết tinh 429 cho thời gian hồi chiêu tạm thời SHORT sẽ chờ nó và gửi lại thay vì trả lại 429 — điều này bao gồm các cửa sổ TPM/RPM cấp Gemini (~ 60s thử lại sau) trên các kết hợp nhiều mô hình, ví dụ: cả hai mục tiêu của tổ hợp 2 mô hình đều đạt giới hạn tốc độ cho mỗi mô hình. Giới hạn bởi `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) trong** Cài đặt → Khả năng phục hồi** . Nó không bao giờ đợi vì lý do `quota_exhausted` (bị khóa đến nửa đêm) hoặc auth/not-found.
+
+Một sự kết hợp có thể chọn không tham gia với `config.comboCooldownWaitEnabled: false`. Chỉ `false` theo nghĩa đen mới vô hiệu hóa các thời gian chờ kết hợp được chia sẻ này (thời gian hồi chiêu sau khi gửi và thời gian chờ circuit-open/model-lock trước khi gửi) và phần mở rộng thời gian chờ theo ngân sách chờ của chúng. Thiếu hoặc `true` duy trì chính sách toàn cầu; `true` không thể kích hoạt tính năng chờ bị vô hiệu hóa trên toàn cầu. Một `targetTimeoutMs` rõ ràng vẫn thắng. Việc chọn không tham gia này không làm thay đổi thời gian chờ gửi trước mã pin riêng biệt của Codex.
+
+Cổng tương tự bao gồm trường hợp trước khi gửi đi (#16319): khi mọi mục tiêu của một tổ hợp đều bị bỏ qua trước khi thực hiện bất kỳ nỗ lực nào vì mô hình của nó nằm trong tình trạng khóa tạm thời trong thời gian ngắn, đường dẫn không thử sẽ đợi khóa trong cùng một mức trần và gửi lại, thay vì trả lời `503 ALL_TARGETS_SKIPPED` không có gợi ý. Khi không được phép chờ đợi (hết trần, nỗ lực hoặc hết ngân sách hoặc tắt tính năng), phản hồi của thiết bị đầu cuối sẽ nâng cấp lên `429 rate_limit_error` mang `retry_after` / `reset_at` kể từ thời điểm hết hạn khóa tạm thời sớm nhất; hạn ngạch, khóa xác thực và khóa không tìm thấy giữ nguyên 503 không có gợi ý.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/vi/docs/guides/USER_GUIDE.md b/docs/i18n/vi/docs/guides/USER_GUIDE.md
index a3242f5126c8..7507adfdac2b 100644
--- a/docs/i18n/vi/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/vi/docs/guides/USER_GUIDE.md
@@ -607,60 +607,60 @@ post_install() {
---
-## 📊 Các mô hình khả dụng
+## 📊 Các mẫu có sẵn
-Xem tất cả các mô hình khả dụng
+Xem tất cả các mẫu có sẵn
-> Danh sách dưới đây được tuyển chọn từ `open-sse/config/providerRegistry.ts` cho v3.8.0. Các danh mục đám mây (Gemini, OpenRouter, v.v.) được đồng bộ động — để xem toàn bộ danh mục trực tiếp, hãy mở **Bảng điều khiển → Nhà cung cấp → [provider] → Mô hình khả dụng** hoặc gọi `GET /api/models/catalog`.
+> Danh sách bên dưới được tuyển chọn từ `open-sse/config/providerRegistry.ts` cho v3.8.0. Danh mục đám mây (Gemini, OpenRouter, v.v.) được đồng bộ hóa động — để mở toàn bộ danh mục trực tiếp** Bảng điều khiển → Nhà cung cấp → [nhà cung cấp] → Các mô hình có sẵn** hoặc gọi `GET /api/models/catalog`.
>
-> Nếu danh sách tích hợp sẵn của một nhà cung cấp bị lệch, hãy dùng **Nhập từ /models** trên trang đó (hoặc bật **Tự động đồng bộ**) để kéo danh mục trực tiếp từ upstream. Điều này đã được xác minh ở v3.8.50 cho LLM7.io (`gemini-3.1-flash-lite`) và UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); quyền truy cập ẩn danh của Pollinations vẫn bị giới hạn bởi upstream trong cùng đợt kiểm thử đó.
+> Nếu danh sách tích hợp của nhà cung cấp bị trôi đi, hãy sử dụng** Nhập từ /model** trên trang đó (hoặc bật** Tự động đồng bộ hóa** ) để kéo danh mục ngược dòng trực tiếp. Điều này đã được xác minh trong v3.8.50 cho LLM7.io (`gemini-3.1-flash-lite`) và UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Quyền truy cập ẩn danh của các cuộc thăm dò vẫn bị giới hạn ngược dòng trong cùng một lần vượt qua thử nghiệm.
-**Claude Code (`cc/`)** — OAuth Pro/Max: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — OAuth Plus/Pro: `cx/gpt-5.5` (+ các mức effort: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ effort tiers: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth MIỄN PHÍ: sử dụng danh mục trực tiếp hiển thị tại **Bảng điều khiển → Nhà cung cấp → Kiro → Mô hình khả dụng**. Tính khả dụng phụ thuộc vào tài khoản và gói dịch vụ.
+**Kiro (`kr/`)** — FREE OAuth: sử dụng danh mục trực tiếp hiển thị bên dưới** Bảng điều khiển → Nhà cung cấp → Kiro → Các mô hình có sẵn** . Tính khả dụng tùy thuộc vào tài khoản và gói.
-**Qoder (`if/`)** — OAuth MIỄN PHÍ: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/tháng cố định hoặc tính theo lượt sử dụng: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo phẳng hoặc mỗi lần sử dụng: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — Khóa API: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** khóa — API : `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Tốc độ cực nhanh: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Cực nhanh: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok chính chủ: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok gốc: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Lưu trữ tại EU: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — được lưu trữ tại EU: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Tăng cường tìm kiếm: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Sự bối rối (`pplx/`)** — Tìm kiếm tăng cường: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
**Together AI (`together/`)** — Mã nguồn mở: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (miễn phí), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
**Fireworks AI (`fireworks/`)** — Suy luận nhanh: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Quy mô wafer: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Thang đo wafer: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Tập trung vào RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — tập trung vào RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
**NVIDIA NIM (`nvidia/`)** — Doanh nghiệp: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
-**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
+**Baidu Thiên Phàm (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Được đồng bộ trực tiếp theo từng khóa API từ Google — không có danh sách tĩnh. Kết nối một khóa trong **Bảng điều khiển → Nhà cung cấp** rồi dùng **Mô hình khả dụng** để nhập danh mục hiện tại (ví dụ: `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Đám mây `gemini/`)** : Được đồng bộ hóa trực tiếp trên mỗi khóa API từ Google — không có danh sách tĩnh. Kết nối một phím trong** Bảng điều khiển → Nhà cung cấp** sau đó sử dụng** Các mẫu có sẵn** để nhập danh mục hiện tại (ví dụ `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Các nhà cung cấp tương thích khác** (tuyển chọn): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (qua `aws-bedrock`), `azure-ai`, `openrouter` (danh mục chuyển tiếp), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Mỗi nhà cung cấp duy trì danh sách mô hình riêng trong `providerRegistry.ts` và có thể được tự động đồng bộ khi nhà cung cấp đó cung cấp endpoint `/models`.
+**Các nhà cung cấp tương thích khác** (đã chọn): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (thông qua `aws-bedrock`), `azure-ai`, `openrouter` (danh mục thông qua), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Mỗi mô hình duy trì danh sách mô hình riêng của mình trong `providerRegistry.ts` và có thể được tự động đồng bộ hóa khi nhà cung cấp hiển thị điểm cuối `/models`.
-**Lưu ý về ID mô hình:** OmniRoute sử dụng các ID nguyên bản của nhà cung cấp (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Một số ID chứa phiên bản có dấu chấm vì đó là định dạng mà API upstream mong đợi. Nếu một mô hình không có trong danh sách trên, hãy chạy `omniroute models --search ` hoặc gọi `GET /api/models/catalog` để xác nhận tính khả dụng.
+**Lưu ý về mô hình IDs:** OmniRoute sử dụng IDs gốc của nhà cung cấp (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Một số IDs bao gồm các phiên bản có dấu chấm vì đó là cách API ngược dòng mong đợi chúng. Nếu một kiểu máy không được liệt kê ở trên, hãy chạy `omniroute models --search ` hoặc nhấn `GET /api/models/catalog` để xác nhận tình trạng còn hàng.
diff --git a/docs/i18n/yo/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/yo/docs/architecture/RESILIENCE_GUIDE.md
index cdae84b74dbe..5721aff72400 100644
--- a/docs/i18n/yo/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/yo/docs/architecture/RESILIENCE_GUIDE.md
@@ -281,26 +281,17 @@ tó ń ṣiṣẹ́ jẹ́ ti ìgbà díẹ̀.
---
-## 4. Ìṣàkóso Ìṣiṣẹ́pọ̀ Quota-Share (v3.8.36)
+## 4. Pipin-pipin Iṣakoso Iyipada owo (v3.8.36)
-Àwọn àkọọ́lẹ̀ ìforúkọsílẹ̀ (GLM, MiniMax, abbl.) sábà máa ń gba nǹkan bí ìbéèrè
-~1–3 péré ní àkókò kan náà; fífi ju bẹ́ẹ̀ lọ ń fa 429 àti àwọn àkókò ìdádúró.
-Èyí le gan-an lábẹ́ àwọn àkójọpọ̀ **quota-share** (`qtSd/…`), níbi tí ọ̀pọ̀
-kọ́kọ́rọ́ API ti ń pín àkọọ́lẹ̀ iṣẹ́ òkè kan náà. Ìpele mẹ́ta ló ń dáàbò bo
-àkọọ́lẹ̀ tí a jọ ń lò kí ìbéèrè má bàa kún inú rẹ̀ kọjá ààlà.
+Awọn akọọlẹ ṣiṣe alabapin (GLM, MiniMax, ati bẹbẹ lọ) nigbagbogbo gba awọn ibeere igbakana ~ 1–3; ju ti o okunfa 429s ati cooldowns. Eleyi jẹ ńlá labẹ** ipin-pin** (`qtSd/…`) combos, nibiti ọpọlọpọ awọn bọtini API pin akọọlẹ oke kan. Awọn ipele mẹta tọju akọọlẹ pinpin lati jẹ iṣan omi.
-### Ààlà ìṣiṣẹ́pọ̀ fún asopọ̀ kọ̀ọ̀kan (`max_concurrent`)
+### Ila asopọ fun-asopọmọra (`max_concurrent`)
-Asopọ̀ olùpèsè kọ̀ọ̀kan lè sọ ààlà `max_concurrent` kan
-(`provider_connections.max_concurrent`, tí a ṣètò nínú fèrèsé asopọ̀ / API / DB).
-Fi í sílẹ̀ ní òfo tí o kò bá fẹ́ ààlà. Èyí ni ìṣàkóso kan ṣoṣo tó ń darí ìpele
-títẹ̀lé-lẹ́sẹẹsẹ ní ìsàlẹ̀ — ṣètò rẹ̀ sí iye ìṣiṣẹ́pọ̀ gidi ti àkọọ́lẹ̀ náà
-(fún àpẹẹrẹ, GLM ~1, MiniMax ~2).
+Asopọmọra olupese kọọkan le sọ orule `max_concurrent` (`provider_connections.max_concurrent`, ti a ṣeto sinu modal asopọ / API / DB). Fi silẹ ni ofo fun ko si iye to. Eyi ni koko ẹyọkan ti o wakọ ipele serialization ti o wa ni isalẹ — ṣeto si ibaramu gidi ti akọọlẹ naa (fun apẹẹrẹ GLM ~ 1, MiniMax ~ 2).
-### Àwọn ààlà ìṣiṣẹ́pọ̀ fún awoṣe kọ̀ọ̀kan (`modelConcurrency`)
+### Fun-awoṣe awọn fila concurrency (`modelConcurrency`)
-Asopọ̀ kan tún lè sọ àwọn ààlà ìṣiṣẹ́pọ̀ pàtó fún awoṣe kọ̀ọ̀kan
-nínú máàpù `rateLimitOverrides` rẹ̀:
+Asopọ le ni afikun sọ asọye gangan fun-awoṣe awọn orule concurrency inu maapu `rateLimitOverrides` rẹ:
```json
{
@@ -311,80 +302,32 @@ nínú máàpù `rateLimitOverrides` rẹ̀:
}
```
-Ṣètò rẹ̀ nínú fèrèsé asopọ̀ (**Àwọn àtúnṣe ààlà oṣùwọ̀n → Àwọn ààlà
-ìṣiṣẹ́pọ̀ fún awoṣe kọ̀ọ̀kan**, `model=cap` kan lórí ìlà kọ̀ọ̀kan) tàbí nípasẹ̀
-`PATCH /api/providers/[id]` pẹ̀lú ìrísí JSON kan náà. Ìtumọ̀ àwọn kọ́kọ́rọ́:
-
-- **Gbogbo asopọ̀ ní ìfiwéra pẹ̀lú awoṣe pàtó:** `maxConcurrent` ṣì jẹ́ ààlà
- tí gbogbo asopọ̀ ń pín. Nígbà tí àwọn méjèèjì bá wúlò, a máa gba àwọn ẹnu-ọ̀nà
- méjèèjì lẹ́ẹ̀kan náà nínú ẹnu-ọ̀nà àpapọ̀ kan
- (`global → provider → account → model`); ààlà tó le jù lára àwọn tó wúlò
- ni yóò ní ipa.
-- **Ìbámu pípé ti kọ́kọ́rọ́ awoṣe:** kọ́kọ́rọ́ náà ni ọ̀rọ̀ awoṣe tí a fi ránṣẹ́
- sí olùṣiṣẹ́ lẹ́yìn tí a bá ti pinnu ipa-ọ̀nà — nígbà gbogbo, ó jẹ́ id awoṣe
- òkè lásán (`glm-5`), kì í ṣe orúkọ àpèjúwe `provider/model` láti ọ̀dọ̀
- oníbàárà (`zai/glm-5` kò bá `glm-5` mu). Àwọn iye gbọdọ̀ jẹ́ odidi rere
- tó ń ṣàlàyé ààlà iye ìbéèrè tó lè ṣiṣẹ́ ní àkókò kan náà.
-- **Ìtòlẹ́sẹẹsẹ agbègbè, kò sí ìṣàwárí:** àwọn ìbéèrè tó kọjá ààlà máa dúró
- nínú ìtòlẹ́sẹẹsẹ agbègbè pẹ̀lú ìlànà ìtòlẹ́sẹẹsẹ/àkókò-ìparí tó ti wà
- (àwọn àṣìṣe ìgbàwọlé onírúurú `SEMAPHORE_TIMEOUT` /
- `SEMAPHORE_QUEUE_FULL`). OmniRoute kì í ṣàwárí tàbí fojú díwọ̀n ìlànà
- iṣẹ́ òkè — ó ń fi àwọn ààlà pàtó tí olùdarí ṣètò múlẹ̀. Ẹnu-ọ̀nà awoṣe
- tó ti kún kì í pa olùpèsè, bẹ́ẹ̀ ni kì í dá ìdènà awoṣe títí láé sílẹ̀;
- ìhùwàsí 429/àkókò ìdádúró/ìyípadà sí omiì ti iṣẹ́ òkè ṣì jẹ́ ààbò ìkẹyìn
- fún àṣìṣe.
-- **Ìpín fún asopọ̀ kọ̀ọ̀kan, fún ìlànà-iṣẹ́ kọ̀ọ̀kan:** àwọn ààlà jẹ́ ti
- asopọ̀ ibi ìpamọ́ dátà kọ̀ọ̀kan, a sì ń pa wọ́n mọ́ sínú ìrántí; nítorí náà,
- asopọ̀ méjì tó tún ń lo kọ́kọ́rọ́ API iṣẹ́ òkè kan náà kì í ṣọ̀kan pẹ̀lú
- ara wọn.
-- **Àìṣètò túmọ̀ sí pé kò sí ìyípadà:** fífi máàpù náà sílẹ̀ (tàbí fífi
- ààyè inú pánẹ́ẹ̀lì sílẹ̀ ní òfo) kò fi ẹnu-ọ̀nà awoṣe kankan kún un.
- Àpẹẹrẹ ìṣètò láì sọ pé ààlà olùpèsè àgbáyé kankan wà:
+Ṣeto rẹ ni ọna asopọ asopọ (** Idiwọn oṣuwọn dojuiwọn → Per-awoṣe concurrency awọn fila** , ọkan `model=cap` fun laini) tabi nipasẹ `PATCH /api/providers/[id]` pẹlu apẹrẹ JSON kanna. Awọn itumọ bọtini:
+
+- **Asopọ-jakejado vs awoṣe-pato:** `maxConcurrent` maa wa ni ile asopọ ti o pin jakejado. Nigbati awọn mejeeji ba waye, awọn ẹnu-ọna mejeeji ni a gba ni atomiki ni ẹnu-ọna akojọpọ akojọpọ kanna (`global → provider → account → model`); awọn munadoko ihuwasi ni awọn stricter wulo iye to.
+- **Baramu-bọtini awoṣe gangan:** bọtini naa ni okun awoṣe ti o ti kọja si olupilẹṣẹ lẹhin ipinnu idari — ni deede iṣii awoṣe ti o wa ni oke (`glm-5`), kii ṣe alias onibara- `provider/model` (`zai/glm-5` ko baramu `glm-5`). Awọn iye jẹ odidi-odidi-rere nigbakanna-ibeere orule.
+- **Ti isinyi agbegbe, ko si awari:** awọn ibeere ti o pọju ti isinyi ni agbegbe pẹlu awọn itumọ queue/timeout ti o wa tẹlẹ (ti tẹ `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` awọn aṣiṣe gbigba). OmniRoute ko ṣe awari tabi ṣe alaye eto imulo oke — o fi ipa mu awọn orule gangan ti oniṣẹ tunto. Ẹnu-ọna awoṣe ti o ni kikun ko mu olupese ṣiṣẹ ati pe ko ṣẹda titiipa awoṣe titilai; ihuwasi 429/cooldown/fallback ti o wa ni oke si wa aṣiṣe ẹhin.
+- **Isopọmọ-kọọkan, aaye-ilana-ilana:** awọn fila wa fun asopọ data data ati ti o waye ni iranti, nitorinaa awọn asopọ meji ti n lo bọtini API oke kanna ko ni ipoidojuko pẹlu ara wọn.
+- **Aitunto tumo si ko yipada:** yiyọ maapu naa (tabi fifi aaye dasibodu silẹ ni ofifo) ko ṣe afikun ẹnu-ọna awoṣe. Iṣeto apẹẹrẹ lai ṣe afihan eyikeyi opin olupese agbaye:
```text
glm-5=1
glm-4.7=3
```
-### Títẹ̀lé-lẹ́sẹẹsẹ àwọn ìbéèrè quota-share
-
-Nígbà tí ìfiranṣẹ́ quota-share bá dojú kọ asopọ̀ kan tó sọ `max_concurrent`
-rere, a máa tẹ àwọn ìbéèrè tó ń lọ sí **àkọọ́lẹ̀** náà ní àkókò kan náà
-lẹ́sẹẹsẹ nípasẹ̀ semaphore fún asopọ̀ kọ̀ọ̀kan (kọ́kọ́rọ́
-`qsconn:`): àwọn ìbéèrè tó kọjá ààlà **máa dúró nínú
-ìtòlẹ́sẹẹsẹ** dípò kí wọ́n kún inú àkọọ́lẹ̀ náà. Ó jẹ́ **ṣí-sílẹ̀ nígbà
-ìkùnà** — ìtòlẹ́sẹẹsẹ tó ti kún tàbí àkókò tó parí máa tẹ̀síwájú láì gba
-àyè kan dípò kí ó kọ ìbéèrè tó ṣeé firánṣẹ́ sílẹ̀ láéláé. Tan-an tàbí pa á
-nínú **Àwọn ìṣètò → Ìfaradà → Ìṣiṣẹ́pọ̀ fún asopọ̀ quota-share kọ̀ọ̀kan**
-(`resilienceSettings.quotaShareConcurrencyLimit.enabled`, ó máa ń wà ní títàn
-ní ìbẹ̀rẹ̀). Láìsí ààlà `max_concurrent`, ìhùwàsí náà kò ní yí padà.
-
-> Ẹnu-ọ̀nà ìdarí ipa-ọ̀nà quota-share (`selectQuotaShareTarget`, DRR + P2C)
-> fúnra rẹ̀ jẹ́ èyí tó ṣí-sílẹ̀ nígbà ìkùnà, ó sì kàn ń _dín ààyè àṣàyàn_
-> asopọ̀ tó ti dé ààlà kù — pẹ̀lú àkójọpọ̀ asopọ̀ kan ṣoṣo, kò lè fi ààlà
-> líle múlẹ̀, nítorí náà semaphore yìí gan-an ló ń ṣàkóso ìṣàn ìbéèrè tó pọ̀.
-
-### Àtúngbìyànjú tó mọ àkókò ìdádúró àkójọpọ̀
-
-Fún gbogbo ọgbọ́n àkójọpọ̀ (nígbà tí ó bá ṣiṣẹ́), ìbéèrè kan tó máa mú 429
-kẹyìn wá nítorí àkókò ìdádúró alágbàákò KÚKÚRÚ máa dúró de òpin rẹ̀, yóò sì
-tún fi ìbéèrè náà ránṣẹ́ dípò pípadà 429 — èyí bo àwọn àkókò TPM/RPM irú ti
-Gemini (~60s retry-after) lórí àwọn àkójọpọ̀ awoṣe-púpọ̀, fún àpẹẹrẹ, nígbà
-tí àwọn ibi-afẹ́ méjèèjì nínú àkójọpọ̀ awoṣe méjì bá dé ààlà oṣùwọ̀n fún
-awoṣe kọ̀ọ̀kan. `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`,
-`budgetMs`) nínú **Àwọn ìṣètò → Ìfaradà** ló fi ààlà sí i. Kò dúró láéláé
-lórí `quota_exhausted` (tí a ti tì pa títí di ọ̀gànjọ́ òru) tàbí àwọn ìdí
-ìfàṣẹsí/àìrí.
-
-Ẹnu-ọ̀nà kan náà tún bo ipò ṣáájú ìfiranṣẹ́ (#16319): nígbà tí a bá foju kọ
-gbogbo ibi-afẹ́ àkójọpọ̀ kan kí ìgbìyànjú kankan tó bẹ̀rẹ̀ nítorí pé awoṣe
-wọn wà lábẹ́ ìdènà alágbàákò kúkúrú, ipa-ọ̀nà aláìní-ìgbìyànjú náà máa dúró
-de òpin ìdènà lábẹ́ àwọn ààlà kan náà, yóò sì tún fi ìbéèrè náà ránṣẹ́, dípò
-dídi èsì `503 ALL_TARGETS_SKIPPED` tí kò ní ìtọ́kasí. Nígbà tí a kò bá gba
-ìdúró láàyè (ààlà ti dé, iye ìgbìyànjú tàbí ìnáwó ti parí, tàbí àǹfààní náà
-wà ní pípà), èsì ìkẹyìn máa yí sí `429 rate_limit_error` tó ní `retry_after` /
-`reset_at` láti àkókò ìparí ìdènà alágbàákò tó kọ́kọ́ dé; àwọn ìdènà kótà,
-ìfàṣẹsí àti àìrí máa pa 503 tí kò ní ìtọ́kasí mọ́.
+### Pipin-pin ibeere serialization
+
+Nigbati ifiranse ipin ipin kan fojusi asopọ kan ti o sọ `max_concurrent` rere kan, awọn ibeere nigbakanna si iyẹn** iroyin** ti wa ni serialized nipasẹ kan fun-asopọ semaphore (bọtini `qsconn:`): excess ibeere** duro ninu awọn ti isinyi** dipo ti ikunomi iroyin. O jẹ** kuna-ìmọ** — isinyi ti o kun tabi awọn ere akoko ipari laisi iho kuku ju kiko ibeere ti o le firanṣẹ nigbagbogbo. Yipada sinu** Eto → Resilience → Quota-pin fun concurrency asopo ohun** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, aiyipada lori). Laisi fila `max_concurrent` ihuwasi ko yipada.
+
+> Ẹnu-ọna afisona ipin ipin (`selectQuotaShareTarget`, DRR + P2C) funrararẹ kuna-ṣii ati pe nikan _deprioritizes_ asopọ ni-fila — pẹlu adagun-asopọ kan ko le ni opin-lile, nitorinaa semaphore yii jẹ ohun ti o ni ikun omi gangan ninu.
+
+### Konbo cooldown-mọ tun gbiyanju
+
+Fun gbogbo ilana konbo (nigbati o ba ṣiṣẹ), ibeere ti yoo ṣe 429 fun itutu agbaiye akoko SHORT duro de ki o tun fi ranṣẹ dipo ki o pada 429 — eyi ni wiwa Gemini-kilasi TPM/RPM windows (~ 60s tun gbiyanju-lẹhin) lori awọn akojọpọ awoṣe pupọ, fun apẹẹrẹ awọn ibi-afẹde mejeeji ti oṣuwọn 2-model kan. Dide nipasẹ `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) ninu** Eto → Resilience** . Ko duro lori `quota_exhausted` (tiipa titi di ọganjọ oru) tabi awọn idi auth/not-found.
+
+Konbo le jade pẹlu `config.comboCooldownWaitEnabled: false`. `false` gangan nikan ni o pa awọn idaduro konbo pinpin wọnyi (itutu-itupalẹ lẹhin-ifiranṣẹ ati awọn iduro-fifiranṣẹ circuit-open/model-lock nduro) ati idaduro-isuna-iduro-isunwo-akoko-pakà wọn. Sonu tabi `true` ṣe itọju eto imulo agbaye; `true` ko le mu idaduro alaabo agbaye ṣiṣẹ. `targetTimeoutMs` ti o fojuhan ṣi bori. Ijade-jade yii ko yi iṣipaya ara-ẹni-Codex turn-pin diduro-ifiranṣẹ tẹlẹ.
+
+Ẹnu-ọna kanna ni wiwa ọran-ifilọlẹ-ṣaaju (#16319): nigbati gbogbo ibi-afẹde ti konbo ti fo ṣaaju ki o to ṣe eyikeyi igbiyanju nitori pe awoṣe rẹ joko ni titiipa igba diẹ kukuru, ọna igbiyanju odo n duro de titiipa labẹ awọn orule kanna ati tun-firanṣẹ, dipo ti o dahun `503 ALL_TARGETS_SKIPPED` ti ko ni ofiri. Nigbati ko ba gba idaduro laaye (aja, igbiyanju tabi isuna ti o rẹ, tabi ẹya naa kuro), awọn iṣagbega esi ebute si `429 rate_limit_error` ti o n gbe `retry_after` / `reset_at` lati akoko titiipa igba diẹ akọkọ; ipin, auth ati awọn titiipa ti a ko rii jẹ ki itọkasi-kere 503.
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/yo/docs/guides/USER_GUIDE.md b/docs/i18n/yo/docs/guides/USER_GUIDE.md
index 694b63284d69..c4edeedcfc25 100644
--- a/docs/i18n/yo/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/yo/docs/guides/USER_GUIDE.md
@@ -606,60 +606,60 @@ Fún àlàyé kíkún nípa àwọn àyípadà ayíká, wo [README](../README.md
---
-## 📊 Àwọn Awoṣe Tó Wà Lọ́wọ́
+## 📊 Awọn awoṣe ti o wa
-Wo gbogbo àwọn awoṣe tó wà lọ́wọ́
+Wo gbogbo awọn awoṣe to wa
-> Àkópọ̀ tó wà ní isàlẹ̀ ni a kó papọ̀ láti inu `open-sse/config/providerRegistry.ts` fún v3.8.0. Àwọn kàtálógù awọ̀nàmáàmá (Gemini, OpenRouter, àti bẹ́ẹ̀bẹ́ẹ̀ lọ) ni wọ́n ń ṣe àmúṣẹ́pọ̀ lọ́nà aláṣẹ́ṣe — fún kàtálógù tó ń ṣiṣẹ́ ní kikun, ṣí **Pátákó Ìṣàkóso → Àwọn Olùpèsè → [olùpèsè] → Àwọn Awoṣe Tó Wà Lọ́wọ́** tàbí pe `GET /api/models/catalog`.
+> Atokọ ti o wa ni isalẹ wa ni curated lati `open-sse/config/providerRegistry.ts` fun v3.8.0. Awọn katalogi awọsanma (Gemini, OpenRouter, ati bẹbẹ lọ) jẹ mimuṣiṣẹpọ ni agbara — fun ṣiṣi katalogi laaye ni kikun** Dasibodu → Awọn olupese → [olupese] → Awọn awoṣe ti o wa** tabi pe `GET /api/models/catalog`.
>
-> Bí àkópọ̀ àtòbáwá ti olùpèsè kan bá ti yí padà, lo **Gba wọlé láti /models** lórí ojú-ìwé yẹn (tàbí mú **Àmúṣẹ́pọ̀ Aláṣẹ́ṣe** ṣiṣẹ́) láti fa kàtálógù orísun òkè tó ń ṣiṣẹ́. A fìdí èyí múlẹ̀ ní v3.8.50 fún LLM7.io (`gemini-3.1-flash-lite`) àti UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); ìwọ̀le aláìlórúkọ ti Pollinations ṣì wà lábẹ́ ààlà orísun òkè nígbà àyẹ̀wó kannáà náà.
+> Ti atokọ ti a ṣe sinu olupese ti lọ, lo** Gbe wọle lati / awọn awoṣe** lori oju-iwe yẹn (tabi mu ṣiṣẹ** Ṣiṣẹpọ-laifọwọyi** ) lati fa awọn ifiwe soke katalogi. Eyi jẹri ni v3.8.50 fun LLM7.io (`gemini-3.1-flash-lite`) ati UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Wiwọle alailorukọ pollinations wa ni opin si oke lakoko idanwo idanwo kanna.
-**Claude Code (`cc/`)** — OAuth Pro/Max: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
+**koodu Claude (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
-**Codex (`cx/`)** — OAuth Plus/Pro: `cx/gpt-5.5` (+ àwọn ipele ìsapá: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+ akitiyan tiers: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro (`kr/`)** — OAuth lọ́fẹ̀ẹ́: lo kàtálógù tó ń ṣiṣẹ́ tí wọ́n fi hàn lábẹ́ **Pátákó Ìṣàkóso → Àwọn Olùpèsè → Kiro → Àwọn Awoṣe Tó Wà Lọ́wọ́**. Èyí tó wà lọ́wọ́ dá lórí àkáǹtì àti ètò rẹ̀.
+**Kiro (`kr/`)** — FREE OAuth: lo awọn ifiwe katalogi han labẹ** Dasibodu → Awọn olupese → Kiro → Awọn awoṣe to wa** . Wiwa da lori akọọlẹ ati ero.
-**Qoder (`if/`)** — OAuth lọ́fẹ̀ẹ́: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/fún oṣù lọ́nà tó dúró tàbí gẹ́gẹ́ bí ìlò ṣe lọ: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo alapin tabi fun lilo: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
-**DeepSeek (`ds/`)** — Kọ́kọ́rọ̀ API: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API bọtini: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
-**Groq (`groq/`)** — Ó yára gan-an: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** — Ultra-sare: `groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
-**xAI (`xai/`)** — Grok àbíbí: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok abinibi: `xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
-**Mistral (`mistral/`)** — Tí wọ́n gbé ní EU: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
+**Mistral (`mistral/`)** — EU ti gbalejo: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
-**Perplexity (`pplx/`)** — Tí ìwádìí ṣe àtìlẹ́yìn fún: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
+**Ìdàrúdàpọ̀ (`pplx/`)** — Ṣiṣawari-ti ṣe afikun: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
-**Together AI (`together/`)** — Orísun ṣíṣí: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (lọ́fẹ̀ẹ́), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** — Orisun ṣiṣi: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ọfẹ), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI (`fireworks/`)** — Ìtumọ̀ tó yára: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** — Iyara: `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras (`cerebras/`)** — Ní ìwọ̀n wafer: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** — Wafer-iwọn: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
-**Cohere (`cohere/`)** — Tó dojukọ lórí RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG-lojutu: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
-**NVIDIA NIM (`nvidia/`)** — Fún àwọn ilé-iṣẹ́: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** — Idawọlẹ: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
**Baidu Qianfan (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud (`ollama-cloud/`)**: `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
+**Ollama awọsanma (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
-**Gemini (Google Cloud `gemini/`)**: Wọ́n ń ṣe àmúṣẹ́pọ̀ rẹ̀ láàyè fún kọ́kọ́rọ̀ API kọ̀ọ̀kan láti ọ̀dọ̀ Google — kò sí àkópọ̀ tó dúró. So kọ́kọ́rọ̀ kan pọ̀ nínú **Pátákó Ìṣàkóso → Àwọn Olùpèsè** lẹ́yìn náà lo **Àwọn Awoṣe Tó Wà Lọ́wọ́** láti gbe kàtálógù lọ́wọ́lọ́wọ́ wọlé (fún àpẹẹrẹ `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
+**Gemini (Google Cloud `gemini/`)** : Ṣiṣẹpọ ifiwe fun bọtini API lati Google — ko si atokọ aimi. So bọtini kan wọle** Dasibodu → Awọn olupese** lẹhinna lo** Awọn awoṣe to wa** lati gbe katalogi lọwọlọwọ wọle (fun apẹẹrẹ `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
-**Àwọn olùpèsè mìíràn tó bá a mu** (tí a yan): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (nípasẹ̀ `aws-bedrock`), `azure-ai`, `openrouter` (kàtálógù tó ń gbe kọjá), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Ọ̀kọ̀ọ̀kan wọn ń ṣàkóso àkópọ̀ awoṣe tirẹ̀ nínú `providerRegistry.ts`, ó sì ṣeé ṣe láti ṣe àmúṣẹ́pọ̀ rẹ̀ láìfọwọ́wọ́ nígbà tí olùpèsè náà bá fi òpin-ìsopọ̀ `/models` hàn.
+**Miiran ibaramu olupese** (ti a yan): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (nipasẹ `aws-bedrock`), `azure-ai`, `openrouter` (passthrough katalogi), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway` `bazaarlink` `friendliai` `nous-research`, `reka`, `volcengine`, `ai21` `gigachat` Olukuluku n ṣetọju atokọ awoṣe tirẹ ni `providerRegistry.ts` ati pe o le muṣiṣẹpọ ni adaṣe nigbati olupese ba ṣafihan aaye ipari `/models` kan.
-**Àkíyèsí nípa àwọn ID awoṣe:** OmniRoute ń lo àwọn ID àbíbí ti olùpèsè kọ̀ọ̀kan (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Àwọn ID kan ní àwọn ẹ̀yà tó kó àmì-ojúpo nítorí bẹ́ẹ̀ ni API orísun òkè ṣe ń retí wọn. Bí awoṣe kan kò bá sí nínú àkópọ̀ òkè, ṣe `omniroute models --search ` tàbí pe `GET /api/models/catalog` láti fìdí bó ṣe wà lọ́wọ́ múlẹ̀.
+**Akiyesi lori awoṣe IDs:** OmniRoute nlo olupese-ilu abinibi IDs (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Diẹ ninu IDs pẹlu awọn ẹya ti o ni aami nitori iyẹn ni bii API ti oke n reti wọn. Ti awoṣe ko ba ṣe akojọ loke, ṣiṣe `omniroute models --search ` tabi lu `GET /api/models/catalog` lati jẹrisi wiwa.
diff --git a/docs/i18n/zh-CN/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/zh-CN/docs/architecture/RESILIENCE_GUIDE.md
index dd039f656794..e4620ffec0b3 100644
--- a/docs/i18n/zh-CN/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/zh-CN/docs/architecture/RESILIENCE_GUIDE.md
@@ -262,17 +262,17 @@ UI:监控 → 冷却管理器(`src/app/(dashboard)/dashboard/resilience/cool
---
-## 4. 配额共享并发控制(v3.8.36)
+## 4. 配额共享并发控制 (v3.8.36)
-订阅账户(GLM、MiniMax 等)通常只接受约 1–3 个并发请求;超过该数量会触发 429 和冷却。这在 **配额共享**(`qtSd/…`)组合下尤为突出,因为多个 API 密钥共享同一个上游账户。三层机制可防止共享账户被淹没。
+订阅帐户(GLM、 MiniMax等)通常仅接受~ 1-3 个并发请求;超过会触发 429 秒和冷却时间。这是严重的**配额份额**(`qtSd/…`) 组合,其中多个API密钥共享一个上游帐户。三层保护共享帐户不被淹没。
-### 每连接并发上限(`max_concurrent`)
+### 每个连接的并发上限 (`max_concurrent`)
-每个提供者连接都可以声明一个 `max_concurrent` 上限(`provider_connections.max_concurrent`,可在连接弹窗 / API / 数据库中设置)。留空表示不限制。这是驱动下方序列化层的唯一旋钮——将其设置为账户的真实并发数(例如 GLM 约 1,MiniMax 约 2)。
+每个提供者连接都可以声明一个`max_concurrent`上限(`provider_connections.max_concurrent`,在连接模式 / API / DB中设置)。将其留空,没有限制。这是驱动—下面的序列化层的单个旋钮,将其设置为帐户的实际并发性(例如GLM ~ 1、 MiniMax ~ 2)。
-### 每模型并发上限(`modelConcurrency`)
+### 每个模型的并发上限 (`modelConcurrency`)
-连接还可以在其 `rateLimitOverrides` 映射中声明精确的每模型并发上限:
+连接还可以在其`rateLimitOverrides`映射中声明精确的每个模型并发上限:
```json
{
@@ -283,13 +283,13 @@ UI:监控 → 冷却管理器(`src/app/(dashboard)/dashboard/resilience/cool
}
```
-可在连接弹窗中设置(**Rate limit overrides → Per-model concurrency caps**,每行一个 `model=cap`),或通过 `PATCH /api/providers/[id]` 使用相同的 JSON 结构设置。关键语义:
+在连接模式中设置它(**速率限制覆盖→每个模型的并发上限**,每行一个`model=cap` )或通过具有相同JSON形状的`PATCH /api/providers/[id]` 。关键语义:
-- **连接级与模型级:** `maxConcurrent` 仍是共享的连接级上限。当两者都适用时,两个门控会在同一个复合门控(`global → provider → account → model`)中以原子方式获取;实际行为取决于更严格的那个适用限制。
-- **精确匹配模型键:** 键是路由解析后传递给执行器的模型字符串——通常是裸的上游模型 id(`glm-5`),而不是客户端的 `provider/model` 别名(`zai/glm-5` 不会匹配 `glm-5`)。值为正整数并发请求上限。
-- **本地排队,不做发现:** 超出的请求会按照现有的队列/超时语义在本地排队(类型化的 `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` 准入错误)。OmniRoute 不会发现或推断上游策略——它只执行运维人员配置的精确上限。饱和的模型门控绝不会禁用提供者,也绝不会造成永久性的模型锁定;上游 429/冷却/回退行为仍然是错误兜底。
-- **每连接、每进程作用域:** 上限按数据库连接划分并保存在内存中,因此复用同一上游 API 密钥的两个连接不会相互协调。
-- **未配置即保持不变:** 省略该映射(或将仪表盘字段留空)不会添加任何模型门控。以下示例配置未断言任何通用提供者限制:
+- **连接范围与特定模型:** `maxConcurrent`仍然是共享连接范围的上限。当两者都适用时,两个门都在同一个复合门(`global → provider → account → model`)中以原子方式获取;有效行为是更严格的适用限制。
+- **精确的型号-密钥匹配:**关键是路由解析—之后传递给执行器的模型字符串,通常是裸露的上游模型 id (`glm-5`),而不是客户端`provider/model`别名 (`zai/glm-5`与`glm-5`不匹配)。值是正整数并发请求上限。
+- **本地排队,没有发现:**多余的请求使用现有的queue/timeout语义在本地排队(输入`SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`准入错误)。 OmniRoute不会发现或推断上游策略—它强制执行操作员配置的确切上限。饱和的模型门永远不会禁用提供者,也永远不会造成永久的模型锁定;上游429/cooldown/fallback行为仍然是错误后备。
+- **每个连接、每个进程范围:** caps 是针对每个数据库连接的,并保存在内存中,因此重复使用相同上游API密钥的两个连接不会相互协调。
+- **未配置意味着未更改:**省略地图(或将仪表板字段留空)不会添加模型门。不声明任何通用提供程序限制的示例配置:
```text
glm-5=1
@@ -298,15 +298,17 @@ glm-4.7=3
### 配额共享请求序列化
-当配额共享调度指向一个声明了正数 `max_concurrent` 的连接时,指向该**账户**的并发请求会通过每连接信号量(键为 `qsconn:`)进行序列化:超出的请求会**在队列中等待**,而不是淹没账户。该机制是 **fail-open** 的——队列饱和或超时时,请求会不带槽位继续执行,而不是拒绝任何本可调度的请求。可在 **Settings → Resilience → Quota-share per-connection concurrency** 中切换(`resilienceSettings.quotaShareConcurrencyLimit.enabled`,默认开启)。如果没有 `max_concurrent` 上限,行为保持不变。
+当配额共享调度针对声明正`max_concurrent`连接时,对该连接的并发请求**帐户**通过每个连接信号量(键`qsconn:`)进行序列化:多余的请求**在队列中等待**而不是淹没账户。这是**故障开放**—饱和队列或超时在没有槽的情况下继续进行,而不是拒绝可分派请求。切换进入**设置→弹性→每个连接的配额共享并发数**(`resilienceSettings.quotaShareConcurrencyLimit.enabled`,默认打开)。如果没有`max_concurrent`上限,行为不会改变。
-> 配额共享路由门控(`selectQuotaShareTarget`,DRR + P2C)本身也是 fail-open 的,并且只会 _降低_ 已达上限连接的优先级——在单连接池中它无法硬性限制,因此真正遏制洪泛的是这个信号量。
+> 配额共享路由门(`selectQuotaShareTarget`、 DRR + P2C)本身是故障开放的,并且仅_deprioritize_具有单连接池的 at-cap 连接—它无法硬限制,因此该信号量实际上包含洪水。
### 组合冷却感知重试
-对于每种组合策略(启用时),如果某个请求会因为 SHORT 短暂冷却而最终变成 429,该请求会等待冷却结束并重新调度,而不是返回 429——这涵盖了多模型组合上的 Gemini 类 TPM/RPM 窗口(约 60 秒 retry-after),例如一个 2 模型组合的两个目标都触发了每模型速率限制。由 **Settings → Resilience** 中的 `comboCooldownWait`(`enabled`、`maxWaitMs`、`maxAttempts`、`budgetMs`)限定。它从不会因 `quota_exhausted`(锁定到午夜)或认证/未找到原因而等待。
+对于每个组合策略(启用时),将具体化 429 进行SHORT短暂冷却的请求会等待其结束并重新分派,而不是返回 429 —这涵盖了多模型组合上的 Gemini 级TPM/RPM窗口(~ 60 秒后重试),例如 2 模型组合的两个目标都达到了每个模型的速率限制。以`comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) 为界**设置→弹性**。它从不等待`quota_exhausted` (锁定到午夜)或auth/not-found原因。
-同一个门控也覆盖预调度场景(#16319):当组合的每个目标在任何尝试发生之前都被跳过,因为其模型处于短暂临时锁定状态时,零尝试路径会在相同的上限下等待锁解除并重新调度,而不是返回一个没有提示的 `503 ALL_TARGETS_SKIPPED`。当不允许等待时(达到上限、尝试次数或预算耗尽,或该功能关闭),最终响应会升级为 `429 rate_limit_error`,并携带最早临时锁过期时间的 `retry_after` / `reset_at`;配额、认证和未找到锁定则保持无提示的 503。
+组合可以使用`config.comboCooldownWaitEnabled: false`选择退出。只有文字`false`会禁用这些共享组合等待(调度后冷却和调度前circuit-open/model-lock等待)及其等待预算超时下限扩展。缺失或`true`保留全局策略; `true`无法启用全局禁用等待。明确的`targetTimeoutMs`仍然获胜。此选择退出不会更改单独的本机 Codex 转针预调度等待。
+
+相同的门涵盖了预调度情况(#16319):当组合的每个目标在进行任何尝试之前被跳过时,因为其模型处于短暂的瞬时锁定状态,零尝试路径会在相同的上限下等待锁定并重新调度,而不是回答无提示的`503 ALL_TARGETS_SKIPPED`。当不允许等待时(上限、尝试或预算耗尽、或功能关闭),终端响应从最早的瞬时锁到期开始升级为携带`retry_after` / `reset_at`的`429 rate_limit_error` ;配额、身份验证和未找到锁保留无提示 503。
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/zh-CN/docs/guides/USER_GUIDE.md b/docs/i18n/zh-CN/docs/guides/USER_GUIDE.md
index 3ed88ec2b185..d679d9cb8e11 100644
--- a/docs/i18n/zh-CN/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/zh-CN/docs/guides/USER_GUIDE.md
@@ -605,60 +605,60 @@ post_install() {
---
-## 📊 可用模型
+## 📊可用型号
-查看所有可用模型
+查看所有可用型号
-> 以下列表基于 v3.8.0 的 `open-sse/config/providerRegistry.ts` 整理。云端目录(Gemini、OpenRouter 等)为动态同步 —— 如需完整的实时目录,请打开 **仪表盘 → 提供者 → [provider] → 可用模型**,或调用 `GET /api/models/catalog`。
+> 下面的列表是从`open-sse/config/providerRegistry.ts` v3.8.0 中精选的。云目录(Gemini、 OpenRouter等)动态同步—以打开完整的实时目录**仪表板→提供者→ [provider] →可用型号**或致电`GET /api/models/catalog`。
>
-> 如果某个提供者的内置列表已过时,请在该页面使用 **Import from /models**(或启用 **Auto-Sync**)来拉取实时上游目录。此流程已在 v3.8.50 中针对 LLM7.io(`gemini-3.1-flash-lite`)和 UncloseAI(`solidrust/Hermes-3-Llama-3.1-8B-AWQ`)验证;在同一轮测试中,Pollinations 的匿名访问仍受上游限制。
+> 如果提供者的内置列表发生了变化,请使用**从 /models 导入**在该页面上(或启用**自动同步**) 来拉取实时上游目录。这在 v3.8.50 中针对LLM7.io (`gemini-3.1-flash-lite`) 和UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) 进行了验证;在同一测试过程中,授粉匿名访问仍然受到上游限制。
-**Claude Code(`cc/`)** —— Pro/Max OAuth:`cc/claude-opus-4-8`、`cc/claude-opus-4-7`、`cc/claude-opus-4-6`、`cc/claude-opus-4-5-20251101`、`cc/claude-sonnet-4-6`、`cc/claude-sonnet-4-5-20250929`、`cc/claude-haiku-4-5-20251001`
+**Claude代码 (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`、 `cc/claude-opus-4-7`、 `cc/claude-opus-4-6`、 `cc/claude-opus-4-5-20251101`、 `cc/claude-sonnet-4-6`、 `cc/claude-sonnet-4-5-20250929`、 `cc/claude-haiku-4-5-20251001`
-**Codex(`cx/`)** —— Plus/Pro OAuth:`cx/gpt-5.5`(+ 不同 effort 档位:`gpt-5.5-xhigh`、`gpt-5.5-high`、`gpt-5.5-medium`、`gpt-5.5-low`)、`cx/gpt-5.4`、`cx/gpt-5.4-mini`、`cx/gpt-5.3-codex`、`cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+努力等级: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
-**GitHub Copilot(`gh/`)** —— OAuth:`gh/gpt-5.5`、`gh/gpt-5.4`、`gh/gpt-5.4-mini`、`gh/gpt-5-mini`、`gh/gpt-5.3-codex`、`gh/claude-opus-4.7`、`gh/claude-opus-4.6`、`gh/claude-opus-4-5-20251101`、`gh/claude-sonnet-4.6`、`gh/claude-sonnet-4.5`、`gh/claude-haiku-4.5`、`gh/gemini-3.1-pro-preview`、`gh/gemini-3-flash-preview`、`gh/oswe-vscode-prime`
+**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro(`kr/`)** —— 免费 OAuth:请使用 **仪表盘 → 提供者 → Kiro → 可用模型** 下显示的实时目录。可用性取决于账户和套餐。
+**Kiro (`kr/`)** — FREE OAuth:使用下面显示的实时目录**仪表板→提供者→ Kiro →可用型号**。可用性取决于帐户和计划。
-**Qoder(`if/`)** —— 免费 OAuth:`if/qwen3.8-max-preview`、`if/qwen3.7-max`、`if/qwen3.7-plus`、`if/kimi-k3`、`if/kimi-k2.7-code`、`if/glm-5.2`、`if/deepseek-v4-pro`、`if/deepseek-v4-flash`、`if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
-**GLM(`glm/`、`glm-cn/`、`zai/`、`glmt/`)** —— $0.2–0.6/1M:`glm/glm-5.1`、`glm/glm-5`、`glm/glm-5-turbo`、`glm/glm-4.7`、`glm/glm-4.7-flash`、`glm/glm-4.6`、`glm/glm-4.6v`、`glm/glm-4.5`、`glm/glm-4.5v`、`glm/glm-4.5-air`
+**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
-**MiniMax(`minimax/`、`minimax-cn/`)** —— $0.2/1M:`minimax/MiniMax-M2.7`、`minimax/MiniMax-M2.7-highspeed`、`minimax/MiniMax-M2.5`、`minimax/MiniMax-M2.5-highspeed`
+**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi(`kimi/`、`kimi-coding/`、`kimi-coding-apikey/`)** —— 每月 $9 固定费用或按用量计费:`kimi/kimi-k2.6`、`kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo固定或每次使用: `kimi/kimi-k2.6`、 `kimi/kimi-k2.5`
-**DeepSeek(`ds/`)** —— API 密钥:`ds/deepseek-v4-pro`、`ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API键: `ds/deepseek-v4-pro`、 `ds/deepseek-v4-flash`
-**Groq(`groq/`)** —— 超高速:`groq/llama-3.3-70b-versatile`、`groq/meta-llama/llama-4-maverick-17b-128e-instruct`、`groq/qwen/qwen3-32b`、`groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** —超快: `groq/llama-3.3-70b-versatile`、 `groq/meta-llama/llama-4-maverick-17b-128e-instruct`、 `groq/qwen/qwen3-32b`、 `groq/openai/gpt-oss-120b`
-**xAI(`xai/`)** —— Grok 原生:`xai/grok-4.3`、`xai/grok-4.20-multi-agent-0309`、`xai/grok-4.20-0309-reasoning`、`xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok本机: `xai/grok-4.3`、 `xai/grok-4.20-multi-agent-0309`、 `xai/grok-4.20-0309-reasoning`、 `xai/grok-4.20-0309-non-reasoning`
-**Mistral(`mistral/`)** —— 欧盟托管:`mistral/mistral-large-latest`、`mistral/mistral-medium-3-5`、`mistral/mistral-small-latest`、`mistral/devstral-latest`、`mistral/codestral-latest`
+**Mistral (`mistral/`)** —欧盟托管: `mistral/mistral-large-latest`、 `mistral/mistral-medium-3-5`、 `mistral/mistral-small-latest`、 `mistral/codestral-latest`
-**Perplexity(`pplx/`)** —— 搜索增强:`pplx/sonar-deep-research`、`pplx/sonar-reasoning-pro`、`pplx/sonar-pro`、`pplx/sonar`
+**困惑(`pplx/`)** —搜索增强: `pplx/sonar-deep-research`、 `pplx/sonar-reasoning-pro`、 `pplx/sonar-pro`、 `pplx/sonar`
-**Together AI(`together/`)** —— 开源:`together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free`(免费)、`together/meta-llama/Llama-Vision-Free`、`together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`、`together/deepseek-ai/DeepSeek-R1`、`together/Qwen/Qwen3-235B-A22B`、`together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** —开源: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (免费)、 `together/meta-llama/Llama-Vision-Free`、 `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`、 `together/deepseek-ai/DeepSeek-R1`、 `together/Qwen/Qwen3-235B-A22B`、 `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI(`fireworks/`)** —— 快速推理:`fireworks/accounts/fireworks/models/kimi-k2p6`、`fireworks/accounts/fireworks/models/minimax-m2p7`、`fireworks/accounts/fireworks/models/qwen3p6-plus`、`fireworks/accounts/fireworks/models/glm-5p1`、`fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** —快速推理: `fireworks/accounts/fireworks/models/kimi-k2p6`、 `fireworks/accounts/fireworks/models/minimax-m2p7`、 `fireworks/accounts/fireworks/models/qwen3p6-plus`、 `fireworks/accounts/fireworks/models/glm-5p1`、 `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras(`cerebras/`)** —— 晶圆级:`cerebras/zai-glm-4.7`、`cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** —晶圆级: `cerebras/zai-glm-4.7`、 `cerebras/gpt-oss-120b`
-**Cohere(`cohere/`)** —— 专注 RAG:`cohere/command-a-reasoning-08-2025`、`cohere/command-a-vision-07-2025`、`cohere/command-a-03-2025`、`cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG 为中心: `cohere/command-a-reasoning-08-2025`、 `cohere/command-a-vision-07-2025`、 `cohere/command-a-03-2025`、 `cohere/command-r-08-2024`
-**NVIDIA NIM(`nvidia/`)** —— 企业级:`nvidia/z-ai/glm-5.1`、`nvidia/minimaxai/minimax-m2.7`、`nvidia/google/gemma-4-31b-it`、`nvidia/mistralai/mistral-small-4-119b-2603`、`nvidia/mistralai/mistral-large-3-675b-instruct-2512`、`nvidia/qwen/qwen3.5-397b-a17b`、`nvidia/deepseek-ai/deepseek-v4-pro`、`nvidia/openai/gpt-oss-120b`、`nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** —企业: `nvidia/z-ai/glm-5.1`、 `nvidia/minimaxai/minimax-m2.7`、 `nvidia/google/gemma-4-31b-it`、 `nvidia/mistralai/mistral-small-4-119b-2603`、 `nvidia/mistralai/mistral-large-3-675b-instruct-2512`、 `nvidia/qwen/qwen3.5-397b-a17b`、 `nvidia/deepseek-ai/deepseek-v4-pro`、 `nvidia/openai/gpt-oss-120b`、 `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
-**百度千帆(`qianfan/`)** —— ERNIE:`qianfan/ernie-5.1`、`qianfan/ernie-5.0-thinking-latest`、`qianfan/ernie-x1.1`
+**Baidu千帆 (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud(`ollama-cloud/`)**:`ollama-cloud/deepseek-v4-pro`、`ollama-cloud/deepseek-v4-flash`、`ollama-cloud/kimi-k2.6`、`ollama-cloud/glm-5.1`、`ollama-cloud/minimax-m2.7`、`ollama-cloud/gemma4:31b`、`ollama-cloud/qwen3.5:397b`
+**Ollama云 (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`、 `ollama-cloud/deepseek-v4-flash`、 `ollama-cloud/kimi-k2.6`、 `ollama-cloud/glm-5.1`、 `ollama-cloud/minimax-m2.7`、 `ollama-cloud/gemma4:31b`、 `ollama-cloud/qwen3.5:397b`
-**Gemini(Google Cloud `gemini/`)**:按 API 密钥从 Google 实时同步 —— 无静态列表。在 **仪表盘 → 提供者** 中接入密钥,然后使用 **可用模型** 导入当前目录(例如 `gemini/gemini-3-pro`、`gemini/gemini-3-flash`)。
+**Gemini (Google云`gemini/`)** :从Google —没有静态列表中实时同步每个API密钥。连接钥匙**仪表板→提供者**然后使用**可用型号**导入当前目录(例如`gemini/gemini-3-pro`、 `gemini/gemini-3-flash`)。
-**其他兼容提供者**(部分):`cohere`、`databricks`、`snowflake`、`together`、`vertex`、`alibaba`、`alibaba-cn`、`bedrock`(通过 `aws-bedrock`)、`azure-ai`、`openrouter`(透传目录)、`siliconflow`、`hyperbolic`、`huggingface`、`featherless-ai`、`cloudflare-ai`、`scaleway`、`deepinfra`、`vercel-ai-gateway`、`bazaarlink`、`friendliai`、`nous-research`、`reka`、`volcengine`、`ai21`、`gigachat`。每个提供者在 `providerRegistry.ts` 中维护自己的模型列表,当提供者暴露 `/models` 端点时可自动同步。
+**其他兼容的提供者**(选定): `cohere`、 `databricks`、 `snowflake`、 `together`、 `vertex`、 `alibaba`、 `alibaba-cn`、 `bedrock` (通过`aws-bedrock`)、 `azure-ai`、 `openrouter` (直通目录)、 `siliconflow`、 `hyperbolic`、 `huggingface`、 `featherless-ai`、 `cloudflare-ai`、 `scaleway`、 `deepinfra`、 `vercel-ai-gateway`、 `bazaarlink`、 `friendliai`、 `nous-research`、 `reka`、 `volcengine`、 `ai21`、 `gigachat`。每个模型都在`providerRegistry.ts`中维护自己的模型列表,并且当提供者公开`/models`端点时可以自动同步。
-**关于模型 ID 的说明:** OmniRoute 使用提供者原生 ID(`claude-opus-4-8`、`gpt-5.5`、`glm-5.1`、`MiniMax-M2.7`、`kimi-k2.5`、`grok-4.20-0309-reasoning`)。部分 ID 包含带点号的版本号,因为这是上游 API 所期望的格式。如果某个模型未在上方列出,请运行 `omniroute models --search ` 或调用 `GET /api/models/catalog` 以确认可用性。
+**IDs型号注意事项:** OmniRoute使用提供者本机IDs (`claude-opus-4-8`、 `gpt-5.5`、 `glm-5.1`、 `MiniMax-M2.7`、 `kimi-k2.5`、 `grok-4.20-0309-reasoning`)。一些IDs包含点版本,因为这是上游API所期望的。如果上面未列出型号,请运行`omniroute models --search `或点击`GET /api/models/catalog`来确认可用性。
diff --git a/docs/i18n/zh-TW/docs/architecture/RESILIENCE_GUIDE.md b/docs/i18n/zh-TW/docs/architecture/RESILIENCE_GUIDE.md
index e843db6428c9..2728f83a66fd 100644
--- a/docs/i18n/zh-TW/docs/architecture/RESILIENCE_GUIDE.md
+++ b/docs/i18n/zh-TW/docs/architecture/RESILIENCE_GUIDE.md
@@ -282,17 +282,17 @@ _狀態_則是暫時性的。
---
-## 4. 配額共享並行控制(v3.8.36)
+## 4. 配額共享並發控制 (v3.8.36)
-訂閱制帳號(GLM、MiniMax 等)通常只接受約 1–3 個並行請求;超過此數量會觸發 429 與冷卻。在**配額共享**(`qtSd/…`)組合下此問題尤其嚴重,因為多個 API 金鑰共享同一個上游帳號。以下三層機制可防止共享帳號被請求淹沒。
+訂閱帳戶(GLM、 MiniMax等)通常只接受~ 1-3 個並發請求;超過會觸發 429 秒和冷卻時間。這是嚴重的**配額份額**(`qtSd/…`) 組合,其中多個API金鑰共用一個上游帳戶。三層保護共享帳戶不被淹沒。
-### 每連線並行上限(`max_concurrent`)
+### 每個連接的並發上限 (`max_concurrent`)
-每個提供者連線都可以宣告一個 `max_concurrent` 上限(`provider_connections.max_concurrent`,可在連線對話框 / API / 資料庫中設定)。留空表示不設限。這是驅動下方序列化層的唯一控制項——請將其設為該帳號的實際並行數(例如 GLM 約 1、MiniMax 約 2)。
+每個提供者連接都可以宣告一個`max_concurrent`上限(`provider_connections.max_concurrent`,在連接模式 / API / DB中設定)。將其留空,沒有限制。這是驅動—下面的序列化層的單一旋鈕,將其設定為帳戶的實際並發性(例如GLM ~ 1、 MiniMax ~ 2)。
-### 每模型並行上限(`modelConcurrency`)
+### 每個模型的同時上限 (`modelConcurrency`)
-連線還可以在其 `rateLimitOverrides` 對應表中宣告精確的每模型並行上限:
+連接還可以在其`rateLimitOverrides`映射中聲明精確的每個模型並發上限:
```json
{
@@ -303,13 +303,13 @@ _狀態_則是暫時性的。
}
```
-可在連線對話框中設定(**Rate limit overrides(速率限制覆寫)→ Per-model concurrency caps(每模型並行上限)**,每行一組 `model=cap`),或使用相同的 JSON 結構透過 `PATCH /api/providers/[id]` 設定。關鍵語義:
+在連接模式中設定它(**速率限制覆蓋→每個模型的並發上限**,每行一個`model=cap` )或通過具有相同JSON形狀的`PATCH /api/providers/[id]` 。關鍵語意:
-- **連線範圍 vs 模型專屬:** `maxConcurrent` 仍是整個連線共享的上限。當兩者都適用時,兩道閘門會在同一個複合閘門中以原子方式取得(`global → provider → account → model`);實際生效的是適用限制中較嚴格者。
-- **模型鍵精確比對:** 鍵是路由解析後傳給執行器的模型字串——通常是裸上游模型 ID(`glm-5`),而非用戶端的 `provider/model` 別名(`zai/glm-5` 不會匹配 `glm-5`)。值為正整數的並行請求上限。
-- **本地排隊,不做探測:** 超出的請求會依現有的佇列/逾時語義在本地排隊(具類型的 `SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL` 准入錯誤)。OmniRoute 不會探測或推斷上游政策——它只強制執行維運者所設定的確切上限。飽和的模型閘門絕不會停用該提供者,也不會造成永久性的模型鎖定;上游的 429/冷卻/回退行為仍是錯誤的最終後盾。
-- **每連線、每進程的作用範圍:** 上限是針對每個資料庫連線設定的,並保存在記憶體中,因此兩個使用相同上游 API 金鑰的連線彼此之間不會協調。
-- **未設定即維持原狀:** 省略該對應表(或將儀表板欄位留空)就不會加入模型閘門。以下範例設定不預設任何通用的提供者限制:
+- **連接範圍與特定模型:** `maxConcurrent`仍然是共享連接範圍的上限。當兩者都適用時,兩個門都在同一個複合門(`global → provider → account → model`)中以原子方式獲取;有效行為是更嚴格的適用限制。
+- **精確的型號-密鑰匹配:**關鍵是路由解析—之後傳遞給執行器的模型字串,通常是裸露的上游模型 id (`glm-5`),而不是客戶端`provider/model`別名 (`zai/glm-5`與`glm-5`不符)。值是正整數並發請求上限。
+- **本地排隊,沒有發現:**多餘的請求使用現有的queue/timeout語意在本地排隊(輸入`SEMAPHORE_TIMEOUT` / `SEMAPHORE_QUEUE_FULL`准入錯誤)。 OmniRoute不會發現或推斷上游策略—它強制執行操作員配置的確切上限。飽和的模型門永遠不會禁用提供者,也永遠不會造成永久的模型鎖定;上游429/cooldown/fallback行為仍然是錯誤後備。
+- **每個連線、每個進程範圍:** caps 是針對每個資料庫連接的,並保存在記憶體中,因此重複使用相同上游API金鑰的兩個連接不會相互協調。
+- **未配置意味著未更改:**省略地圖(或將儀表板欄位留空)不會新增模型閘。不聲明任何通用提供者限制的範例配置:
```text
glm-5=1
@@ -318,15 +318,17 @@ glm-4.7=3
### 配額共享請求序列化
-當配額共享派發指向一個宣告了正數 `max_concurrent` 的連線時,發往該**帳號**的並行請求會透過每連線信號量(鍵 `qsconn:`)被序列化:超出的請求會**在佇列中等待**,而非湧入該帳號。此機制為**故障開放(fail-open)**——佇列飽和或逾時時會在沒有名額的情況下繼續執行,而絕不拒絕可派發的請求。可在 **Settings(設定)→ Resilience(韌性)→ Quota-share per-connection concurrency(配額共享每連線並行)** 中切換(`resilienceSettings.quotaShareConcurrencyLimit.enabled`,預設開啟)。未設定 `max_concurrent` 上限時,行為維持不變。
+當配額共享調度針對聲明正`max_concurrent`連接時,對該連接的並發請求**帳戶**透過每個連接信號量(鍵`qsconn:`)進行序列化:多餘的請求**在隊列中等待**而不是淹沒帳戶。這是**故障開放**—飽和佇列或逾時在沒有插槽的情況下繼續進行,而不是拒絕可分派請求。切換進入**設定→彈性→每個連接的配額共享並發數**(`resilienceSettings.quotaShareConcurrencyLimit.enabled`,預設開啟)。如果沒有`max_concurrent`上限,行為不會改變。
-> 配額共享路由閘門(`selectQuotaShareTarget`,DRR + P2C)本身也是故障開放的,只會將已達上限的連線_降低優先順序_——在單一連線池的情況下它無法硬性限制,因此真正遏制請求洪流的是這個信號量。
+> 配額共享路由門(`selectQuotaShareTarget`、 DRR + P2C)本身是故障開放的,並且僅_deprioritize_具有單連接池的 at-cap 連接—它無法硬限制,因此該信號量實際上包含洪水。
### 組合冷卻感知重試
-對於每種組合策略(啟用時),當一個請求會因短暫態冷卻而形成 429 時,它會等待冷卻結束並重新派發,而非直接回傳 429——這涵蓋了多模型組合上 Gemini 級別的 TPM/RPM 視窗(約 60 秒的 retry-after),例如雙模型組合的兩個目標同時觸發每模型速率限制的情況。其上限由 **Settings(設定)→ Resilience(韌性)** 中的 `comboCooldownWait`(`enabled`、`maxWaitMs`、`maxAttempts`、`budgetMs`)約束。對於 `quota_exhausted`(鎖定至午夜)或驗證/找不到等原因,絕不等待。
+對於每個組合策略(啟用時),將具體化 429 進行SHORT短暫冷卻的請求會等待其結束並重新分派,而不是返回 429 —這涵蓋了多模型組合上的 Gemini 級TPM/RPM視窗(~ 60 秒後重試),例如 2 模型組合的兩個目標都達到了每個模型的目標速率。以`comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) 為界**設定→彈性**。它從不等待`quota_exhausted` (鎖定到午夜)或auth/not-found原因。
-同一道閘門也涵蓋派發前的情況(#16319):當組合的每個目標在任何嘗試之前,都因其模型處於短暫態鎖定而被跳過時,零嘗試路徑會在相同的上限內等待鎖定結束並重新派發,而非回應一個不帶提示的 `503 ALL_TARGETS_SKIPPED`。當不允許等待時(達到上限、嘗試次數或預算耗盡,或功能關閉),最終回應會升級為 `429 rate_limit_error`,並攜帶來自最早到期的暫態鎖定的 `retry_after` / `reset_at`;配額、驗證與找不到的鎖定則維持無提示的 503。
+組合可以使用`config.comboCooldownWaitEnabled: false`選擇退出。只有文字`false`會停用這些共享組合等待(調度後冷卻和調度前circuit-open/model-lock等待)及其等待預算逾時下限擴展。缺失或`true`保留全域策略; `true`無法啟用全域停用等待。明確的`targetTimeoutMs`仍然獲勝。此選擇退出不會變更單獨的本機 Codex 轉針預調度等待。
+
+相同的門涵蓋了預調度情況(#16319):當組合的每個目標在進行任何嘗試之前被跳過時,因為其模型處於短暫的瞬時鎖定狀態,零嘗試路徑會在相同的上限下等待鎖定並重新調度,而不是回答無提示的`503 ALL_TARGETS_SKIPPED`。當不允許等待時(上限、嘗試或預算耗盡、或功能關閉),終端回應從最早的瞬時鎖到期開始升級為攜帶`retry_after` / `reset_at`的`429 rate_limit_error` ;配額、身份驗證和未找到鎖定保留無提示 503。
```text
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
diff --git a/docs/i18n/zh-TW/docs/guides/USER_GUIDE.md b/docs/i18n/zh-TW/docs/guides/USER_GUIDE.md
index ac8fc81ddcd1..3cda67a15c40 100644
--- a/docs/i18n/zh-TW/docs/guides/USER_GUIDE.md
+++ b/docs/i18n/zh-TW/docs/guides/USER_GUIDE.md
@@ -606,60 +606,60 @@ post_install() {
---
-## 📊 可用模型
+## 📊可用型號
-查看所有可用模型
+查看所有可用型號
-> 以下列表整理自 v3.8.0 的 `open-sse/config/providerRegistry.ts`。雲端目錄(Gemini、OpenRouter 等)會動態同步——如需完整的即時目錄,請開啟 **Dashboard → Providers → [provider] → Available Models**,或呼叫 `GET /api/models/catalog`。
+> 下面的列表是從`open-sse/config/providerRegistry.ts` v3.8.0 中精選的。雲端目錄(Gemini、 OpenRouter等)動態同步—以開啟完整的即時目錄**儀表板→提供者→ [provider] →可用型號**或致電`GET /api/models/catalog`。
>
-> 如果某提供者的內建清單已與上游不一致,請在該頁面使用 **Import from /models**(或啟用 **Auto-Sync**)來拉取即時的上游目錄。此流程已在 v3.8.50 中針對 LLM7.io(`gemini-3.1-flash-lite`)與 UncloseAI(`solidrust/Hermes-3-Llama-3.1-8B-AWQ`)完成驗證;在同一輪測試中,Pollinations 的匿名存取仍受上游限制。
+> 如果提供者的內建清單發生了變化,請使用**從 /models 導入**在該頁面上(或啟用**自動同步**) 來拉取即時上游目錄。這在 v3.8.50 中針對LLM7.io (`gemini-3.1-flash-lite`) 和UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) 進行了驗證;在同一測試過程中,授粉匿名存取仍然受到上游限制。
-**Claude Code(`cc/`)** — Pro/Max OAuth:`cc/claude-opus-4-8`、`cc/claude-opus-4-7`、`cc/claude-opus-4-6`、`cc/claude-opus-4-5-20251101`、`cc/claude-sonnet-4-6`、`cc/claude-sonnet-4-5-20250929`、`cc/claude-haiku-4-5-20251001`
+**Claude代碼 (`cc/`)** — Pro/Max OAuth: `cc/claude-opus-4-8`、 `cc/claude-opus-4-7`、 `cc/claude-opus-4-6`、 `cc/claude-opus-4-5-20251101`、 `cc/claude-sonnet-4-6`、 `cc/claude-sonnet-4-5-20250929`、 `cc/claude-haiku-4-5-20251001`
-**Codex(`cx/`)** — Plus/Pro OAuth:`cx/gpt-5.5`(+ effort 層級:`gpt-5.5-xhigh`、`gpt-5.5-high`、`gpt-5.5-medium`、`gpt-5.5-low`)、`cx/gpt-5.4`、`cx/gpt-5.4-mini`、`cx/gpt-5.3-codex`、`cx/gpt-5.3-codex-spark`
+**Codex (`cx/`)** — Plus/Pro OAuth: `cx/gpt-5.5` (+努力等級: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
-**GitHub Copilot(`gh/`)** — OAuth:`gh/gpt-5.5`、`gh/gpt-5.4`、`gh/gpt-5.4-mini`、`gh/gpt-5-mini`、`gh/gpt-5.3-codex`、`gh/claude-opus-4.7`、`gh/claude-opus-4.6`、`gh/claude-opus-4-5-20251101`、`gh/claude-sonnet-4.6`、`gh/claude-sonnet-4.5`、`gh/claude-haiku-4.5`、`gh/gemini-3.1-pro-preview`、`gh/gemini-3-flash-preview`、`gh/oswe-vscode-prime`
+**GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
-**Kiro(`kr/`)** — 免費 OAuth:請使用 **Dashboard → Providers → Kiro → Available Models** 下顯示的即時目錄。可用性取決於帳號與方案。
+**Kiro (`kr/`)** — FREE OAuth:使用下面顯示的即時目錄**儀表板→提供者→ Kiro →可用型號**。可用性取決於帳戶和計劃。
-**Qoder(`if/`)** — 免費 OAuth:`if/qwen3.8-max-preview`、`if/qwen3.7-max`、`if/qwen3.7-plus`、`if/kimi-k3`、`if/kimi-k2.7-code`、`if/glm-5.2`、`if/deepseek-v4-pro`、`if/deepseek-v4-flash`、`if/minimax-m3`
+**Qoder (`if/`)** — FREE OAuth: `if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
-**GLM(`glm/`、`glm-cn/`、`zai/`、`glmt/`)** — $0.2–0.6/1M:`glm/glm-5.1`、`glm/glm-5`、`glm/glm-5-turbo`、`glm/glm-4.7`、`glm/glm-4.7-flash`、`glm/glm-4.6`、`glm/glm-4.6v`、`glm/glm-4.5`、`glm/glm-4.5v`、`glm/glm-4.5-air`
+**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** — $0.2–0.6/1M: `glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
-**MiniMax(`minimax/`、`minimax-cn/`)** — $0.2/1M:`minimax/MiniMax-M2.7`、`minimax/MiniMax-M2.7-highspeed`、`minimax/MiniMax-M2.5`、`minimax/MiniMax-M2.5-highspeed`
+**MiniMax (`minimax/`, `minimax-cn/`)** — $0.2/1M: `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
-**Kimi(`kimi/`、`kimi-coding/`、`kimi-coding-apikey/`)** — $9/月固定費率或按量計費:`kimi/kimi-k2.6`、`kimi/kimi-k2.5`
+**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** — $9/mo固定或每次使用: `kimi/kimi-k2.6`、 `kimi/kimi-k2.5`
-**DeepSeek(`ds/`)** — API 金鑰:`ds/deepseek-v4-pro`、`ds/deepseek-v4-flash`
+**DeepSeek (`ds/`)** — API鍵: `ds/deepseek-v4-pro`、 `ds/deepseek-v4-flash`
-**Groq(`groq/`)** — 超高速:`groq/llama-3.3-70b-versatile`、`groq/meta-llama/llama-4-maverick-17b-128e-instruct`、`groq/qwen/qwen3-32b`、`groq/openai/gpt-oss-120b`
+**Groq (`groq/`)** —超快: `groq/llama-3.3-70b-versatile`、 `groq/meta-llama/llama-4-maverick-17b-128e-instruct`、 `groq/qwen/qwen3-32b`、 `groq/openai/gpt-oss-120b`
-**xAI(`xai/`)** — Grok 原生:`xai/grok-4.3`、`xai/grok-4.20-multi-agent-0309`、`xai/grok-4.20-0309-reasoning`、`xai/grok-4.20-0309-non-reasoning`
+**xAI (`xai/`)** — Grok本機: `xai/grok-4.3`、 `xai/grok-4.20-multi-agent-0309`、 `xai/grok-4.20-0309-reasoning`、 `xai/grok-4.20-0309-non-reasoning`
-**Mistral(`mistral/`)** — 歐盟託管:`mistral/mistral-large-latest`、`mistral/mistral-medium-3-5`、`mistral/mistral-small-latest`、`mistral/devstral-latest`、`mistral/codestral-latest`
+**Mistral (`mistral/`)** —歐盟託管: `mistral/mistral-large-latest`、 `mistral/mistral-medium-3-5`、 `mistral/mistral-small-latest`、 `mistral/codestral-latest`
-**Perplexity(`pplx/`)** — 搜尋增強:`pplx/sonar-deep-research`、`pplx/sonar-reasoning-pro`、`pplx/sonar-pro`、`pplx/sonar`
+**困惑(`pplx/`)** —搜尋增強: `pplx/sonar-deep-research`、 `pplx/sonar-reasoning-pro`、 `pplx/sonar-pro`、 `pplx/sonar`
-**Together AI(`together/`)** — 開源:`together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free`(免費)、`together/meta-llama/Llama-Vision-Free`、`together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`、`together/deepseek-ai/DeepSeek-R1`、`together/Qwen/Qwen3-235B-A22B`、`together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
+**Together AI (`together/`)** —開源: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (免費)、 `together/meta-llama/Llama-Vision-Free`、 `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`、 `together/deepseek-ai/DeepSeek-R1`、 `together/Qwen/Qwen3-235B-A22B`、 `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
-**Fireworks AI(`fireworks/`)** — 快速推論:`fireworks/accounts/fireworks/models/kimi-k2p6`、`fireworks/accounts/fireworks/models/minimax-m2p7`、`fireworks/accounts/fireworks/models/qwen3p6-plus`、`fireworks/accounts/fireworks/models/glm-5p1`、`fireworks/accounts/fireworks/models/deepseek-v4-pro`
+**Fireworks AI (`fireworks/`)** —快速推理: `fireworks/accounts/fireworks/models/kimi-k2p6`、 `fireworks/accounts/fireworks/models/minimax-m2p7`、 `fireworks/accounts/fireworks/models/qwen3p6-plus`、 `fireworks/accounts/fireworks/models/glm-5p1`、 `fireworks/accounts/fireworks/models/deepseek-v4-pro`
-**Cerebras(`cerebras/`)** — 晶圓級:`cerebras/zai-glm-4.7`、`cerebras/gpt-oss-120b`
+**Cerebras (`cerebras/`)** —晶圓級: `cerebras/zai-glm-4.7`、 `cerebras/gpt-oss-120b`
-**Cohere(`cohere/`)** — 專注 RAG:`cohere/command-a-reasoning-08-2025`、`cohere/command-a-vision-07-2025`、`cohere/command-a-03-2025`、`cohere/command-r-08-2024`
+**Cohere (`cohere/`)** — RAG 為中心: `cohere/command-a-reasoning-08-2025`、 `cohere/command-a-vision-07-2025`、 `cohere/command-a-03-2025`、 `cohere/command-r-08-2024`
-**NVIDIA NIM(`nvidia/`)** — 企業級:`nvidia/z-ai/glm-5.1`、`nvidia/minimaxai/minimax-m2.7`、`nvidia/google/gemma-4-31b-it`、`nvidia/mistralai/mistral-small-4-119b-2603`、`nvidia/mistralai/mistral-large-3-675b-instruct-2512`、`nvidia/qwen/qwen3.5-397b-a17b`、`nvidia/deepseek-ai/deepseek-v4-pro`、`nvidia/openai/gpt-oss-120b`、`nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
+**NVIDIA NIM (`nvidia/`)** —企業: `nvidia/z-ai/glm-5.1`、 `nvidia/minimaxai/minimax-m2.7`、 `nvidia/google/gemma-4-31b-it`、 `nvidia/mistralai/mistral-small-4-119b-2603`、 `nvidia/mistralai/mistral-large-3-675b-instruct-2512`、 `nvidia/qwen/qwen3.5-397b-a17b`、 `nvidia/deepseek-ai/deepseek-v4-pro`、 `nvidia/openai/gpt-oss-120b`、 `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`
-**Baidu Qianfan(`qianfan/`)** — ERNIE:`qianfan/ernie-5.1`、`qianfan/ernie-5.0-thinking-latest`、`qianfan/ernie-x1.1`
+**Baidu千帆 (`qianfan/`)** — ERNIE: `qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
-**Ollama Cloud(`ollama-cloud/`)**:`ollama-cloud/deepseek-v4-pro`、`ollama-cloud/deepseek-v4-flash`、`ollama-cloud/kimi-k2.6`、`ollama-cloud/glm-5.1`、`ollama-cloud/minimax-m2.7`、`ollama-cloud/gemma4:31b`、`ollama-cloud/qwen3.5:397b`
+**Ollama雲 (`ollama-cloud/`)** : `ollama-cloud/deepseek-v4-pro`、 `ollama-cloud/deepseek-v4-flash`、 `ollama-cloud/kimi-k2.6`、 `ollama-cloud/glm-5.1`、 `ollama-cloud/minimax-m2.7`、 `ollama-cloud/gemma4:31b`、 `ollama-cloud/qwen3.5:397b`
-**Gemini(Google Cloud `gemini/`)**:依 API 金鑰從 Google 即時同步——無靜態清單。請在 **Dashboard → Providers** 中連接金鑰,然後使用 **Available Models** 匯入目前的目錄(例如 `gemini/gemini-3-pro`、`gemini/gemini-3-flash`)。
+**Gemini (Google雲`gemini/`)** :從Google —沒有靜態清單中即時同步每個API密鑰。連接鑰匙**儀表板→提供者**然後使用**可用型號**導入目前目錄(例如`gemini/gemini-3-pro`、 `gemini/gemini-3-flash`)。
-**其他相容提供者**(節選):`cohere`、`databricks`、`snowflake`、`together`、`vertex`、`alibaba`、`alibaba-cn`、`bedrock`(透過 `aws-bedrock`)、`azure-ai`、`openrouter`(透傳目錄)、`siliconflow`、`hyperbolic`、`huggingface`、`featherless-ai`、`cloudflare-ai`、`scaleway`、`deepinfra`、`vercel-ai-gateway`、`bazaarlink`、`friendliai`、`nous-research`、`reka`、`volcengine`、`ai21`、`gigachat`。每個提供者都在 `providerRegistry.ts` 中維護各自的模型清單,並可在提供者提供 `/models` 端點時自動同步。
+**其他相容的提供者**(選定): `cohere`、 `databricks`、 `snowflake`、 `together`、 `vertex`、 `alibaba`、 `alibaba-cn`、 `bedrock` (透過`aws-bedrock`)、 `azure-ai`、 `openrouter` `reka`直通目錄)、 `siliconflow`、 `hyperbolic`、 `huggingface`、 `featherless-ai`、 `cloudflare-ai`、 `scaleway`、 `deepinfra` `friendliai`、 `vercel-ai-gateway`、 `bazaarlink` `volcengine` `nous-research`、 `ai21` `gigachat`每個模型都在`providerRegistry.ts`中維護自己的模型列表,並且當提供者公開`/models`端點時可以自動同步。
-**關於模型 ID 的說明:** OmniRoute 使用提供者原生 ID(`claude-opus-4-8`、`gpt-5.5`、`glm-5.1`、`MiniMax-M2.7`、`kimi-k2.5`、`grok-4.20-0309-reasoning`)。部分 ID 含有帶點的版本號,因為這正是上游 API 所要求的格式。如果某個模型未列於上方,請執行 `omniroute models --search ` 或呼叫 `GET /api/models/catalog` 以確認可用性。
+**IDs型號注意事項:** OmniRoute使用提供者本機IDs (`claude-opus-4-8`、 `gpt-5.5`、 `glm-5.1`、 `MiniMax-M2.7`、 `kimi-k2.5`、 `grok-4.20-0309-reasoning`)。有些IDs包含點版本,因為這是上游API所期望的。如果上面未列出型號,請執行`omniroute models --search `或點擊`GET /api/models/catalog`來確認可用性。
From 7805ad304094f7213e8e79ebfc78c846c935e774 Mon Sep 17 00:00:00 2001
From: Kiaro Sama
Date: Tue, 3 Nov 2026 23:27:28 +0000
Subject: [PATCH 20/25] docs(i18n): refresh managed proxy feature documentation
---
.i18n-state.json | 2118 +++++++++++++----
.../am/docs/frameworks/EMBEDDED-SERVICES.md | 22 +-
.../ar/docs/frameworks/EMBEDDED-SERVICES.md | 22 +-
.../az/docs/frameworks/EMBEDDED-SERVICES.md | 36 +-
.../bg/docs/frameworks/EMBEDDED-SERVICES.md | 20 +-
.../bn/docs/frameworks/EMBEDDED-SERVICES.md | 24 +-
.../bs/docs/frameworks/EMBEDDED-SERVICES.md | 34 +-
.../cs/docs/frameworks/EMBEDDED-SERVICES.md | 22 +-
.../da/docs/frameworks/EMBEDDED-SERVICES.md | 20 +-
.../de/docs/frameworks/EMBEDDED-SERVICES.md | 20 +-
.../el/docs/frameworks/EMBEDDED-SERVICES.md | 20 +-
.../es/docs/frameworks/EMBEDDED-SERVICES.md | 20 +-
.../et/docs/frameworks/EMBEDDED-SERVICES.md | 46 +-
.../fa/docs/frameworks/EMBEDDED-SERVICES.md | 22 +-
.../fi/docs/frameworks/EMBEDDED-SERVICES.md | 24 +-
.../fr/docs/frameworks/EMBEDDED-SERVICES.md | 20 +-
.../ga/docs/frameworks/EMBEDDED-SERVICES.md | 20 +-
.../gu/docs/frameworks/EMBEDDED-SERVICES.md | 34 +-
.../ha/docs/frameworks/EMBEDDED-SERVICES.md | 20 +-
.../he/docs/frameworks/EMBEDDED-SERVICES.md | 22 +-
.../hi/docs/frameworks/EMBEDDED-SERVICES.md | 20 +-
.../hr/docs/frameworks/EMBEDDED-SERVICES.md | 18 +
.../hu/docs/frameworks/EMBEDDED-SERVICES.md | 36 +-
.../hy/docs/frameworks/EMBEDDED-SERVICES.md | 20 +-
.../id/docs/frameworks/EMBEDDED-SERVICES.md | 18 +
.../ig/docs/frameworks/EMBEDDED-SERVICES.md | 58 +-
.../it/docs/frameworks/EMBEDDED-SERVICES.md | 20 +-
.../ja/docs/frameworks/EMBEDDED-SERVICES.md | 22 +-
.../ka/docs/frameworks/EMBEDDED-SERVICES.md | 18 +
.../km/docs/frameworks/EMBEDDED-SERVICES.md | 34 +-
.../kn/docs/frameworks/EMBEDDED-SERVICES.md | 24 +-
.../ko/docs/frameworks/EMBEDDED-SERVICES.md | 20 +-
.../lt/docs/frameworks/EMBEDDED-SERVICES.md | 22 +-
.../lv/docs/frameworks/EMBEDDED-SERVICES.md | 22 +-
.../ml/docs/frameworks/EMBEDDED-SERVICES.md | 18 +
.../mr/docs/frameworks/EMBEDDED-SERVICES.md | 20 +-
.../ms/docs/frameworks/EMBEDDED-SERVICES.md | 18 +
.../mt/docs/frameworks/EMBEDDED-SERVICES.md | 34 +-
.../my/docs/frameworks/EMBEDDED-SERVICES.md | 22 +-
docs/i18n/my/docs/ops/PROXY_GUIDE.md | 14 +-
.../ne/docs/frameworks/EMBEDDED-SERVICES.md | 18 +
.../nl/docs/frameworks/EMBEDDED-SERVICES.md | 18 +
.../no/docs/frameworks/EMBEDDED-SERVICES.md | 36 +-
.../or/docs/frameworks/EMBEDDED-SERVICES.md | 86 +-
.../pa/docs/frameworks/EMBEDDED-SERVICES.md | 68 +-
.../phi/docs/frameworks/EMBEDDED-SERVICES.md | 20 +-
.../pl/docs/frameworks/EMBEDDED-SERVICES.md | 20 +-
.../docs/frameworks/EMBEDDED-SERVICES.md | 42 +-
.../pt/docs/frameworks/EMBEDDED-SERVICES.md | 42 +-
.../ro/docs/frameworks/EMBEDDED-SERVICES.md | 42 +-
.../ru/docs/frameworks/EMBEDDED-SERVICES.md | 22 +-
.../si/docs/frameworks/EMBEDDED-SERVICES.md | 24 +-
.../sk/docs/frameworks/EMBEDDED-SERVICES.md | 56 +-
.../sl/docs/frameworks/EMBEDDED-SERVICES.md | 22 +-
.../sr/docs/frameworks/EMBEDDED-SERVICES.md | 36 +-
.../sv/docs/frameworks/EMBEDDED-SERVICES.md | 40 +-
.../sw/docs/frameworks/EMBEDDED-SERVICES.md | 24 +-
.../ta/docs/frameworks/EMBEDDED-SERVICES.md | 20 +-
.../te/docs/frameworks/EMBEDDED-SERVICES.md | 22 +-
.../th/docs/frameworks/EMBEDDED-SERVICES.md | 24 +-
.../tr/docs/frameworks/EMBEDDED-SERVICES.md | 44 +-
.../docs/frameworks/EMBEDDED-SERVICES.md | 56 +-
.../ur/docs/frameworks/EMBEDDED-SERVICES.md | 18 +
.../uz/docs/frameworks/EMBEDDED-SERVICES.md | 20 +-
.../vi/docs/frameworks/EMBEDDED-SERVICES.md | 40 +-
.../yo/docs/frameworks/EMBEDDED-SERVICES.md | 18 +
.../docs/frameworks/EMBEDDED-SERVICES.md | 18 +
.../docs/frameworks/EMBEDDED-SERVICES.md | 18 +
68 files changed, 3243 insertions(+), 735 deletions(-)
diff --git a/.i18n-state.json b/.i18n-state.json
index ff4e74e08dbc..693c643b0cc4 100644
--- a/.i18n-state.json
+++ b/.i18n-state.json
@@ -31154,15 +31154,15 @@
}
},
"docs/frameworks/EMBEDDED-SERVICES.md": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
"locales": {
"pl": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "091c81309dc00f9e997069dcb1f10ed6f0e2551745344f57d675b0aa28cc747e",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "ad223bc1e3230f4ea1d023e8fc94794db2666f14216f3b810cc23e593edb5187",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31172,15 +31172,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:58.139Z"
+ "updated_at": "2026-11-03T23:25:53.802Z"
},
"ar": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "a934d8f585605d506bbfdb57384869ce58f2f1450bd35cf798bb8e78286d17cc",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "0f4005b09294822b4020eeb4f1486730e6b60406bde5df7484058d56372381bc",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31190,15 +31190,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:03.577Z"
+ "updated_at": "2026-11-03T23:25:27.704Z"
},
"cs": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "1f69afa4e517394e63c55fa5208c9e7b9db59473d02aba3e71e4098825d046c2",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "de2d301c5b3ba43ddc788d467bd30b81d89c7dfac76c84099fa03e3d57887b37",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31208,15 +31208,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:08.921Z"
+ "updated_at": "2026-11-03T23:25:32.275Z"
},
"bg": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "c9642b16c01fd7c9f4f03dd806cc0e178355204d85e7de986c38b742627dbdb7",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "5105f4e35e1353fb6292a208a819b846f0faeaff44fb15b97f4123a1123487a1",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31226,15 +31226,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:03.573Z"
+ "updated_at": "2026-11-03T23:25:30.091Z"
},
"bn": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "29dcbc965c3276a209c13be0bba430b520c4e5ef3060c87ac8513de35c917846",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "e4c7f260b7ba50eb1a8ca669060e3c35909c77a37d57e0a644305ba8eed6345c",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31244,15 +31244,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:07.229Z"
+ "updated_at": "2026-11-03T23:25:31.097Z"
},
"az": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "848cdb6a8a0168be59b3a4dca22fb31bf9f81c5fd0f209cc0e3374b7fefb24ce",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "1b178ad52ca514931e3b62d8a3a32ade3432d3d7676fbc23546b0e5b6f4ab0a5",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31262,15 +31262,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:03.581Z"
+ "updated_at": "2026-11-03T23:25:29.397Z"
},
"da": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "9bf521bc6c4a94796452b7a3748fb82bf436512c0e886e0a1ae45cad3e99d29e",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "7e9cec2672f94dc02cd863883a574d81064d311dd66b478ce5058f4c7db84d79",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31280,15 +31280,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:03.567Z"
+ "updated_at": "2026-11-03T23:25:33.298Z"
},
"de": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "31229e48ed05c805f7d246c96314a4531c3a4d9802b07a4be73680d4097fca5b",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "8ceab1519d28d5ebcef2036a79c9eda3aff4fc313ef2fb1426ad8697a4a55b1c",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31298,15 +31298,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:08.859Z"
+ "updated_at": "2026-11-03T23:25:33.700Z"
},
"es": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "88cdd575cbff375eaefb9aee19a5e83778270ab56d8d48fbeda7b362488e4444",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "a1f7ef22c9b4c9cdb9de9356b0adde7628ee43fc6c3f906e6cd630aa4731f6d7",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31316,15 +31316,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:10.526Z"
+ "updated_at": "2026-11-03T23:25:35.304Z"
},
"et": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "4331f61204e4027bafecd46d25afd35f816be7164214b09cf2e981ca29312568",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "ac5f98fa18735af10de7fa53005309405497045b77de6a5f68055c7170e69973",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31334,15 +31334,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:07.218Z"
+ "updated_at": "2026-11-03T23:25:35.891Z"
},
"el": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "006d32219d67646b3591ce615fbcef16d52c820db609030d6957319a3215f4ba",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "8017a9ff5bd348de6b8ba89e84bf8812fb7cf41e42633920f58de2ba34eb30c4",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31352,15 +31352,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:10.538Z"
+ "updated_at": "2026-11-03T23:25:34.436Z"
},
"am": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "2c33b9eb038fc0f89b8f541e4fb39210f0b9ba6c18ea0d6899630b1eb64a7025",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "b36c5acf02a27a66313f38b87c92b3af0f80e59b526a1ecfa9a256d4bece51e2",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31370,15 +31370,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:10.555Z"
+ "updated_at": "2026-11-03T23:25:28.567Z"
},
"fr": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "53699886eb453e3b0b1a87233d30021577a3bf1b85aa4b090c25ba13bf96d219",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "4c2997806b33b31b76b80be9972628115986a5734f09f5f3ddcf6f3f764f3610",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31388,15 +31388,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:16.514Z"
+ "updated_at": "2026-11-03T23:25:37.336Z"
},
"fa": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "9f4c5286912449822048a2a260effcf66eb9c21f1ef43aa100438aa3401f1d44",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "73a773df11dc252307b4d2de7be8a4dbbf8b27fbf9268409eb19f96a8016cbf5",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31406,15 +31406,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:13.406Z"
+ "updated_at": "2026-11-03T23:25:36.183Z"
},
"fi": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "0a6fb36ef8e5693709d47f1335c15d869cfc2ad07bb3823fc90cc373f60a0366",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "62a1fa16a6ec74095e43710648ae6414e3fd23797dc9e9e11533648d928861b5",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31424,15 +31424,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:13.323Z"
+ "updated_at": "2026-11-03T23:25:36.816Z"
},
"ga": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "63f08212141bb43a06b75c6e6560a0d4eb38f764a2dd9db586a86b919af4e171",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "19c7a0622a2ec41c340bc13bcde48262850d712ad3925048280fcb1ee4b817bc",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31442,15 +31442,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:17.230Z"
+ "updated_at": "2026-11-03T23:25:38.028Z"
},
"gu": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "ed6d30cddbc8c9ec88357078d3bebbcfd59de40dec84c00b8e0f62ec825ab1d3",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "ad123165d56143aeb756267fcce20a4688396389c12b479be42d2505e36d28a1",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31460,15 +31460,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:11.917Z"
+ "updated_at": "2026-11-03T23:25:38.640Z"
},
"ha": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "ecea62e9beb0d32cdb496819d4218af8ee68d2ebdb5fd576cc650507c09733f5",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "5445abcf62f3f0d4738bf0e4334ce7eb518c659e08e4e4e2d1a096b7d3ee9f34",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31478,15 +31478,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:17.887Z"
+ "updated_at": "2026-11-03T23:25:39.767Z"
},
"he": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "635ebe44beab8e7eaaffa17c06c6bf381a0cfef32f711ea04046b7c11c835105",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "669e1c77cc368fa2ba45177cf355a3c5751156955128caf5fbb76f988135046f",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31496,15 +31496,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:14.662Z"
+ "updated_at": "2026-11-03T23:25:40.338Z"
},
"hi": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "faf0caaf216c26c16992ff2e2f4c139be53131ab28ca7615a8691c56d58aef25",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "84026620cb50ea9eed67717c42119abefd61c0dc69865ba33859590c741f0130",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31514,15 +31514,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:17.264Z"
+ "updated_at": "2026-11-03T23:25:40.869Z"
},
"hr": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "f91a1fd901bc58052017252fe60e397d7132bbda14a2ac6dc8b4131172124eaa",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "780b3f5328f298d741ee290ea0fe503c55a323ac561eb8976d63bed307be0263",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31532,15 +31532,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:28.377Z"
+ "updated_at": "2026-11-03T23:25:41.261Z"
},
"hu": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "10f66c410b81c333051af9b4f46df04d71430efe585ce73188e1d81b2b262f0a",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "dff5983af5794b9eddb6c5c2bc97e384c902df65077643f0125284e48f7879b3",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31550,15 +31550,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:24.141Z"
+ "updated_at": "2026-11-03T23:25:41.791Z"
},
"hy": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "23e71ffad9f0495571fce447f921926cc37d44b81b7d1cf1f0b0a9004dfa78f4",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "420ecc7a7f61d21ba203ebc3c95820c8900e83f4ec2d5dc61057afbacffe6a4c",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31568,15 +31568,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:23.322Z"
+ "updated_at": "2026-11-03T23:25:42.332Z"
},
"id": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "3a2712c45b74cdb2a18ecdb9b583e5e779fa83ec8108b7579dbf1572e56d8a52",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "a36836528bbe0efff92d70aa2b54f835fa0b99c1cf2014157b2e339ff424091a",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31586,15 +31586,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:22.570Z"
+ "updated_at": "2026-11-03T23:25:42.790Z"
},
"it": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "79be73fa2cdfaf6a2b0f4f9a8fb039711e1436ba5dfb10644a5d74e8bea98042",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "a717182899d13c5daa4669ba57137456998f3a4a756b9fcdab9f04e8ec55b461",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31604,15 +31604,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:28.403Z"
+ "updated_at": "2026-11-03T23:25:43.629Z"
},
"ig": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "58d884e86566aa9278f6e766937557a0155b8e724cc35b332cd8376ddb65e3aa",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "0480f3208dd98dd4718e2136aec55a821a8608e1c36bf078ad3aa188f2e0052c",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31622,15 +31622,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:25.109Z"
+ "updated_at": "2026-11-03T23:25:43.277Z"
},
"ja": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "e77b99cc5b57ea1a1941f909c10eec9bffa71965df54a1b2b6daeaa73b88ec58",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "77863aeb783e86923ce596032d928cdc4d2189fb95691eeb2c7a1f3d7ecf164b",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31640,15 +31640,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:30.956Z"
+ "updated_at": "2026-11-03T23:25:44.964Z"
},
"ka": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "0a9d5a10cfe49b5d98a57c370aaccb8b5dde870479766302098044ef7123bef4",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "5e8c3768431e9f7070b3dec086887c5f0badfa5503f46923aeb4466e629005a2",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31658,15 +31658,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:34.167Z"
+ "updated_at": "2026-11-03T23:25:44.529Z"
},
"ko": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "de493047945af977caa714d723df80112fe342d584039e33bf5b5226cfc625ef",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "81493ce9713e371c72b5c78cef8b0894b4fdc3b90f0163f88b652cc423fff41b",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31676,15 +31676,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:35.817Z"
+ "updated_at": "2026-11-03T23:25:47.161Z"
},
"kn": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "25b5dff105a9b56904b8724932d98e5b9d1243f708a4037fa99f182fe325123a",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "c2d4e8b1913453ba157c174a4a94eab49d5033de7a3dd6ad1370a6bf7d6cb432",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31694,15 +31694,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:39.095Z"
+ "updated_at": "2026-11-03T23:25:45.923Z"
},
"km": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "518d4b7d0c2abb28f4c3cf9061e65f26fc4abad4b9ade196de3a337498b8d250",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "7e6e30b7c1d14fe6ee6134f4205963572224c3c9c61b0b941a72b3ad394d2512",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31712,15 +31712,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:32.789Z"
+ "updated_at": "2026-11-03T23:25:45.404Z"
},
"lt": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "cde9dc3f9d3652287f7cd53c295e7d821e399a97318aab9dbd0c1f62142b7621",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "1ae9f223224c7f761707f641dd377d7bfc03fb82465169af02d6bf398bad1d25",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31730,15 +31730,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:37.993Z"
+ "updated_at": "2026-11-03T23:25:46.917Z"
},
"lv": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "b8586b63185e52c36131c9a2aae44f388b43a382e3d5ec040a726a9a5d7317f1",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "68e222eef19322fcb74cd8834bbfda5d14cec8df2cf65ba90ef136fed12b3b8d",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31748,15 +31748,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:37.954Z"
+ "updated_at": "2026-11-03T23:25:47.662Z"
},
"ml": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "81a3532b3436b992c6ebc22c8e04083f1e3640dc687f2331a6e885bc046fbf2b",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "d55aa56c65f88990a68016bd516c521f46ac90201bfc69f132aee5aece2f2848",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31766,15 +31766,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:41.240Z"
+ "updated_at": "2026-11-03T23:25:48.244Z"
},
"ms": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "f2bb258f4a247f015a4ce8c9bb6c7e29a158dbad2abb241bd0157d9e0b347efa",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "c04c1d903506db9a1933bb80385d213dce774fff74fb0bc2d43f848d88f6f98d",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31784,15 +31784,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:41.199Z"
+ "updated_at": "2026-11-03T23:25:49.064Z"
},
"mr": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "3719bf7c2ce0530dc4cc15cd52948c123d896d8d9926ede0531ca58168e983fb",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "0d550c05de16f28f549190ac5a0ebb2ec38c831d311010f974b56259f847c08c",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31802,15 +31802,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:43.549Z"
+ "updated_at": "2026-11-03T23:25:48.413Z"
},
"mt": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "74f21e056517ef76502b1d54e68bc53362083b840aad0edb58ead3605ff70796",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "91561231305878765e04053314db0646b733fff73b0d54c0c6c30f846458bee0",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31820,15 +31820,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:46.699Z"
+ "updated_at": "2026-11-03T23:25:49.181Z"
},
"ne": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "375e3c0f4e687051dc43438d3cf31ec3153b42b97d9b66a296e62fb68a098181",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "7089484a6e9dadea4fa339535e6d1d6a88af2473ee68f4d49ba2691fa73fe031",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31838,15 +31838,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:46.800Z"
+ "updated_at": "2026-11-03T23:25:50.077Z"
},
"my": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "98670eb6289c3316a3e21e80bcd530cbc32fb77c5801ad092fae359a73f1d163",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "01f570f496800b91a8640e4d6bcdba645db9480da45e0eaa65a6e4c59c17868b",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31856,15 +31856,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:43.577Z"
+ "updated_at": "2026-11-03T23:25:49.926Z"
},
"nl": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "00c5f4803c8d91723abc91d8055044795d55158d14a5975a0614ad35681e2147",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "7623b56eab759f0652721c704a963c1fba8571af5ea523bff8a1095da4583880",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31874,15 +31874,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:46.865Z"
+ "updated_at": "2026-11-03T23:25:50.607Z"
},
"no": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "6fbf030349b51c1b6953d1e4ca65ae116e66d5089d031657c175e04eeb949307",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "3ca82d7f01c6e6dec5da2a194f041d8b807ab3d018c962ccab1e9f56ce72f1b3",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31892,15 +31892,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:53.211Z"
+ "updated_at": "2026-11-03T23:25:53.008Z"
},
"phi": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "ac13fbad8fc1ed0d7afe7f267918427174a494d1dc8f151d46f602aa6a55452e",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "34c98dfa93f221fc6dabbc8b68b564dd487f46b91ebd34a4110e9044b7d19126",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31910,15 +31910,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:54.201Z"
+ "updated_at": "2026-11-03T23:25:53.531Z"
},
"pt-BR": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "cc35ed6bb5ebb7cd0a63baa7ae1d3ba83ba994dde6412361381b1c6b74c8db5d",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "b4551035a0f98ac07d580e2b022b585e922d997329045fafe43e63ff62d839c6",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31928,15 +31928,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:56.340Z"
+ "updated_at": "2026-11-03T23:25:54.435Z"
},
"pt": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "eb1a5b1c7b9c6cfd98ddfe6eb4b6e177625f831674be603845baf57dfb1f55cd",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "40aef8fdf9227fd8935ec2e2b6c7ff1aa1d7918f800d0a6d39be02d3b17f8616",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31946,15 +31946,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:55.497Z"
+ "updated_at": "2026-11-03T23:25:54.536Z"
},
"pa": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "e8331f6fa222b238cdc45d3e20da1bf4f67d8a987b34ba3e1ced3c3e528d9b60",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "9384d6cbec309d506f7c862b5f643e10645dbb198081e672d62efc550f2c4062",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31964,15 +31964,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:57.515Z"
+ "updated_at": "2026-11-03T23:25:52.673Z"
},
"ro": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "6a704291ded6623f01d14c8a2e14fd8dcc7128477cddfebabbb14b5cdaedd636",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "c8da663392ae05a08ee65cde8a28dcf76d5006dd031481473a4d08f8dffd5eb1",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -31982,15 +31982,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:59.594Z"
+ "updated_at": "2026-11-03T23:25:55.101Z"
},
"or": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "83304c9c22d0278336abed411c68ad48da4b20db88b227fe6834f40869273736",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "bd00c44528ca8a52e4661def85f5bb7dde358ef2cfc8db7f15d3d73ff923c8b2",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -32000,15 +32000,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-03T06:11:52.583Z"
+ "updated_at": "2026-11-03T23:25:51.378Z"
},
"ru": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "97555f5333f7b143a61085f98544ac4477860b93ffff1802f5082a5bcdbc1a08",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "ed28e62a712661cf5149bd833b34591ce49c3b44ba57c080bccb2afc6cd96b3f",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -32018,15 +32018,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:58.825Z"
+ "updated_at": "2026-11-03T23:25:55.206Z"
},
"sk": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "d6f28922eb388b3735d02dee7cab78d6120826ca51ba298033c0d8c44cbb2ccc",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "4eb623ebed40a3f5f02198774db9f5c169a7a0c9337f19b53d75f79435435f9c",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -32036,15 +32036,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:19:05.083Z"
+ "updated_at": "2026-11-03T23:25:55.905Z"
},
"si": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "0b92c09fb026fce4619ea147fdc56736de70f4ddd4de830b87c05bc4fc0857b3",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "a8e0b5bbbdaaed4518067f1738bfd57e2c95886d88aca70296b7a1a4cf9a4d35",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -32054,15 +32054,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:19:00.650Z"
+ "updated_at": "2026-11-03T23:25:55.802Z"
},
"sl": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "57043f1a026a51f5ffb502c6b6af73da20b2a423c2548e70bbf972465f9cce3c",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "b27a88655309e01531257ba23c055bcff16dc8ce9fc9afc32f9fb6aad3d341aa",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -32072,15 +32072,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:19:03.409Z"
+ "updated_at": "2026-11-03T23:25:56.479Z"
},
"sv": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "3b994fa239b6462053e0249271b8e5736ec08b6f5a4a654664363f634d59184a",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "ebb21a04c1f71b6129501c3452479ca1d27e4dd3875e1216580491dd6014268e",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -32090,15 +32090,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:19:02.426Z"
+ "updated_at": "2026-11-03T23:25:57.163Z"
},
"sr": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "c3cde9c5f151f622c8892eb60177546f585b40706edae8e41dcf0654e837ac9a",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "436e2b55dedb613c56fb8f6cdc844c63d148a3aa7953920c1ea4bf0bd1d58efd",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -32108,15 +32108,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:19:02.417Z"
+ "updated_at": "2026-11-03T23:25:56.596Z"
},
"sw": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "1c1497109d85b8e4282fdda29d3c779ebd9cf8fb1e733d735fa739c4223d27e0",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "2480d8a49e575eb1061ff32abb12f7d6eb548f48464372cd587df8ed90d877e2",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -32126,15 +32126,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:19:08.421Z"
+ "updated_at": "2026-11-03T23:25:57.585Z"
},
"ta": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "bbf040bb3e1764ffea11e97378eba823de852e145c311a461dd27498ae46cc74",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "24292e048a33d8089748770f7ccd5bad80e2155f11e9cb449be92d89b6d41fc6",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -32144,15 +32144,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:19:08.426Z"
+ "updated_at": "2026-11-03T23:25:57.839Z"
},
"te": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "c820683b05f208ac21f9f4f5f338f52ac5caffe43d6cfc0b49d442a1fed0fcfd",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "70a6ebc2f83ede511dc9583897be1608c893a55414c04f67ccd6737c7d891d40",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -32162,15 +32162,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:19:05.896Z"
+ "updated_at": "2026-11-03T23:25:58.804Z"
},
"th": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "3d47dacd7036f24a5debb3084c02e56e1bb6a3138655a35949ef69aacd2a9a6f",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "55b6201fea2bf75fb825c41f9ff339ad22c1ad9de68f203509fe172044ca19e7",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -32180,15 +32180,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:19:10.115Z"
+ "updated_at": "2026-11-03T23:25:58.560Z"
},
"tr": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "8058444ba8fcb2a901ca992899aba323dd7fe20c58715ef3cf0a8c10ebfb606f",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "5daf4afb45839c563d8e059514f14550a227cf4a160d3e0fbe12c691c130ae30",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -32198,15 +32198,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:19:06.720Z"
+ "updated_at": "2026-11-03T23:25:59.250Z"
},
"uk-UA": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "9b96dd00579326c28ee006ea32407df0e654a86b181eb688499dd60bcfee114f",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "133b096a8fad70a8489ef41a893c30c03655ddbdb96352161ecfa76d5f0d6662",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -32216,15 +32216,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:19:09.116Z"
+ "updated_at": "2026-11-03T23:25:59.936Z"
},
"ur": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "78b1c8382be5eeb0e3b5fccc9f87b2f8e919233e5722034da840fce1a805ba06",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "e2f9cc7dec5a95d9bd56e4a5c354329bdac8f837c5852049ca936c7525903f5a",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -32234,15 +32234,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:19:10.876Z"
+ "updated_at": "2026-11-03T23:26:00.047Z"
},
"vi": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "17bac41bde21398e5065042c0aa75efde7bdc704ddf0c261b939de8192f3f73b",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "78b7df091efdbf75266d2f163e5f8150575e531058a23a71360c21deaa64b91d",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -32252,15 +32252,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:19:12.034Z"
+ "updated_at": "2026-11-03T23:26:00.731Z"
},
"zh-CN": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "4878deb86f6703d968bb4e6f571781700520fa453e6c9e6ba447c9b99c3d174b",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "a337593480646feaef50862423a1e365d48b761ab3132cebb307cbf5c0af62f4",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -32270,15 +32270,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:19:14.022Z"
+ "updated_at": "2026-11-03T23:26:01.897Z"
},
"uz": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "3666d612d47db3c3f8f0d843af76bcae61d85386e40b7ddf91137a5c00ee2279",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "1ff09b43934dca1070318d9a8ecd5b8d3a2fbb6704d9a2055713bdb7fd90b2e2",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -32288,15 +32288,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:19:12.845Z"
+ "updated_at": "2026-11-03T23:26:00.618Z"
},
"zh-TW": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "e9f05f6e8b4f8866a7fa4faa46eeac5182a2ae4f93372d0e400122502e3b3651",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "92575b36dc4f43e3b07f145d158307c9696add50829ee9249d3696a706edb420",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -32306,15 +32306,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:19:14.488Z"
+ "updated_at": "2026-11-03T23:26:03.071Z"
},
"yo": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "f83e2e9525077715506dc67e9d26e62a50e43a2d22463836f85e0963d22b8996",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "745664b633570c14608043e7a60d42b95decb422420aee9b5a82af00df0e7802",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -32324,15 +32324,15 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:19:14.024Z"
+ "updated_at": "2026-11-03T23:26:01.310Z"
},
"bs": {
- "source_hash": "293bdfd2f5278cee7bda26efa9eff420ffb93e00d062c0437493689d69e8d3bd",
- "target_hash": "cc9cf8f82b51cec26902ad729c117579d032f16ec1043c89c705e208eb0275d7",
+ "source_hash": "8aca6ba14841a31dc223b84ae31bef586cfc11016d9e190f304d723c29d68ea6",
+ "target_hash": "07d750f989a517dc09a68f541769d4ea4fa314e8226ae960a6b6cddb99509983",
"section_hashes": [
"9576d500388b",
"99e9925aa7fa",
- "a28ae3061f6a",
+ "9974b411cb7a",
"1d3c13d973a4",
"b3186dce71c2",
"a99e31188b9e",
@@ -32342,7 +32342,7 @@
"ffa17c5ac309",
"b68bf7eedc90"
],
- "updated_at": "2026-11-02T18:18:05.277Z"
+ "updated_at": "2026-11-03T23:25:31.575Z"
}
}
},
@@ -76258,337 +76258,1657 @@
}
},
"docs/ops/PROXY_GUIDE.md": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"locales": {
"pl": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "94cc234e5792e478a18b1b7186a6f29e33c449ec38f4a970685bf8649b588cfc",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:05.954Z"
},
"ar": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "0e7ee537838c8c1c4e4207247fcd08dd7aaef43078381e7f7df66177c36b56ae",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:02.087Z"
},
"cs": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "05b77acb97ef006ce2769a22a1bbabf5ad8db35bf96f3260fc2bff71e045564b",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:02.562Z"
},
"bg": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "d8fd2001a6cd75501f94210f74c0964c3f43aa780c2532ff347f433cf039d057",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:02.297Z"
},
"bn": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "c21db995d4e67877333451fd9fc03e6a5b485dbff00ae62acfb92ef24613e66b",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:02.384Z"
},
"az": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "926c68c634786a732585a1282501f51742195d135effe5df1da8d5f57a492bd8",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:02.203Z"
},
"da": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "5dd30ce626ff49bf3dabd946a1715baffd379542f03431e5bfdbec30b2c479ca",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:02.642Z"
},
"de": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "9f3976078d174e9b0eff2d9021b65ba4973c445d5de1da9a96003edbd482edfc",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:02.722Z"
},
"es": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "416af647fd295b6582aab51cf029e7ca6f04ae42d5bec9f0fe7879501fa89f7a",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:02.889Z"
},
"et": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "bca08629c6f9c6b6dd45188428a6a77bb71bc57961088e4c21b31f65a2d9cb16",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:03.048Z"
},
"el": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "da696b223f30415175e17d437e50e924781b65c00ebd3d7464efac435c34ca37",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:02.805Z"
},
"am": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "079d36a466718d172fd6de387b181d42a917818674e7a5b665e3f8478c4af0e9",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:01.991Z"
},
"fr": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "68a9520892155028efce3fc13c04d5e25150b55fb7cee7070782d8cae07b5c6c",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:03.429Z"
},
"fa": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "62df65dbefadd6db4bb037b3821923173e10fb3959106788cd8b959a89d1bb51",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:03.210Z"
},
"fi": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "0e6e41395d96ae6b80f6f9aeb6cef16d8c31082fbc4130bca62d8d7d2eb57395",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:03.230Z"
},
"ga": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "0e5057532ecbe3fc8d900d1a348792e6f2d08e128f81376f429d75c703a510d9",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:03.407Z"
},
"gu": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "97262cc1ac3f3addf6db2810b7b275022a0b03ed7fe4ab846cd12c33b688c3cf",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:03.600Z"
},
"ha": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "bcc553a686f1c4b50777ca3dcf2d91ed72fa6c687fbccdaa9324fccc9607b338",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:03.620Z"
},
"he": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "7f045d4afd0b71235248acc76b9f4cae11ad7b8e21ede861d32f8f596ecc5a95",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:03.747Z"
},
"hi": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "cc5a526c650f9eae9b1145283eb865571204c92eedab1771b431f328b2873253",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:03.768Z"
},
"hr": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "e70acfeaaba49ede8477595c29ad459ba46aae1451295b0cafb30f7d81027ded",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:03.916Z"
},
"hu": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "9bc26f15d46519bbb094e6433a0606e878d67fa0eb5e03eb346d9982c21f1290",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:03.939Z"
},
"hy": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "9d2f20334ce5fcfa84b7e05dd7e8adaf75d4638a9ea7768f5b9c851037acdd27",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:04.067Z"
},
"id": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "a7de91fc922b2110930c76670ea846a983196670b8fbe41cb6692b14f8c21d73",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:04.089Z"
},
"it": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "56a26efd04c42acf418db9aa497947c6a5c99cf278e773de2dd1134ac30cf73d",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:04.254Z"
},
"ig": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "85937f49fec929eb280634aee3e0295234518ac551755ae18110d7711513a92d",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:04.230Z"
},
"ja": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "b34c87abc56825654b02ac889c5e44dfc5663ed51e2023c9852b707c9bcb814f",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:04.398Z"
},
"ka": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "e5f22f3529d27ef06bd6d20df99e32183efcf2bbe1464c3b405ff11de546e12b",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:04.420Z"
},
"ko": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "bd2151b8731ba3ba014c477c645cf92fe7ca1f304ba2e4bdc0e88f55fc3bc1b4",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:04.717Z"
},
"kn": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "40571d8f5a012c3725837a15f1fa8795e3fcaa1f59cd846e08b64a5a4a102be2",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:04.565Z"
},
"km": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "e4ee1d7468d0b92da18de258eabc8b1cf9c2468793cf20ffe80bde72f9603184",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:04.542Z"
},
"lt": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "b5ec59fe8efb0ce1fca7b542fcc6ecbbb263c1e1524d3d059c179d22976d93d7",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:04.738Z"
},
"lv": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "15d3b58bf9a7094d50430c1e4f9c16033b58cf3af6cc1ceb6e06de7d5fa87d16",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:04.821Z"
},
"ml": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "05f5e4c993e547d0650605e132c8becb3a32cb43064eff797a4915db97df6d6b",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:05.151Z"
},
"ms": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "1367db0088563f84eb57a88cddd349e9ecb1d1972d8108eb9de43b198e1a1e8b",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:04.987Z"
},
"mr": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "2b0100b17c461bbdaca3af06b7fabe7f54d8559c147038110014f4a9b0eeae24",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:04.900Z"
},
"mt": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "3ebcb9be5b3dcbd350b407d23240ae651f15c34608b5ff5ab6e2fc0e1ba6ee86",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:05.129Z"
},
"ne": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "f4e9d39d9ad4482f2345781e1ef99748268a201dda7fd578465b314a53269719",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:05.235Z"
},
"my": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
- "target_hash": "bf02298bee6856c0c016dc0cb69f1f75ed0be971e06b789b5d44d0cf1ea4a823",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
+ "target_hash": "1eca6d626a6e85af0a3623d401de775a0e76b551402cb67b9a9c90d933c75ff1",
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:05.587Z"
},
"nl": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "20879ba6e967482e61617376cae9ae049f0e3a8f68b56950f0d59d2a2cbd54e9",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:05.320Z"
},
"no": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "50b5552be9f878f28ae7b287d0a8665efd7daed5a893e5a5c7f08b0a72b4b223",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:05.402Z"
},
"phi": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "8fe8ecf6c214fecf24399029dd9fe5f5b26958d3ce75087f21bbb00e70fb7838",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:05.749Z"
},
"pt-BR": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "3d67db16a6b0c34fb7c8a7ae59a4e69accd4d97a5ae84126b56a13a057d44fc4",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:06.096Z"
},
"pt": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "2dec2d3a75f8b00ff3007b5d77e795e6b80b2ac571b248b254942ccff141d9e5",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:05.931Z"
},
"pa": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "f821a52992dcfa93ddb2725736c3a356f870db9682f1751c208bcd900d3c4e70",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:05.771Z"
},
"ro": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "7c43a5a98f319e81efc84f5c03d1c6119281e87d577cd508fdf6952582a21982",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:06.117Z"
},
"or": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "406cd9a06712c761078aec59a2cef8263aaf6caf280812f68d9a1fa14b48188e",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:05.566Z"
},
"ru": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "cb40f97ef61f4f789d56419668b0366c6858595e480851c604b6884ee257d439",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:06.250Z"
},
"sk": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "758e7ab2f07f0f943c69f128abc2d1466cf49c2d3c59b751d8ec328e6900a251",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:06.402Z"
},
"si": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "25a2047e2624c6605504303e20aa0a2a8821bb8bdafc974bb304ceb8587069dd",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:06.273Z"
},
"sl": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "94e76ed69947ac41d3d0ce2c4789833e0293696c4cc07a20743115266116f680",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:06.423Z"
},
"sv": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "b26789d01d363299357c46c672cde81bace2b6809ec8302dceb84a5b92bb9e75",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:06.578Z"
},
"sr": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "1a9d3a59d34e802596d64c9ed0f0763e0884b33ed047b4173b166878503061c9",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:06.555Z"
},
"sw": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "7c1f7f67a6caea5020cc09058bd95551db4f7605be4c7ddb78b29b66674986ef",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:06.715Z"
},
"ta": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "f1c47299bf5a5ba99b1fa0b1809209bf72554da045c88a15f90f424cb04270ac",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:06.738Z"
},
"te": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "591671383ff1ab73830852ab3b5193d3f5019b68d13f576a098aca0a151b7f88",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:06.819Z"
},
"th": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "ccc6542fce96f4a835f3e11b32785e0473ec7ef91a2c473e82eb4fee9b2d7fcf",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:06.893Z"
},
"tr": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "da392fe338e36339c189e47be829e2199dc719ac598963083e1f4caacb022749",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:06.978Z"
},
"uk-UA": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "abd9b115b3c3e34c5702750d51ea0366405f573a4174d50619bc105b3b0573ec",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:07.051Z"
},
"ur": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "a2c194cb9ee6bc536ad78bd3132b4bbbb0b6e0c4618bf76efca2d3e8c149d8bb",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:07.135Z"
},
"vi": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "a549b8059e8c942c7485b0ee626e005b71f79165fc608f6d168ee1791d620078",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:07.311Z"
},
"zh-CN": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "194a21845fdb07a45e27568cc4ed03cb180e2e9c6b6da95bfc8d90b75bee0f84",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:07.469Z"
},
"uz": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "b7fddf873f40ef834f8c7697ceae8b67edada109b98bab7f7eda7c201aef6b72",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:07.218Z"
},
"zh-TW": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "e6b61bbf68cce8c25afccb09bc6e19438d88b9a51bcffdeb0d0a0ea7436c7432",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:07.522Z"
},
"yo": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "8bf2a39ab3a0371a169ba9f9bc7c55dd4c0936e712bea403f148c2f6c3e569d8",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:07.396Z"
},
"bs": {
- "source_hash": "1fa535ab3c9dbd5324ad8de7f4f59e91c56712b94817eccea5025efd7a587e9d",
+ "source_hash": "4066549d15c49ad1e0a8a0f10e8fdd73fb41683a0020359ed5f16d8f0c467c4c",
"target_hash": "dd2ea52072201d878be899ac1637bee1c18c5d5ced4855368bd050fd3ebde014",
- "updated_at": "2026-10-17T14:56:46.694Z"
+ "section_hashes": [
+ "5f4447ea6c15",
+ "ea68898f1cba",
+ "a723b7da90b4",
+ "4601ddf6545f",
+ "95ef8c2f09fa",
+ "fca5fa162ac4",
+ "eee03be37764",
+ "55b356335658",
+ "3e8dc5a90529",
+ "4a79c84ad422",
+ "4b9b2534d060",
+ "9b09cf438063",
+ "6bbedae03c98",
+ "a90f68be699a",
+ "bb6531fa12d4",
+ "b5165d11b181",
+ "2cb520d2706e",
+ "494f80016552"
+ ],
+ "updated_at": "2026-11-03T23:26:02.475Z"
}
}
},
diff --git a/docs/i18n/am/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/am/docs/frameworks/EMBEDDED-SERVICES.md
index e9f596ac7487..372a6de2a81c 100644
--- a/docs/i18n/am/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/am/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,7 +45,25 @@
- OmniRoute በ `DATA_DIR/services/{name}/` ስር ይጭናቸዋል (ከ OmniRoute የራሱ `package.json` የተገለለ)
- OmniRoute እንደ ሕፃን ሂደቶች ይፈልቃል እና ይከታተላቸዋል
- OmniRoute ጊዜ ያለፈበት API ቁልፍ በልጁ አካባቢ ውስጥ በመርፌ ያለማቋረጥ ይሽከረከራል (የሚመለከተው ከሆነ)
-- ሁሉም የአስተዳደር መንገዶች (`/api/services/*`) ናቸው።**LOCAL_ONLY** — ከ loopback ብቻ ተደራሽ ነው (ከባድ ህግ ቁጥር 17)
+- ሁሉም የአስተዳደር መንገዶች (`/api/services/*`) ናቸው።**LOCAL_ONLY** — ከ loopback ብቻ ተደራሽ ነው (ከባድ ህግ #17)
+
+### የሚተዳደሩ ተኪ ኮሮች
+
+የብጁ ተኪ አስተናጋጅ መስክ V2Ray ምንጭ ማገናኛን ይቀበላል። ይምረጡ** መዘመር-ሳጥን** ወይም** ኤክስሬይ** በግልጽ ፣ ከዚያ አስቀምጥን ጠቅ ያድርጉ። መተየብ በጭራሽ አይወርድም ወይም አንኳር ይጀምራል። አስቀምጥ ይፋዊ የልቀት ማህደርን ያረጋግጣል፣ ቤተኛ ውቅርን ያረጋግጣል፣ የተለየ የአካባቢ አስተናጋጅ SOCKS አድማጭ ይጀምራል እና ከዚያ በኋላ ብቻ የተኪ መዝገብ ቤት ስራውን ይጽፋል። ያልተሳካ ማግበር የቀደመውን የሚተዳደር ውቅር እና ሂደት ወደነበረበት ይመልሳል። `STORAGE_ENCRYPTION_KEY` ያስፈልጋል; የምንጭ አገናኞች የተመሰጠሩ ናቸው።
+
+የሚተዳደሩ ፋይሎች ከ TPROXY የተለዩ በ `DATA_DIR/services/managed-proxy/` ስር ይኖራሉ። በተመረጠው ኮር አንድ በባለቤትነት የተያዘ ሂደት አለ፣ እስከ 100 አድማጮች። ምንም ራስ-ጀምር ወይም አለምአቀፍ የማዞሪያ ነባሪ አልተለወጠም። ስኬታማ አስቀምጥ ለዚህ የሚተዳደር ኮር ብቻ ማግበርን ያስታውሳል። አፕሊኬሽን ጅምር የነቁ የተቀመጡ ኮርሞችን አስቀድሞ የተረጋገጠውን ሁለትዮሽ በመጠቀም ወደነበረበት ይመልሳል፣ መቼም ቢሆን የማስነሻ ጊዜ አይወርድም። ግልጽ አቁም የማግበር ባንዲራውን ያጸዳል። የጎደለ ወይም የተበላሸ ሁለትዮሽ ምንጭን እንደገና ማስቀመጥ ያስፈልገዋል። የመዝገብ ስረዛ ምንጩን እና አድማጭን በአካባቢው ያስወግዳል; ተራ የመጨረሻ ነጥብ አርትዖቶች ለሚተዳደሩ ረድፎች ውድቅ ይደረጋሉ ስለዚህ የተቀመጠው ምንጭ ከተሰደደው አድማጭ በፀጥታ ሊንሸራተት አይችልም።
+
+| ምንጭ ቅርጸት | መዘመር-ሳጥን | ኤክስሬይ |
+| ------------------------------------- | ------------------------------------------------- | ------------------------------------------------- |
+| VLESS, VMess, ትሮጃን, Shadowsocks URI | የሚደገፍ ልወጣ | የሚደገፍ ልወጣ |
+| Hysteria2/hy2, TUIC, AnyTLS URI | የሚደገፍ ልወጣ | ውድቅ ተደርጓል; ተስማሚ ኮር ይጠቀሙ |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | ለ VLESS/VMess/Trojan የተደገፈ | ለ VLESS/VMess/Trojan የተደገፈ |
+| XHTTP URI ትራንስፖርት | ውድቅ ተደርጓል | የሚደገፍ ልወጣ |
+| ቤተኛ ወደ ውጭ የሚወጣ JSON | የተመረጠ ኮር የተፈቀደ ተኪ protocols/options፣ በአገርኛ የተረጋገጠ | የተመረጠ ኮር የተፈቀደ ተኪ protocols/options፣ በአገርኛ የተረጋገጠ |
+
+ያልታወቁ የሽቦ አማራጮች፣ ደህንነታቸው ያልተጠበቁ TLS ባንዲራዎች፣ ውጫዊ ተሰኪዎች፣ የአካባቢ የፋይል-መንገድ አማራጮች እና የማይደገፉ ጥምረቶች በጸጥታ ከመጣሉ ውድቅ ይደረጋሉ። ቤተኛ ነገሮች ወደ ውጪ የሚሄዱ ፍቺዎች እንጂ ሙሉ-ኮር ውቅሮች አይደሉም። control/direct/bypass መውጫዎች ተቀባይነት የላቸውም። በ sing-box 1.14 ላይ WireGuard የመጨረሻ ነጥቦችን ይጠቀማል፣ ስለዚህ እንደ ተወላጅ ወደ ውጭ መውጣት ተቀባይነት የለውም። ይህ ሁሉን-ቅርጸት መለወጫ አይደለም; SSR, Legacy whole-base64 Shadowsocks ማገናኛዎች፣ የዘፈቀደ ግጭት ነገሮች እና ከጠረጴዛው ላይ የማይገኙ የመጓጓዣ ልዩነቶች የተለየ የሚደገፍ የምንጭ ቅርጸት ያስፈልጋቸዋል።
+
+`/api/services/managed-proxy` የተረጋገጠ እና መልሶ መመለሻ ብቻ ነው GET የተሻሻለ ዲበዳታ ይዘረዝራል፣ POST `{core,name,sourceLink,id?,assignment?}` ያድናል፣ PATCH `{core,action:"start"|"stop"}` ይቀበላል። የአስተናጋጁ የታመነ የአቻ-ቴምብር ቧንቧ መስመር መኖር አለበት። ቤተኛ ኮር ምርመራዎች የታገዱ ናቸው ምክንያቱም ምስክርነቶችን ሊይዝ ይችላል; የህይወት ኡደት ክስተቶች አሁን ያለውን የተዋቀረ የመተግበሪያ ፋይል ምዝግብ ማስታወሻን ያለ ምንጭ አገናኞች ወይም ወደላይ የሚጫኑ ጭነቶች ይጠቀማሉ። ለድጋፍ የጸዳ የመተግበሪያ ምዝግብ ማስታወሻዎችን ብቻ ያያይዙ። ኦፊሴላዊ ስሪቶች ከዘፈን-ሣጥን 1.14.3 እና ኤክስሬይ 26.3.27 ከመለቀቅ-ንብረት SHA-256 መገለጫዎች ጋር ተያይዘዋል፤ ወደፊት የሚደረጉ ማሻሻያዎች ስሪቱን መቀየር እና ሁሉንም የተረጋገጡ መጭመቂያዎች አንድ ላይ መቀየር ያስፈልጋቸዋል።
### ቁልፍ ውሳኔዎች (ከዲዛይን እቅድ)
@@ -53,7 +71,7 @@
| --------------------------- | ---------------------------------------------------------------- |
| ወደ 9 ራውተር ቤተኛ UI ዳሽቦርድ መድረስ | ተገላቢጦሽ ተኪ በ `/dashboard/providers/services/9router/embed/*` |
| የመጫኛ ዘዴ | `npm install {package}` በ `execFile` በኩል (የሼል ጣልቃ ገብነት የለም) |
-| የፍጆታ ሁነታ | አቅራቢው በማዞሪያ ሞተር ውስጥ እንደ `9router/{sub}/{model}` ተመዝግቧል |
+| የፍጆታ ሁነታ | በማዞሪያ ሞተር ውስጥ አቅራቢ እንደ `9router/{sub}/{model}` ተመዝግቧል |
| API ቁልፍ አስተዳደር | OmniRoute ያመነጫል፣ በእረፍት (AES-256-GCM) ያመስጥራል፣ እና በ env በኩል ያስገባል። |
| ዳሽቦርድ አካባቢ | `/dashboard/providers/services` (ሶስት ትሮች) |
| በራስ-ሰር ጀምር | በአገልግሎት ቀያይር፣ ነባሪ OFF |
diff --git a/docs/i18n/ar/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/ar/docs/frameworks/EMBEDDED-SERVICES.md
index d8ff283bb0cb..78efb9bde596 100644
--- a/docs/i18n/ar/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/ar/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,7 +45,25 @@
- يقوم OmniRoute بتثبيتها تحت `DATA_DIR/services/{name}/` (معزولة عن `package.json` الخاص بـ OmniRoute)
- OmniRoute تفرز وتراقبها كعمليات فرعية
- يقوم OmniRoute بإدخال مفتاح API سريع الزوال في بيئة الطفل ويقوم بتدويره دون توقف (حيثما أمكن)
-- جميع طرق الإدارة (`/api/services/*`) هي**LOCAL_ONLY** يمكن الوصول إلى — فقط من خلال الاسترجاع (القاعدة الثابتة رقم 17)
+- جميع طرق الإدارة (`/api/services/*`) هي**LOCAL_ONLY** يمكن الوصول إلى — فقط من خلال الاسترجاع (القاعدة الثابتة #17)
+
+### النوى الوكيل المدارة
+
+يقبل حقل مضيف الوكيل المخصص أيضًا رابط مصدر V2Ray. يختار** صندوق الغناء** أو** الأشعة السينية** صراحة، ثم انقر فوق حفظ. لا تؤدي الكتابة إلى تنزيل النواة أو تشغيلها مطلقًا. يتحقق الحفظ من أرشيف الإصدار الرسمي، ويتحقق من التكوين الأصلي، ويبدأ مستمع SOCKS للمضيف المحلي المميز، وعندها فقط يكتب تعيين تسجيل الوكيل. يؤدي التنشيط الفاشل إلى استعادة التكوين والعملية المُدارة السابقة. مطلوب `STORAGE_ENCRYPTION_KEY`. روابط المصدر مشفرة.
+
+الملفات المُدارة موجودة ضمن `DATA_DIR/services/managed-proxy/`، منفصلة عن TPROXY. توجد عملية مملوكة واحدة لكل نواة محددة، وما يصل إلى 100 مستمع. لم يتم تغيير أي تشغيل تلقائي أو افتراضي للتوجيه العام. يتذكر الحفظ الناجح التنشيط لهذا المركز المُدار فقط؛ يعمل بدء تشغيل التطبيق على استعادة النوى المحفوظة الممكّنة باستخدام الملف الثنائي الذي تم التحقق منه بالفعل، ولا يتم تنزيله مطلقًا في وقت التمهيد. يقوم Explicit Stop بمسح علامة التنشيط هذه. يتطلب الثنائي المفقود أو التالف إعادة حفظ المصدر. يؤدي حذف السجل إلى إزالة المصدر والمستمع محليًا؛ يتم رفض تعديلات نقطة النهاية العادية للصفوف المُدارة، لذا لا يمكن للمصدر المحفوظ أن ينحرف بصمت عن المستمع الموجه.
+
+| تنسيق المصدر | صندوق الغناء | الأشعة السينية |
+| ------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ |
+| VLESS، VMess، طروادة، Shadowsocks URI | التحويل المدعوم | التحويل المدعوم |
+| Hysteria2/hy2, TUIC, AnyTLS URI | التحويل المدعوم | مرفوض؛ استخدام نواة متوافقة |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | مدعومة ل VLESS/VMess/Trojan | مدعومة ل VLESS/VMess/Trojan |
+| نقل XHTTP URI | مرفوض | التحويل المدعوم |
+| JSON الصادرة الأصلية | الوكيل المسموح به للنواة المحددة protocols/options، والذي تم فحصه محليًا | الوكيل المسموح به للنواة المحددة protocols/options، والذي تم فحصه محليًا |
+
+يتم رفض خيارات الأسلاك غير المعروفة وعلامات TLS غير الآمنة والمكونات الإضافية الخارجية وخيارات مسار الملف المحلي والمجموعات غير المدعومة بدلاً من تجاهلها بصمت. الكائنات الأصلية هي تعريفات صادرة، وليست تكوينات أساسية كاملة؛ لا يتم قبول الرحلات الصادرة control/direct/bypass. يستخدم WireGuard في Sing-Box 1.14 نقاط النهاية، لذلك لا يتم قبوله باعتباره صادرًا أصليًا. هذا ليس محولاً لكافة التنسيقات؛ تحتاج SSR وروابط whole-base64 Shadowsocks القديمة وكائنات Clash العشوائية ومتغيرات النقل الغائبة عن الجدول إلى تنسيق مصدر مدعوم بشكل منفصل.
+
+تمت مصادقة `/api/services/managed-proxy` والاسترجاع فقط: يسرد GET البيانات الوصفية المنقحة، ويحفظ POST `{core,name,sourceLink,id?,assignment?}`، ويقبل PATCH `{core,action:"start"|"stop"}`. يجب أن يكون خط أنابيب ختم النظير الموثوق به للمضيف موجودًا. يتم منع التشخيصات الأساسية الأصلية لأنها يمكن أن تحتوي على بيانات الاعتماد؛ تستخدم أحداث دورة الحياة مسجل ملفات التطبيق المنظم الموجود بدون روابط المصدر أو الحمولات الأولية. قم بإرفاق سجلات التطبيق المعقمة فقط للحصول على الدعم. تم تثبيت الإصدارات الرسمية في Sing-box 1.14.3 وXray 26.3.27 مع بيانات أصول الإصدار SHA-256 ؛ تتطلب التحديثات المستقبلية تغيير الإصدار وجميع الملخصات التي تم التحقق منها معًا.
### القرارات الرئيسية (من خطة التصميم)
@@ -56,7 +74,7 @@
| وضع الاستهلاك | الموفر مسجل كـ `9router/{sub}/{model}` في محرك التوجيه |
| إدارة المفاتيح API | يقوم OmniRoute بإنشاء وتشفير (AES-256-GCM) وإدخاله عبر env |
| موقع لوحة القيادة | `/dashboard/providers/services` (ثلاث علامات تبويب) |
-| التشغيل التلقائي | التبديل لكل خدمة، OFF الافتراضي |
+| البدء التلقائي | التبديل لكل خدمة، OFF الافتراضي |
---
diff --git a/docs/i18n/az/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/az/docs/frameworks/EMBEDDED-SERVICES.md
index f7b939b84f4c..072601033ba8 100644
--- a/docs/i18n/az/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/az/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,18 +45,36 @@ Səkkizinin hamısı eyni nəzarət modelini izləyir:
- OmniRoute onları `DATA_DIR/services/{name}/` altında quraşdırır ( OmniRoute-nin öz `package.json` indən təcrid olunmuş)
- OmniRoute onları uşaq prosesləri kimi yaradır və izləyir
- OmniRoute uşağın mühitinə efemer API açarı yeridir və onu fasiləsiz fırlanır (mümkün olduqda)
-- Bütün idarəetmə marşrutları (`/api/services/*`) var**LOCAL_ONLY** — yalnız geri dönmədən əldə edilə bilər (sərt qayda #17)
+- Bütün idarəetmə marşrutları (`/api/services/*`) var**LOCAL_ONLY** — yalnız geri döngədən əldə edilə bilər (sərt qayda #17)
+
+### İdarə olunan proxy nüvələri
+
+Xüsusi proxy host sahəsi də V2Ray mənbə linkini qəbul edir. seçin** mahnı qutusu** və ya** Xray** açıq şəkildə, sonra Saxla düyməsini basın. Yazmaq heç vaxt nüvəni endirmir və ya işə salmır. Saxla rəsmi buraxılış arxivini yoxlayır, yerli konfiqurasiyanı təsdiqləyir, fərqli localhost SOCKS dinləyicisini işə salır və yalnız bundan sonra proksi reyestr tapşırığını yazır. Uğursuz aktivləşdirmə əvvəlki idarə olunan konfiqurasiya və prosesi bərpa edir. `STORAGE_ENCRYPTION_KEY` tələb olunur; mənbə bağlantıları şifrələnir.
+
+İdarə olunan fayllar `DATA_DIR/services/managed-proxy/` altında yaşayır, TPROXY dən ayrıdır. Seçilmiş nüvəyə 100-ə qədər dinləyiciyə məxsus bir proses var. Heç bir autostart və ya qlobal marşrutlaşdırma defolt dəyişdirilmir. Uğurlu Saxlama yalnız bu idarə olunan nüvənin aktivləşdirilməsini xatırlayır; proqramın işə salınması artıq təsdiqlənmiş ikili sistemdən istifadə edərək aktivləşdirilmiş saxlanmış nüvələri bərpa edir, heç vaxt yükləmə vaxtı yükləməz. Explicit Stop aktivləşdirmə bayrağını təmizləyir. Çatışmayan və ya zədələnmiş binar mənbənin yenidən saxlanmasını tələb edir. Qeydiyyatın silinməsi mənbəni və dinləyicini yerli olaraq silir; adi son nöqtə redaktələri idarə olunan sətirlər üçün rədd edilir, beləliklə, saxlanmış mənbə səssizcə yönləndirilmiş dinləyicisindən kənara çıxa bilməz.
+
+| Mənbə formatı | mahnı qutusu | Xray |
+| ------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | Dəstəklənən dönüşüm | Dəstəklənən dönüşüm |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Dəstəklənən dönüşüm | rədd edildi; uyğun bir nüvədən istifadə edin |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | VLESS/VMess/Trojan üçün dəstəklənir | VLESS/VMess/Trojan üçün dəstəklənir |
+| XHTTP URI nəqliyyat | Rədd edildi | Dəstəklənən dönüşüm |
+| Doğma çıxış JSON | Seçilmiş nüvənin icazə verilən proxy protocols/options, yerli olaraq yoxlanılır | Seçilmiş nüvənin icazə verilən proxy protocols/options, yerli olaraq yoxlanılır |
+
+Naməlum naqil seçimləri, etibarsız TLS bayraqları, xarici plaginlər, yerli fayl yolu seçimləri və dəstəklənməyən birləşmələr səssizcə atılmaq əvəzinə rədd edilir. Doğma obyektlər bütün əsas konfiqurasiyalar deyil, gedən təriflərdir; control/direct/bypass çıxışları qəbul edilmir. sing-box 1.14-də WireGuard son nöqtələrdən istifadə edir, ona görə də o, yerli çıxış kimi qəbul edilmir. Bu, bütün formatlı çevirici deyil; SSR, köhnə whole-base64 Shadowsocks keçidləri, ixtiyari Clash obyektləri və cədvəldə olmayan nəqliyyat variantları üçün ayrıca dəstəklənən mənbə formatı lazımdır.
+
+`/api/services/managed-proxy` autentifikasiya olunub və yalnız geri dönmə funksiyasıdır: GET redaktə edilmiş metadatanı siyahıya alır, POST `{core,name,sourceLink,id?,assignment?}` saxlayır, PATCH `{core,action:"start"|"stop"}` qəbul edir. Ev sahibinin etibarlı peer-stamp boru xətti mövcud olmalıdır. Doğma əsas diaqnostika yatırılır, çünki onlar etimadnamələri ehtiva edə bilər; həyat dövrü hadisələri, mənbə bağlantıları və ya yuxarı yüklər olmadan mövcud strukturlaşdırılmış proqram fayl qeydindən istifadə edir. Dəstək üçün yalnız təmizlənmiş proqram qeydlərini əlavə edin. Rəsmi versiyalar buraxılış aktivi SHA-256 manifestləri ilə sing-box 1.14.3 və Xray 26.3.27-yə bərkidilir; gələcək yeniləmələr versiyanın və bütün təsdiqlənmiş həzmlərin birlikdə dəyişdirilməsini tələb edir.
### Əsas qərarlar (dizayn planından)
-| Qərar | Dəyər |
-| ---------------------------------------- | ---------------------------------------------------------------------------------------- |
-| 9Router yerli UI-ya idarə panelinə giriş | `/dashboard/providers/services/9router/embed/*`-da əks proxy |
-| Quraşdırma mexanizmi | `npm install {package}` vasitəsilə `execFile` (qabıq interpolasiyası yoxdur) |
-| İstehlak rejimi | Provayder marşrutlaşdırma mühərrikində `9router/{sub}/{model}` kimi qeydiyyatdan keçib |
-| API açar idarəetmə | OmniRoute istirahətdə (AES-256-GCM) yaradır, şifrələyir və env vasitəsilə inyeksiya edir |
-| İdarə panelinin yeri | `/dashboard/providers/services` (üç nişan) |
-| Avtomatik başla | Hər xidmətə görə dəyişin, defolt OFF |
+| Qərar | Dəyər |
+| ---------------------------------------- | ------------------------------------------------------------------------------------------ |
+| 9Router yerli UI-ya idarə panelinə giriş | `/dashboard/providers/services/9router/embed/*`-da əks proxy |
+| Quraşdırma mexanizmi | `npm install {package}` vasitəsilə `execFile` (qabıq interpolasiyası yoxdur) |
+| İstehlak rejimi | Provayder marşrutlaşdırma mühərrikində `9router/{sub}/{model}` kimi qeydiyyatdan keçmişdir |
+| API açar idarəetmə | OmniRoute istirahətdə (AES-256-GCM) yaradır, şifrələyir və env vasitəsilə inyeksiya edir |
+| İdarə panelinin yeri | `/dashboard/providers/services` (üç nişan) |
+| Avtomatik başla | Hər xidmətə görə dəyişin, defolt OFF |
---
diff --git a/docs/i18n/bg/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/bg/docs/frameworks/EMBEDDED-SERVICES.md
index f942a0b7c8e2..d17c0be9d132 100644
--- a/docs/i18n/bg/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/bg/docs/frameworks/EMBEDDED-SERVICES.md
@@ -47,7 +47,25 @@
- OmniRoute инжектира ефимерен API ключ в средата на детето и го завърта без престой (където е приложимо)
- Всички маршрути за управление (`/api/services/*`) са**LOCAL_ONLY** — достъпен само от loopback (твърдо правило #17)
-### Ключови решения (от план за проектиране)
+### Управлявани прокси ядра
+
+Полето Персонализиран прокси хост също приема връзка към V2Ray източник. Изберете** кутия за пеене** или** Рентгенова снимка** изрично, след което щракнете върху Запазване. Въвеждането никога не изтегля или стартира ядро. Запазването проверява официалния архив на версията, валидира основната конфигурация, стартира отделен localhost SOCKS слушател и едва след това записва присвояването на прокси регистъра. Неуспешното активиране възстановява предишната управлявана конфигурация и процес. изисква се `STORAGE_ENCRYPTION_KEY` ; връзките към източника са криптирани.
+
+Управляваните файлове живеят под `DATA_DIR/services/managed-proxy/`, отделно от TPROXY. Има един притежаван процес на избрано ядро, до 100 слушатели. Не се променя автоматичното стартиране или глобалното маршрутизиране по подразбиране. Успешното запазване запомня активирането само за това управлявано ядро; стартирането на приложението възстановява активирани запазени ядра, като използва вече проверения двоичен файл, никога изтегляне по време на зареждане. Изричното спиране изчиства този флаг за активиране. Липсващ или повреден двоичен файл изисква повторно записване на източник. Изтриването на регистъра премахва локално източника и слушателя; обикновените редакции на крайни точки се отхвърлят за управлявани редове, така че записаният източник не може тихо да се отклони от своя маршрутизиран слушател.
+
+| Изходен формат | кутия за пеене | Рентгенова снимка |
+| ------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
+| VLESS, VMess, троянски кон, Shadowsocks URI | Поддържано преобразуване | Поддържано преобразуване |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Поддържано преобразуване | Отхвърлено; използвайте съвместимо ядро |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Поддържа се за VLESS/VMess/Trojan | Поддържа се за VLESS/VMess/Trojan |
+| XHTTP URI транспорт | Отхвърлено | Поддържано преобразуване |
+| Роден изходящ JSON | Разрешен прокси protocols/options на избраното ядро, проверено първоначално | Разрешен прокси protocols/options на избраното ядро, проверено първоначално |
+
+Опции за неизвестен проводник, несигурни TLS флагове, външни плъгини, опции за локален път на файл и неподдържани комбинации се отхвърлят, вместо да се отхвърлят тихо. Родните обекти са изходящи дефиниции, а не конфигурации на цялото ядро; control/direct/bypass изходящи не се приемат. WireGuard на sing-box 1.14 използва крайни точки, така че не се приема като естествен изходящ. Това не е конвертор във всички формати; SSR, наследени whole-base64 връзки на Shadowsocks, произволни обекти на Clash и транспортни варианти, които липсват в таблицата, се нуждаят от отделно поддържан изходен формат.
+
+`/api/services/managed-proxy` е удостоверен и само с обратна връзка: GET изброява редактирани метаданни, POST записва `{core,name,sourceLink,id?,assignment?}`, PATCH приема `{core,action:"start"|"stop"}`. Трябва да присъства довереният тръбопровод за peer-stamp на хоста. Диагностиката на собственото ядро се потиска, защото може да съдържа идентификационни данни; Събитията от жизнения цикъл използват съществуващото устройство за регистриране на файлове на структурирано приложение без връзки към източника или полезни натоварвания нагоре по веригата. Прикачете само дезинфекцирани регистрационни файлове на приложения за поддръжка. Официалните версии са прикрепени към sing-box 1.14.3 и Xray 26.3.27 с манифести SHA-256 на освобождаване на активи; бъдещите актуализации изискват промяна на версията и всички проверени дайджести заедно.
+
+### Ключови решения (от проектния план)
| Решение | Стойност |
| ------------------------------------------------------- | ------------------------------------------------------------------------------------ |
diff --git a/docs/i18n/bn/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/bn/docs/frameworks/EMBEDDED-SERVICES.md
index 6041c7c3552f..ad15c2936053 100644
--- a/docs/i18n/bn/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/bn/docs/frameworks/EMBEDDED-SERVICES.md
@@ -32,10 +32,10 @@
| সেবা | npm প্যাকেজ | ডিফল্ট পোর্ট | উদ্দেশ্য |
| --------------- | --------------------------------- | :----------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **9 রাউটার** | `9router` | 20130 | AI রাউটার যা OmniRoute সাব-প্রোভাইডার হিসেবে ব্যবহার করতে পারে। মডেলগুলি `9router/{sub}/{model}` হিসাবে উন্মুক্ত |
-| **CLIProxyAPI** | GitHub রিলিজ বাইনারি (`cliproxy`) | 8317 | Anthropic CLI প্রমাণ প্রবাহের জন্য স্থানীয় প্রক্সি অ্যাডাপ্টার। OAuth টোকেনের মেয়াদ শেষ হলে ফলব্যাক রাউটিং প্রদান করে |
+| **CLIProxyAPI** | GitHub রিলিজ বাইনারি (`cliproxy`) | 8317 | Anthropic CLI প্রমাণ প্রবাহের জন্য স্থানীয় প্রক্সি অ্যাডাপ্টার। OAuth টোকেন মেয়াদ শেষ হলে ফলব্যাক রাউটিং প্রদান করে |
| **মুক্স** | `mux` (মাথাবিহীন `mux server`) | 8322 | স্থানীয় এজেন্ট-অর্কেস্ট্রেশন ডেমন (coder/mux)। লাইফসাইকেল-পরিচালিত শুধুমাত্র — একটি রাউটিং লক্ষ্য নয় (কোনও LLM প্রক্সিিং নয়)। |
| **বিফ্রস্ট** | `@maximhq/bifrost` | 8080 | এআই-গেটওয়ে রিলে ব্যাকএন্ডে যান। চলাকালীন, রিলে রুট দ্বারা স্বয়ংক্রিয়ভাবে নির্বাচিত (`/v1/relay/`) |
-| **দারিও** | `@askalf/dario` | 3456 | ক্লড-কোড-আকৃতির ট্র্যাফিকের জন্য ক্লড-সাবস্ক্রিপশন প্রক্সি — alternative/failover থেকে CLIProxyAPI ; ইনজেকশন চাবি তার `/admin/*` OAuth কন্ট্রোল প্লেন গেট করা `DARIO_ADMIN_TOKEN` হয়ে যায় |
+| **দারিও** | `@askalf/dario` | 3456 | ক্লড-কোড-আকৃতির ট্রাফিকের জন্য ক্লড-সাবস্ক্রিপশন প্রক্সি — alternative/failover থেকে CLIProxyAPI ; ইনজেকশন চাবি তার `/admin/*` OAuth কন্ট্রোল প্লেন গেট করা `DARIO_ADMIN_TOKEN` হয়ে যায় |
| **open-wa** | `@open-wa/wa-automate` | 8323 | WhatsApp ওয়েব অটোমেশন (পাপেটিয়ারের মাধ্যমে হেডলেস ক্রোমিয়াম)। লাইফসাইকেল-পরিচালিত শুধুমাত্র — একটি রাউটিং লক্ষ্য নয়। |
| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | প্রম্পট-কম্প্রেশন সাইডকার — বাস্তব LLMLingua-2 ONNX মডেল ( Microsoft এর অ্যালগরিদমের JS/TS পোর্ট)। `open-sse/services/compression/engines/llmlingua/index.ts` এটিতে HTTP এর উপর `/compress` প্রেরণ করে, যখন সাইডকারটি ডাউন হয় তখন ইন-প্রসেস ওয়ার্কার-থ্রেড ব্যাকএন্ডে ফিরে আসে। লাইফসাইকেল-পরিচালিত শুধুমাত্র — একটি রাউটিং লক্ষ্য নয়। |
| **sing-box** | GitHub রিলিজ বাইনারি (`singbox`) | 20140 | TPROXY sidecar ব্যাকিং `applyTproxy()` এর স্বচ্ছ-প্রক্সি ইন্টারসেপশন (`src/mitm/tproxy/setup.ts`)। ইনস্টলার পিন করা, চেকসাম-যাচাইকৃত রিলিজ ডাউনলোড করে। লাইফসাইকেল-পরিচালিত শুধুমাত্র — একটি রাউটিং লক্ষ্য নয় (কোনও LLM প্রক্সিিং নয়) |
@@ -47,6 +47,24 @@
- OmniRoute শিশুর পরিবেশে একটি ক্ষণস্থায়ী API কী ইনজেক্ট করে এবং ডাউনটাইম ছাড়াই এটি ঘোরায় (যেখানে প্রযোজ্য)
- সমস্ত ব্যবস্থাপনা রুট (`/api/services/*`) হয়**LOCAL_ONLY** — শুধুমাত্র লুপব্যাক থেকে অ্যাক্সেসযোগ্য (হার্ড নিয়ম #17)
+### পরিচালিত প্রক্সি কোর
+
+কাস্টম প্রক্সি হোস্ট ক্ষেত্রটি একটি V2Ray উত্স লিঙ্কও গ্রহণ করে। নির্বাচন করুন** sing-box** বা** এক্সরে** স্পষ্টভাবে, তারপর সংরক্ষণ ক্লিক করুন. টাইপিং কখনই ডাউনলোড বা মূল শুরু করে না। সংরক্ষণ অফিসিয়াল রিলিজ সংরক্ষণাগার যাচাই করে, নেটিভ কনফিগারেশন যাচাই করে, একটি স্বতন্ত্র লোকালহোস্ট SOCKS শ্রোতা শুরু করে এবং শুধুমাত্র তখনই প্রক্সি রেজিস্ট্রি অ্যাসাইনমেন্ট লেখে। ব্যর্থ সক্রিয়করণ পূর্ববর্তী পরিচালিত কনফিগারেশন এবং প্রক্রিয়া পুনরুদ্ধার করে। `STORAGE_ENCRYPTION_KEY` প্রয়োজন; উৎস লিঙ্ক এনক্রিপ্ট করা হয়.
+
+পরিচালিত ফাইলগুলি `DATA_DIR/services/managed-proxy/` অধীনে থাকে, TPROXY থেকে আলাদা। 100 জন শ্রোতা পর্যন্ত নির্বাচিত কোর প্রতি একটি মালিকানাধীন প্রক্রিয়া আছে। কোনো অটোস্টার্ট বা গ্লোবাল রাউটিং ডিফল্ট পরিবর্তন করা হয় না। সফলভাবে সংরক্ষণ করা শুধুমাত্র এই পরিচালিত কোরের জন্য সক্রিয়করণ মনে রাখে; অ্যাপ্লিকেশন স্টার্টআপ ইতিমধ্যে যাচাইকৃত বাইনারি ব্যবহার করে সক্রিয় সংরক্ষিত কোর পুনরুদ্ধার করে, কখনই বুট-টাইম ডাউনলোড নয়। স্পষ্ট স্টপ সেই অ্যাক্টিভেশন পতাকা সাফ করে। একটি অনুপস্থিত বা ক্ষতিগ্রস্থ বাইনারি একটি উৎস পুনরায় সংরক্ষণ করা প্রয়োজন. রেজিস্ট্রি মুছে ফেলার ফলে স্থানীয়ভাবে উৎস এবং শ্রোতা মুছে যায়; সাধারন এন্ডপয়েন্ট সম্পাদনাগুলি পরিচালিত সারিগুলির জন্য প্রত্যাখ্যান করা হয় তাই সংরক্ষিত উত্সটি তার রাউট করা শ্রোতা থেকে নীরবে সরে যেতে পারে না।
+
+| উৎস বিন্যাস | sing-box | এক্সরে |
+| -------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
+| VLESS, VMess, ট্রোজান, Shadowsocks URI | সমর্থিত রূপান্তর | সমর্থিত রূপান্তর |
+| Hysteria2/hy2, TUIC, AnyTLS URI | সমর্থিত রূপান্তর | প্রত্যাখ্যাত; একটি সামঞ্জস্যপূর্ণ কোর ব্যবহার করুন |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | VLESS/VMess/Trojan জন্য সমর্থিত | VLESS/VMess/Trojan জন্য সমর্থিত |
+| XHTTP URI পরিবহন | প্রত্যাখ্যাত | সমর্থিত রূপান্তর |
+| নেটিভ আউটবাউন্ড JSON | নির্বাচিত কোরের অনুমোদিত প্রক্সি protocols/options, নেটিভভাবে চেক করা হয়েছে | নির্বাচিত কোরের অনুমোদিত প্রক্সি protocols/options, নেটিভভাবে চেক করা হয়েছে |
+
+অজানা তারের বিকল্প, অনিরাপদ TLS পতাকা, বহিরাগত প্লাগইন, স্থানীয় ফাইল-পাথ বিকল্প এবং অসমর্থিত সমন্বয়গুলি নীরবে বাতিল করার পরিবর্তে প্রত্যাখ্যান করা হয়। নেটিভ অবজেক্ট হল আউটবাউন্ড সংজ্ঞা, পুরো-কোর কনফিগারেশন নয়; control/direct/bypass আউটবাউন্ড গ্রহণ করা হয় না। sing-box 1.14-এ WireGuard এন্ডপয়েন্ট ব্যবহার করে, তাই এটি নেটিভ আউটবাউন্ড হিসেবে গৃহীত হয় না। এটি একটি সর্ব-ফর্ম্যাট রূপান্তরকারী নয়; SSR, লিগ্যাসি whole-base64 Shadowsocks লিঙ্ক, ইচ্ছামত ক্ল্যাশ অবজেক্ট এবং টেবিল থেকে অনুপস্থিত ট্রান্সপোর্ট ভেরিয়েন্টের জন্য আলাদাভাবে সমর্থিত সোর্স ফরম্যাট প্রয়োজন।
+
+`/api/services/managed-proxy` প্রমাণীকৃত এবং শুধুমাত্র লুপব্যাক: GET সংশোধিত মেটাডেটা তালিকাভুক্ত করে, POST `{core,name,sourceLink,id?,assignment?}` সংরক্ষণ করে, PATCH `{core,action:"start"|"stop"}` গ্রহণ করে। হোস্টের বিশ্বস্ত পিয়ার-স্ট্যাম্প পাইপলাইন উপস্থিত থাকতে হবে। নেটিভ কোর ডায়াগনস্টিকগুলিকে চাপা দেওয়া হয় কারণ সেগুলিতে শংসাপত্র থাকতে পারে; লাইফসাইকেল ইভেন্টগুলি সোর্স লিঙ্ক বা আপস্ট্রিম পেলোড ছাড়াই বিদ্যমান স্ট্রাকচার্ড অ্যাপ্লিকেশন ফাইল লগার ব্যবহার করে। সমর্থনের জন্য শুধুমাত্র স্যানিটাইজড অ্যাপ্লিকেশন লগ সংযুক্ত করুন। রিলিজ-অ্যাসেট SHA-256 ম্যানিফেস্ট সহ অফিসিয়াল সংস্করণগুলি sing-box 1.14.3 এবং Xray 26.3.27-এ পিন করা হয়েছে; ভবিষ্যতের আপডেটের জন্য সংস্করণ এবং সমস্ত যাচাইকৃত ডাইজেস্ট একসাথে পরিবর্তন করতে হবে।
+
### মূল সিদ্ধান্ত (ডিজাইন পরিকল্পনা থেকে)
| সিদ্ধান্ত | মান |
@@ -140,7 +158,7 @@
| ফাইল | ভূমিকা |
| ------------------------------------------- | ------------------------------------------------ |
| `src/lib/services/ServiceSupervisor.ts` | মূল শ্রেণী: জীবনচক্র, লক, স্বাস্থ্য, রিং বাফার |
-| `src/lib/services/bootstrap.ts` | প্রক্রিয়া-স্তরের নিবন্ধন এবং স্বয়ংক্রিয়-শুরু |
+| `src/lib/services/bootstrap.ts` | প্রক্রিয়া-স্তরের নিবন্ধন এবং স্বয়ংক্রিয় শুরু |
| `src/lib/services/registry.ts` | সিঙ্গেলটন মানচিত্র `tool → supervisor` |
| `src/lib/services/apiKey.ts` | কী জেনারেশন, AES-256-GCM এনক্রিপশন এট-রেস্ট |
| `src/lib/services/modelSync.ts` | পর্যায়ক্রমিক মডেল সিঙ্ক (5 মিনিট) + অন-ডিমান্ড |
diff --git a/docs/i18n/bs/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/bs/docs/frameworks/EMBEDDED-SERVICES.md
index ed9ce2ca4204..68df88c84b28 100644
--- a/docs/i18n/bs/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/bs/docs/frameworks/EMBEDDED-SERVICES.md
@@ -47,16 +47,34 @@ Svih osam prate isti model nadzora:
- OmniRoute ubrizgava efemerni API ključ u djetetovo okruženje i rotira ga bez zastoja (gdje je primjenjivo)
- Svi putevi upravljanja (`/api/services/*`) su**LOCAL_ONLY** — dostupan samo iz povratne petlje (tvrdo pravilo #17)
+### Upravljana proxy jezgra
+
+Polje Custom proxy host također prihvata V2Ray izvornu vezu. Odaberite** sing-box** ili** Xray** eksplicitno, a zatim kliknite na Sačuvaj. Kucanje nikada ne preuzima niti pokreće jezgro. Sačuvaj provjerava zvaničnu arhivu izdanja, potvrđuje izvornu konfiguraciju, pokreće poseban lokalni host SOCKS slušač i tek onda upisuje dodjelu proxy registra. Neuspješna aktivacija vraća prethodnu upravljanu konfiguraciju i proces. `STORAGE_ENCRYPTION_KEY` je obavezan; izvorne veze su šifrirane.
+
+Upravljani fajlovi žive pod `DATA_DIR/services/managed-proxy/`, odvojeno od TPROXY. Postoji jedan proces u vlasništvu po odabranom jezgru, do 100 slušatelja. Nije promijenjeno automatsko pokretanje ili globalno rutiranje. Uspješno spremanje pamti aktivaciju samo za ovo upravljano jezgro; Pokretanje aplikacije vraća omogućene sačuvane jezgre koristeći već provjerenu binarnu datoteku, nikada preuzimanje prilikom pokretanja. Eksplicitno zaustavljanje briše tu zastavicu za aktivaciju. Binarni fajl koji nedostaje ili je oštećen zahteva ponovno čuvanje izvora. Brisanjem registra lokalno se uklanja izvor i slušatelj; obična uređivanja krajnje tačke se odbijaju za upravljane redove tako da sačuvani izvor ne može tiho da odstupi od svog usmeravanog slušaoca.
+
+| Izvorni format | sing-box | Xray |
+| --------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
+| VLESS, VMess, trojanac, Shadowsocks URI | Podržana konverzija | Podržana konverzija |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Podržana konverzija | Odbijeno; koristite kompatibilno jezgro |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Podržano za VLESS/VMess/Trojan | Podržano za VLESS/VMess/Trojan |
+| XHTTP URI transport | Odbijeno | Podržana konverzija |
+| Izvorni odlazni JSON | Odabrani dozvoljeni proxy protocols/options jezgre, izvorno provjereno | Odabrani dozvoljeni proxy protocols/options jezgre, izvorno provjereno |
+
+Nepoznate žične opcije, nesigurne TLS zastavice, eksterni dodaci, lokalne opcije putanje datoteka i nepodržane kombinacije se odbijaju umjesto tiho odbacuju. Nativni objekti su izlazne definicije, a ne konfiguracije cijele jezgre; control/direct/bypass izlazni podaci nisu prihvaćeni. WireGuard na sing-box 1.14 koristi krajnje tačke, tako da nije prihvaćen kao izvorni izlaz. Ovo nije konverter svih formata; SSR, naslijeđene whole-base64 Shadowsocks veze, proizvoljni Clash objekti i transportne varijante koje su odsutne u tabeli trebaju zasebno podržan izvorni format.
+
+`/api/services/managed-proxy` je autentificiran i samo za povratnu petlju: GET navodi redigovane metapodatke, POST čuva `{core,name,sourceLink,id?,assignment?}`, PATCH prihvata `{core,action:"start"|"stop"}`. Mora biti prisutan hostov pouzdani peer-stamp cjevovod. Dijagnostika izvorne jezgre je potisnuta jer može sadržavati vjerodajnice; Događaji životnog ciklusa koriste postojeći strukturirani program za evidentiranje datoteka bez izvornih veza ili upstream korisnih opterećenja. Priložite samo dezinficirane zapisnike aplikacija za podršku. Zvanične verzije su zakačene na sing-box 1.14.3 i Xray 26.3.27 sa manifestima SHA-256 -a za oslobađanje; buduća ažuriranja zahtijevaju promjenu verzije i svih provjerenih sažetaka zajedno.
+
### Ključne odluke (iz plana dizajna)
-| Odluka | Vrijednost |
-| --------------------------------------------- | -------------------------------------------------------------------------------- |
-| Pristup kontrolnoj tabli izvornom UI 9Routeru | Obrnuti proxy na `/dashboard/providers/services/9router/embed/*` |
-| Mehanizam ugradnje | `npm install {package}` preko `execFile` (bez interpolacije ljuske) |
-| Način potrošnje | Provajder registrovan kao `9router/{sub}/{model}` u mehanizmu rutiranja |
-| API upravljanje ključevima | OmniRoute generiše, šifrira u stanju mirovanja (AES-256-GCM) i ubacuje preko env |
-| Lokacija nadzorne ploče | `/dashboard/providers/services` (tri kartice) |
-| Auto-start | Prebaci po usluzi, zadani OFF |
+| Odluka | Vrijednost |
+| --------------------------------------------- | --------------------------------------------------------------------------- |
+| Pristup kontrolnoj tabli izvornom UI 9Routeru | Obrnuti proxy na `/dashboard/providers/services/9router/embed/*` |
+| Mehanizam ugradnje | `npm install {package}` preko `execFile` (bez interpolacije ljuske) |
+| Način potrošnje | Provajder registrovan kao `9router/{sub}/{model}` u mehanizmu rutiranja |
+| API upravljanje ključevima | OmniRoute generiše, šifrira u mirovanju (AES-256-GCM) i injektira preko env |
+| Lokacija nadzorne ploče | `/dashboard/providers/services` (tri kartice) |
+| Auto-start | Prebaci po usluzi, zadani OFF |
---
diff --git a/docs/i18n/cs/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/cs/docs/frameworks/EMBEDDED-SERVICES.md
index 2902a7a64b0a..0dd803fe44dc 100644
--- a/docs/i18n/cs/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/cs/docs/frameworks/EMBEDDED-SERVICES.md
@@ -38,7 +38,7 @@ Je zahrnuto osm služeb:
| **Dario** | `@askalf/dario` | 3456 | Claude-subscription proxy — alternative/failover to CLIProxyAPI pro provoz ve tvaru Claude-Code; vložený klíč se změní `DARIO_ADMIN_TOKEN` hradlující jeho řídicí rovinu `/admin/*` OAuth |
| **open-wa** | `@open-wa/wa-automate` | 8323 | WhatsApp Webová automatizace (bezhlavý Chromium přes Puppeteer). Pouze — spravované životním cyklem, nikoli cíl směrování. |
| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Pohotovostní kompresní postranní vozík — skutečný model LLMLingua-2 ONNX (port JS/TS algoritmu Microsoft). `open-sse/services/compression/engines/llmlingua/index.ts` do něj odešle `/compress` přes HTTP, a když je postranní vozík vypnutý, vrátí se zpět do backendu pracovního vlákna v procesu. Pouze — řízené životním cyklem, nikoli cíl směrování. |
-| **sing-box** | binární vydání GitHub (`singbox`) | 20140 | TPROXY sidecar backing `applyTproxy()`'s transparent-proxy interception (`src/mitm/tproxy/setup.ts`). Instalační program stáhne připnuté vydání ověřené kontrolním součtem. Správa životního cyklu pouze — nikoli cíl směrování (žádné LLM proxying) |
+| **sing-box** | binární vydání GitHub (`singbox`) | 20140 | TPROXY sidecar backing `applyTproxy()`'s transparent-proxy interception (`src/mitm/tproxy/setup.ts`). Instalační program stáhne připnuté vydání ověřené kontrolním součtem. Pouze — spravované životním cyklem, nikoli cíl směrování (žádné LLM proxying) |
Všech osm se řídí stejným modelem dohledu:
@@ -47,6 +47,24 @@ Všech osm se řídí stejným modelem dohledu:
- OmniRoute vloží pomíjivý klíč API do prostředí dítěte a otočí jej bez prostojů (pokud je to možné)
- Všechny cesty vedení (`/api/services/*`) jsou**LOCAL_ONLY** — přístupné pouze ze zpětné smyčky (tvrdé pravidlo #17)
+### Spravovaná proxy jádra
+
+Pole Vlastní hostitel proxy také přijímá zdrojový odkaz V2Ray. Vybrat** sing-box** nebo** Rentgen** explicitně, pak klikněte na Uložit. Psaní nikdy nestáhne ani nespustí jádro. Uložit ověří oficiální archiv vydání, ověří nativní konfiguraci, spustí samostatný posluchač localhost SOCKS a teprve potom zapíše přiřazení registru proxy. Neúspěšná aktivace obnoví předchozí spravovanou konfiguraci a proces. `STORAGE_ENCRYPTION_KEY` je vyžadováno; zdrojové odkazy jsou šifrované.
+
+Spravované soubory žijí pod `DATA_DIR/services/managed-proxy/`, odděleně od TPROXY. Na každé vybrané jádro je jeden vlastněný proces, až 100 posluchačů. Nezmění se žádné automatické spuštění ani výchozí globální směrování. Úspěšné uložení si pamatuje aktivaci pouze pro toto spravované jádro; spuštění aplikace obnoví povolená uložená jádra pomocí již ověřeného binárního souboru, nikdy stahování při spuštění. Explicitní zastavení vymaže tento příznak aktivace. Chybějící nebo poškozený binární soubor vyžaduje opětovné uložení zdroje. Odstranění registru místně odstraní zdroj a posluchače; běžné úpravy koncového bodu jsou u spravovaných řádků odmítnuty, takže uložený zdroj nemůže tiše přejít ze svého směrovaného posluchače.
+
+| Zdrojový formát | sing-box | Rentgen |
+| ------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | Podporovaná konverze | Podporovaná konverze |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Podporovaná konverze | Odmítnuto; použít kompatibilní jádro |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Podporováno pro VLESS/VMess/Trojan | Podporováno pro VLESS/VMess/Trojan |
+| XHTTP URI doprava | Odmítnuto | Podporovaná konverze |
+| Nativní odchozí JSON | Vybraná povolená proxy protocols/options jádra, kontrolovaná nativně | Vybraná povolená proxy protocols/options jádra, kontrolovaná nativně |
+
+Neznámé možnosti připojení, nezabezpečené příznaky TLS, externí pluginy, možnosti místní cesty k souboru a nepodporované kombinace jsou spíše odmítnuty, než tiše zahozeny. Nativní objekty jsou odchozí definice, nikoli konfigurace celého jádra; Odchozí control/direct/bypass nejsou akceptovány. WireGuard na sing-boxu 1.14 používá koncové body, takže není akceptován jako nativní odchozí. Toto není převaděč všech formátů; SSR, starší odkazy whole-base64 Shadowsocks, libovolné objekty Clash a varianty transportu, které v tabulce chybí, potřebují samostatně podporovaný zdrojový formát.
+
+`/api/services/managed-proxy` je ověřená a pouze zpětná smyčka: GET uvádí redigovaná metadata, POST ukládá `{core,name,sourceLink,id?,assignment?}`, PATCH přijímá `{core,action:"start"|"stop"}`. Musí být přítomen důvěryhodný kanál peer-stamp hostitele. Diagnostika nativního jádra je potlačena, protože může obsahovat přihlašovací údaje; události životního cyklu používají stávající protokolovač souborů strukturované aplikace bez odkazů na zdroje nebo upstream dat. Pro podporu připojte pouze vyčištěné protokoly aplikací. Oficiální verze jsou připojeny k sing-boxu 1.14.3 a Xray 26.3.27 s manifesty release-asset SHA-256 ; budoucí aktualizace vyžadují změnu verze a všech ověřených výtahů dohromady.
+
### Klíčová rozhodnutí (z plánu návrhu)
| Rozhodnutí | Hodnota |
@@ -56,7 +74,7 @@ Všech osm se řídí stejným modelem dohledu:
| Režim spotřeby | Poskytovatel registrovaný jako `9router/{sub}/{model}` ve směrovacím enginu |
| správa klíčů API | OmniRoute generuje, šifruje v klidu (AES-256-GCM) a vkládá přes env |
| Umístění palubní desky | `/dashboard/providers/services` (tři karty) |
-| Auto-start | Přepnout na službu, výchozí OFF |
+| Auto-start | Přepnout podle služby, výchozí OFF |
---
diff --git a/docs/i18n/da/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/da/docs/frameworks/EMBEDDED-SERVICES.md
index 0d4ad65dd0e1..b555a83b0ec8 100644
--- a/docs/i18n/da/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/da/docs/frameworks/EMBEDDED-SERVICES.md
@@ -47,11 +47,29 @@ Alle otte følger den samme tilsynsmodel:
- OmniRoute sprøjter en flygtig API nøgle ind i barnets omgivelser og roterer den uden nedetid (hvor det er relevant)
- Alle ledelsesruter (`/api/services/*`) er**LOCAL_ONLY** — kun tilgængelig fra loopback (hård regel #17)
+### Administrerede proxykerner
+
+Feltet Custom proxy-vært accepterer også et V2Ray -kildelink. Vælge** synge-boks** eller** Røntgen** udtrykkeligt, og klik derefter på Gem. Indtastning downloader eller starter aldrig en kerne. Save verificerer det officielle udgivelsesarkiv, validerer den oprindelige konfiguration, starter en særskilt localhost SOCKS lytter og skriver først derefter proxy-registry-tildelingen. Mislykket aktivering gendanner den tidligere administrerede konfiguration og proces. `STORAGE_ENCRYPTION_KEY` er påkrævet; kildelinks er krypteret.
+
+Administrerede filer lever under `DATA_DIR/services/managed-proxy/`, adskilt fra TPROXY. Der er én ejet proces pr. udvalgt kerne, op til 100 lyttere. Ingen autostart eller global routing-standard er ændret. Vellykket lagring husker kun aktivering for denne administrerede kerne; applikationsstart gendanner aktiverede gemte kerner ved hjælp af den allerede verificerede binære, aldrig en download-tid ved opstart. Eksplicit stop rydder dette aktiveringsflag. En manglende eller beskadiget binærfil kræver genlagring af en kilde. Sletning af registreringsdatabasen fjerner kilden og lytteren lokalt; almindelige slutpunktsredigeringer afvises for administrerede rækker, så den gemte kilde ikke stille kan glide fra sin dirigerede lytter.
+
+| Kildeformat | synge-boks | Røntgen |
+| ------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | Understøttet konvertering | Understøttet konvertering |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Understøttet konvertering | Afvist; bruge en kompatibel kerne |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Understøttet til VLESS/VMess/Trojan | Understøttet til VLESS/VMess/Trojan |
+| XHTTP URI transport | Afvist | Understøttet konvertering |
+| Native udgående JSON | Den valgte kernes tilladte proxy protocols/options, kontrolleret indbygget | Den valgte kernes tilladte proxy protocols/options, kontrolleret indbygget |
+
+Ukendte ledningsindstillinger, usikre TLS flag, eksterne plugins, lokale filstiindstillinger og ikke-understøttede kombinationer afvises i stedet for at kassere dem. Native objekter er udgående definitioner, ikke hele kernekonfigurationer; control/direct/bypass udgående accepteres ikke. WireGuard på sing-box 1.14 bruger endepunkter, så det accepteres ikke som en native udgående. Dette er ikke en konverter til alle formater; SSR, legacy whole-base64 Shadowsocks-links, vilkårlige Clash-objekter og transportvarianter fraværende i tabellen har brug for et separat understøttet kildeformat.
+
+`/api/services/managed-proxy` er autentificeret og loopback-only: GET viser redigerede metadata, POST gemmer `{core,name,sourceLink,id?,assignment?}`, PATCH accepterer `{core,action:"start"|"stop"}`. Værtens betroede peer-stamp pipeline skal være til stede. Indbygget kernediagnostik undertrykkes, fordi de kan indeholde legitimationsoplysninger; livscyklushændelser bruger den eksisterende strukturerede applikationsfillogger uden kildelinks eller upstream-nyttelast. Vedhæft kun desinficerede applikationslogfiler til support. Officielle versioner er fastgjort til sing-box 1.14.3 og Xray 26.3.27 med release-asset SHA-256 manifester; fremtidige opdateringer kræver ændring af versionen og alle verificerede sammendrag.
+
### Nøglebeslutninger (fra designplan)
| Afgørelse | Værdi |
| -------------------------------------- | ------------------------------------------------------------------------- |
-| Dashboard adgang til 9Router native UI | Omvendt proxy ved `/dashboard/providers/services/9router/embed/*` |
+| Dashboard-adgang til 9Router native UI | Omvendt proxy ved `/dashboard/providers/services/9router/embed/*` |
| Installationsmekanisme | `npm install {package}` via `execFile` (ingen shell-interpolation) |
| Forbrugstilstand | Udbyder registreret som `9router/{sub}/{model}` i routing engine |
| API nøglestyring | OmniRoute genererer, krypterer at-rest (AES-256-GCM) og injicerer via env |
diff --git a/docs/i18n/de/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/de/docs/frameworks/EMBEDDED-SERVICES.md
index 913d2c4af1a6..4be090c4ff73 100644
--- a/docs/i18n/de/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/de/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,7 +45,25 @@ Alle acht folgen dem gleichen Aufsichtsmodell:
- OmniRoute installiert sie unter `DATA_DIR/services/{name}/` (isoliert von OmniRoute eigenem `package.json`)
- OmniRoute erzeugt und überwacht sie als untergeordnete Prozesse
- OmniRoute fügt einen kurzlebigen API Schlüssel in die Umgebung des Kindes ein und rotiert ihn ohne Ausfallzeit (sofern zutreffend).
-- Alle Verwaltungsrouten (`/api/services/*`) sind**LOCAL_ONLY** — nur über Loopback zugänglich (harte Regel Nr. 17)
+- Alle Verwaltungsrouten (`/api/services/*`) sind**LOCAL_ONLY** — nur über Loopback zugänglich (harte Regel #17)
+
+### Verwaltete Proxy-Kerne
+
+Das Feld „Benutzerdefinierter Proxy-Host“ akzeptiert auch einen V2Ray Quelllink. Wählen** Singbox** oder** Röntgen** explizit aus, und klicken Sie dann auf Speichern. Beim Tippen wird niemals ein Kern heruntergeladen oder gestartet. Save überprüft das offizielle Release-Archiv, validiert die native Konfiguration, startet einen eindeutigen localhost SOCKS Listener und schreibt erst dann die Proxy-Registrierungszuweisung. Bei einer fehlgeschlagenen Aktivierung werden die zuvor verwaltete Konfiguration und der zuvor verwaltete Prozess wiederhergestellt. `STORAGE_ENCRYPTION_KEY` ist erforderlich; Quelllinks sind verschlüsselt.
+
+Verwaltete Dateien befinden sich unter `DATA_DIR/services/managed-proxy/`, getrennt von TPROXY. Es gibt einen eigenen Prozess pro ausgewähltem Kern, bis zu 100 Listener. Es werden keine Autostart- oder globalen Routing-Standardeinstellungen geändert. Bei erfolgreichem Speichern wird die Aktivierung nur für diesen verwalteten Kern gespeichert. Der Anwendungsstart stellt aktivierte gespeicherte Kerne unter Verwendung der bereits überprüften Binärdatei wieder her, niemals ein Download beim Booten. Explicit Stop löscht dieses Aktivierungsflag. Eine fehlende oder beschädigte Binärdatei erfordert das erneute Speichern einer Quelle. Durch das Löschen der Registrierung werden die Quelle und der Listener lokal entfernt. Normale Endpunktänderungen werden für verwaltete Zeilen abgelehnt, sodass die gespeicherte Quelle nicht stillschweigend von ihrem weitergeleiteten Listener abweichen kann.
+
+| Quellformat | Singbox | Röntgen |
+| --------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
+| VLESS, VMess, Trojaner, Shadowsocks URI | Unterstützte Konvertierung | Unterstützte Konvertierung |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Unterstützte Konvertierung | Abgelehnt; Verwenden Sie einen kompatiblen Kern |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Unterstützt für VLESS/VMess/Trojan | Unterstützt für VLESS/VMess/Trojan |
+| XHTTP URI Transport | Abgelehnt | Unterstützte Konvertierung |
+| Native ausgehende JSON | Zulässiger Proxy protocols/options des ausgewählten Kerns, nativ überprüft | Zulässiger Proxy protocols/options des ausgewählten Kerns, nativ überprüft |
+
+Unbekannte Wire-Optionen, unsichere TLS Flags, externe Plugins, lokale Dateipfadoptionen und nicht unterstützte Kombinationen werden abgelehnt und nicht stillschweigend verworfen. Native Objekte sind ausgehende Definitionen, keine Whole-Core-Konfigurationen; control/direct/bypass Outbounds werden nicht akzeptiert. WireGuard auf Sing-Box 1.14 verwendet Endpunkte und wird daher nicht als nativer Outbound akzeptiert. Dies ist kein Konverter für alle Formate. SSR, Legacy- whole-base64 Shadowsocks-Links, beliebige Clash-Objekte und Transportvarianten, die in der Tabelle fehlen, benötigen ein separat unterstütztes Quellformat.
+
+`/api/services/managed-proxy` ist authentifiziert und nur Loopback: GET listet redigierte Metadaten auf, POST speichert `{core,name,sourceLink,id?,assignment?}`, PATCH akzeptiert `{core,action:"start"|"stop"}`. Die vertrauenswürdige Peer-Stamp-Pipeline des Hosts muss vorhanden sein. Native Kerndiagnosen werden unterdrückt, da sie Anmeldeinformationen enthalten können. Lebenszyklusereignisse nutzen den vorhandenen strukturierten Anwendungsdatei-Logger ohne Quelllinks oder Upstream-Payloads. Hängen Sie zur Unterstützung nur bereinigte Anwendungsprotokolle an. Offizielle Versionen sind an Sing-Box 1.14.3 und Xray 26.3.27 mit Release-Asset SHA-256 Manifesten angeheftet; Zukünftige Updates erfordern eine Änderung der Version und aller überprüften Digests zusammen.
### Wichtige Entscheidungen (aus dem Entwurfsplan)
diff --git a/docs/i18n/el/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/el/docs/frameworks/EMBEDDED-SERVICES.md
index 78f6f0f3c1f0..74d6c6f42d8b 100644
--- a/docs/i18n/el/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/el/docs/frameworks/EMBEDDED-SERVICES.md
@@ -47,13 +47,31 @@
- OmniRoute εγχέει ένα εφήμερο κλειδί API στο περιβάλλον του παιδιού και το περιστρέφει χωρίς διακοπή λειτουργίας (όπου ισχύει)
- Όλες οι διαδρομές διαχείρισης (`/api/services/*`) είναι**LOCAL_ONLY** — προσβάσιμο μόνο από loopback (σκληρός κανόνας #17)
+### Διαχειριζόμενοι πυρήνες διακομιστή μεσολάβησης
+
+Το πεδίο κεντρικού υπολογιστή προσαρμοσμένου διακομιστή μεσολάβησης δέχεται επίσης έναν σύνδεσμο πηγής V2Ray. Επιλέγω** sing-box** ή** Ακτινογραφία** ρητά και, στη συνέχεια, κάντε κλικ στην επιλογή Αποθήκευση. Η πληκτρολόγηση δεν κατεβάζει ή δεν ξεκινά ποτέ έναν πυρήνα. Η Αποθήκευση επαληθεύει το επίσημο αρχείο κυκλοφορίας, επικυρώνει τις εγγενείς ρυθμίσεις παραμέτρων, ξεκινά ένα ξεχωριστό πρόγραμμα ακρόασης localhost SOCKS και μόνο τότε γράφει την εκχώρηση μητρώου διακομιστή μεσολάβησης. Η αποτυχημένη ενεργοποίηση επαναφέρει την προηγούμενη διαχειριζόμενη διαμόρφωση και διαδικασία. `STORAGE_ENCRYPTION_KEY` απαιτείται? οι σύνδεσμοι πηγής είναι κρυπτογραφημένοι.
+
+Τα διαχειριζόμενα αρχεία βρίσκονται υπό `DATA_DIR/services/managed-proxy/`, ξεχωριστά από TPROXY. Υπάρχει μία ιδιόκτητη διαδικασία ανά επιλεγμένο πυρήνα, έως και 100 ακροατές. Δεν έχει αλλάξει καμία προεπιλογή αυτόματης εκκίνησης ή καθολικής δρομολόγησης. Η επιτυχής αποθήκευση θυμάται την ενεργοποίηση μόνο για αυτόν τον διαχειριζόμενο πυρήνα. Η εκκίνηση της εφαρμογής επαναφέρει τους ενεργοποιημένους αποθηκευμένους πυρήνες χρησιμοποιώντας το ήδη επαληθευμένο δυαδικό αρχείο και ποτέ λήψη κατά την εκκίνηση. Η ρητή διακοπή διαγράφει αυτήν τη σημαία ενεργοποίησης. Ένα δυαδικό αρχείο που λείπει ή έχει καταστραφεί απαιτεί εκ νέου αποθήκευση μιας πηγής. Η διαγραφή μητρώου καταργεί την πηγή και το πρόγραμμα ακρόασης τοπικά. Οι συνήθεις επεξεργασίες τελικού σημείου απορρίπτονται για τις διαχειριζόμενες σειρές, έτσι ώστε η αποθηκευμένη πηγή να μην μπορεί να απομακρυνθεί σιωπηλά από τη δρομολογημένη ακροατή της.
+
+| Μορφή πηγής | sing-box | Ακτινογραφία |
+| ------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
+| VLESS, VMess, Trojan, Shadowsocks URI | Υποστηριζόμενη μετατροπή | Υποστηριζόμενη μετατροπή |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Υποστηριζόμενη μετατροπή | Απορρίφθηκε; χρησιμοποιήστε έναν συμβατό πυρήνα |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Υποστηρίζεται για VLESS/VMess/Trojan | Υποστηρίζεται για VLESS/VMess/Trojan |
+| XHTTP URI μεταφορά | Απορρίφθηκε | Υποστηριζόμενη μετατροπή |
+| Εγγενής εξερχόμενη JSON | Επιτρεπόμενος διακομιστής μεσολάβησης του επιλεγμένου πυρήνα protocols/options, ελεγμένο εγγενώς | Επιτρεπόμενος διακομιστής μεσολάβησης του επιλεγμένου πυρήνα protocols/options, ελεγμένο εγγενώς |
+
+Άγνωστες επιλογές καλωδίων, μη ασφαλείς σημαίες TLS, εξωτερικές προσθήκες, επιλογές τοπικών διαδρομών αρχείου και μη υποστηριζόμενοι συνδυασμοί απορρίπτονται αντί να απορρίπτονται σιωπηλά. Τα εγγενή αντικείμενα είναι εξερχόμενοι ορισμοί, όχι διαμορφώσεις ολόκληρου του πυρήνα. Τα εξερχόμενα control/direct/bypass δεν γίνονται δεκτά. WireGuard στο sing-box 1.14 χρησιμοποιεί τελικά σημεία, επομένως δεν γίνεται αποδεκτό ως εγγενές εξερχόμενο. Αυτός δεν είναι μετατροπέας όλων των μορφών. Οι σύνδεσμοι SSR, παλαιού τύπου whole-base64 Shadowsocks, αυθαίρετα αντικείμενα Clash και παραλλαγές μεταφοράς που λείπουν από τον πίνακα χρειάζονται ξεχωριστά υποστηριζόμενη μορφή πηγής.
+
+`/api/services/managed-proxy` είναι ελεγμένο και μόνο για επαναφορά: GET παραθέτει τα μεταδεδομένα που έχουν διορθωθεί, POST αποθηκεύει `{core,name,sourceLink,id?,assignment?}`, PATCH δέχεται `{core,action:"start"|"stop"}`. Πρέπει να υπάρχει η αξιόπιστη γραμμή ομότιμων σφραγίδων του οικοδεσπότη. Τα εγγενή διαγνωστικά πυρήνα αποκρύπτονται επειδή μπορεί να περιέχουν διαπιστευτήρια. Τα συμβάντα κύκλου ζωής χρησιμοποιούν το υπάρχον καταγραφικό αρχείων δομημένης εφαρμογής χωρίς συνδέσμους πηγής ή ανοδικά ωφέλιμα φορτία. Επισυνάψτε μόνο απολυμανμένα αρχεία καταγραφής εφαρμογών για υποστήριξη. Οι επίσημες εκδόσεις είναι καρφιτσωμένες στο sing-box 1.14.3 και στο Xray 26.3.27 με δηλώσεις απελευθέρωσης asset SHA-256. Οι μελλοντικές ενημερώσεις απαιτούν αλλαγή της έκδοσης και όλων των επαληθευμένων συνόψεων μαζί.
+
### Βασικές αποφάσεις (από το σχέδιο σχεδιασμού)
| Απόφαση | Αξία |
| ---------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| Πρόσβαση στον πίνακα εργαλείων στο 9Router native UI | Αντίστροφος διακομιστής μεσολάβησης στο `/dashboard/providers/services/9router/embed/*` |
| Μηχανισμός εγκατάστασης | `npm install {package}` μέσω `execFile` (χωρίς παρεμβολή κελύφους) |
-| Λειτουργία κατανάλωσης | Ο πάροχος έχει εγγραφεί ως `9router/{sub}/{model}` στη μηχανή δρομολόγησης |
+| Λειτουργία κατανάλωσης | Ο πάροχος είναι εγγεγραμμένος ως `9router/{sub}/{model}` στη μηχανή δρομολόγησης |
| διαχείριση κλειδιών API | OmniRoute δημιουργεί, κρυπτογραφεί σε κατάσταση ηρεμίας (AES-256-GCM) και εγχέει μέσω env |
| Θέση ταμπλό | `/dashboard/providers/services` (τρεις καρτέλες) |
| Αυτόματη εκκίνηση | Εναλλαγή ανά υπηρεσία, προεπιλογή OFF |
diff --git a/docs/i18n/es/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/es/docs/frameworks/EMBEDDED-SERVICES.md
index 1089eb21153c..346c888df83d 100644
--- a/docs/i18n/es/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/es/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,7 +45,25 @@ Los ocho siguen el mismo modelo de supervisión:
- OmniRoute los instala bajo `DATA_DIR/services/{name}/` (aislado del propio `package.json` de OmniRoute)
- OmniRoute los genera y monitorea como procesos secundarios
- OmniRoute inyecta una clave API efímera en el entorno del niño y la rota sin tiempo de inactividad (cuando corresponda)
-- Todas las rutas de gestión (`/api/services/*`) son**LOCAL_ONLY** Se puede acceder — solo desde loopback (regla estricta n.° 17)
+- Todas las rutas de gestión (`/api/services/*`) son**LOCAL_ONLY** — accesible solo desde loopback (regla estricta #17)
+
+### Núcleos de proxy administrados
+
+El campo Host de proxy personalizado también acepta un enlace de origen V2Ray. Seleccionar** caja de canto** o** Radiografía** explícitamente y luego haga clic en Guardar. Al escribir nunca se descarga ni se inicia un núcleo. Save verifica el archivo de lanzamiento oficial, valida la configuración nativa, inicia un escucha localhost SOCKS distinto y solo entonces escribe la asignación del registro de proxy. La activación fallida restaura la configuración y el proceso administrados anteriores. se requiere `STORAGE_ENCRYPTION_KEY` ; Los enlaces de origen están cifrados.
+
+Los archivos administrados se encuentran en `DATA_DIR/services/managed-proxy/`, separados de TPROXY. Hay un proceso de propiedad por núcleo seleccionado, hasta 100 oyentes. No se cambia ningún valor predeterminado de inicio automático o enrutamiento global. El guardado exitoso recuerda la activación solo para este núcleo administrado; El inicio de la aplicación restaura los núcleos guardados habilitados utilizando el binario ya verificado, nunca una descarga en el momento del arranque. La parada explícita borra ese indicador de activación. Un binario faltante o dañado requiere volver a guardar una fuente. La eliminación del registro elimina la fuente y el oyente localmente; Las ediciones de puntos finales normales se rechazan para las filas administradas, por lo que la fuente guardada no puede desviarse silenciosamente de su escucha enrutada.
+
+| Formato fuente | caja de canto | Radiografía |
+| -------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
+| VLESS, VMess, troyano, Shadowsocks URI | Conversión admitida | Conversión admitida |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Conversión admitida | Rechazado; utilizar un núcleo compatible |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Compatible con VLESS/VMess/Trojan | Compatible con VLESS/VMess/Trojan |
+| transporte XHTTP URI | Rechazado | Conversión admitida |
+| JSON saliente nativo | Proxy protocols/options permitido del núcleo seleccionado, verificado de forma nativa | Proxy protocols/options permitido del núcleo seleccionado, verificado de forma nativa |
+
+Las opciones de conexión desconocidas, los indicadores TLS inseguros, los complementos externos, las opciones de rutas de archivos locales y las combinaciones no admitidas se rechazan en lugar de descartarse silenciosamente. Los objetos nativos son definiciones salientes, no configuraciones de núcleo completo; No se aceptan salidas control/direct/bypass. WireGuard en sing-box 1.14 usa puntos finales, por lo que no se acepta como salida nativa. Este no es un conversor de todos los formatos; SSR, los enlaces heredados whole-base64 Shadowsocks, los objetos Clash arbitrarios y las variantes de transporte ausentes en la tabla necesitan un formato fuente compatible por separado.
+
+`/api/services/managed-proxy` está autenticado y solo es de bucle invertido: GET enumera los metadatos redactados, POST guarda `{core,name,sourceLink,id?,assignment?}`, PATCH acepta `{core,action:"start"|"stop"}`. La canalización de sello de pares confiable del host debe estar presente. Los diagnósticos centrales nativos se suprimen porque pueden contener credenciales; Los eventos del ciclo de vida utilizan el registrador de archivos de aplicación estructurado existente sin enlaces de origen ni cargas útiles ascendentes. Adjunte únicamente registros de aplicaciones desinfectados para obtener asistencia. Las versiones oficiales están fijadas en sing-box 1.14.3 y Xray 26.3.27 con manifiestos SHA-256 de activos de lanzamiento; Las actualizaciones futuras requieren cambiar la versión y todos los resúmenes verificados juntos.
### Decisiones clave (del plan de diseño)
diff --git a/docs/i18n/et/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/et/docs/frameworks/EMBEDDED-SERVICES.md
index 968579a6c850..4f72bf8191e8 100644
--- a/docs/i18n/et/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/et/docs/frameworks/EMBEDDED-SERVICES.md
@@ -29,34 +29,52 @@ Manustatud teenused on kohapeal installitud protsessi külgkorvi tööriistad, m
Manustatud on kaheksa teenust:
-| Teenindus | npm pakett | Vaikimisi port | Eesmärk |
-| --------------- | ------------------------------------------ | :------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| **9 Ruuter** | `9router` | 20130 | AI ruuter, mida OmniRoute saab kasutada alampakkujana. Mudelid, mis on eksponeeritud kui `9router/{sub}/{model}` |
-| **CLIProxyAPI** | GitHub vabastamise kahendfail (`cliproxy`) | 8317 | Kohalik puhverserveri adapter Anthropic CLI autentimisvoogude jaoks. Pakub varumarsruutimist, kui OAuth -märgid aeguvad |
-| **Mux** | `mux` (peata `mux server`) | 8322 | Kohalik agent-orkestreerimisdeemon (coder/mux). Elutsükli järgi hallatav ainult — mitte marsruutimise sihtmärk (pole LLM puhverserverit). |
-| **Bifrost** | `@maximhq/bifrost` | 8080 | Mine AI-lüüsi relee taustaprogrammi. Jooksmisel valitakse automaatselt relee marsruudi järgi (`/v1/relay/`) |
-| **Dario** | `@askalf/dario` | 3456 | Claude'i abonemendi puhverserver — alternative/failover kuni CLIProxyAPI Claude'i koodikujulise liikluse jaoks; sisestatud võti muutub `DARIO_ADMIN_TOKEN` väravaks oma `/admin/*` OAuth juhttasandiks |
-| **avatud-wa** | `@open-wa/wa-automate` | 8323 | WhatsApp veebiautomaatika (peata Chromium Puppeteeri kaudu). Olelusringi järgi hallatav ainult — mitte marsruutimise sihtmärk. |
-| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Kiire kokkusurumisega külgkorvi — tõeline LLMLingua-2 ONNX mudel ( Microsoft algoritmi JS/TS port). `open-sse/services/compression/engines/llmlingua/index.ts` saadab `/compress` üle HTTP sellele, langedes tagasi protsessis olevale töötaja lõime taustaprogrammi, kui külgkorv on maas. Elutsükli järgi hallatav ainult — ei ole marsruutimise sihtmärk. |
-| **laulukast** | GitHub vabastamise kahendfail (`singbox`) | 20140 | TPROXY külgkorv, mis toetab `applyTproxy()`-i läbipaistvat puhverserveri pealtkuulamist (`src/mitm/tproxy/setup.ts`). Installer laadib alla kinnitatud, kontrollsummaga kinnitatud versiooni. Ainult elutsükli järgi hallatav — mitte marsruutimise sihtmärk (pole LLM puhverserverit) |
+| Teenindus | npm pakett | Vaikimisi port | Eesmärk |
+| --------------- | ------------------------------------------ | :------------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **9 Ruuter** | `9router` | 20130 | AI ruuter, mida OmniRoute saab kasutada alampakkujana. Mudelid, mis on eksponeeritud kui `9router/{sub}/{model}` |
+| **CLIProxyAPI** | GitHub vabastamise kahendfail (`cliproxy`) | 8317 | Kohalik puhverserveri adapter Anthropic CLI autentimisvoogude jaoks. Pakub varumarsruutimist, kui OAuth -märgid aeguvad |
+| **Mux** | `mux` (peata `mux server`) | 8322 | Kohalik agent-orkestreerimisdeemon (coder/mux). Elutsükli järgi hallatav ainult — mitte marsruutimise sihtmärk (pole LLM puhverserverit). |
+| **Bifrost** | `@maximhq/bifrost` | 8080 | Mine AI-lüüsi relee taustaprogrammi. Jooksmisel valitakse automaatselt relee marsruudi järgi (`/v1/relay/`) |
+| **Dario** | `@askalf/dario` | 3456 | Claude'i abonemendi puhverserver — alternative/failover kuni CLIProxyAPI Claude'i koodikujulise liikluse jaoks; sisestatud võti muutub `DARIO_ADMIN_TOKEN` väravaks oma `/admin/*` OAuth juhttasandiks |
+| **avatud-wa** | `@open-wa/wa-automate` | 8323 | WhatsApp veebiautomaatika (peata Chromium Puppeteeri kaudu). Olelusringi järgi hallatav ainult — mitte marsruutimise sihtmärk. |
+| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Kiire kokkusurumisega külgkorvi — tõeline LLMLingua-2 ONNX mudel ( Microsoft algoritmi JS/TS port). `open-sse/services/compression/engines/llmlingua/index.ts` saadab `/compress` üle HTTP sellele, langedes tagasi protsessis olevale töötaja lõime taustaprogrammi, kui külgkorv on maas. Olelusringi järgi hallatav ainult — ei ole marsruutimise sihtmärk. |
+| **laulukast** | GitHub vabastamise kahendfail (`singbox`) | 20140 | TPROXY külgkorv, mis toetab `applyTproxy()`-i läbipaistvat puhverserveri pealtkuulamist (`src/mitm/tproxy/setup.ts`). Installer laadib alla kinnitatud, kontrollsummaga kinnitatud versiooni. Ainult elutsükli järgi hallatav — mitte marsruutimise sihtmärk (pole LLM puhverserverit) |
Kõik kaheksa järgivad sama järelevalvemudelit:
- OmniRoute installib need `DATA_DIR/services/{name}/` alla (isoleeritud OmniRoute enda `package.json`)
- OmniRoute kudeb ja jälgib neid kui lapse protsesse
- OmniRoute süstib lapse keskkonda lühiajalise API -võtme ja pöörab seda ilma seisakuta (kui see on asjakohane)
-- Kõik juhtimismarsruudid (`/api/services/*`) on**LOCAL_ONLY** — on juurdepääsetav ainult tagasisilmuse kaudu (kõva reegel nr 17)
+- Kõik juhtimismarsruudid (`/api/services/*`) on**LOCAL_ONLY** — on juurdepääsetav ainult tagasisilmuse kaudu (kõva reegel #17)
+
+### Hallatud puhverserveri tuumad
+
+Kohandatud puhverserveri hostiväli aktsepteerib ka V2Ray allika linki. Valige** laulukast** või** röntgen** selgesõnaliselt, seejärel klõpsake nuppu Salvesta. Tippimine ei laadi kunagi alla ega käivita tuuma. Salvestamine kontrollib ametlikku väljalaskearhiivi, kinnitab algkonfiguratsiooni, käivitab eraldiseisva localhost SOCKS kuulaja ja alles seejärel kirjutab puhverserveri registri määrangu. Ebaõnnestunud aktiveerimine taastab eelmise hallatud konfiguratsiooni ja protsessi. `STORAGE_ENCRYPTION_KEY` on nõutav; allika lingid on krüpteeritud.
+
+Hallatavad failid asuvad `DATA_DIR/services/managed-proxy/` all, TPROXY st eraldi. Valitud tuuma kohta on üks protsess, kuni 100 kuulajat. Autostarti ega globaalse marsruutimise vaikeseadet ei muudeta. Edukas salvestamine jätab meelde ainult selle hallatud tuuma aktiveerimise; rakenduse käivitamisel taastatakse lubatud salvestatud tuumad, kasutades juba kinnitatud binaarfaili, mitte kunagi alglaadimisaegset allalaadimist. Selgesõnaline Stop kustutab selle aktiveerimislipu. Puuduv või kahjustatud binaar nõuab allika uuesti salvestamist. Registri kustutamine eemaldab allika ja kuulaja kohapeal; Tavalised lõpp-punkti muudatused lükatakse hallatud ridade puhul tagasi, nii et salvestatud allikas ei saa vaikselt oma marsruutitud kuulajast eemalduda.
+
+| Lähtevorming | laulukast | röntgen |
+| ----------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
+| VLESS, VMess, troojalane, Shadowsocks URI | Toetatud konversioon | Toetatud konversioon |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Toetatud konversioon | Tagasi lükatud; kasutage ühilduvat südamikku |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Toetatud VLESS/VMess/Trojan jaoks | Toetatud VLESS/VMess/Trojan jaoks |
+| XHTTP URI transport | Tagasi lükatud | Toetatud konversioon |
+| Algne väljaminev JSON | Valitud tuuma lubatud puhverserver protocols/options, kontrollitud algselt | Valitud tuuma lubatud puhverserver protocols/options, kontrollitud algselt |
+
+Tundmatud juhtmevalikud, ebaturvalised TLS lipud, välised pistikprogrammid, kohaliku failitee valikud ja toetamata kombinatsioonid lükatakse pigem tagasi kui vaikselt kõrvale. Natiivsed objektid on väljaminevad määratlused, mitte kogu tuuma konfiguratsioonid; control/direct/bypass väljaminekuid ei aktsepteerita. Sing-box 1.14 WireGuard kasutab lõpp-punkte, seega ei aktsepteerita seda loomuliku väljaminevana. See ei ole kõigi vormingute konverter; SSR, pärand whole-base64 Shadowsocksi lingid, suvalised Clashi objektid ja tabelist puuduvad transpordivariandid vajavad eraldi toetatud lähtevormingut.
+
+`/api/services/managed-proxy` on autentitud ja ainult tagasisilmus: GET loetleb redigeeritud metaandmed, POST salvestab `{core,name,sourceLink,id?,assignment?}`, PATCH aktsepteerib `{core,action:"start"|"stop"}`. Olemas peab olema hosti usaldusväärne partnertempli konveier. Põhiline põhidiagnostika on alla surutud, kuna see võib sisaldada mandaate; elutsükli sündmused kasutavad olemasolevat struktureeritud rakenduste faililogerit ilma lähtelinkideta või ülesvoolu kasulike koormusteta. Toe saamiseks lisage ainult puhastatud rakenduste logid. Ametlikud versioonid on kinnitatud sing-box 1.14.3 ja Xray 26.3.27 koos release-asset SHA-256 manifestidega; tulevased värskendused nõuavad versiooni ja kõigi kinnitatud kokkuvõtete koos muutmist.
### Peamised otsused (projektiplaanist)
| Otsus | Väärtus |
| ------------------------------------------------ | -------------------------------------------------------------------------------- |
-| Juurdepääs armatuurlauale 9Routeri natiivsele UI | Vastupidine puhverserver `/dashboard/providers/services/9router/embed/*` juures |
-| Paigaldusmehhanism | `npm install {package}` `execFile` kaudu (sh shell-interpolatsioonita) |
+| Juurdepääs armatuurlauale 9Routeri natiivsele UI | Pöördpuhverserver `/dashboard/providers/services/9router/embed/*` juures |
+| Paigaldusmehhanism | `npm install {package}` `execFile` kaudu (ilma kesta interpolatsioonita) |
| Tarbimisrežiim | Pakkuja on marsruutimismootoris registreeritud kui `9router/{sub}/{model}` |
| API võtmehaldus | OmniRoute genereerib, krüpteerib puhkeolekus (AES-256-GCM) ja sisestab env kaudu |
| Armatuurlaua asukoht | `/dashboard/providers/services` (kolm vahekaarti) |
-| Automaatne käivitamine | Lülita teenuse kohta, vaikeseade OFF |
+| Automaatkäivitus | Lülita teenuse kohta, vaikeseade OFF |
---
diff --git a/docs/i18n/fa/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/fa/docs/frameworks/EMBEDDED-SERVICES.md
index 1a834cecc584..3cfa5c569d12 100644
--- a/docs/i18n/fa/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/fa/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,11 +45,29 @@
- OmniRoute آنها را تحت `DATA_DIR/services/{name}/` نصب می کند (جدا شده از OmniRoute خود `package.json`)
- OmniRoute تخم ریزی می کند و آنها را به عنوان فرآیندهای کودک نظارت می کند
- OmniRoute یک کلید زودگذر API را به محیط کودک تزریق می کند و آن را بدون توقف (در صورت لزوم) می چرخاند.
-- تمامی مسیرهای مدیریت (`/api/services/*`) هستند**LOCAL_ONLY** — فقط از طریق Loopback قابل دسترسی است (قانون سخت شماره 17)
+- تمامی مسیرهای مدیریت (`/api/services/*`) هستند**LOCAL_ONLY** — فقط از طریق Loopback قابل دسترسی است (قانون سخت #17)
+
+### هسته های پروکسی مدیریت شده
+
+فیلد میزبان پروکسی سفارشی نیز پیوند منبع V2Ray را می پذیرد. انتخاب کنید** جعبه آواز** یا** اشعه ایکس** به صراحت، سپس روی ذخیره کلیک کنید. تایپ هرگز هسته ای را دانلود نمی کند یا راه اندازی نمی کند. Save آرشیو انتشار رسمی را تأیید می کند، پیکربندی بومی را تأیید می کند، شنونده SOCKS محلی میزبان مجزا را راه اندازی می کند و تنها پس از آن تخصیص رجیستری پراکسی را می نویسد. فعال سازی ناموفق پیکربندی و فرآیند مدیریت شده قبلی را بازیابی می کند. `STORAGE_ENCRYPTION_KEY` مورد نیاز است. لینک های منبع رمزگذاری شده اند.
+
+فایل های مدیریت شده تحت `DATA_DIR/services/managed-proxy/` و جدا از TPROXY زندگی می کنند. برای هر هسته انتخابی یک فرآیند متعلق به حداکثر 100 شنونده وجود دارد. هیچ شروع خودکار یا پیشفرض مسیریابی جهانی تغییر نکرده است. ذخیره موفقیت آمیز فعال سازی را فقط برای این هسته مدیریت شده به خاطر می آورد. راه اندازی برنامه، هسته های ذخیره شده فعال را با استفاده از باینری که قبلاً تأیید شده است، بازیابی می کند، هرگز بارگیری در زمان بوت. توقف صریح آن پرچم فعال سازی را پاک می کند. یک باینری مفقود یا آسیب دیده نیاز به ذخیره مجدد منبع دارد. حذف رجیستری منبع و شنونده را به صورت محلی حذف می کند. ویرایشهای معمولی نقطه پایانی برای ردیفهای مدیریتشده رد میشوند، بنابراین منبع ذخیرهشده نمیتواند بیصدا از شنونده مسیریابیشده خود دور شود.
+
+| فرمت منبع | جعبه آواز | اشعه ایکس |
+| ------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
+| VLESS، VMess، تروجان، Shadowsocks URI | تبدیل پشتیبانی شده | تبدیل پشتیبانی شده |
+| Hysteria2/hy2, TUIC, AnyTLS URI | تبدیل پشتیبانی شده | رد شد؛ از یک هسته سازگار استفاده کنید |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | برای VLESS/VMess/Trojan پشتیبانی می شود | برای VLESS/VMess/Trojan پشتیبانی می شود |
+| حمل و نقل XHTTP URI | رد شد | تبدیل پشتیبانی شده |
+| JSON خروجی بومی | پروکسی مجاز هسته انتخابی protocols/options، به صورت بومی بررسی شده است | پروکسی مجاز هسته انتخابی protocols/options، به صورت بومی بررسی شده است |
+
+گزینههای سیم ناشناخته، پرچمهای ناامن TLS ، افزونههای خارجی، گزینههای مسیر فایل محلی و ترکیبهای پشتیبانینشده رد میشوند نه بیصدا. اشیاء بومی تعاریف خروجی هستند، نه پیکربندی های کل هسته. خروجی control/direct/bypass پذیرفته نمی شود. WireGuard در sing-box 1.14 از نقاط پایانی استفاده می کند، بنابراین به عنوان یک خروجی بومی پذیرفته نمی شود. این یک مبدل تمام فرمت نیست. SSR، پیوندهای قدیمی whole-base64 Shadowsocks، اشیاء Clash دلخواه و انواع انتقالی که در جدول وجود ندارند، به یک قالب منبع جداگانه پشتیبانی شده نیاز دارند.
+
+`/api/services/managed-proxy` احراز هویت شده است و فقط دارای حلقه بک است: GET ابرداده های ویرایش شده را فهرست می کند، POST `{core,name,sourceLink,id?,assignment?}` را ذخیره می کند، PATCH `{core,action:"start"|"stop"}` را می پذیرد. خط لوله مورد اعتماد میزبان باید وجود داشته باشد. تشخیصهای اصلی بومی سرکوب میشوند زیرا میتوانند دارای اعتبار باشند. رویدادهای چرخه حیات از لاگر فایل برنامه ساختیافته موجود بدون پیوندهای منبع یا بارهای بالادستی استفاده میکنند. برای پشتیبانی، فقط لاگ های برنامه ضدعفونی شده را ضمیمه کنید. نسخههای رسمی به sing-box 1.14.3 و Xray 26.3.27 با مانیفستهای انتشار دارایی SHA-256 متصل شدهاند. به روز رسانی های آینده نیاز به تغییر نسخه و همه خلاصه های تأیید شده با هم دارند.
### تصمیمات کلیدی (از طرح طراحی)
-| تصمیم گیری | ارزش |
+| تصمیم | ارزش |
| -------------------------------- | ------------------------------------------------------------------------------------------------ |
| دسترسی داشبورد به UI بومی 9 روتر | پروکسی معکوس در `/dashboard/providers/services/9router/embed/*` |
| مکانیزم نصب | `npm install {package}` از طریق `execFile` (بدون درون یابی پوسته) |
diff --git a/docs/i18n/fi/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/fi/docs/frameworks/EMBEDDED-SERVICES.md
index 553c602759dd..0b2aeeb87650 100644
--- a/docs/i18n/fi/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/fi/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,18 +45,36 @@ Kaikki kahdeksan noudattavat samaa valvontamallia:
- OmniRoute asentaa ne `DATA_DIR/services/{name}/` n alle (eristettynä OmniRoute:n omasta `package.json`)
- OmniRoute synnyttää ja valvoo niitä lapsiprosesseina
- OmniRoute ruiskuttaa lyhytaikaisen API -avaimen lapsen ympäristöön ja pyörittää sitä ilman seisokkeja (tarvittaessa)
-- Kaikki hallintareitit (`/api/services/*`) ovat**LOCAL_ONLY** — käytettävissä vain silmukan kautta (kova sääntö 17)
+- Kaikki hallintareitit (`/api/services/*`) ovat**LOCAL_ONLY** — käytettävissä vain silmukan kautta (kova sääntö #17)
+
+### Hallitut välityspalvelinytimet
+
+Mukautettu välityspalvelimen isäntäkenttä hyväksyy myös V2Ray -lähdelinkin. Valitse** laululaatikko** tai** Xray** nimenomaisesti ja napsauta sitten Tallenna. Kirjoittaminen ei koskaan lataa tai aloita ydintä. Tallenna vahvistaa virallisen julkaisuarkiston, vahvistaa alkuperäiset asetukset, käynnistää erillisen localhost SOCKS -kuuntelijan ja vasta sitten kirjoittaa välityspalvelimen rekisterimäärityksen. Epäonnistunut aktivointi palauttaa aiemman hallitun kokoonpanon ja prosessin. `STORAGE_ENCRYPTION_KEY` vaaditaan; lähdelinkit ovat salattuja.
+
+Hallitut tiedostot ovat `DATA_DIR/services/managed-proxy/` ssa erillään TPROXY stä. Valittua ydintä kohden on yksi omistettu prosessi, jopa 100 kuuntelijaa. Mitään automaattista käynnistystä tai yleistä reititystä ei ole muutettu. Onnistunut tallennus muistaa vain tämän hallitun ytimen aktivoinnin; sovelluksen käynnistys palauttaa käytössä olevat tallennetut ytimet käyttämällä jo vahvistettua binaaritiedostoa, ei koskaan käynnistysajan latausta. Explicit Stop tyhjentää aktivointilipun. Puuttuva tai vaurioitunut binaari vaatii lähteen uudelleentallentamisen. Rekisterin poistaminen poistaa lähteen ja kuuntelijan paikallisesti; tavalliset päätepisteen muokkaukset hylätään hallituille riveille, joten tallennettu lähde ei voi hiljaa ajautua pois reititetystä kuuntelijastaan.
+
+| Lähdemuoto | laululaatikko | Xray |
+| ------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
+| VLESS, VMess, troijalainen, Shadowsocks URI | Tuettu muunnos | Tuettu muunnos |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Tuettu muunnos | Hylätty; käytä yhteensopivaa ydintä |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Tuettu VLESS/VMess/Trojan | Tuettu VLESS/VMess/Trojan |
+| XHTTP URI | Hylätty | Tuettu muunnos |
+| Alkuperäinen lähtevä JSON | Valitun ytimen sallittu välityspalvelin protocols/options, tarkistettu natiivisti | Valitun ytimen sallittu välityspalvelin protocols/options, tarkistettu natiivisti |
+
+Tuntemattomat johtovaihtoehdot, suojaamattomat TLS -liput, ulkoiset laajennukset, paikalliset tiedostopolkuvaihtoehdot ja ei-tuetut yhdistelmät hylätään sen sijaan, että ne hylätään hiljaa. Natiiviobjektit ovat lähteviä määritelmiä, eivät koko ytimen kokoonpanoja; control/direct/bypass -lähtöjä ei hyväksytä. WireGuard sing-box 1.14:ssä käyttää päätepisteitä, joten sitä ei hyväksytä alkuperäisenä lähteenä. Tämä ei ole kaikkien formaattien muunnin; SSR, vanhat whole-base64 Shadowsocks -linkit, mielivaltaiset Clash-objektit ja taulukosta puuttuvat siirtomuunnelmat tarvitsevat erikseen tuetun lähdemuodon.
+
+`/api/services/managed-proxy` on todennettu ja vain takaisinkytkentä: GET luettelee redaktoidut metatiedot, POST tallentaa `{core,name,sourceLink,id?,assignment?}`, PATCH hyväksyy `{core,action:"start"|"stop"}`. Isännän luotetun vertaisleimaputken on oltava käytössä. Alkuperäiset ydindiagnostiikat estetään, koska ne voivat sisältää valtuustietoja; elinkaaritapahtumat käyttävät olemassa olevaa strukturoitua sovellustiedostologgeria ilman lähdelinkkejä tai ylävirran hyötykuormia. Liitä vain puhtaat sovelluslokit tukea varten. Viralliset versiot on kiinnitetty sing-boxiin 1.14.3 ja Xray 26.3.27 release-asset SHA-256 -luetteloilla; tulevat päivitykset vaativat version ja kaikkien vahvistettujen tiivistelmien muuttamisen yhdessä.
### Keskeiset päätökset (suunnittelusuunnitelmasta)
| Päätös | Arvo |
| -------------------------------------------- | -------------------------------------------------------------------------------------- |
| Pääsy kojelautaan 9Routerin alkuperäiseen UI | Käänteinen välityspalvelin osoitteessa `/dashboard/providers/services/9router/embed/*` |
-| Asennusmekanismi | `npm install {package}` `execFile` kautta (ei shellin interpolointia) |
+| Asennusmekanismi | `npm install {package}` `execFile` kautta (ei kuoriinterpolointia) |
| Kulutustila | Palveluntarjoaja on rekisteröity reititysmoottoriin nimellä `9router/{sub}/{model}` |
| API avainten hallinta | OmniRoute luo, salaa lepotilassa (AES-256-GCM) ja ruiskuttaa env:n kautta |
| Kojelaudan sijainti | `/dashboard/providers/services` (kolme välilehteä) |
-| Automaattinen käynnistys | Vaihda palvelukohtaisesti, oletus OFF |
+| Automaattinen käynnistys | Vaihda palvelukohtaisesti, oletusarvoinen OFF |
---
diff --git a/docs/i18n/fr/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/fr/docs/frameworks/EMBEDDED-SERVICES.md
index a71c6d49c36f..171cc07e4358 100644
--- a/docs/i18n/fr/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/fr/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,7 +45,25 @@ Tous les huit suivent le même modèle de surveillance :
- OmniRoute les installe sous `DATA_DIR/services/{name}/` (isolés du propre `package.json` de OmniRoute)
- OmniRoute les génère et les surveille en tant que processus enfants
- OmniRoute injecte une clé API éphémère dans l'environnement de l'enfant et la fait tourner sans temps d'arrêt (le cas échéant)
-- Toutes les voies de gestion (`/api/services/*`) sont**LOCAL_ONLY** — accessible uniquement depuis le bouclage (règle stricte n°17)
+- Toutes les voies de gestion (`/api/services/*`) sont**LOCAL_ONLY** — accessible uniquement depuis le bouclage (règle stricte #17)
+
+### Cœurs proxy gérés
+
+Le champ Hôte proxy personnalisé accepte également un lien source V2Ray. Sélectionner** boîte à chanter** ou** Radiographie** explicitement, puis cliquez sur Enregistrer. Taper ne télécharge ni ne démarre jamais un noyau. Save vérifie l'archive de la version officielle, valide la configuration native, démarre un écouteur SOCKS localhost distinct et écrit ensuite seulement l'affectation du registre proxy. L’échec de l’activation restaure la configuration et le processus gérés précédents. `STORAGE_ENCRYPTION_KEY` est requis ; les liens sources sont cryptés.
+
+Les fichiers gérés vivent sous `DATA_DIR/services/managed-proxy/`, distinct de TPROXY. Il existe un processus détenu par noyau sélectionné, jusqu'à 100 auditeurs. Aucune valeur par défaut de démarrage automatique ou de routage global n’est modifiée. L'enregistrement réussi mémorise l'activation de ce noyau géré uniquement ; Le démarrage de l'application restaure les cœurs enregistrés activés à l'aide du binaire déjà vérifié, jamais de téléchargement au démarrage. L'arrêt explicite efface cet indicateur d'activation. Un binaire manquant ou endommagé nécessite de réenregistrer une source. La suppression du registre supprime la source et l'écouteur localement ; les modifications de point de terminaison ordinaires sont rejetées pour les lignes gérées afin que la source enregistrée ne puisse pas dériver silencieusement de son écouteur routé.
+
+| Format source | boîte à chanter | Radiographie |
+| ---------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
+| VLESS, VMess, cheval de Troie, Shadowsocks URI | Conversion prise en charge | Conversion prise en charge |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Conversion prise en charge | Rejeté; utiliser un noyau compatible |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Pris en charge pour VLESS/VMess/Trojan | Pris en charge pour VLESS/VMess/Trojan |
+| XHTTP URI transport | Rejeté | Conversion prise en charge |
+| JSON sortant natif | Proxy autorisé protocols/options du noyau sélectionné, vérifié nativement | Proxy autorisé protocols/options du noyau sélectionné, vérifié nativement |
+
+Les options filaires inconnues, les indicateurs TLS non sécurisés, les plugins externes, les options de chemin de fichier local et les combinaisons non prises en charge sont rejetés plutôt que silencieusement. Les objets natifs sont des définitions sortantes, et non des configurations globales ; Les sorties control/direct/bypass ne sont pas acceptées. WireGuard sur sing-box 1.14 utilise des points de terminaison, il n'est donc pas accepté comme sortant natif. Ce n'est pas un convertisseur tous formats ; SSR, les anciens liens whole-base64 Shadowsocks, les objets Clash arbitraires et les variantes de transport absentes de la table nécessitent un format source pris en charge séparément.
+
+`/api/services/managed-proxy` est authentifié et en boucle uniquement : GET répertorie les métadonnées expurgées, POST enregistre `{core,name,sourceLink,id?,assignment?}`, PATCH accepte `{core,action:"start"|"stop"}`. Le pipeline d’homologation de confiance de l’hôte doit être présent. Les diagnostics de base natifs sont supprimés car ils peuvent contenir des informations d'identification ; Les événements du cycle de vie utilisent l'enregistreur de fichiers d'application structuré existant sans liens sources ni charges utiles en amont. Joignez uniquement les journaux d’applications nettoyés pour obtenir de l’aide. Les versions officielles sont épinglées sur sing-box 1.14.3 et Xray 26.3.27 avec les manifestes SHA-256 des ressources de version ; les futures mises à jour nécessiteront de modifier la version et tous les résumés vérifiés ensemble.
### Décisions clés (du plan de conception)
diff --git a/docs/i18n/ga/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/ga/docs/frameworks/EMBEDDED-SERVICES.md
index 17b58e50db12..d2d4dc82b970 100644
--- a/docs/i18n/ga/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/ga/docs/frameworks/EMBEDDED-SERVICES.md
@@ -38,7 +38,7 @@ Tá ocht seirbhís leabaithe:
| **Dario** | `@askalf/dario` | 3456 | Seachfhreastalaí Claude-síntiúis — alternative/failover go CLIProxyAPI le haghaidh tráchta Claude-Cód-chruthach; éiríonn an eochair instealladh `DARIO_ADMIN_TOKEN` geataí a eitleán rialaithe `/admin/*` OAuth |
| **oscailte-wa** | `@open-wa/wa-automate` | 8323 | WhatsApp Uathoibriú Gréasáin (Cróimiam gan cheann trí Phuipéadóir). Saolré-bhainistithe — amháin nach sprioc ródaithe é. |
| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Sidecar pras-chomhbhrú — fíor- LLMLingua-2 ONNX samhail (port JS/TS de algartam Microsoft). seoltar `open-sse/services/compression/engines/llmlingua/index.ts` `/compress` thar HTTP chuige, ag titim ar ais go dtí an t-inneall snáithe oibrithe in-phróiseas nuair a bhíonn an taobhcharr síos. Saolré-bhainistithe ach — nach sprioc ródaithe é. |
-| **bosca amhrán** | dénártha scaoileadh GitHub (`singbox`) | 20140 | tacaíocht TPROXY sidecar le hidircheapadh trédhearcach seachfhreastalaí `applyTproxy()`(`src/mitm/tproxy/setup.ts`). Íoslódálann an suiteálaí an scaoileadh pinnáilte, dearbhaithe le seice. Saolré bainistithe ach — nach sprioc ródaithe é (gan seachfhreastalaí LLM ) |
+| **bosca amhrán** | dénártha scaoileadh GitHub (`singbox`) | 20140 | tacaíocht TPROXY sidecar le tascradh trédhearcach seachfhreastalaí `applyTproxy()`(`src/mitm/tproxy/setup.ts`). Íoslódálann an suiteálaí an scaoileadh pinned, seiceálacha-fhíoraithe. Saolré bainistithe ach — nach sprioc ródaithe é (gan seachfhreastalaí LLM ) |
Leanann na hocht gcinn go léir an tsamhail mhaoirseachta céanna:
@@ -47,6 +47,24 @@ Leanann na hocht gcinn go léir an tsamhail mhaoirseachta céanna:
- OmniRoute eochair API gearrshaolach isteach i dtimpeallacht an linbh agus rothlaíonn sé í gan aga neamhfhónaimh (nuair is cuí)
- Tá gach bealach bainistíochta (`/api/services/*`).**LOCAL_ONLY** — inrochtana ó loopback amháin (riail chrua #17)
+### Croíthe seachfhreastalaí bainistithe
+
+Glacann an réimse óstach seachfhreastalaí an Chustaim nasc foinse V2Ray freisin. Roghnaigh** bosca amhrán** nó** X-gha** go sainráite, ansin cliceáil Sábháil. Ní íoslódálann clóscríobh ná ní thosaíonn sé croí. Fíoraíonn Sábháil an chartlann eisiúint oifigiúil, bailíochtaíonn sé cumraíocht dhúchasach, cuireann sé tús le héisteoir SOCKS localhost ar leith, agus ansin ní scríobhann sé ach an tasc clárlainne seachfhreastalaí. Athshocraíonn gníomhachtú teipthe an chumraíocht agus an próiseas bainistithe roimhe seo. `STORAGE_ENCRYPTION_KEY` ag teastáil; tá naisc fhoinse criptithe.
+
+Cónaíonn comhaid bhainistithe faoi `DATA_DIR/services/managed-proxy/`, scartha ó TPROXY. Tá próiseas úinéireachta amháin in aghaidh gach croí roghnaithe, suas le 100 éisteoir. Ní athraítear aon réamhshocrú uath-thosaithe nó ródaithe domhanda. Cuimhníonn Sábháil Rathúil gníomhachtú don chroílár bainistithe seo amháin; athbhunaíodh feidhmchlár tosaithe, cumasaíodh croíleacáin shábháilte ag baint úsáide as an dénártha atá fíoraithe cheana féin, gan íoslódáil am tosaithe riamh. Glanann Explicit Stop an bhratach gníomhachtaithe sin. Teastaíonn athshábháil foinse do dhénártha in easnamh nó millte. Baineann scriosadh na clárlainne an fhoinse agus an éisteoir go háitiúil; diúltaítear d'athruithe críochphointe gnáth do shraitheanna bainistithe agus mar sin ní féidir leis an bhfoinse shábháilte imeacht go ciúin ón éisteoir atá á stiúradh.
+
+| Formáid foinse | bosca amhrán | X-gha |
+| ------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | Comhshó tacaithe | Comhshó tacaithe |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Comhshó tacaithe | Diúltaithe; croí comhoiriúnach a úsáid |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Tacaithe le haghaidh VLESS/VMess/Trojan | Tacaithe le haghaidh VLESS/VMess/Trojan |
+| XHTTP URI iompair | Diúltaithe | Comhshó tacaithe |
+| Dúchasach amach JSON | Tá seachfhreastalaí ceadaithe an chroí roghnaithe protocols/options, seiceáilte ó dhúchas | Tá seachfhreastalaí ceadaithe an chroí roghnaithe protocols/options, seiceáilte ó dhúchas |
+
+Diúltaítear do roghanna sreinge anaithnid, bratacha TLS neamhdhaingean, forlíontáin sheachtracha, roghanna cosán comhaid logánta agus teaglaim nach dtacaítear leo seachas iad a chaitheamh siar go ciúin. Sainmhínithe amach is ea réada dúchasacha, ní cumraíochtaí croí-iomlána; Ní ghlactar le ráigeanna control/direct/bypass. Úsáideann WireGuard ar bhosca canta 1.14 críochphointí, mar sin ní ghlactar leis mar bhealach amach dúchais. Ní tiontaire uile-format é seo; SSR, oidhreacht whole-base64 Tá formáid foinse tacaithe ar leithligh ag teastáil ó naisc Shadowsocks, réada Clash treallach agus leaganacha iompair nach bhfuil ar fáil ón tábla.
+
+tá `/api/services/managed-proxy` fíordheimhnithe agus loopback amháin: liostaíonn GET meiteashonraí athcheartaithe, sábhálann POST `{core,name,sourceLink,id?,assignment?}`, glacann PATCH le `{core,action:"start"|"stop"}`. Caithfidh píblíne piar-stampa iontaofa an óstaigh a bheith i láthair. Tá croí-dhiagnóisic dhúchasach faoi chois toisc go bhféadfadh dintiúir a bheith iontu; úsáideann imeachtaí saolré an logálaí feidhmchláir struchtúrtha atá ann cheana féin gan naisc foinse nó ualaí pálasta in aghaidh an tsrutha. Ceangail logaí feidhmchláir sláintithe amháin le haghaidh tacaíochta. Tá leaganacha oifigiúla pinned chuig bosca canta 1.14.3 agus Xray 26.3.27 le manifests scaoileadh-sócmhainn SHA-256 ; Éilíonn nuashonruithe sa todhchaí an leagan agus na achoimre fíoraithe go léir a athrú le chéile.
+
### Príomhchinntí (ón bplean dearaidh)
| Cinneadh | Luach |
diff --git a/docs/i18n/gu/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/gu/docs/frameworks/EMBEDDED-SERVICES.md
index d42bf2d8bd51..0651e7e0dbc0 100644
--- a/docs/i18n/gu/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/gu/docs/frameworks/EMBEDDED-SERVICES.md
@@ -47,16 +47,34 @@
- OmniRoute બાળકના વાતાવરણમાં એક ક્ષણિક API કી દાખલ કરે છે અને તેને ડાઉનટાઇમ વિના ફેરવે છે (જ્યાં લાગુ હોય)
- તમામ વ્યવસ્થાપન માર્ગો (`/api/services/*`) છે**LOCAL_ONLY** — ફક્ત લૂપબેકથી જ સુલભ છે (સખત નિયમ #17)
+### સંચાલિત પ્રોક્સી કોરો
+
+કસ્ટમ પ્રોક્સી હોસ્ટ ફીલ્ડ V2Ray સ્ત્રોત લિંકને પણ સ્વીકારે છે. પસંદ કરો** સિંગ-બોક્સ** અથવા** એક્સરે** સ્પષ્ટપણે, પછી સાચવો પર ક્લિક કરો. ટાઇપિંગ ક્યારેય ડાઉનલોડ કરતું નથી અથવા કોર શરૂ કરતું નથી. સેવ અધિકૃત પ્રકાશન આર્કાઇવની ચકાસણી કરે છે, મૂળ રૂપરેખાંકનને માન્ય કરે છે, એક અલગ લોકલહોસ્ટ SOCKS લિસનર શરૂ કરે છે, અને તે પછી જ પ્રોક્સી રજિસ્ટ્રી અસાઇનમેન્ટ લખે છે. નિષ્ફળ સક્રિયકરણ પાછલી વ્યવસ્થાપિત ગોઠવણી અને પ્રક્રિયાને પુનઃસ્થાપિત કરે છે. `STORAGE_ENCRYPTION_KEY` જરૂરી છે; સ્ત્રોત લિંક્સ એનક્રિપ્ટ થયેલ છે.
+
+વ્યવસ્થાપિત ફાઇલો `DATA_DIR/services/managed-proxy/` હેઠળ રહે છે, TPROXY થી અલગ છે. પસંદ કરેલ કોર દીઠ એક માલિકીની પ્રક્રિયા છે, 100 શ્રોતાઓ સુધી. કોઈ ઓટોસ્ટાર્ટ અથવા વૈશ્વિક રૂટીંગ ડિફોલ્ટ બદલાયેલ નથી. સફળ સાચવો ફક્ત આ સંચાલિત કોર માટે સક્રિયકરણ યાદ રાખે છે; એપ્લીકેશન સ્ટાર્ટઅપ પહેલાથી ચકાસાયેલ બાઈનરીનો ઉપયોગ કરીને સક્ષમ કરેલ સેવ કોરોને પુનઃસ્થાપિત કરે છે, ક્યારેય બુટ-ટાઇમ ડાઉનલોડ નહીં. સ્પષ્ટ સ્ટોપ તે સક્રિયકરણ ધ્વજને સાફ કરે છે. ગુમ થયેલ અથવા ક્ષતિગ્રસ્ત બાઈનરી માટે સ્ત્રોતને ફરીથી સાચવવાની જરૂર છે. રજિસ્ટ્રી કાઢી નાખવાથી સ્થાનિક રીતે સ્ત્રોત અને સાંભળનારને દૂર કરવામાં આવે છે; મેનેજ્ડ પંક્તિઓ માટે સામાન્ય એન્ડપોઇન્ટ સંપાદનો નકારવામાં આવે છે જેથી સાચવેલ સ્ત્રોત તેના રૂટ કરેલ શ્રોતામાંથી ચુપચાપ વહી ન શકે.
+
+| સ્ત્રોત ફોર્મેટ | સિંગ-બોક્સ | એક્સરે |
+| ------------------------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
+| VLESS, VMess, ટ્રોજન, શેડોસોક્સ URI | સમર્થિત રૂપાંતરણ | સમર્થિત રૂપાંતરણ |
+| Hysteria2/hy2, TUIC, AnyTLS URI | સમર્થિત રૂપાંતરણ | અસ્વીકાર; સુસંગત કોરનો ઉપયોગ કરો |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | VLESS/VMess/Trojan માટે સપોર્ટેડ છે | VLESS/VMess/Trojan માટે સપોર્ટેડ છે |
+| XHTTP URI પરિવહન | ફગાવી દીધી | સમર્થિત રૂપાંતરણ |
+| મૂળ આઉટબાઉન્ડ JSON | પસંદ કરેલ કોરના મંજૂર પ્રોક્સી protocols/options, નેટીવલી ચેક કરેલ | પસંદ કરેલ કોરના મંજૂર પ્રોક્સી protocols/options, નેટીવલી ચેક કરેલ |
+
+અજાણ્યા વાયર વિકલ્પો, અસુરક્ષિત TLS ફ્લેગ્સ, બાહ્ય પ્લગઇન્સ, સ્થાનિક ફાઇલ-પાથ વિકલ્પો અને અસમર્થિત સંયોજનો ચૂપચાપ કાઢી નાખવાને બદલે નકારવામાં આવે છે. મૂળ વસ્તુઓ આઉટબાઉન્ડ વ્યાખ્યાઓ છે, સંપૂર્ણ-કોર રૂપરેખાંકનો નથી; control/direct/bypass આઉટબાઉન્ડ્સ સ્વીકારવામાં આવતા નથી. sing-box 1.14 પર WireGuard એન્ડપોઇન્ટનો ઉપયોગ કરે છે, તેથી તે મૂળ આઉટબાઉન્ડ તરીકે સ્વીકારવામાં આવતું નથી. આ ઓલ-ફોર્મેટ કન્વર્ટર નથી; SSR, લેગસી whole-base64 શેડોસોક્સ લિંક્સ, આર્બિટરી ક્લેશ ઑબ્જેક્ટ્સ અને ટેબલમાંથી ગેરહાજર ટ્રાન્સપોર્ટ વેરિઅન્ટ્સને અલગથી સપોર્ટેડ સોર્સ ફોર્મેટની જરૂર છે.
+
+`/api/services/managed-proxy` પ્રમાણિત છે અને માત્ર-લૂપબેક છે: GET રીડેક્ટેડ મેટાડેટાની યાદી આપે છે, POST `{core,name,sourceLink,id?,assignment?}` સાચવે છે, PATCH `{core,action:"start"|"stop"}` સ્વીકારે છે. યજમાનની વિશ્વસનીય પીઅર-સ્ટેમ્પ પાઇપલાઇન હાજર હોવી આવશ્યક છે. મૂળ મૂળ ડાયગ્નોસ્ટિક્સ દબાવવામાં આવે છે કારણ કે તેમાં ઓળખપત્રો હોઈ શકે છે; લાઇફસાઇકલ ઇવેન્ટ્સ સોર્સ લિંક્સ અથવા અપસ્ટ્રીમ પેલોડ્સ વિના હાલની સ્ટ્રક્ચર્ડ એપ્લિકેશન ફાઇલ લોગરનો ઉપયોગ કરે છે. આધાર માટે માત્ર સેનિટાઈઝ્ડ એપ્લિકેશન લોગ જોડો. અધિકૃત સંસ્કરણો રિલીઝ-એસેટ SHA-256 મેનિફેસ્ટ સાથે સિંગ-બોક્સ 1.14.3 અને Xray 26.3.27 પર પિન કરેલા છે; ભવિષ્યના અપડેટ્સ માટે વર્ઝન અને તમામ ચકાસાયેલ ડાયજેસ્ટને એકસાથે બદલવાની જરૂર છે.
+
### મુખ્ય નિર્ણયો (ડિઝાઇન પ્લાનમાંથી)
-| નિર્ણય | મૂલ્ય |
-| ---------------------------------- | ------------------------------------------------------------------------------------------------ |
-| 9રાઉટર મૂળ UI માટે ડેશબોર્ડ ઍક્સેસ | `/dashboard/providers/services/9router/embed/*` પર રિવર્સ પ્રોક્સી |
-| ઇન્સ્ટોલેશન મિકેનિઝમ | `npm install {package}` મારફતે `execFile` (કોઈ શેલ પ્રક્ષેપ નથી) |
-| વપરાશ મોડ | રૂટીંગ એન્જિનમાં `9router/{sub}/{model}` તરીકે નોંધાયેલ પ્રદાતા |
-| API કી મેનેજમેન્ટ | OmniRoute જનરેટ કરે છે, એન્ક્રિપ્ટ કરે છે એટ-રેસ્ટ (AES-256-GCM), અને env દ્વારા ઇન્જેક્ટ કરે છે |
-| ડેશબોર્ડ સ્થાન | `/dashboard/providers/services` (ત્રણ ટેબ) |
-| ઓટો-સ્ટાર્ટ | સેવા દીઠ ટૉગલ કરો, ડિફોલ્ટ OFF |
+| નિર્ણય | મૂલ્ય |
+| ---------------------------------- | -------------------------------------------------------------------------------------------------- |
+| 9રાઉટર મૂળ UI માટે ડેશબોર્ડ ઍક્સેસ | `/dashboard/providers/services/9router/embed/*` પર રિવર્સ પ્રોક્સી |
+| ઇન્સ્ટોલેશન મિકેનિઝમ | `npm install {package}` મારફતે `execFile` (કોઈ શેલ પ્રક્ષેપ નથી) |
+| વપરાશ મોડ | રૂટીંગ એન્જિનમાં `9router/{sub}/{model}` તરીકે નોંધાયેલ પ્રદાતા |
+| API કી મેનેજમેન્ટ | OmniRoute જનરેટ કરે છે, એટ-રેસ્ટ (AES-256-GCM) ને એન્ક્રિપ્ટ કરે છે અને env દ્વારા ઇન્જેક્ટ કરે છે |
+| ડેશબોર્ડ સ્થાન | `/dashboard/providers/services` (ત્રણ ટેબ) |
+| ઓટો-સ્ટાર્ટ | સેવા દીઠ ટૉગલ કરો, ડિફોલ્ટ OFF |
---
diff --git a/docs/i18n/ha/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/ha/docs/frameworks/EMBEDDED-SERVICES.md
index e6fedeeaa494..f549c46e7895 100644
--- a/docs/i18n/ha/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/ha/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,7 +45,25 @@ Duk takwas suna bin tsarin kulawa iri ɗaya:
- OmniRoute tana shigar da su a ƙarƙashin `DATA_DIR/services/{name}/` (wanda aka keɓe daga OmniRoute na `package.json`)
- OmniRoute ta hayayyafa da kula da su kamar yadda yara suke tafiyar da su
- OmniRoute tana allurar maɓalli na ephemeral API a cikin muhallin yaron kuma tana juya shi ba tare da raguwa ba (inda ya dace)
-- Duk hanyoyin gudanarwa (`/api/services/*`) sune**LOCAL_ONLY** — ana iya samun damar kawai daga madauki (mai wuyar doka #17)
+- Duk hanyoyin gudanarwa (`/api/services/*`) sune**LOCAL_ONLY** Za a iya samun damar — daga madauki (hard rule #17)
+
+### Sarrafa saƙon wakili
+
+Filin mai masaukin baki na Custom kuma yana karɓar hanyar haɗin tushen V2Ray. Zaɓi** akwatin waka** ko** Xray** a sarari, sannan danna Ajiye. Bugawa baya saukewa ko farawa ainihin. Ajiye yana tabbatar da rumbun adana bayanan hukuma, yana tabbatar da daidaitawar asali, yana fara keɓantaccen mai sauraron localhost SOCKS, sannan kawai ya rubuta aikin rajistar wakili. Kunna da bai yi nasara ba yana dawo da tsari da tsari da aka sarrafa a baya. ana buƙatar `STORAGE_ENCRYPTION_KEY` ; an rufaffen hanyoyin haɗin tushe.
+
+Fayilolin da aka sarrafa suna rayuwa ƙarƙashin `DATA_DIR/services/managed-proxy/`, dabam da TPROXY. Akwai tsari guda ɗaya na kowane zaɓaɓɓen tushe, har zuwa masu sauraro 100. Babu autostart ko tsohowar hanyar sadarwa ta duniya da aka canza. Ajiye mai nasara yana tuna kunnawa don wannan ainihin sarrafawa kawai; fara aikace-aikacen yana dawo da annabawan bayanan da aka kunna ta amfani da binary da aka riga aka tabbatar, ba zazzagewar lokaci-lokaci ba. Tsaya Tsaya Tsaya yana share alamar kunnawa. Bacewar binary ko lalacewa yana buƙatar sake adana tushe. Goge rajista yana cire tushen da mai sauraro a gida; gyare-gyaren ƙarshe na yau da kullun ana ƙi don layukan sarrafawa don haka tushen da aka adana ba zai iya yin shuru daga mai sauraron sa ba.
+
+| Tsarin tushe | akwatin waka | Xray |
+| ------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | Juyawa mai goyan baya | Juyawa mai goyan baya |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Juyawa mai goyan baya | An ƙi; yi amfani da jigon jijiya mai jituwa |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Taimakawa VLESS/VMess/Trojan | Taimakawa VLESS/VMess/Trojan |
+| XHTTP URI | An ƙi | Juyawa mai goyan baya |
+| JSON na asali | Zaɓaɓɓen core's an yarda da wakili protocols/options, an duba shi ta asali | Zaɓaɓɓen core's an yarda da wakili protocols/options, an duba shi ta asali |
+
+Zaɓuɓɓukan waya da ba a san su ba, tutocin TLS marasa tsaro, plugins na waje, zaɓuɓɓukan hanyar fayil na gida da haɗin haɗin da ba a goyan baya ana ƙi su maimakon a zubar da shiru. Abubuwan asali ma'anoni ne masu fita waje, ba gabaɗaya ba saituna; ba a karɓar fita waje control/direct/bypass. WireGuard akan akwatin waƙa 1.14 yana amfani da wuraren ƙarewa, don haka ba a yarda da shi azaman mai fita waje ba. Wannan ba duk mai jujjuyawar tsari bane; SSR, Legacy whole-base64 Shadowsocks hanyoyin haɗin gwiwa, Abubuwan Karo na sabani da bambance-bambancen jigilar kaya da ba sa cikin tebur suna buƙatar tsarin tushen tallafi daban.
+
+An inganta `/api/services/managed-proxy` kuma an dawo da baya-kawai: GET ya lissafa metadata da aka canza, POST yana adana `{core,name,sourceLink,id?,assignment?}`, PATCH yana karɓar `{core,action:"start"|"stop"}`. Amintaccen bututun tambarin mai masaukin dole ne ya kasance. An danne ƙwaƙƙwaran bincike na asali saboda suna iya ƙunsar takaddun shaida; Abubuwan abubuwan da suka faru na rayuwa suna amfani da tsarin fayil ɗin aikace-aikacen da ke akwai ba tare da hanyoyin haɗin tushe ko abubuwan biyan kuɗi na sama ba. Haɗa madaidaitan rajistan ayyukan aikace-aikacen don tallafi. An lika sigar hukuma zuwa akwatin waƙa 1.14.3 da Xray 26.3.27 tare da fitowar-kadar SHA-256 ; Sabuntawa na gaba suna buƙatar canza sigar da duk ingantaccen narkar da su tare.
### Babban yanke shawara (daga tsarin ƙira)
diff --git a/docs/i18n/he/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/he/docs/frameworks/EMBEDDED-SERVICES.md
index cb0a44a14088..1866eaf1ccd5 100644
--- a/docs/i18n/he/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/he/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,7 +45,25 @@
- OmniRoute מתקין אותם תחת `DATA_DIR/services/{name}/` (מבודד מה- `package.json` של OmniRoute עצמו)
- OmniRoute משריץ ומנטר אותם כתהליכים ילדים
- OmniRoute מזריק מפתח API חולף לסביבת הילד ומסובב אותו ללא זמן השבתה (במקרה רלוונטי)
-- כל מסלולי הניהול (`/api/services/*`) הם**LOCAL_ONLY** — נגיש רק מ-loopback (כלל קשה מס' 17)
+- כל מסלולי הניהול (`/api/services/*`) הם**LOCAL_ONLY** — נגיש רק מ-loopback (כלל קשה #17)
+
+### ליבות פרוקסי מנוהלות
+
+השדה מארח פרוקסי מותאם אישית מקבל גם קישור מקור V2Ray. לִבחוֹר** sing-box** אוֹ** רנטגן** במפורש, ולאחר מכן לחץ על שמור. הקלדה אף פעם לא מורידה או מתחילה ליבה. Save מאמת את ארכיון ההפצות הרשמי, מאמת את התצורה המקורית, מפעילה מאזין localhost SOCKS מובהק, ורק אז כותבת את הקצאת רישום ה-proxy. הפעלה נכשלה משחזרת את התצורה והתהליך המנוהלים הקודמים. נדרש `STORAGE_ENCRYPTION_KEY` ; קישורי מקור מוצפנים.
+
+קבצים מנוהלים חיים תחת `DATA_DIR/services/managed-proxy/`, בנפרד מ- TPROXY. יש תהליך אחד בבעלות לכל ליבה נבחרת, עד 100 מאזינים. אין שינוי בהפעלה אוטומטית או ברירת המחדל של ניתוב גלובלי. שמירה מוצלחת זוכרת הפעלה עבור הליבה המנוהלת הזו בלבד; אתחול היישום משחזר ליבות שמורות מאופשרות באמצעות הקובץ הבינארי שכבר מאומת, אף פעם לא הורדה בזמן האתחול. עצירה מפורשת מנקה את דגל ההפעלה הזה. קובץ בינארי חסר או פגום דורש שמירת מקור מחדש. מחיקת הרישום מסירה את המקור והמאזין באופן מקומי; עריכות רגילות של נקודות קצה נדחות עבור שורות מנוהלות כך שהמקור השמור לא יכול להיסחף בשקט מהמאזין המנותב שלו.
+
+| פורמט מקור | sing-box | רנטגן |
+| ------------------------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
+| VLESS, VMess, Trojan, Shadowsocks URI | המרה נתמכת | המרה נתמכת |
+| Hysteria2/hy2, TUIC, AnyTLS URI | המרה נתמכת | נִדחֶה; השתמש בליבה תואמת |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | נתמך עבור VLESS/VMess/Trojan | נתמך עבור VLESS/VMess/Trojan |
+| XHTTP URI הובלה | נִדחֶה | המרה נתמכת |
+| JSON יוצאת מקורית | ה-proxy המותר protocols/options של הליבה שנבחרה, מסומן באופן מקורי | ה-proxy המותר protocols/options של הליבה שנבחרה, מסומן באופן מקורי |
+
+אפשרויות חוט לא ידועות, דגלי TLS לא מאובטחים, תוספים חיצוניים, אפשרויות נתיב מקומי של קבצים ושילובים לא נתמכים נדחים ולא נמחקים בשקט. אובייקטים מקוריים הם הגדרות יוצאות, לא תצורות של כל הליבה; יציאות control/direct/bypass לא מתקבלות. WireGuard ב-sing-box 1.14 משתמש בנקודות קצה, כך שהוא אינו מתקבל כיוצא מקורי. זה לא ממיר כל הפורמטים; SSR, קישורי whole-base64 Shadowsocks מדור קודם, אובייקטי Clash שרירותיים וגרסאות תחבורה שנעדרות מהטבלה זקוקים לפורמט מקור נתמך בנפרד.
+
+`/api/services/managed-proxy` מאומת ו-loopback בלבד: GET מציג מטא-נתונים ערוכים, POST שומר `{core,name,sourceLink,id?,assignment?}`, PATCH מקבל `{core,action:"start"|"stop"}`. צינור חותמת עמיתים מהימן של המארח חייב להיות קיים. אבחון ליבה מקורי מדוכא מכיוון שהם יכולים להכיל אישורים; אירועי מחזור חיים משתמשים ביומן קבצי היישום המובנה הקיים ללא קישורי מקור או עומסים במעלה הזרם. צרף רק יומני יישומים מחוטאים לתמיכה. גרסאות רשמיות מוצמדות ל-sing-box 1.14.3 ול-Xray 26.3.27 עם מניפסטים של SHA-256 של release-asset; עדכונים עתידיים מחייבים לשנות את הגרסה ואת כל התקצירים המאומתים ביחד.
### החלטות מפתח (מתוך תוכנית עיצוב)
@@ -54,7 +72,7 @@
| גישה ללוח המחוונים ל- UI יליד 9Router | פרוקסי הפוך ב- `/dashboard/providers/services/9router/embed/*` |
| מנגנון התקנה | `npm install {package}` באמצעות `execFile` (ללא אינטרפולציה של מעטפת) |
| מצב צריכה | ספק רשום כ- `9router/{sub}/{model}` במנוע ניתוב |
-| ניהול מפתחות API | OmniRoute מייצר, מצפין at-rest (AES-256-GCM), ומחדיר באמצעות env |
+| ניהול מפתחות API | OmniRoute מייצר, מצפין at-rest (AES-256-GCM), ומזריק באמצעות env |
| מיקום לוח המחוונים | `/dashboard/providers/services` (שלוש כרטיסיות) |
| הפעלה אוטומטית | החלף לפי שירות, ברירת מחדל OFF |
diff --git a/docs/i18n/hi/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/hi/docs/frameworks/EMBEDDED-SERVICES.md
index 5bdd41a87b9f..139fa70a3a47 100644
--- a/docs/i18n/hi/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/hi/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,7 +45,25 @@
- OmniRoute उन्हें `DATA_DIR/services/{name}/` के अंतर्गत स्थापित करता है ( OmniRoute के अपने `package.json` से अलग)
- OmniRoute उन्हें चाइल्ड प्रोसेस के रूप में उत्पन्न करता है और उनकी निगरानी करता है
- OmniRoute बच्चे के वातावरण में एक अल्पकालिक API कुंजी इंजेक्ट करता है और इसे बिना डाउनटाइम के घुमाता है (जहां लागू हो)
-- सभी प्रबंधन मार्ग (`/api/services/*`) हैं**LOCAL_ONLY** — केवल लूपबैक से पहुंच योग्य (कठिन नियम #17)
+- सभी प्रबंधन मार्ग (`/api/services/*`) हैं**LOCAL_ONLY** — केवल लूपबैक से पहुंच योग्य है (कठिन नियम #17)
+
+### प्रबंधित प्रॉक्सी कोर
+
+कस्टम प्रॉक्सी होस्ट फ़ील्ड V2Ray स्रोत लिंक को भी स्वीकार करता है। चुनना** सिंग-बॉक्स** या** एक्सरे** स्पष्ट रूप से, फिर सहेजें पर क्लिक करें। टाइपिंग कभी भी कोर को डाउनलोड या प्रारंभ नहीं करती है। सेव आधिकारिक रिलीज़ संग्रह को सत्यापित करता है, मूल कॉन्फ़िगरेशन को मान्य करता है, एक अलग लोकलहोस्ट SOCKS श्रोता शुरू करता है, और उसके बाद ही प्रॉक्सी रजिस्ट्री असाइनमेंट लिखता है। विफल सक्रियण पिछले प्रबंधित कॉन्फ़िगरेशन और प्रक्रिया को पुनर्स्थापित करता है। `STORAGE_ENCRYPTION_KEY` आवश्यक है; स्रोत लिंक एन्क्रिप्टेड हैं.
+
+प्रबंधित फ़ाइलें `DATA_DIR/services/managed-proxy/` से अलग, TPROXY के अंतर्गत रहती हैं। प्रत्येक चयनित कोर में 100 श्रोताओं तक एक स्वामित्व वाली प्रक्रिया होती है। कोई ऑटोस्टार्ट या ग्लोबल रूटिंग डिफ़ॉल्ट नहीं बदला गया है। सफल सेव केवल इस प्रबंधित कोर के लिए सक्रियण को याद रखता है; एप्लिकेशन स्टार्टअप पहले से सत्यापित बाइनरी का उपयोग करके सक्षम सहेजे गए कोर को पुनर्स्थापित करता है, कभी बूट-टाइम डाउनलोड नहीं। स्पष्ट स्टॉप उस सक्रियण ध्वज को साफ़ करता है। किसी गुम या क्षतिग्रस्त बाइनरी के लिए किसी स्रोत को पुनः सहेजने की आवश्यकता होती है। रजिस्ट्री विलोपन स्थानीय रूप से स्रोत और श्रोता को हटा देता है; प्रबंधित पंक्तियों के लिए सामान्य समापन बिंदु संपादन अस्वीकार कर दिए जाते हैं ताकि सहेजा गया स्रोत चुपचाप अपने रूट किए गए श्रोता से दूर न जा सके।
+
+| स्रोत प्रारूप | सिंग-बॉक्स | एक्सरे |
+| ------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
+| VLESS, VMess, ट्रोजन, शैडोसॉक्स URI | समर्थित रूपांतरण | समर्थित रूपांतरण |
+| Hysteria2/hy2, TUIC, AnyTLS URI | समर्थित रूपांतरण | अस्वीकार कर दिया; एक संगत कोर का उपयोग करें |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | VLESS/VMess/Trojan के लिए समर्थित | VLESS/VMess/Trojan के लिए समर्थित |
+| XHTTP URI परिवहन | अस्वीकार कर दिया | समर्थित रूपांतरण |
+| देशी आउटबाउंड JSON | चयनित कोर की अनुमति प्राप्त प्रॉक्सी protocols/options, मूल रूप से जाँच की गई | चयनित कोर की अनुमति प्राप्त प्रॉक्सी protocols/options, मूल रूप से जाँच की गई |
+
+अज्ञात तार विकल्प, असुरक्षित TLS झंडे, बाहरी प्लगइन्स, स्थानीय फ़ाइल-पथ विकल्प और असमर्थित संयोजनों को चुपचाप त्यागने के बजाय अस्वीकार कर दिया जाता है। मूल वस्तुएँ आउटबाउंड परिभाषाएँ हैं, संपूर्ण-कोर कॉन्फ़िगरेशन नहीं; control/direct/bypass आउटबाउंड स्वीकार नहीं किए जाते हैं। सिंग-बॉक्स 1.14 पर WireGuard एंडपॉइंट का उपयोग करता है, इसलिए इसे मूल आउटबाउंड के रूप में स्वीकार नहीं किया जाता है। यह एक पूर्ण-प्रारूप कनवर्टर नहीं है; SSR, लीगेसी whole-base64 शैडोसॉक्स लिंक, मनमाने ढंग से क्लैश ऑब्जेक्ट और तालिका से अनुपस्थित ट्रांसपोर्ट वेरिएंट को अलग से समर्थित स्रोत प्रारूप की आवश्यकता होती है।
+
+`/api/services/managed-proxy` प्रमाणित है और केवल लूपबैक है: GET संशोधित मेटाडेटा को सूचीबद्ध करता है, POST `{core,name,sourceLink,id?,assignment?}` सहेजता है, PATCH `{core,action:"start"|"stop"}` को स्वीकार करता है। होस्ट की विश्वसनीय पीयर-स्टैम्प पाइपलाइन मौजूद होनी चाहिए। मूल कोर डायग्नोस्टिक्स को दबा दिया जाता है क्योंकि उनमें क्रेडेंशियल्स हो सकते हैं; जीवनचक्र ईवेंट स्रोत लिंक या अपस्ट्रीम पेलोड के बिना मौजूदा संरचित एप्लिकेशन फ़ाइल लॉगर का उपयोग करते हैं। समर्थन के लिए केवल सेनिटाइज्ड एप्लिकेशन लॉग ही संलग्न करें। आधिकारिक संस्करणों को रिलीज़-एसेट SHA-256 मैनिफ़ेस्ट के साथ सिंग-बॉक्स 1.14.3 और एक्सरे 26.3.27 पर पिन किया गया है; भविष्य के अपडेट के लिए संस्करण और सभी सत्यापित डाइजेस्ट को एक साथ बदलने की आवश्यकता होती है।
### मुख्य निर्णय (डिज़ाइन योजना से)
diff --git a/docs/i18n/hr/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/hr/docs/frameworks/EMBEDDED-SERVICES.md
index 0abbe5c5be0f..d846d35a5f06 100644
--- a/docs/i18n/hr/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/hr/docs/frameworks/EMBEDDED-SERVICES.md
@@ -47,6 +47,24 @@ Svih osam slijedi isti model nadzora:
- OmniRoute ubacuje efemerni API ključ u djetetovu okolinu i rotira ga bez prekida (gdje je primjenjivo)
- Sve rute upravljanja (`/api/services/*`) su**LOCAL_ONLY** — dostupan samo iz povratne petlje (tvrdo pravilo #17)
+### Upravljane proxy jezgre
+
+Polje Custom proxy host također prihvaća vezu izvora V2Ray. Odaberite** kutija za pjevanje** ili** Xray** izričito, zatim kliknite Spremi. Upisivanje nikada ne preuzima niti pokreće jezgru. Spremanje provjerava službenu arhivu izdanja, provjerava izvornu konfiguraciju, pokreće poseban localhost SOCKS slušač i tek onda zapisuje dodjelu proxy registra. Neuspjela aktivacija vraća prethodnu upravljanu konfiguraciju i proces. potreban je `STORAGE_ENCRYPTION_KEY` ; izvorne veze su šifrirane.
+
+Upravljane datoteke žive pod `DATA_DIR/services/managed-proxy/`, odvojeno od TPROXY. Postoji jedan proces u vlasništvu po odabranoj jezgri, do 100 slušatelja. Zadane postavke automatskog pokretanja ili globalnog usmjeravanja nisu promijenjene. Uspješno spremanje pamti aktivaciju samo za ovu upravljanu jezgru; pokretanje aplikacije vraća omogućene spremljene jezgre pomoću već provjerene binarne datoteke, nikad preuzimanja tijekom pokretanja. Eksplicitno zaustavljanje briše tu oznaku za aktivaciju. Binarna datoteka koja nedostaje ili je oštećena zahtijeva ponovno spremanje izvora. Brisanje registra uklanja izvor i slušatelja lokalno; obična uređivanja krajnje točke odbijaju se za upravljane retke tako da spremljeni izvor ne može tiho odlutati od svog preusmjerenog slušatelja.
+
+| Izvorni format | kutija za pjevanje | Xray |
+| --------------------------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
+| VLESS, VMess, trojanac, Shadowsocks URI | Podržana konverzija | Podržana konverzija |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Podržana konverzija | Odbijen; koristite kompatibilnu jezgru |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Podržano za VLESS/VMess/Trojan | Podržano za VLESS/VMess/Trojan |
+| XHTTP URI prijevoz | Odbijen | Podržana konverzija |
+| Izvorni izlazni JSON | Dopušteni proxy protocols/options odabrane jezgre, izvorno označen | Dopušteni proxy protocols/options odabrane jezgre, izvorno označen |
+
+Nepoznate opcije žica, nesigurne TLS oznake, vanjski dodaci, opcije lokalnog puta datoteke i nepodržane kombinacije odbijaju se umjesto da se tiho odbacuju. Izvorni objekti su izlazne definicije, a ne konfiguracije cijele jezgre; control/direct/bypass odlasci se ne prihvaćaju. WireGuard na sing-boxu 1.14 koristi krajnje točke, tako da nije prihvaćen kao izvorni izlaz. Ovo nije pretvarač svih formata; SSR, naslijeđene whole-base64 Shadowsocks veze, proizvoljni Clash objekti i varijante prijenosa kojih nema u tablici trebaju posebno podržan izvorni format.
+
+`/api/services/managed-proxy` je autentificiran i koristi samo povratnu petlju: GET ispisuje redigirane metapodatke, POST sprema `{core,name,sourceLink,id?,assignment?}`, PATCH prihvaća `{core,action:"start"|"stop"}`. Hostov pouzdani peer-stamp cjevovod mora biti prisutan. Izvorna jezgrena dijagnostika je potisnuta jer može sadržavati vjerodajnice; događaji životnog ciklusa koriste postojeći logger strukturirane aplikacijske datoteke bez izvornih veza ili uzvodnog sadržaja. Za podršku priložite samo pročišćene zapisnike aplikacija. Službene verzije prikvačene su na sing-box 1.14.3 i Xray 26.3.27 s manifestima SHA-256 za izdavanje sredstava; buduća ažuriranja zahtijevaju promjenu verzije i svih provjerenih sažetaka zajedno.
+
### Ključne odluke (iz plana dizajna)
| Odluka | Vrijednost |
diff --git a/docs/i18n/hu/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/hu/docs/frameworks/EMBEDDED-SERVICES.md
index da6baa3bb39e..e363dfc466a9 100644
--- a/docs/i18n/hu/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/hu/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,18 +45,36 @@ Mind a nyolc ugyanazt a felügyeleti modellt követi:
- OmniRoute `DATA_DIR/services/{name}/` alá telepíti őket ( OmniRoute saját `package.json` jétől elkülönítve)
- OmniRoute előállítja és gyermekfolyamatként figyeli őket
- OmniRoute egy efemer API kulcsot fecskendez be a gyermek környezetébe, és leállás nélkül forgatja (ha van)
-- Minden kezelési útvonal (`/api/services/*`) van**LOCAL_ONLY** — csak loopback-ről érhető el (17-es kemény szabály)
+- Minden kezelési útvonal (`/api/services/*`) van**LOCAL_ONLY** — csak visszahurkolásból érhető el ( #17 kemény szabály)
+
+### Felügyelt proxy magok
+
+Az Egyéni proxygazda mező a V2Ray forráshivatkozást is elfogadja. Válassza ki** énekesdoboz** vagy** Xray** kifejezetten, majd kattintson a Mentés gombra. A gépelés soha nem tölt le és nem indít magot. A Mentés ellenőrzi a hivatalos kiadási archívumot, ellenőrzi a natív konfigurációt, elindít egy különálló localhost SOCKS figyelőt, és csak ezután írja meg a proxy beállításjegyzék hozzárendelését. A sikertelen aktiválás visszaállítja a korábbi felügyelt konfigurációt és folyamatot. `STORAGE_ENCRYPTION_KEY` szükséges; a forráshivatkozások titkosítva vannak.
+
+A kezelt fájlok `DATA_DIR/services/managed-proxy/` alatt élnek, külön TPROXY től. Kiválasztott magonként egy saját folyamat van, legfeljebb 100 hallgató. Az automatikus indítás vagy a globális útválasztás alapértelmezett értéke nem módosul. A sikeres mentés csak ennek a felügyelt magnak az aktiválását jegyzi meg; Az alkalmazás indítása visszaállítja az engedélyezett mentett magokat a már ellenőrzött bináris használatával, soha nem boot-time letöltéssel. Az Explicit Stop törli az aktiválási jelzőt. A hiányzó vagy sérült bináris fájl újbóli mentését igényli. A rendszerleíró adatbázis törlése helyileg eltávolítja a forrást és a figyelőt; a szokásos végpont-szerkesztéseket a rendszer elutasítja a felügyelt soroknál, így a mentett forrás nem tud csendben eltávolodni az irányított figyelőtől.
+
+| Forrás formátuma | énekesdoboz | Xray |
+| ------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
+| VLESS, VMess, trójai, Shadowsocks URI | Támogatott átalakítás | Támogatott átalakítás |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Támogatott átalakítás | Elutasítva; kompatibilis magot használjon |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Támogatott VLESS/VMess/Trojan számára | Támogatott VLESS/VMess/Trojan számára |
+| XHTTP URI közlekedés | Elutasítva | Támogatott átalakítás |
+| Natív kimenő JSON | A kiválasztott mag engedélyezett proxyja protocols/options, natívan ellenőrizve | A kiválasztott mag engedélyezett proxyja protocols/options, natívan ellenőrizve |
+
+Az ismeretlen vezetékbeállítások, a nem biztonságos TLS jelzők, a külső beépülő modulok, a helyi fájlútvonal-beállítások és a nem támogatott kombinációk inkább elutasításra kerülnek, mint csendben. A natív objektumok kimenő definíciók, nem teljes mag konfigurációk; control/direct/bypass kimenő leveleket nem fogadunk el. Az 1.14-es sing-box WireGuard je végpontokat használ, ezért nem fogadják el natív kimenőként. Ez nem egy teljes formátumú konverter; SSR, legacy whole-base64 Shadowsocks hivatkozások, tetszőleges Clash objektumok és a táblázatból hiányzó szállítási változatok külön támogatott forrásformátumot igényelnek.
+
+`/api/services/managed-proxy` hitelesített és csak visszacsatolásos: GET a redaktált metaadatokat sorolja fel, POST elmenti `{core,name,sourceLink,id?,assignment?}`, PATCH elfogadja `{core,action:"start"|"stop"}`. A gazdagép megbízható peer-bélyegző folyamatának jelen kell lennie. A natív alapdiagnosztika le van tiltva, mert hitelesítő adatokat tartalmazhatnak; Az életciklus-események a meglévő strukturált alkalmazásfájl-naplózót használják forráshivatkozások vagy upstream hasznos terhelések nélkül. Támogatás céljából csak megtisztított alkalmazásnaplókat csatoljon. A hivatalos verziók az 1.14.3-as sing-boxhoz és a 26.3.27-es Xray-hez vannak rögzítve release-asset SHA-256 manifestekkel; a jövőbeni frissítésekhez a verzió és az összes ellenőrzött kivonat együttes módosítása szükséges.
### Kulcsfontosságú döntések (a tervezési tervből)
-| Döntés | Érték |
-| ------------------------------------------------ | ------------------------------------------------------------------------------------------------- |
-| A műszerfal hozzáférése a 9Router natív UI jához | Fordított proxy a `/dashboard/providers/services/9router/embed/*` |
-| Beépítési mechanizmus | `npm install {package}` `execFile` keresztül (nincs shell-interpoláció) |
-| Fogyasztási mód | A szolgáltató `9router/{sub}/{model}` néven regisztrált az útválasztó motorban |
-| API kulcskezelés | OmniRoute generál, titkosítja a nyugalmi állapotot (AES-256-GCM) és injektálja az env-n keresztül |
-| A műszerfal helye | `/dashboard/providers/services` (három lap) |
-| Automatikus indítás | Váltás szolgáltatásonként, alapértelmezett OFF |
+| Döntés | Érték |
+| ---------------------------------------------------- | ------------------------------------------------------------------------------------------ |
+| Az irányítópult hozzáférése a 9Router natív UI jához | Fordított proxy a `/dashboard/providers/services/9router/embed/*` |
+| Beépítési mechanizmus | `npm install {package}` `execFile` keresztül (nincs shell-interpoláció) |
+| Fogyasztási mód | A szolgáltató `9router/{sub}/{model}` néven regisztrált az útválasztó motorban |
+| API kulcskezelés | OmniRoute nyugalmi állapotot generál, titkosít (AES-256-GCM) és env-n keresztül injektálja |
+| A műszerfal helye | `/dashboard/providers/services` (három lap) |
+| Automatikus indítás | Váltás szolgáltatásonként, alapértelmezett OFF |
---
diff --git a/docs/i18n/hy/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/hy/docs/frameworks/EMBEDDED-SERVICES.md
index b6b2d1201bde..f2811a9b0fe9 100644
--- a/docs/i18n/hy/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/hy/docs/frameworks/EMBEDDED-SERVICES.md
@@ -47,6 +47,24 @@
- OmniRoute ներարկում է ժամանակավոր API ստեղնը երեխայի միջավայր և պտտում է այն առանց ժամանակի (եթե դա կիրառելի է)
- Բոլոր կառավարման երթուղիները (`/api/services/*`) են**LOCAL_ONLY** — հասանելի է միայն loopback-ից (կոշտ կանոն #17)
+### Կառավարվող պրոքսի միջուկներ
+
+Custom proxy host դաշտը նույնպես ընդունում է V2Ray աղբյուրի հղումը: Ընտրել** sing-box** կամ** Ռենտգեն** հստակորեն, ապա սեղմեք Պահպանել: Մուտքագրումը երբեք չի ներբեռնում կամ սկսում միջուկ: Save-ը ստուգում է թողարկման պաշտոնական արխիվը, վավերացնում է բնիկ կոնֆիգուրացիան, սկսում է հստակ localhost SOCKS լսող և միայն դրանից հետո գրում վստահված անձի ռեեստրի հանձնարարությունը: Չհաջողված ակտիվացումը վերականգնում է նախկին կառավարվող կոնֆիգուրացիան և գործընթացը: `STORAGE_ENCRYPTION_KEY` պահանջվում է; աղբյուրի հղումները կոդավորված են:
+
+Կառավարվող ֆայլերը ապրում են `DATA_DIR/services/managed-proxy/` ներքո, TPROXY ից առանձին: Ընտրված միջուկի համար կա մեկ սեփական գործընթաց՝ մինչև 100 լսող: Ավտոմատ մեկնարկի կամ գլոբալ երթուղման լռելյայն չի փոխվել: Հաջող պահումը հիշում է ակտիվացումը միայն այս կառավարվող միջուկի համար. հավելվածի գործարկումը վերականգնում է միացված պահված միջուկները՝ օգտագործելով արդեն իսկ հաստատված երկուականը, երբեք բեռնման ժամանակի ներբեռնում: Բացահայտ կանգառը ջնջում է այդ ակտիվացման դրոշը: Բացակայող կամ վնասված երկուականը պահանջում է նորից պահպանել աղբյուրը: Ռեեստրի ջնջումը հեռացնում է աղբյուրը և լսողին տեղական; սովորական վերջնակետի խմբագրումները մերժվում են կառավարվող տողերի համար, այնպես որ պահպանված աղբյուրը չի կարող լուռ հեռանալ իր ուղղորդված լսողից:
+
+| Աղբյուրի ձևաչափը | sing-box | Ռենտգեն |
+| ------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | Աջակցված փոխակերպում | Աջակցված փոխակերպում |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Աջակցված փոխակերպում | Մերժված է; օգտագործել համատեղելի միջուկ |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Աջակցվում է VLESS/VMess/Trojan համար | Աջակցվում է VLESS/VMess/Trojan համար |
+| XHTTP URI տրանսպորտ | Մերժված է | Աջակցված փոխակերպում |
+| Մայրենի ելքային JSON | Ընտրված միջուկի թույլատրված վստահված անձը protocols/options, ստուգված է բնիկ | Ընտրված միջուկի թույլատրված վստահված անձը protocols/options, ստուգված է բնիկ |
+
+Անհայտ լարերի ընտրանքները, անապահով TLS դրոշները, արտաքին պլագինները, տեղական ֆայլերի ուղիների ընտրանքները և չաջակցվող համակցությունները մերժվում են, այլ ոչ թե լուռ անտեսվում: Մայրենի օբյեկտները ելքային սահմանումներ են, այլ ոչ թե ամբողջ հիմնական կազմաձևեր. control/direct/bypass ելքերը չեն ընդունվում: sing-box 1.14-ում WireGuard օգտագործում է վերջնակետեր, ուստի այն չի ընդունվում որպես բնիկ արտագնա: Սա բոլոր ձևաչափերի փոխարկիչ չէ. SSR, ժառանգական whole-base64 Shadowsocks հղումները, կամայական Clash օբյեկտները և աղյուսակից բացակայող տրանսպորտի տարբերակները կարիք ունեն առանձին աջակցվող աղբյուրի ձևաչափի:
+
+`/api/services/managed-proxy` վավերացված է և միայն շրջադարձային տարբերակով. GET թվարկում է խմբագրված մետատվյալները, POST պահպանում է `{core,name,sourceLink,id?,assignment?}`, PATCH ընդունում է `{core,action:"start"|"stop"}`: Պետք է ներկա լինի հյուրընկալողի վստահելի գործընկերների նամականիշը: Մայրենի հիմնական ախտորոշումը ճնշված է, քանի որ դրանք կարող են պարունակել հավատարմագրեր. կյանքի ցիկլի իրադարձությունները օգտագործում են գոյություն ունեցող կառուցվածքային հավելվածի ֆայլի գրանցիչը՝ առանց աղբյուրի հղումների կամ վերին հոսքի բեռների: Աջակցության համար կցեք միայն ախտահանված հավելվածների մատյանները: Պաշտոնական տարբերակները ամրացված են sing-box 1.14.3 և Xray 26.3.27-ին՝ թողարկում-ակտիվ SHA-256 մանիֆեստներով; ապագա թարմացումները պահանջում են փոխել տարբերակը և բոլոր ստուգված ամփոփումները միասին:
+
### Հիմնական որոշումներ (նախագծային պլանից)
| Որոշում | Արժեք |
@@ -54,7 +72,7 @@
| Վահանակի հասանելիություն 9Router-ի բնիկ UI ին | Հակադարձ վստահված անձ `/dashboard/providers/services/9router/embed/*` ում |
| Տեղադրման մեխանիզմ | `npm install {package}` `execFile` միջոցով (առանց կեղևի ինտերպոլացիայի) |
| Սպառման ռեժիմ | Մատակարարը գրանցված է որպես `9router/{sub}/{model}` երթուղային շարժիչում |
-| API բանալիների կառավարում | OmniRoute ստեղծում է, գաղտնագրում է հանգստի վիճակում (AES-256-GCM) և ներարկում env-ի միջոցով |
+| API բանալիների կառավարում | OmniRoute ստեղծում է, գաղտնագրում է հանգիստ վիճակում (AES-256-GCM) և ներարկում env-ի միջոցով |
| Վահանակի գտնվելու վայրը | `/dashboard/providers/services` (երեք ներդիր) |
| Ավտոմատ մեկնարկ | Փոխարկել մեկ ծառայության համար, կանխադրված OFF |
diff --git a/docs/i18n/id/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/id/docs/frameworks/EMBEDDED-SERVICES.md
index f9f7c0431b3c..0cfb004392d6 100644
--- a/docs/i18n/id/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/id/docs/frameworks/EMBEDDED-SERVICES.md
@@ -47,6 +47,24 @@ Kedelapannya mengikuti model pengawasan yang sama:
- OmniRoute memasukkan kunci API sementara ke dalam lingkungan anak dan memutarnya tanpa waktu henti (jika berlaku)
- Semua rute manajemen (`/api/services/*`) adalah**LOCAL_ONLY** — hanya dapat diakses dari loopback (aturan keras #17)
+### Inti proksi terkelola
+
+Bidang Host proksi khusus juga menerima tautan sumber V2Ray. Memilih** kotak bernyanyi** atau** sinar X** secara eksplisit, lalu klik Simpan. Mengetik tidak pernah mengunduh atau memulai inti. Simpan memverifikasi arsip rilis resmi, memvalidasi konfigurasi asli, memulai pendengar SOCKS localhost yang berbeda, dan baru kemudian menulis tugas registri proksi. Aktivasi yang gagal memulihkan konfigurasi dan proses terkelola sebelumnya. `STORAGE_ENCRYPTION_KEY` diperlukan; tautan sumber dienkripsi.
+
+File yang dikelola berada di bawah `DATA_DIR/services/managed-proxy/`, terpisah dari TPROXY. Ada satu proses yang dimiliki per inti yang dipilih, hingga 100 pendengar. Tidak ada autostart atau default perutean global yang diubah. Penyimpanan yang berhasil mengingat aktivasi hanya untuk inti terkelola ini; startup aplikasi memulihkan inti tersimpan yang diaktifkan menggunakan biner yang sudah terverifikasi, tidak pernah mengunduh saat boot. Berhenti Eksplisit menghapus tanda aktivasi itu. Biner yang hilang atau rusak memerlukan penyimpanan ulang sumbernya. Penghapusan registri menghapus sumber dan pendengar secara lokal; pengeditan titik akhir biasa ditolak untuk baris terkelola sehingga sumber yang disimpan tidak dapat berpindah secara diam-diam dari pendengar yang dirutekan.
+
+| Format sumber | kotak bernyanyi | sinar X |
+| ------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | Konversi yang didukung | Konversi yang didukung |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Konversi yang didukung | Ditolak; menggunakan inti yang kompatibel |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Didukung untuk VLESS/VMess/Trojan | Didukung untuk VLESS/VMess/Trojan |
+| transportasi XHTTP URI | Ditolak | Konversi yang didukung |
+| JSON keluar asli | Proksi yang diizinkan dari inti yang dipilih protocols/options, diperiksa secara asli | Proksi yang diizinkan dari inti yang dipilih protocols/options, diperiksa secara asli |
+
+Opsi kabel yang tidak dikenal, flag TLS yang tidak aman, plugin eksternal, opsi jalur file lokal, dan kombinasi yang tidak didukung akan ditolak daripada dibuang secara diam-diam. Objek asli adalah definisi keluar, bukan konfigurasi inti keseluruhan; control/direct/bypass keluar tidak diterima. WireGuard pada sing-box 1.14 menggunakan titik akhir, sehingga tidak diterima sebagai outbound asli. Ini bukan konverter semua format; SSR, tautan whole-base64 Shadowsocks lama, objek Clash arbitrer, dan varian transportasi yang tidak ada dalam tabel memerlukan format sumber yang didukung secara terpisah.
+
+`/api/services/managed-proxy` diautentikasi dan hanya loopback: GET mencantumkan metadata yang disunting, POST menyimpan `{core,name,sourceLink,id?,assignment?}`, PATCH menerima `{core,action:"start"|"stop"}`. Pipeline stempel rekan tepercaya dari host harus ada. Diagnostik inti asli disembunyikan karena dapat berisi kredensial; peristiwa siklus hidup menggunakan pencatat file aplikasi terstruktur yang ada tanpa tautan sumber atau muatan upstream. Lampirkan hanya log aplikasi yang sudah dibersihkan untuk dukungan. Versi resmi disematkan ke sing-box 1.14.3 dan Xray 26.3.27 dengan manifes SHA-256 aset rilis; pembaruan di masa mendatang memerlukan perubahan versi dan semua intisari terverifikasi secara bersamaan.
+
### Keputusan penting (dari rencana desain)
| Keputusan | Nilai |
diff --git a/docs/i18n/ig/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/ig/docs/frameworks/EMBEDDED-SERVICES.md
index 44d7107c846f..b31ac5736d73 100644
--- a/docs/i18n/ig/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/ig/docs/frameworks/EMBEDDED-SERVICES.md
@@ -29,34 +29,52 @@
agbakwunyere ọrụ asatọ:
-| Ọrụ | npm ngwugwu | ọdụ ụgbọ mmiri mbụ | Ebumnuche |
-| --------------- | --------------------------------------- | :----------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **9 rawụta** | `9router` | 20130 | AI router nke OmniRoute nwere ike iji dị ka onye na-eweta ihe. Ụdị ekpughere dị ka `9router/{sub}/{model}` |
-| **CLIProxyAPI** | ọnụọgụ abụọ ntọhapụ GitHub (`cliproxy`) | 8317 | Ihe nkwụnye proxy mpaghara maka Anthropic CLI auth na-asọ. Na-enye ụzọ ndaghachi azụ mgbe akara OAuth kubie ume |
-| **Mux** | `mux` ( `mux server` na-enweghị isi) | 8322 | Onye nnọchi anya mpaghara-daemon orchestration (coder/mux). Lifecycle-jikwaara naanị — abụghị ebumnuche ntụgharị (enweghị LLM proxying). |
-| **Bifrost** | `@maximhq/bifrost` | 8080 | Gaa AI-ọnụ ụzọ relay backend. Mgbe ị na-agba ọsọ, ahọpụtara akpaghị aka site na ụzọ mgbagharị (`/v1/relay/`) |
-| **Dario** | `@askalf/dario` | 3456 | Claude-ndebanye aha proxy — alternative/failover na CLIProxyAPI maka okporo ụzọ ụdị Claude-Code; igodo agbanyere na-aghọ `DARIO_ADMIN_TOKEN` gating ụgbọ elu njikwa `/admin/*` OAuth |
-| **oghe-wa** | `@open-wa/wa-automate` | 8323 | WhatsApp Weebụ akpaaka (Chromium enweghị isi site na Puppeteer). Lifecycle-jikwaara naanị — abụghị ebumnuche ntụgharị. |
-| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Ngwa ngwa mkpakọ sidecar — ezigbo LLMLingua-2 ONNX ụdị (JS/TS port of Microsoft's algorithm). `open-sse/services/compression/engines/llmlingua/index.ts` na-eziga `/compress` n'elu HTTP na ya, na-adaghachi azụ azụ azụ nke onye na-arụ ọrụ na-arụ ọrụ mgbe ụgbọ ala dị ala. Lifecycle-jikwaara naanị — abụghị ebumnuche ntụgharị. |
-| **igbe egwu** | ọnụọgụ abụọ ntọhapụ GitHub (`singbox`) | 20140 | TPROXY sidecar nkwado `applyTproxy()`'s transperent-proxy interception (`src/mitm/tproxy/setup.ts`). Onye nrụnye na-ebudata ntọhapụ etinyere, nke checksum kwadoro. Lifecycle-jikwaara naanị — abụghị ebumnuche ntụgharị (enweghị LLM proxying) |
+| Ọrụ | npm ngwugwu | ọdụ ụgbọ mmiri mbụ | Ebumnuche |
+| --------------- | --------------------------------------- | :----------------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **9 rawụta** | `9router` | 20130 | AI router nke OmniRoute nwere ike iji dị ka onye na-eweta ihe. Ụdị ekpughere dị ka `9router/{sub}/{model}` |
+| **CLIProxyAPI** | ọnụọgụ abụọ ntọhapụ GitHub (`cliproxy`) | 8317 | Ihe nkwụnye proxy mpaghara maka Anthropic CLI auth na-asọ. Na-enye ụzọ ndaghachi azụ mgbe akara OAuth kubie ume |
+| **Mux** | `mux` ( `mux server` na-enweghị isi) | 8322 | Onye nnọchi anya mpaghara-daemon orchestration (coder/mux). Lifecycle-jikwaara naanị — abụghị ebumnuche ntụgharị (enweghị LLM proxying). |
+| **Bifrost** | `@maximhq/bifrost` | 8080 | Gaa AI-ọnụ ụzọ relay backend. Mgbe ị na-agba ọsọ, ahọpụtara akpaghị aka site na ụzọ mgbagharị (`/v1/relay/`) |
+| **Dario** | `@askalf/dario` | 3456 | Claude-ndebanye aha proxy — alternative/failover na CLIProxyAPI maka okporo ụzọ ụdị Claude-Code; igodo agbanyere na-aghọ `DARIO_ADMIN_TOKEN` gating ụgbọ elu njikwa `/admin/*` OAuth |
+| **oghe-wa** | `@open-wa/wa-automate` | 8323 | WhatsApp Weebụ akpaaka (Chromium enweghị isi site na Puppeteer). Lifecycle-jikwaara naanị — abụghị ebumnuche ntụgharị. |
+| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Ngwa ngwa mkpakọ sidecar — ezigbo LLMLingua-2 ONNX ụdị (JS/TS port of Microsoft's algorithm). `open-sse/services/compression/engines/llmlingua/index.ts` na-eziga `/compress` n'elu HTTP na ya, na-adaghachi azụ azụ azụ nke onye ọrụ na-arụ ọrụ mgbe akụkụ ụgbọ ala dara. Lifecycle-jikwaara naanị — abụghị ebumnuche ntụgharị. |
+| **igbe egwu** | ọnụọgụ abụọ ntọhapụ GitHub (`singbox`) | 20140 | TPROXY sidecar nkwado `applyTproxy()`'s transperent-proxy interception (`src/mitm/tproxy/setup.ts`). Onye nrụnye na-ebudata ntọhapụ etinyere, nke checksum kwadoro. Lifecycle-jikwaara naanị — abụghị ebumnuche ntụgharị (enweghị LLM proxying) |
Asato niile na-agbaso otu ụkpụrụ nlekọta:
-- OmniRoute na-etinye ha n'okpuru `DATA_DIR/services/{name}/` (nke dịpụrụ adịpụ na `package.json` nke OmniRoute)
+- OmniRoute na-etinye ha n'okpuru `DATA_DIR/services/{name}/` (dịpụrụ na OmniRoute nke onwe `package.json`)
- OmniRoute na-amụba ma na-enyocha ha dị ka usoro ụmụaka
- OmniRoute na-adọba igodo API ephemeral n'ime gburugburu nwata wee tụgharịa ya na-enweghị oge ọdịda (ebe ọ dị)
-- Ụzọ njikwa niile (`/api/services/*`) bụ**LOCAL_ONLY** — na-enweta naanị site na loopback (iwu siri ike #17)
+- Ụzọ njikwa niile (`/api/services/*`) bụ**LOCAL_ONLY** — enwere ike nweta naanị site na loopback (iwu siri ike #17)
+
+### Isi okwu proxy jisiri
+
+Ogige nnabata proxy omenala na-anabatakwa njikọ isi mmalite V2Ray. Họrọ** igbe egwu** ma ọ bụ** Xray** hoo haa, wee pịa Chekwa. Ederede anaghị ebudata ma ọ bụ malite isi. Chekwa na-enyocha ebe nchekwa ntọhapụ gọọmentị, na-akwado nhazi obodo, malite onye na-ege ntị SOCKS localhost, wee dee ọrụ ndekọ proxy. Nkwalite emezughị na-eweghachi nhazi na usoro ejirigoro gara aga. `STORAGE_ENCRYPTION_KEY` chọrọ; ezoro ezo njikọ isi mmalite.
+
+Faịlụ jisiri na-ebi n'okpuru `DATA_DIR/services/managed-proxy/`, dị iche na TPROXY. Enwere otu usoro nwere n'otu isi ahọpụtara, ruru 100 ndị na-ege ntị. Ọnweghị mmalite mmalite ma ọ bụ ndabara ụzọ zuru ụwa ọnụ agbanwebeghị. Nchekwa nke ọma na-echeta mmalite maka naanị isi a na-achịkwa; mmalite ngwa na-eweghachite cores echekwara site na iji ọnụọgụ abụọ ekwenyelarị, ọnweghị nbudata oge buut. Nkwụsị doro anya na-ekpochapụ ọkọlọtọ mmalite ahụ. ọnụọgụ abụọ na-efu ma ọ bụ mebiri emebi chọrọ ịchekwa isi iyi. Nhichapụ ndekọ na-ewepụ isi iyi na onye na-ege ntị na mpaghara; A na-ajụ ndezi ngwụcha ngwụcha maka ahịrị ndị a na-achịkwa ka ebe nchekwa echekwara enweghị ike isi n'ime onye na-ege ya ntị kpafuo.
+
+| Usoro isi mmalite | igbe egwu | Xray |
+| ------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | Ntughari akwadoro | Ntughari akwadoro |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Ntughari akwadoro | jụrụ; jiri isi dakọtara |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Akwadoro maka VLESS/VMess/Trojan | Akwadoro maka VLESS/VMess/Trojan |
+| XHTTP URI njem | Ajụjụ | Ntughari akwadoro |
+| Obodo ọpụpụ JSON | Isi ahọpụtara anabatara proxy protocols/options, enyochara ya n'asụsụ ala | Isi ahọpụtara anabatara proxy protocols/options, enyochara ya n'asụsụ ala |
+
+Nhọrọ waya amaghi ama, ọkọlọtọ TLS na-enweghị nchebe, plugins mpụga, nhọrọ ụzọ faịlụ mpaghara na njikọ akwadoghị ka ajụ oyi kama ịtụfu ya na nzuzo. Ihe ala ala bụ nkọwa na-apụ apụ, ọ bụghị nhazi nke isi; Anabataghị ọpụpụ control/direct/bypass. WireGuard na igbe abụ 1.14 na-eji njedebe njedebe, yabụ anaghị anabata ya dị ka ọpụpụ obodo. Nke a abụghị ihe niile-format Ntụgharị; SSR, legacy whole-base64 Shadowsocks njikọ, ihe mgbagha aka ike na ụdị njem na-anọghị na tebụl chọrọ usoro isi mmalite akwadoro iche.
+
+`/api/services/managed-proxy` bụ eziokwu yana loopback naanị: GET depụtara metadata emezigharịrị, POST na-echekwa `{core,name,sourceLink,id?,assignment?}`, PATCH na-anabata `{core,action:"start"|"stop"}`. Pipeline stampụ ndị ọbịa tụkwasịrị obi ga-adịrịrị. A na-egbochi nchọpụta isi ala n'ihi na ha nwere ike ịnwe nzere; mmemme usoro ndụ na-eji faịlụ ngwa a haziri ahazi na-enweghị njikọ isi mmalite ma ọ bụ ibu akwụgo elu. Tinye naanị ndekọ ngwa emezichara maka nkwado. A na-atụnye nsụgharị ndị gọọmentị na igbe abụ 1.14.3 na Xray 26.3.27 nwere ntọhapụ-akụ SHA-256 pụtara; mmelite ga-eme n'ọdịnihu chọrọ ịgbanwe ụdị ya na ngwa ngwa niile akwadoro ọnụ.
### Mkpebi ndị isi (sitere na atụmatụ imewe)
-| Mkpebi | Uru |
-| ------------------------------------- | --------------------------------------------------------------------------------- |
-| Nweta dashboard na 9Router nwa afọ UI | Weghachite proxy na `/dashboard/providers/services/9router/embed/*` |
-| Usoro ntinye | `npm install {package}` site na `execFile` (enweghị interpolation nke shei) |
-| Ụdị oriri | Onye na-eweta aha debara aha dị ka `9router/{sub}/{model}` n'ime igwe na-ebugharị |
-| njikwa igodo API | OmniRoute na-ebute, na-ezobe na-ezumike (AES-256-GCM), ma na-agbanye site na env |
-| Ọnọdụ dashboard | `/dashboard/providers/services` (taabụ atọ) |
-| Malite na akpaghị aka | Gbanwee kwa ọrụ, ndabara OFF |
+| Mkpebi | Uru |
+| ------------------------------------- | -------------------------------------------------------------------------------- |
+| Nweta dashboard na 9Router nwa afọ UI | Weghachite proxy na `/dashboard/providers/services/9router/embed/*` |
+| Usoro ntinye | `npm install {package}` site na `execFile` (enweghị mkpuchi mkpuchi shei) |
+| Ụdị oriri | Onye na-eweta aha debara aha dị ka `9router/{sub}/{model}` n'ime igwe ntugharị |
+| njikwa igodo API | OmniRoute na-ebute, na-ezobe na-ezumike (AES-256-GCM), ma na-agbanye site na env |
+| Ọnọdụ dashboard | `/dashboard/providers/services` (taabụ atọ) |
+| Malite na akpaghị aka | Gbanwee kwa ọrụ, ndabara OFF |
---
diff --git a/docs/i18n/it/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/it/docs/frameworks/EMBEDDED-SERVICES.md
index be33f4a8895a..39f6704fba97 100644
--- a/docs/i18n/it/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/it/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,7 +45,25 @@ Tutti e otto seguono lo stesso modello di vigilanza:
- OmniRoute li installa sotto `DATA_DIR/services/{name}/` (isolato da `package.json` di OmniRoute)
- OmniRoute li genera e li monitora come processi figli
- OmniRoute inserisce una chiave API effimera nell'ambiente del bambino e la ruota senza tempi di inattività (ove applicabile)
-- Tutti i percorsi di gestione (`/api/services/*`) lo sono**LOCAL_ONLY** — accessibile solo da loopback (regola difficile n. 17)
+- Tutti i percorsi di gestione (`/api/services/*`) lo sono**LOCAL_ONLY** — accessibile solo da loopback (regola difficile #17)
+
+### Core proxy gestiti
+
+Il campo Host proxy personalizzato accetta anche un collegamento di origine V2Ray. Selezionare** scatola di canto** O** Raggi X** esplicitamente, quindi fare clic su Salva. La digitazione non scarica né avvia mai un core. Save verifica l'archivio della versione ufficiale, convalida la configurazione nativa, avvia un listener SOCKS localhost distinto e solo successivamente scrive l'assegnazione del registro del proxy. L'attivazione non riuscita ripristina la configurazione e il processo gestiti precedenti. `STORAGE_ENCRYPTION_KEY` è obbligatorio; i collegamenti di origine sono crittografati.
+
+I file gestiti risiedono in `DATA_DIR/services/managed-proxy/`, separati da TPROXY. Esiste un processo di proprietà per core selezionato, fino a 100 ascoltatori. Non viene modificato alcun avvio automatico o impostazione predefinita del routing globale. Il salvataggio riuscito ricorda l'attivazione solo per questo core gestito; l'avvio dell'applicazione ripristina i core salvati abilitati utilizzando il file binario già verificato, mai un download all'avvio. L'arresto esplicito cancella il flag di attivazione. Un binario mancante o danneggiato richiede il nuovo salvataggio di una fonte. La cancellazione del registro rimuove la sorgente e il listener localmente; le modifiche ordinarie dell'endpoint vengono rifiutate per le righe gestite in modo che l'origine salvata non possa allontanarsi silenziosamente dal relativo ascoltatore instradato.
+
+| Formato sorgente | scatola di canto | Raggi X |
+| ------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | Conversione supportata | Conversione supportata |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Conversione supportata | Respinto; utilizzare un nucleo compatibile |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Supportato per VLESS/VMess/Trojan | Supportato per VLESS/VMess/Trojan |
+| trasporto XHTTP URI | Respinto | Conversione supportata |
+| JSON nativo in uscita | Proxy protocols/options consentito del core selezionato, controllato in modo nativo | Proxy protocols/options consentito del core selezionato, controllato in modo nativo |
+
+Opzioni di collegamento sconosciute, flag TLS non sicuri, plug-in esterni, opzioni di percorso file locale e combinazioni non supportate vengono rifiutate anziché scartate silenziosamente. Gli oggetti nativi sono definizioni in uscita, non configurazioni dell'intero nucleo; Le uscite control/direct/bypass non sono accettate. WireGuard su sing-box 1.14 utilizza endpoint, quindi non è accettato come uscita nativa. Questo non è un convertitore per tutti i formati; SSR, i collegamenti legacy whole-base64 Shadowsocks, gli oggetti Clash arbitrari e le varianti di trasporto assenti dalla tabella richiedono un formato sorgente supportato separatamente.
+
+`/api/services/managed-proxy` è autenticato e funziona solo in loopback: GET elenca i metadati redatti, POST salva `{core,name,sourceLink,id?,assignment?}`, PATCH accetta `{core,action:"start"|"stop"}`. La pipeline peer-stamp attendibile dell'host deve essere presente. La diagnostica core nativa viene eliminata perché può contenere credenziali; gli eventi del ciclo di vita utilizzano il registratore di file dell'applicazione strutturata esistente senza collegamenti di origine o payload upstream. Allega solo i log delle applicazioni disinfettati per il supporto. Le versioni ufficiali sono fissate a sing-box 1.14.3 e Xray 26.3.27 con manifest release-asset SHA-256 ; gli aggiornamenti futuri richiedono la modifica insieme della versione e di tutti i digest verificati.
### Decisioni chiave (dal piano di progettazione)
diff --git a/docs/i18n/ja/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/ja/docs/frameworks/EMBEDDED-SERVICES.md
index c5c2e735d64d..40593b120f9e 100644
--- a/docs/i18n/ja/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/ja/docs/frameworks/EMBEDDED-SERVICES.md
@@ -38,14 +38,32 @@
| **ダリオ** | `@askalf/dario` | 3456 | クロード コード形式のトラフィックの場合は、クロード サブスクリプション プロキシ— alternative/failoverからCLIProxyAPIへ。注入されたキーは、 `/admin/*` OAuthコントロール プレーンをゲートする`DARIO_ADMIN_TOKEN`になります。 |
| **オープンワ** | `@open-wa/wa-automate` | 8323 | WhatsApp Web オートメーション (Puppeteer 経由のヘッドレス Chromium)。ライフサイクルで管理されるのは—のみであり、ルーティング ターゲットではありません。 |
| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | 即時圧縮サイドカー—実数LLMLingua-2 ONNXモデル ( MicrosoftのアルゴリズムのJS/TSポート)。 `open-sse/services/compression/engines/llmlingua/index.ts` 、 HTTPを介して`/compress`それにディスパッチし、サイドカーがダウンするとインプロセス ワーカー スレッド バックエンドにフォールバックします。ライフサイクルで管理されるのは—のみであり、ルーティング ターゲットではありません。 |
-| **シングボックス** | GitHubリリース バイナリ (`singbox`) | 20140 | TPROXYサイドカーは、 `applyTproxy()`の透過プロキシ インターセプト (`src/mitm/tproxy/setup.ts`) をサポートします。インストーラーは、固定されたチェックサム検証済みのリリースをダウンロードします。ライフサイクルで管理されるのは—のみであり、ルーティング ターゲットではありません ( LLMプロキシはありません) |
+| **シングボックス** | GitHubリリース バイナリ (`singbox`) | 20140 | `applyTproxy()`の透過プロキシ インターセプト (`src/mitm/tproxy/setup.ts`) を支援するTPROXYサイドカー。インストーラーは、固定されたチェックサム検証済みのリリースをダウンロードします。ライフサイクルで管理されるのは—のみであり、ルーティング ターゲットではありません ( LLMプロキシはありません) |
8 つすべてが同じ監視モデルに従っています。
- OmniRouteそれらを`DATA_DIR/services/{name}/`の下にインストールします ( OmniRoute自身の`package.json`から分離されています)。
- OmniRoute子プロセスとして生成および監視します。
- OmniRoute一時的なAPIキーを子の環境に挿入し、ダウンタイムなしでローテーションします (該当する場合)。
-- すべての管理ルート (`/api/services/*`) は**LOCAL_ONLY** —ループバックからのみアクセス可能 (厳格なルール #17)
+- すべての管理ルート (`/api/services/*`) は**LOCAL_ONLY** —ループバックからのみアクセス可能 (厳密なルール#17)
+
+### マネージドプロキシコア
+
+[カスタム プロキシ ホスト] フィールドには、 V2Rayソース リンクも受け入れます。選択**シングボックス**または**X線**明示的に指定し、「保存」をクリックします。入力してもコアがダウンロードされたり、起動されたりすることはありません。 Save は、公式リリース アーカイブを検証し、ネイティブ構成を検証し、個別の localhost SOCKSリスナーを開始してから、プロキシ レジストリ割り当てを書き込みます。アクティベーションに失敗すると、以前の管理対象構成とプロセスが復元されます。 `STORAGE_ENCRYPTION_KEY`は必須です。ソースリンクは暗号化されます。
+
+管理対象ファイルは、 `DATA_DIR/services/managed-proxy/`とは別に、 TPROXYの下に存在します。選択したコアごとに 1 つの所有プロセスがあり、最大 100 のリスナーが存在します。自動開始またはグローバル ルーティングのデフォルトは変更されません。保存が成功すると、この管理対象コアのみのアクティベーションが記憶されます。アプリケーションの起動時は、起動時のダウンロードではなく、検証済みのバイナリを使用して有効な保存済みコアを復元します。 Explicit Stop はそのアクティブ化フラグをクリアします。バイナリが見つからないか破損している場合は、ソースを再保存する必要があります。レジストリを削除すると、ソースとリスナーがローカルに削除されます。通常のエンドポイント編集は管理対象行では拒否されるため、保存されたソースがルーティングされたリスナーからサイレントにドリフトすることはありません。
+
+| ソース形式 | シングボックス | X線 |
+| ------------------------------------------------ | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- |
+| VLESS、 VMess、トロイの木馬、シャドウソックスURI | サポートされている変換 | サポートされている変換 |
+| Hysteria2/hy2, TUIC, AnyTLS URI | サポートされている変換 | 拒否されました。互換性のあるコアを使用する |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | VLESS/VMess/Trojanをサポート | VLESS/VMess/Trojanをサポート |
+| XHTTP URIトランスポート | 拒否されました | サポートされている変換 |
+| ネイティブのアウトバウンドJSON | 選択したコアの許可されたプロキシprotocols/options、ネイティブにチェック | 選択したコアの許可されたプロキシprotocols/options、ネイティブにチェック |
+
+不明なワイヤ オプション、安全でないTLSフラグ、外部プラグイン、ローカル ファイル パス オプション、およびサポートされていない組み合わせは、サイレントに破棄されるのではなく、拒否されます。ネイティブ オブジェクトはアウトバウンド定義であり、コア全体の構成ではありません。 control/direct/bypassアウトバウンドは受け入れられません。 sing-box 1.14 のWireGuardエンドポイントを使用するため、ネイティブ アウトバウンドとして受け入れられません。これはすべてのフォーマットに対応したコンバーターではありません。 SSR、レガシーwhole-base64 Shadowsocks リンク、任意のクラッシュ オブジェクト、およびテーブルにないトランスポート バリアントには、個別にサポートされるソース形式が必要です。
+
+`/api/services/managed-proxy`は認証され、ループバックのみです。 GET編集されたメタデータをリストし、 POST `{core,name,sourceLink,id?,assignment?}`を保存し、 PATCH `{core,action:"start"|"stop"}`を受け入れます。ホストの信頼できるピアスタンプ パイプラインが存在する必要があります。ネイティブ コア診断には資格情報が含まれる可能性があるため、抑制されます。ライフサイクル イベントは、ソース リンクやアップストリーム ペイロードを使用せずに、既存の構造化アプリケーション ファイル ロガーを使用します。サポートのためにサニタイズされたアプリケーション ログのみを添付してください。公式バージョンは、リリースアセットSHA-256マニフェストを使用して sing-box 1.14.3 および Xray 26.3.27 に固定されています。今後の更新では、バージョンとすべての検証済みダイジェストを一緒に変更する必要があります。
### 主な決定事項 (設計計画から)
diff --git a/docs/i18n/ka/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/ka/docs/frameworks/EMBEDDED-SERVICES.md
index f00b8f873577..ebd20a4ef51d 100644
--- a/docs/i18n/ka/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/ka/docs/frameworks/EMBEDDED-SERVICES.md
@@ -47,6 +47,24 @@
- OmniRoute შეჰყავს ეფემერული API გასაღები ბავშვის გარემოში და აბრუნებს მას შეფერხების გარეშე (სადაც შესაძლებელია)
- მართვის ყველა მარშრუტი (`/api/services/*`) არის**LOCAL_ONLY** — ხელმისაწვდომია მხოლოდ loopback-დან (მყარი წესი #17)
+### მართული პროქსი ბირთვები
+
+მორგებული პროქსი ჰოსტის ველი ასევე იღებს V2Ray წყაროს ბმულს. აირჩიეთ** sing-box** ან** რენტგენი** პირდაპირ, შემდეგ დააჭირეთ შენახვას. აკრეფა არასოდეს ჩამოტვირთავს ან არ იწყებს ბირთვს. Save ამოწმებს ოფიციალური გამოშვების არქივს, ამოწმებს მშობლიურ კონფიგურაციას, იწყებს მკაფიო localhost SOCKS მსმენელს და მხოლოდ ამის შემდეგ წერს პროქსი რეესტრის დავალებას. წარუმატებელი გააქტიურება აღადგენს წინა მართულ კონფიგურაციას და პროცესს. `STORAGE_ENCRYPTION_KEY` საჭიროა; წყაროს ბმულები დაშიფრულია.
+
+მართული ფაილები ცხოვრობს `DATA_DIR/services/managed-proxy/` ქვეშ, TPROXY ისგან განცალკევებით. არჩეულ ბირთვზე არის ერთი საკუთრებაში არსებული პროცესი, 100-მდე მსმენელი. ავტომატური დაწყების ან გლობალური მარშრუტიზაციის ნაგულისხმევი ცვლილება არ არის. წარმატებული შენახვა ახსოვს აქტივაცია მხოლოდ ამ მართული ბირთვისთვის; აპლიკაციის გაშვება აღადგენს ჩართულ შენახულ ბირთვებს უკვე დამოწმებული ორობითი, არასოდეს ჩატვირთვის დროს ჩამოტვირთვის გამოყენებით. აშკარა გაჩერება ასუფთავებს ამ აქტივაციის დროშას. დაკარგული ან დაზიანებული ორობითი საჭიროებს წყაროს ხელახლა შენახვას. რეესტრის წაშლა ადგილობრივად შლის წყაროს და მსმენელს; ჩვეულებრივი ბოლო წერტილის რედაქტირება უარყოფილია მართული მწკრივებისთვის, ამიტომ შენახულ წყაროს არ შეუძლია ჩუმად გადაადგილება მისი მარშრუტირებული მსმენელიდან.
+
+| წყაროს ფორმატი | sing-box | რენტგენი |
+| ------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
+| VLESS, VMess, ტროას, Shadowsocks URI | მხარდაჭერილი კონვერტაცია | მხარდაჭერილი კონვერტაცია |
+| Hysteria2/hy2, TUIC, AnyTLS URI | მხარდაჭერილი კონვერტაცია | უარყოფილია; გამოიყენეთ თავსებადი ბირთვი |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | მხარდაჭერილია VLESS/VMess/Trojan სთვის | მხარდაჭერილია VLESS/VMess/Trojan სთვის |
+| XHTTP URI ტრანსპორტი | უარყოფილია | მხარდაჭერილი კონვერტაცია |
+| მშობლიური გამავალი JSON | არჩეული ბირთვის ნებადართული პროქსი protocols/options, შემოწმებულია მშობლიურად | არჩეული ბირთვის ნებადართული პროქსი protocols/options, შემოწმებულია მშობლიურად |
+
+მავთულის უცნობი ოფციები, დაუცველი TLS დროშები, გარე დანამატები, ლოკალური ფაილის ბილიკების ვარიანტები და მხარდაჭერილი კომბინაციები უარყოფილია, ვიდრე ჩუმად. მშობლიური ობიექტები არის გამავალი განმარტებები და არა მთლიანი ძირითადი კონფიგურაციები; control/direct/bypass გამავალი არ მიიღება. WireGuard sing-box 1.14-ზე იყენებს საბოლოო წერტილებს, ამიტომ ის არ არის მიღებული, როგორც მშობლიური გამავალი. ეს არ არის ყველა ფორმატის გადამყვანი; SSR, legacy whole-base64 Shadowsocks ბმულები, თვითნებური Clash ობიექტები და სატრანსპორტო ვარიანტები, რომლებიც არ არიან ცხრილიდან, სჭირდებათ ცალკე მხარდაჭერილი წყაროს ფორმატი.
+
+`/api/services/managed-proxy` არის ავტორიზებული და მხოლოდ loopback-ზე: GET ჩამოთვლის რედაქტირებულ მეტამონაცემებს, POST ინახავს `{core,name,sourceLink,id?,assignment?}`, PATCH იღებს `{core,action:"start"|"stop"}`. მასპინძლის სანდო პეერ-შტამპ მილსადენი უნდა იყოს წარმოდგენილი. ძირითადი დიაგნოსტიკა ჩახშობილია, რადგან ისინი შეიძლება შეიცავდეს რწმუნებათა სიგელებს; სასიცოცხლო ციკლის მოვლენები იყენებს არსებულ სტრუქტურირებულ აპლიკაციის ფაილების ლოგერს წყაროს ბმულების ან ზევით დატვირთვის გარეშე. მხარდაჭერისთვის მიამაგრეთ მხოლოდ გაწმენდილი აპლიკაციების ჟურნალები. ოფიციალური ვერსიები მიმაგრებულია sing-box 1.14.3 და Xray 26.3.27 გამოშვების-აქტივის SHA-256 მანიფესტებით; მომავალი განახლებები მოითხოვს ვერსიის შეცვლას და ყველა დამოწმებულ დაიჯესტს ერთად.
+
### ძირითადი გადაწყვეტილებები (საპროექტო გეგმიდან)
| გადაწყვეტილება | ღირებულება |
diff --git a/docs/i18n/km/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/km/docs/frameworks/EMBEDDED-SERVICES.md
index 561a53f818b6..3d116714dd0b 100644
--- a/docs/i18n/km/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/km/docs/frameworks/EMBEDDED-SERVICES.md
@@ -47,16 +47,34 @@
- OmniRoute ចាក់គន្លឹះ API មួយភ្លែតទៅក្នុងបរិយាកាសរបស់កុមារ ហើយបង្វិលវាដោយមិនចាំបាច់ចាំបាច់ (កន្លែងដែលអាចអនុវត្តបាន)
- ផ្លូវគ្រប់គ្រងទាំងអស់ (`/api/services/*`) គឺ**LOCAL_ONLY** — អាចចូលប្រើបានតែពី loopback (ច្បាប់រឹង #17)
+### គ្រប់គ្រងស្នូលប្រូកស៊ី
+
+វាលម៉ាស៊ីនប្រូកស៊ីផ្ទាល់ខ្លួនក៏ទទួលយកតំណប្រភព V2Ray ផងដែរ។ ជ្រើសរើស** ប្រអប់ចម្រៀង** ឬ** កាំរស្មីអ៊ិច** យ៉ាងច្បាស់លាស់ បន្ទាប់មកចុច រក្សាទុក។ ការវាយអក្សរមិនដែលទាញយក ឬចាប់ផ្តើមស្នូលទេ។ Save ផ្ទៀងផ្ទាត់បណ្ណសារការចេញផ្សាយជាផ្លូវការ ធ្វើឱ្យការកំណត់រចនាសម្ព័ន្ធដើមមានសុពលភាព ចាប់ផ្តើមកម្មវិធី localhost SOCKS ដាច់ដោយឡែក ហើយគ្រាន់តែសរសេរកិច្ចការចុះបញ្ជីប្រូកស៊ីប៉ុណ្ណោះ។ ការធ្វើឱ្យសកម្មបរាជ័យស្ដារការកំណត់រចនាសម្ព័ន្ធ និងដំណើរការដែលបានគ្រប់គ្រងពីមុន។ `STORAGE_ENCRYPTION_KEY` ត្រូវបានទាមទារ; តំណភ្ជាប់ប្រភពត្រូវបានអ៊ិនគ្រីប។
+
+ឯកសារដែលបានគ្រប់គ្រងរស់នៅក្រោម `DATA_DIR/services/managed-proxy/` ដាច់ដោយឡែកពី TPROXY។ មានដំណើរការផ្ទាល់ខ្លួនមួយក្នុងមួយស្នូលដែលបានជ្រើសរើស រហូតដល់ទៅ 100 អ្នកស្តាប់។ គ្មានការចាប់ផ្ដើមដោយស្វ័យប្រវត្តិ ឬលំនាំដើមនៃផ្លូវសកលត្រូវបានផ្លាស់ប្តូរទេ។ ការរក្សាទុកជោគជ័យចងចាំការធ្វើឱ្យសកម្មសម្រាប់ស្នូលដែលបានគ្រប់គ្រងនេះតែប៉ុណ្ណោះ។ ការចាប់ផ្ដើមកម្មវិធីស្ដារឡើងវិញនូវស្នូលដែលបានរក្សាទុកដោយប្រើប្រព័ន្ធគោលពីរដែលបានផ្ទៀងផ្ទាត់រួចហើយ មិនដែលទាញយកពេលចាប់ផ្ដើមឡើយ។ Explicit Stop សម្អាតទង់ធ្វើឱ្យសកម្មនោះ។ ប្រព័ន្ធគោលពីរដែលបាត់ ឬខូចតម្រូវឱ្យរក្សាទុកប្រភពឡើងវិញ។ ការលុបការចុះបញ្ជីយកប្រភព និងអ្នកស្តាប់ចេញពីមូលដ្ឋាន ការកែសម្រួលចំណុចបញ្ចប់ធម្មតាត្រូវបានច្រានចោលសម្រាប់ជួរដែលបានគ្រប់គ្រង ដូច្នេះប្រភពដែលបានរក្សាទុកមិនអាចរសាត់ដោយស្ងៀមស្ងាត់ពីអ្នកស្តាប់ដែលបានបញ្ជូនរបស់វា។
+
+| ទម្រង់ប្រភព | ប្រអប់ចម្រៀង | កាំរស្មីអ៊ិច |
+| ------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | ការបម្លែងដែលគាំទ្រ | ការបម្លែងដែលគាំទ្រ |
+| Hysteria2/hy2, TUIC, AnyTLS URI | ការបម្លែងដែលគាំទ្រ | ច្រានចោល; ប្រើស្នូលដែលត្រូវគ្នា។ |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | គាំទ្រសម្រាប់ VLESS/VMess/Trojan | គាំទ្រសម្រាប់ VLESS/VMess/Trojan |
+| ការដឹកជញ្ជូន XHTTP URI | ច្រានចោល | ការបម្លែងដែលគាំទ្រ |
+| JSON ចេញពីដើមកំណើត | protocols/options ប្រូកស៊ីអនុញ្ញាតរបស់ស្នូលដែលបានជ្រើសរើស ពិនិត្យពីដើម | protocols/options ប្រូកស៊ីអនុញ្ញាតរបស់ស្នូលដែលបានជ្រើសរើស ពិនិត្យពីដើម |
+
+ជម្រើសខ្សែដែលមិនស្គាល់ ទង់ TLS មិនមានសុវត្ថិភាព កម្មវិធីជំនួយខាងក្រៅ ជម្រើសផ្លូវឯកសារមូលដ្ឋាន និងបន្សំដែលមិនគាំទ្រត្រូវបានច្រានចោល ជាជាងការបោះចោលដោយស្ងៀមស្ងាត់។ វត្ថុដើមគឺជានិយមន័យខាងក្រៅ មិនមែនជាការកំណត់រចនាសម្ព័ន្ធស្នូលទាំងមូលទេ។ control/direct/bypass outbounds មិនត្រូវបានទទួលយកទេ។ WireGuard នៅលើ sing-box 1.14 ប្រើចំណុចបញ្ចប់ ដូច្នេះវាមិនត្រូវបានទទួលយកជាប្រភពចេញក្រៅទេ។ នេះមិនមែនជាកម្មវិធីបំប្លែងទ្រង់ទ្រាយទាំងអស់ទេ។ SSR តំណមរតក whole-base64 Shadowsocks វត្ថុប៉ះទង្គិចតាមអំពើចិត្ត និងវ៉ារ្យ៉ង់ដឹកជញ្ជូនដែលអវត្តមានពីតារាងត្រូវការទម្រង់ប្រភពដែលគាំទ្រដាច់ដោយឡែក។
+
+`/api/services/managed-proxy` ត្រូវបានផ្ទៀងផ្ទាត់និងវិលត្រលប់តែប៉ុណ្ណោះ៖ GET រាយបញ្ជីទិន្នន័យមេតាដែលបានធ្វើឡើងវិញ POST រក្សា `{core,name,sourceLink,id?,assignment?}`, PATCH ទទួល `{core,action:"start"|"stop"}`។ បំពង់បង្ហូរត្រាដែលទុកចិត្តរបស់ម្ចាស់ផ្ទះត្រូវតែមានវត្តមាន។ ការវិនិច្ឆ័យស្នូលដើមត្រូវបានរារាំង ព្រោះវាអាចមានព័ត៌មានសម្គាល់អត្តសញ្ញាណ។ ព្រឹត្តិការណ៍វដ្តជីវិតប្រើកម្មវិធីកំណត់រចនាសម្ព័ន្ធឯកសារកម្មវិធីដែលមានស្រាប់ដោយមិនមានតំណភ្ជាប់ប្រភព ឬបន្ទុកឡើងលើ។ ភ្ជាប់តែកំណត់ហេតុកម្មវិធីដែលមានអនាម័យសម្រាប់ការគាំទ្រ។ កំណែផ្លូវការត្រូវបានខ្ទាស់ទៅ sing-box 1.14.3 និង Xray 26.3.27 ជាមួយនឹងការចេញផ្សាយ-ទ្រព្យសកម្ម SHA-256 manifests; ការអាប់ដេតនាពេលអនាគតតម្រូវឱ្យមានការផ្លាស់ប្តូរកំណែ និងការវិភាគដែលបានផ្ទៀងផ្ទាត់ទាំងអស់រួមគ្នា។
+
### ការសម្រេចចិត្តសំខាន់ៗ (ពីផែនការរចនា)
-| ការសម្រេចចិត្ត | តម្លៃ |
-| ------------------------------------------ | ----------------------------------------------------------------------- |
-| ផ្ទាំងគ្រប់គ្រងការចូលទៅកាន់ 9Router UI ដើម | ប្រូកស៊ីបញ្ច្រាសនៅ `/dashboard/providers/services/9router/embed/*` |
-| យន្តការដំឡើង | `npm install {package}` តាមរយៈ `execFile` (គ្មានការបញ្ចូលសែល) |
-| របៀបប្រើប្រាស់ | អ្នកផ្តល់សេវាបានចុះឈ្មោះជា `9router/{sub}/{model}` នៅក្នុងម៉ាស៊ីនបញ្ជូន |
-| ការគ្រប់គ្រងគន្លឹះAPI | OmniRoute បង្កើត អ៊ិនគ្រីប at-rest (AES-256-GCM) និងចាក់តាម env |
-| ទីតាំងផ្ទាំងគ្រប់គ្រង | `/dashboard/providers/services` (បីផ្ទាំង) |
-| ចាប់ផ្តើមដោយស្វ័យប្រវត្តិ | បិទ/បើកក្នុងមួយសេវាកម្ម, OFF លំនាំដើម |
+| ការសម្រេចចិត្ត | តម្លៃ |
+| ------------------------------------------ | --------------------------------------------------------------------------- |
+| ផ្ទាំងគ្រប់គ្រងការចូលទៅកាន់ 9Router UI ដើម | ប្រូកស៊ីបញ្ច្រាសនៅ `/dashboard/providers/services/9router/embed/*` |
+| យន្តការដំឡើង | `npm install {package}` តាមរយៈ `execFile` (គ្មានការបញ្ចូលសែល) |
+| របៀបប្រើប្រាស់ | អ្នកផ្តល់សេវាបានចុះឈ្មោះជា `9router/{sub}/{model}` នៅក្នុងម៉ាស៊ីនកំណត់ផ្លូវ |
+| ការគ្រប់គ្រងគន្លឹះAPI | OmniRoute បង្កើត អ៊ិនគ្រីប at-rest (AES-256-GCM) និងចាក់តាម env |
+| ទីតាំងផ្ទាំងគ្រប់គ្រង | `/dashboard/providers/services` (បីផ្ទាំង) |
+| ចាប់ផ្តើមដោយស្វ័យប្រវត្តិ | បិទ/បើកក្នុងមួយសេវាកម្ម, OFF លំនាំដើម |
---
diff --git a/docs/i18n/kn/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/kn/docs/frameworks/EMBEDDED-SERVICES.md
index 5e74e458c59f..7ecf677272e4 100644
--- a/docs/i18n/kn/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/kn/docs/frameworks/EMBEDDED-SERVICES.md
@@ -32,10 +32,10 @@
| ಸೇವೆ | npm ಪ್ಯಾಕೇಜ್ | ಡೀಫಾಲ್ಟ್ ಪೋರ್ಟ್ | ಉದ್ದೇಶ |
| ------------------ | --------------------------------- | :-------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **9 ರೂಟರ್** | `9router` | 20130 | AI ರೂಟರ್ ಅನ್ನು OmniRoute ಉಪ ಪೂರೈಕೆದಾರರಾಗಿ ಬಳಸಬಹುದು. ಮಾದರಿಗಳನ್ನು `9router/{sub}/{model}` ಎಂದು ಬಹಿರಂಗಪಡಿಸಲಾಗಿದೆ |
-| **CLIProxyAPI** | GitHub ಬಿಡುಗಡೆ ಬೈನರಿ (`cliproxy`) | 8317 | Anthropic CLI auth ಹರಿವುಗಳಿಗಾಗಿ ಸ್ಥಳೀಯ ಪ್ರಾಕ್ಸಿ ಅಡಾಪ್ಟರ್. OAuth ಟೋಕನ್ಗಳು ಮುಕ್ತಾಯಗೊಂಡಾಗ ಫಾಲ್ಬ್ಯಾಕ್ ರೂಟಿಂಗ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ |
+| **CLIProxyAPI** | GitHub ಬಿಡುಗಡೆ ಬೈನರಿ (`cliproxy`) | 8317 | Anthropic CLI auth ಫ್ಲೋಗಳಿಗಾಗಿ ಸ್ಥಳೀಯ ಪ್ರಾಕ್ಸಿ ಅಡಾಪ್ಟರ್. OAuth ಟೋಕನ್ಗಳು ಮುಕ್ತಾಯಗೊಂಡಾಗ ಫಾಲ್ಬ್ಯಾಕ್ ರೂಟಿಂಗ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ |
| **ಮಕ್ಸ್** | `mux` (ತಲೆಯಿಲ್ಲದ `mux server`) | 8322 | ಸ್ಥಳೀಯ ಏಜೆಂಟ್-ಆರ್ಕೆಸ್ಟ್ರೇಶನ್ ಡೀಮನ್ (coder/mux). ಜೀವನಚಕ್ರ-ನಿರ್ವಹಣೆಯು ಕೇವಲ — ರೂಟಿಂಗ್ ಗುರಿಯಲ್ಲ ( LLM ಪ್ರಾಕ್ಸಿಯಿಂಗ್ ಇಲ್ಲ). |
| **ಬಿಫ್ರಾಸ್ಟ್** | `@maximhq/bifrost` | 8080 | AI-ಗೇಟ್ವೇ ರಿಲೇ ಬ್ಯಾಕೆಂಡ್ಗೆ ಹೋಗಿ. ಚಾಲನೆಯಲ್ಲಿರುವಾಗ, ರಿಲೇ ಮಾರ್ಗದಿಂದ ಸ್ವಯಂ-ಆಯ್ಕೆಮಾಡಲಾಗುತ್ತದೆ (`/v1/relay/`) |
-| **ಡಾರಿಯೊ** | `@askalf/dario` | 3456 | ಕ್ಲೌಡ್-ಕೋಡ್-ಆಕಾರದ ಸಂಚಾರಕ್ಕಾಗಿ ಕ್ಲೌಡ್-ಚಂದಾದಾರಿಕೆ ಪ್ರಾಕ್ಸಿ — alternative/failover ಗೆ CLIProxyAPI ; ಚುಚ್ಚುಮದ್ದಿನ ಕೀಲಿಯು `DARIO_ADMIN_TOKEN` ಗೇಟಿಂಗ್ ತನ್ನ `/admin/*` OAuth ಕಂಟ್ರೋಲ್ ಪ್ಲೇನ್ ಆಗುತ್ತದೆ |
+| **ಡಾರಿಯೊ** | `@askalf/dario` | 3456 | ಕ್ಲೌಡ್-ಕೋಡ್-ಆಕಾರದ ಸಂಚಾರಕ್ಕಾಗಿ ಕ್ಲೌಡ್-ಚಂದಾದಾರಿಕೆ ಪ್ರಾಕ್ಸಿ — alternative/failover ಗೆ CLIProxyAPI ; ಚುಚ್ಚುಮದ್ದಿನ ಕೀಲಿಯು `DARIO_ADMIN_TOKEN` ಗೇಟಿಂಗ್ ತನ್ನ `/admin/*` OAuth ನಿಯಂತ್ರಣ ಪ್ಲೇನ್ ಆಗುತ್ತದೆ |
| **ತೆರೆದ-ವಾ** | `@open-wa/wa-automate` | 8323 | WhatsApp ವೆಬ್ ಆಟೊಮೇಷನ್ (ಪಪಿಟೀರ್ ಮೂಲಕ ಹೆಡ್ಲೆಸ್ ಕ್ರೋಮಿಯಂ). ಜೀವನಚಕ್ರ-ನಿರ್ವಹಣೆಯು ಕೇವಲ — ರೂಟಿಂಗ್ ಗುರಿಯಲ್ಲ. |
| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | ಪ್ರಾಂಪ್ಟ್-ಸಂಕುಚನ ಸೈಡ್ಕಾರ್ — ನಿಜವಾದ LLMLingua-2 ONNX ಮಾದರಿ ( Microsoft ನ ಅಲ್ಗಾರಿದಮ್ನ JS/TS ಪೋರ್ಟ್). `open-sse/services/compression/engines/llmlingua/index.ts` ಅದಕ್ಕೆ HTTP ಮೇಲೆ `/compress` ರವಾನಿಸುತ್ತದೆ, ಸೈಡ್ಕಾರ್ ಡೌನ್ ಆಗಿರುವಾಗ ಇನ್-ಪ್ರೊಸೆಸ್ ವರ್ಕರ್-ಥ್ರೆಡ್ ಬ್ಯಾಕೆಂಡ್ಗೆ ಹಿಂತಿರುಗುತ್ತದೆ. ಜೀವನಚಕ್ರ-ನಿರ್ವಹಣೆಯ ಮಾತ್ರ — ರೂಟಿಂಗ್ ಗುರಿಯಲ್ಲ. |
| **ಹಾಡುವ ಪೆಟ್ಟಿಗೆ** | GitHub ಬಿಡುಗಡೆ ಬೈನರಿ (`singbox`) | 20140 | TPROXY ಸೈಡ್ಕಾರ್ ಬ್ಯಾಕಿಂಗ್ `applyTproxy()` ನ ಪಾರದರ್ಶಕ-ಪ್ರಾಕ್ಸಿ ಪ್ರತಿಬಂಧ (`src/mitm/tproxy/setup.ts`). ಅನುಸ್ಥಾಪಕವು ಪಿನ್ ಮಾಡಿದ, ಚೆಕ್ಸಮ್-ಪರಿಶೀಲಿಸಿದ ಬಿಡುಗಡೆಯನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡುತ್ತದೆ. ಜೀವನಚಕ್ರ-ನಿರ್ವಹಣೆ ಮಾತ್ರ — ರೂಟಿಂಗ್ ಗುರಿಯಲ್ಲ ( LLM ಪ್ರಾಕ್ಸಿಯಿಂಗ್ ಇಲ್ಲ) |
@@ -45,7 +45,25 @@
- OmniRoute ಅವುಗಳನ್ನು `DATA_DIR/services/{name}/` ಅಡಿಯಲ್ಲಿ ಸ್ಥಾಪಿಸುತ್ತದೆ ( OmniRoute ನ ಸ್ವಂತ `package.json` ನಿಂದ ಪ್ರತ್ಯೇಕಿಸಲಾಗಿದೆ)
- OmniRoute ಮೊಟ್ಟೆಯಿಡುತ್ತದೆ ಮತ್ತು ಮಕ್ಕಳ ಪ್ರಕ್ರಿಯೆಗಳಂತೆ ಅವುಗಳನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುತ್ತದೆ
- OmniRoute ಮಗುವಿನ ಪರಿಸರಕ್ಕೆ ಅಲ್ಪಕಾಲಿಕ API ಕೀಲಿಯನ್ನು ಚುಚ್ಚುತ್ತದೆ ಮತ್ತು ಅಲಭ್ಯತೆಯಿಲ್ಲದೆ ಅದನ್ನು ತಿರುಗಿಸುತ್ತದೆ (ಅನ್ವಯವಾಗುವಲ್ಲಿ)
-- ಎಲ್ಲಾ ನಿರ್ವಹಣಾ ಮಾರ್ಗಗಳು (`/api/services/*`) ಇವೆ**LOCAL_ONLY** — ಲೂಪ್ಬ್ಯಾಕ್ನಿಂದ ಮಾತ್ರ ಪ್ರವೇಶಿಸಬಹುದು (ಹಾರ್ಡ್ ನಿಯಮ #17)
+- ಎಲ್ಲಾ ನಿರ್ವಹಣಾ ಮಾರ್ಗಗಳು (`/api/services/*`) ಇವೆ**LOCAL_ONLY** ಲೂಪ್ಬ್ಯಾಕ್ನಿಂದ ಮಾತ್ರ — ಪ್ರವೇಶಿಸಬಹುದು (ಹಾರ್ಡ್ ರೂಲ್ #17)
+
+### ನಿರ್ವಹಿಸಿದ ಪ್ರಾಕ್ಸಿ ಕೋರ್ಗಳು
+
+ಕಸ್ಟಮ್ ಪ್ರಾಕ್ಸಿ ಹೋಸ್ಟ್ ಕ್ಷೇತ್ರವು V2Ray ಮೂಲ ಲಿಂಕ್ ಅನ್ನು ಸಹ ಸ್ವೀಕರಿಸುತ್ತದೆ. ಆಯ್ಕೆ ಮಾಡಿ** ಹಾಡುವ ಪೆಟ್ಟಿಗೆ** ಅಥವಾ** ಎಕ್ಸ್ ರೇ** ಸ್ಪಷ್ಟವಾಗಿ, ನಂತರ ಉಳಿಸು ಕ್ಲಿಕ್ ಮಾಡಿ. ಟೈಪಿಂಗ್ ಎಂದಿಗೂ ಡೌನ್ಲೋಡ್ ಮಾಡುವುದಿಲ್ಲ ಅಥವಾ ಕೋರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸುವುದಿಲ್ಲ. ಉಳಿಸು ಅಧಿಕೃತ ಬಿಡುಗಡೆ ಆರ್ಕೈವ್ ಅನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ, ಸ್ಥಳೀಯ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಮೌಲ್ಯೀಕರಿಸುತ್ತದೆ, ಒಂದು ವಿಶಿಷ್ಟವಾದ ಸ್ಥಳೀಯ ಹೋಸ್ಟ್ SOCKS ಕೇಳುಗನನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ ಮತ್ತು ನಂತರ ಮಾತ್ರ ಪ್ರಾಕ್ಸಿ ರಿಜಿಸ್ಟ್ರಿ ಅಸೈನ್ಮೆಂಟ್ ಅನ್ನು ಬರೆಯುತ್ತದೆ. ವಿಫಲವಾದ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆಯು ಹಿಂದಿನ ನಿರ್ವಹಿಸಲಾದ ಕಾನ್ಫಿಗರೇಶನ್ ಮತ್ತು ಪ್ರಕ್ರಿಯೆಯನ್ನು ಮರುಸ್ಥಾಪಿಸುತ್ತದೆ. `STORAGE_ENCRYPTION_KEY` ಅಗತ್ಯವಿದೆ; ಮೂಲ ಲಿಂಕ್ಗಳನ್ನು ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗಿದೆ.
+
+ನಿರ್ವಹಿಸಿದ ಫೈಲ್ಗಳು `DATA_DIR/services/managed-proxy/` ಅಡಿಯಲ್ಲಿ ಲೈವ್ ಆಗುತ್ತವೆ, TPROXY ನಿಂದ ಪ್ರತ್ಯೇಕವಾಗಿರುತ್ತವೆ. ಆಯ್ದ ಕೋರ್ಗೆ ಒಂದು ಸ್ವಾಮ್ಯದ ಪ್ರಕ್ರಿಯೆ ಇದೆ, 100 ಕೇಳುಗರು. ಯಾವುದೇ ಸ್ವಯಂಪ್ರಾರಂಭ ಅಥವಾ ಜಾಗತಿಕ ರೂಟಿಂಗ್ ಡೀಫಾಲ್ಟ್ ಬದಲಾಗಿಲ್ಲ. ಯಶಸ್ವಿ ಉಳಿತಾಯವು ಈ ನಿರ್ವಹಿಸಲಾದ ಕೋರ್ಗೆ ಮಾತ್ರ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆಯನ್ನು ನೆನಪಿಸುತ್ತದೆ; ಅಪ್ಲಿಕೇಶನ್ ಪ್ರಾರಂಭವು ಈಗಾಗಲೇ ಪರಿಶೀಲಿಸಿದ ಬೈನರಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಸಕ್ರಿಯಗೊಳಿಸಲಾದ ಉಳಿಸಿದ ಕೋರ್ಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸುತ್ತದೆ, ಎಂದಿಗೂ ಬೂಟ್-ಟೈಮ್ ಡೌನ್ಲೋಡ್ ಆಗಿರುವುದಿಲ್ಲ. ಸ್ಪಷ್ಟವಾದ ನಿಲುಗಡೆಯು ಸಕ್ರಿಯಗೊಳಿಸುವ ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ತೆರವುಗೊಳಿಸುತ್ತದೆ. ಕಾಣೆಯಾದ ಅಥವಾ ಹಾನಿಗೊಳಗಾದ ಬೈನರಿಗೆ ಮೂಲವನ್ನು ಮರು ಉಳಿಸುವ ಅಗತ್ಯವಿದೆ. ರಿಜಿಸ್ಟ್ರಿ ಅಳಿಸುವಿಕೆಯು ಸ್ಥಳೀಯವಾಗಿ ಮೂಲ ಮತ್ತು ಕೇಳುಗರನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ; ನಿರ್ವಹಿಸಲಾದ ಸಾಲುಗಳಿಗಾಗಿ ಸಾಮಾನ್ಯ ಎಂಡ್ಪಾಯಿಂಟ್ ಸಂಪಾದನೆಗಳನ್ನು ತಿರಸ್ಕರಿಸಲಾಗುತ್ತದೆ ಆದ್ದರಿಂದ ಉಳಿಸಿದ ಮೂಲವು ಅದರ ರೂಟ್ ಮಾಡಲಾದ ಕೇಳುಗರಿಂದ ಮೌನವಾಗಿ ಚಲಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.
+
+| ಮೂಲ ಸ್ವರೂಪ | ಹಾಡುವ ಪೆಟ್ಟಿಗೆ | ಎಕ್ಸ್ ರೇ |
+| -------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
+| VLESS, VMess, ಟ್ರೋಜನ್, Shadowsocks URI | ಬೆಂಬಲಿತ ಪರಿವರ್ತನೆ | ಬೆಂಬಲಿತ ಪರಿವರ್ತನೆ |
+| Hysteria2/hy2, TUIC, AnyTLS URI | ಬೆಂಬಲಿತ ಪರಿವರ್ತನೆ | ತಿರಸ್ಕರಿಸಲಾಗಿದೆ; ಹೊಂದಾಣಿಕೆಯ ಕೋರ್ ಅನ್ನು ಬಳಸಿ |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | VLESS/VMess/Trojan ಗೆ ಬೆಂಬಲಿತವಾಗಿದೆ | VLESS/VMess/Trojan ಗೆ ಬೆಂಬಲಿತವಾಗಿದೆ |
+| XHTTP URI ಸಾರಿಗೆ | ತಿರಸ್ಕರಿಸಲಾಗಿದೆ | ಬೆಂಬಲಿತ ಪರಿವರ್ತನೆ |
+| ಸ್ಥಳೀಯ ಹೊರಹೋಗುವ JSON | ಆಯ್ಕೆಮಾಡಿದ ಕೋರ್ನ ಅನುಮತಿಸಲಾದ ಪ್ರಾಕ್ಸಿ protocols/options, ಸ್ಥಳೀಯವಾಗಿ ಪರಿಶೀಲಿಸಲಾಗಿದೆ | ಆಯ್ಕೆಮಾಡಿದ ಕೋರ್ನ ಅನುಮತಿಸಲಾದ ಪ್ರಾಕ್ಸಿ protocols/options, ಸ್ಥಳೀಯವಾಗಿ ಪರಿಶೀಲಿಸಲಾಗಿದೆ |
+
+ಅಜ್ಞಾತ ವೈರ್ ಆಯ್ಕೆಗಳು, ಅಸುರಕ್ಷಿತ TLS ಫ್ಲ್ಯಾಗ್ಗಳು, ಬಾಹ್ಯ ಪ್ಲಗಿನ್ಗಳು, ಸ್ಥಳೀಯ ಫೈಲ್-ಪಾತ್ ಆಯ್ಕೆಗಳು ಮತ್ತು ಬೆಂಬಲವಿಲ್ಲದ ಸಂಯೋಜನೆಗಳನ್ನು ಮೌನವಾಗಿ ತಿರಸ್ಕರಿಸುವ ಬದಲು ತಿರಸ್ಕರಿಸಲಾಗುತ್ತದೆ. ಸ್ಥಳೀಯ ವಸ್ತುಗಳು ಹೊರಹೋಗುವ ವ್ಯಾಖ್ಯಾನಗಳಾಗಿವೆ, ಸಂಪೂರ್ಣ-ಕೋರ್ ಕಾನ್ಫಿಗರೇಶನ್ಗಳಲ್ಲ; control/direct/bypass ಹೊರಹೋಗುವಿಕೆಗಳನ್ನು ಸ್ವೀಕರಿಸಲಾಗುವುದಿಲ್ಲ. WireGuard on sing-box 1.14 ಅಂತಿಮ ಬಿಂದುಗಳನ್ನು ಬಳಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಇದನ್ನು ಸ್ಥಳೀಯ ಹೊರಹೋಗುವಿಕೆ ಎಂದು ಸ್ವೀಕರಿಸಲಾಗುವುದಿಲ್ಲ. ಇದು ಎಲ್ಲಾ ಸ್ವರೂಪದ ಪರಿವರ್ತಕವಲ್ಲ; SSR, ಲೆಗಸಿ whole-base64 Shadowsocks ಲಿಂಕ್ಗಳು, ಅನಿಯಂತ್ರಿತ ಕ್ಲಾಷ್ ಆಬ್ಜೆಕ್ಟ್ಗಳು ಮತ್ತು ಟೇಬಲ್ನಲ್ಲಿ ಇಲ್ಲದ ಸಾರಿಗೆ ರೂಪಾಂತರಗಳಿಗೆ ಪ್ರತ್ಯೇಕವಾಗಿ ಬೆಂಬಲಿತ ಮೂಲ ಸ್ವರೂಪದ ಅಗತ್ಯವಿದೆ.
+
+`/api/services/managed-proxy` ದೃಢೀಕರಿಸಲ್ಪಟ್ಟಿದೆ ಮತ್ತು ಲೂಪ್ಬ್ಯಾಕ್-ಮಾತ್ರ: GET ಮರುಸಂಪಾದಿಸಿದ ಮೆಟಾಡೇಟಾವನ್ನು ಪಟ್ಟಿ ಮಾಡುತ್ತದೆ, POST `{core,name,sourceLink,id?,assignment?}` ಉಳಿಸುತ್ತದೆ, PATCH `{core,action:"start"|"stop"}` ಸ್ವೀಕರಿಸುತ್ತದೆ. ಹೋಸ್ಟ್ನ ವಿಶ್ವಾಸಾರ್ಹ ಪೀರ್-ಸ್ಟ್ಯಾಂಪ್ ಪೈಪ್ಲೈನ್ ಇರಬೇಕು. ಸ್ಥಳೀಯ ಕೋರ್ ಡಯಾಗ್ನೋಸ್ಟಿಕ್ಸ್ ಅನ್ನು ನಿಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಏಕೆಂದರೆ ಅವುಗಳು ರುಜುವಾತುಗಳನ್ನು ಹೊಂದಿರಬಹುದು; ಜೀವನಚಕ್ರ ಘಟನೆಗಳು ಮೂಲ ಲಿಂಕ್ಗಳು ಅಥವಾ ಅಪ್ಸ್ಟ್ರೀಮ್ ಪೇಲೋಡ್ಗಳಿಲ್ಲದೆ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ರಚನಾತ್ಮಕ ಅಪ್ಲಿಕೇಶನ್ ಫೈಲ್ ಲಾಗರ್ ಅನ್ನು ಬಳಸುತ್ತವೆ. ಬೆಂಬಲಕ್ಕಾಗಿ ಸ್ಯಾನಿಟೈಸ್ ಮಾಡಿದ ಅಪ್ಲಿಕೇಶನ್ ಲಾಗ್ಗಳನ್ನು ಮಾತ್ರ ಲಗತ್ತಿಸಿ. ಅಧಿಕೃತ ಆವೃತ್ತಿಗಳನ್ನು ಬಿಡುಗಡೆ-ಆಸ್ತಿ SHA-256 ಮ್ಯಾನಿಫೆಸ್ಟ್ಗಳೊಂದಿಗೆ ಸಿಂಗ್-ಬಾಕ್ಸ್ 1.14.3 ಮತ್ತು Xray 26.3.27 ಗೆ ಪಿನ್ ಮಾಡಲಾಗಿದೆ; ಭವಿಷ್ಯದ ನವೀಕರಣಗಳಿಗೆ ಆವೃತ್ತಿ ಮತ್ತು ಎಲ್ಲಾ ಪರಿಶೀಲಿಸಿದ ಡೈಜೆಸ್ಟ್ಗಳನ್ನು ಒಟ್ಟಿಗೆ ಬದಲಾಯಿಸುವ ಅಗತ್ಯವಿದೆ.
### ಪ್ರಮುಖ ನಿರ್ಧಾರಗಳು (ವಿನ್ಯಾಸ ಯೋಜನೆಯಿಂದ)
diff --git a/docs/i18n/ko/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/ko/docs/frameworks/EMBEDDED-SERVICES.md
index f034ab0d8cb4..3e9afcf3b4c8 100644
--- a/docs/i18n/ko/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/ko/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,7 +45,25 @@
- OmniRoute 이를 `DATA_DIR/services/{name}/` 아래에 설치합니다( OmniRoute 의 자체 `package.json` 와 격리됨).
- OmniRoute 이를 하위 프로세스로 생성하고 모니터링합니다.
- OmniRoute 임시 API 키를 하위 환경에 주입하고 가동 중지 시간 없이 순환합니다(해당되는 경우).
-- 모든 관리 경로(`/api/services/*`)는 다음과 같습니다.**LOCAL_ONLY** 루프백에서만 — 에 액세스할 수 있습니다(엄격한 규칙 #17)
+- 모든 관리 경로(`/api/services/*`)는 다음과 같습니다.**LOCAL_ONLY** 루프백에서만 — 액세스할 수 있습니다(엄격한 규칙 #17)
+
+### 관리형 프록시 코어
+
+사용자 정의 프록시 호스트 필드는 V2Ray 소스 링크도 허용합니다. 선택하다** 노래 상자** 또는** 엑스레이** 명시적으로 선택한 다음 저장을 클릭합니다. 입력해도 코어가 다운로드되거나 시작되지 않습니다. 저장은 공식 릴리스 아카이브를 확인하고, 기본 구성을 검증하고, 고유한 localhost SOCKS 수신기를 시작한 다음 프록시 레지스트리 할당을 작성합니다. 활성화에 실패하면 이전 관리 구성 및 프로세스가 복원됩니다. `STORAGE_ENCRYPTION_KEY` 필요합니다. 소스 링크는 암호화되어 있습니다.
+
+관리되는 파일은 `DATA_DIR/services/managed-proxy/` 와 별도로 TPROXY 아래에 있습니다. 선택한 코어당 하나의 소유 프로세스가 있으며 최대 100개의 리스너가 있습니다. 자동 시작 또는 전역 라우팅 기본값은 변경되지 않습니다. 성공적인 저장은 이 관리 코어에 대한 활성화만 기억합니다. 응용 프로그램 시작은 이미 확인된 바이너리를 사용하여 활성화된 저장된 코어를 복원하며 부팅 시 다운로드하지 않습니다. 명시적 중지는 해당 활성화 플래그를 지웁니다. 누락되거나 손상된 바이너리는 소스를 다시 저장해야 합니다. 레지스트리 삭제는 소스와 수신기를 로컬에서 제거합니다. 관리되는 행에 대한 일반 엔드포인트 편집은 거부되므로 저장된 소스는 라우팅된 리스너에서 자동으로 표류할 수 없습니다.
+
+| 소스 형식 | 노래 상자 | 엑스레이 |
+| ------------------------------------------ | ---------------------------------------------------------------- | ---------------------------------------------------------------- |
+| VLESS, VMess, 트로이 목마, Shadowsocks URI | 지원되는 변환 | 지원되는 변환 |
+| Hysteria2/hy2, TUIC, AnyTLS URI | 지원되는 변환 | 거부됨; 호환 가능한 코어를 사용하세요 |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | VLESS/VMess/Trojan 에 지원됨 | VLESS/VMess/Trojan 에 지원됨 |
+| XHTTP URI 전송 | 거부됨 | 지원되는 변환 |
+| 네이티브 아웃바운드 JSON | 선택된 코어의 허용된 프록시 protocols/options, 기본적으로 확인됨 | 선택된 코어의 허용된 프록시 protocols/options, 기본적으로 확인됨 |
+
+알 수 없는 연결 옵션, 안전하지 않은 TLS 플래그, 외부 플러그인, 로컬 파일 경로 옵션 및 지원되지 않는 조합은 자동으로 삭제되는 대신 거부됩니다. 기본 개체는 전체 코어 구성이 아닌 아웃바운드 정의입니다. control/direct/bypass 아웃바운드는 허용되지 않습니다. sing-box 1.14의 WireGuard 엔드포인트를 사용하므로 기본 아웃바운드로 허용되지 않습니다. 이것은 모든 형식의 변환기가 아닙니다. SSR, 레거시 whole-base64 Shadowsocks 링크, 임의 Clash 객체 및 테이블에 없는 전송 변형에는 별도로 지원되는 소스 형식이 필요합니다.
+
+`/api/services/managed-proxy` 인증되었으며 루프백 전용입니다. GET 수정된 메타데이터를 나열하고, POST `{core,name,sourceLink,id?,assignment?}` 저장하고, PATCH `{core,action:"start"|"stop"}` 허용합니다. 호스트의 신뢰할 수 있는 피어 스탬프 파이프라인이 있어야 합니다. 기본 핵심 진단은 자격 증명을 포함할 수 있으므로 표시되지 않습니다. 수명 주기 이벤트는 소스 링크나 업스트림 페이로드 없이 기존 구조화된 애플리케이션 파일 로거를 사용합니다. 지원을 위해 삭제된 애플리케이션 로그만 첨부하세요. 공식 버전은 릴리스 자산 SHA-256 매니페스트를 사용하여 sing-box 1.14.3 및 Xray 26.3.27에 고정되어 있습니다. 향후 업데이트를 수행하려면 버전과 확인된 모든 다이제스트를 함께 변경해야 합니다.
### 주요 결정(설계 계획에서)
diff --git a/docs/i18n/lt/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/lt/docs/frameworks/EMBEDDED-SERVICES.md
index 9721a7d46d15..35528bf49de8 100644
--- a/docs/i18n/lt/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/lt/docs/frameworks/EMBEDDED-SERVICES.md
@@ -34,7 +34,7 @@
| **9 Maršrutizatorius** | `9router` | 20130 | AI maršrutizatorius, kurį OmniRoute gali naudoti kaip antrinį tiekėją. Modeliai rodomi kaip `9router/{sub}/{model}` |
| **CLIProxyAPI** | GitHub išleidimo dvejetainis (`cliproxy`) | 8317 | Vietinis tarpinio serverio adapteris, skirtas Anthropic CLI autentifikavimo srautams. Suteikia atsarginį maršrutą, kai baigiasi OAuth prieigos raktų galiojimo laikas |
| **Mux** | `mux` (be galvos `mux server`) | 8322 | Vietinis agentas-orkestravimo demonas (coder/mux). Tik — valdomas pagal gyvavimo ciklą, o ne maršruto parinkimo tikslas (jokio LLM tarpinio serverio). |
-| **Bifrost** | `@maximhq/bifrost` | 8080 | Eikite į AI-gateway relės užpakalinę programą. Bėgant, automatiškai parenkamas pagal estafetės maršrutą (`/v1/relay/`) |
+| **Bifrost** | `@maximhq/bifrost` | 8080 | Eiti į AI-gateway relay backend. Bėgant, automatiškai parenkamas pagal estafetės maršrutą (`/v1/relay/`) |
| **Dario** | `@askalf/dario` | 3456 | Claude prenumeratos tarpinis serveris — alternative/failover to CLIProxyAPI Claude kodo formos srautui; įšvirkštas raktas tampa `DARIO_ADMIN_TOKEN` fiksuojančiu jo `/admin/*` OAuth valdymo plokštumą |
| **atviras-wa** | `@open-wa/wa-automate` | 8323 | WhatsApp Web automatizavimas (be galvos Chromium per Puppeteer). Tik — valdomas pagal gyvavimo ciklą, o ne maršruto parinkimo tikslas. |
| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Greito suspaudimo šoninės priekabos — tikras LLMLingua-2 ONNX modelis ( Microsoft algoritmo JS/TS prievadas). `open-sse/services/compression/engines/llmlingua/index.ts` siunčia `/compress` per HTTP į jį ir grįžta į apdorojamą darbuotojo gijos galinę dalį, kai šoninė priekaba nuleidžiama. Tik — valdomas gyvavimo ciklu, o ne maršruto parinkimo tikslas. |
@@ -45,7 +45,25 @@ Visos aštuonios laikosi to paties priežiūros modelio:
- OmniRoute juos įdiegia pagal `DATA_DIR/services/{name}/` (atskirtas nuo paties OmniRoute `package.json`)
- OmniRoute neršia ir stebi juos kaip vaiko procesus
- OmniRoute įveda trumpalaikį API raktą į vaiko aplinką ir sukasi jį be prastovos (jei taikoma)
-- Visi valdymo maršrutai (`/api/services/*`) yra**LOCAL_ONLY** — pasiekiamas tik iš kilpos (17 griežta taisyklė)
+- Visi valdymo maršrutai (`/api/services/*`) yra**LOCAL_ONLY** — pasiekiamas tik iš kilpos (kietoji taisyklė #17)
+
+### Tvarkomi tarpinio serverio branduoliai
+
+Tinkinto tarpinio serverio prieglobos laukas taip pat priima V2Ray šaltinio nuorodą. Pasirinkite** dainų dėžutė** arba** Rentgeno spinduliai** aiškiai, tada spustelėkite Išsaugoti. Įvedus tekstą, jis niekada neatsisiunčiamas ir nepaleidžiamas pagrindinis. Įrašymas patvirtina oficialų leidimų archyvą, patvirtina savąją konfigūraciją, paleidžia atskirą localhost SOCKS klausytoją ir tik tada įrašo tarpinio serverio registro priskyrimą. Nepavykus suaktyvinti atkuriama ankstesnė valdoma konfigūracija ir procesas. `STORAGE_ENCRYPTION_KEY` reikia; šaltinio nuorodos yra užšifruotos.
+
+Tvarkomi failai yra `DATA_DIR/services/managed-proxy/`, atskirai nuo TPROXY. Viename pasirinktame branduolyje yra vienas procesas, iki 100 klausytojų. Automatinis paleidimas arba numatytasis visuotinis maršruto parinkimas nepakeičiamas. Sėkmingas išsaugojimas įsimena tik šio valdomo branduolio aktyvavimą; Programos paleidimas atkuria įgalintus išsaugotus branduolius naudojant jau patikrintą dvejetainį failą, o ne įkrovos metu. Aiškus sustabdymas išvalo tą aktyvinimo vėliavėlę. Trūkstamo arba sugadinto dvejetainio kodo reikia iš naujo išsaugoti šaltinį. Registro ištrynimas pašalina šaltinį ir klausytoją vietoje; Įprasti galinio taško pakeitimai valdomose eilutėse atmetami, todėl išsaugotas šaltinis negali tyliai nutolti nuo nukreipto klausytojo.
+
+| Šaltinio formatas | dainų dėžutė | Rentgeno spinduliai |
+| -------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
+| VLESS, VMess, Trojos arklys, Shadowsocks URI | Palaikoma konversija | Palaikoma konversija |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Palaikoma konversija | Atmesta; naudokite suderinamą šerdį |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Palaikoma VLESS/VMess/Trojan | Palaikoma VLESS/VMess/Trojan |
+| XHTTP URI transportas | Atmesta | Palaikoma konversija |
+| Vietinis išeinantis JSON | Pasirinkto branduolio leistinas tarpinis serveris protocols/options, patikrintas savaime | Pasirinkto branduolio leistinas tarpinis serveris protocols/options, patikrintas savaime |
+
+Nežinomos laidų parinktys, nesaugios TLS vėliavėlės, išoriniai papildiniai, vietinio failo kelio parinktys ir nepalaikomi deriniai atmetami, o ne tyliai atmetami. Vietiniai objektai yra išoriniai apibrėžimai, o ne visos pagrindinės konfigūracijos; control/direct/bypass išvykimai nepriimami. WireGuard sing-box 1.14 naudoja galutinius taškus, todėl jis nepriimamas kaip vietinis išeinantis. Tai nėra visų formatų keitiklis; SSR, senosios whole-base64 Shadowsocks nuorodos, savavališki Clash objektai ir transportavimo variantai, kurių lentelėje nėra, reikia atskirai palaikomo šaltinio formato.
+
+`/api/services/managed-proxy` autentifikuotas ir tik grįžtamasis ryšys: GET pateikia redaguotus metaduomenis, POST išsaugo `{core,name,sourceLink,id?,assignment?}`, PATCH priima `{core,action:"start"|"stop"}`. Turi būti prieglobos patikimas lygiavertis antspaudas. Vietinė pagrindinė diagnostika yra nuslopinta, nes joje gali būti kredencialų; gyvavimo ciklo įvykiai naudoja esamą struktūrizuotą taikomųjų programų failų registratorių be šaltinio nuorodų ar naudingųjų apkrovų. Norėdami gauti pagalbos, pridėkite tik išvalytų programų žurnalus. Oficialios versijos yra prisegtos prie 1.14.3 ir Xray 26.3.27 su išleidimo išteklių SHA-256 manifestais; būsimiems naujinimams reikia keisti versiją ir visus patvirtintus santraukas.
### Pagrindiniai sprendimai (iš projektavimo plano)
diff --git a/docs/i18n/lv/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/lv/docs/frameworks/EMBEDDED-SERVICES.md
index 07bdf4dc4e42..ef0183f30deb 100644
--- a/docs/i18n/lv/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/lv/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,13 +45,31 @@ Visas astoņas ievēro vienu un to pašu uzraudzības modeli:
- OmniRoute instalē tos zem `DATA_DIR/services/{name}/` (izolēts no paša OmniRoute `package.json`)
- OmniRoute nārsto un uzrauga tos kā bērna procesus
- OmniRoute ievada īslaicīgu API atslēgu bērna vidē un pagriež to bez dīkstāves (ja piemērojams)
-- Visi pārvaldības maršruti (`/api/services/*`) ir**LOCAL_ONLY** — pieejams tikai no cilpas (cietais noteikums Nr. 17)
+- Visi pārvaldības maršruti (`/api/services/*`) ir**LOCAL_ONLY** — pieejams tikai no cilpas (cietais noteikums #17)
+
+### Pārvaldīti starpniekservera kodoli
+
+Pielāgota starpniekservera resursdatora lauks pieņem arī V2Ray avota saiti. Izvēlieties** dziedāt kaste** vai** Rentgens** skaidri norādīts, pēc tam noklikšķiniet uz Saglabāt. Rakstīšana nekad nelejupielādē un nesāk kodolu. Saglabāt pārbauda oficiālo laidienu arhīvu, apstiprina sākotnējo konfigurāciju, sāk atsevišķu localhost SOCKS klausītāju un tikai pēc tam raksta starpniekservera reģistra piešķiršanu. Neveiksmīga aktivizēšana atjauno iepriekšējo pārvaldīto konfigurāciju un procesu. `STORAGE_ENCRYPTION_KEY` ir nepieciešams; avota saites ir šifrētas.
+
+Pārvaldītie faili atrodas `DATA_DIR/services/managed-proxy/`, atsevišķi no TPROXY. Katram atlasītajam kodolam ir viens īpašums, līdz 100 klausītājiem. Autostartēšana vai globālā maršrutēšanas noklusējuma iestatījumi netiek mainīti. Veiksmīga saglabāšana atceras aktivizēšanu tikai šim pārvaldītajam kodolam; Lietojumprogrammas startēšana atjauno iespējotos saglabātos kodolus, izmantojot jau pārbaudīto bināro failu, nekad neveicot lejupielādi sāknēšanas laikā. Skaidra apturēšana notīra šo aktivizācijas karogu. Trūkstošam vai bojātam bināram ir nepieciešams atkārtoti saglabāt avotu. Reģistra dzēšana noņem avotu un klausītāju lokāli; parastie galapunkta labojumi pārvaldītajām rindām tiek noraidīti, tāpēc saglabātais avots nevar klusi novirzīties no maršrutētā klausītāja.
+
+| Avota formāts | dziedāt kaste | Rentgens |
+| ------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
+| VLESS, VMess, Trojas zirgs, Shadowsocks URI | Atbalstīta konversija | Atbalstīta konversija |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Atbalstīta konversija | Noraidīts; izmantojiet saderīgu kodolu |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Atbalstīts VLESS/VMess/Trojan | Atbalstīts VLESS/VMess/Trojan |
+| XHTTP URI transports | Noraidīts | Atbalstīta konversija |
+| Vietējā izejošā JSON | Atlasītā kodola atļautais starpniekserveris protocols/options, pārbaudīts sākotnēji | Atlasītā kodola atļautais starpniekserveris protocols/options, pārbaudīts sākotnēji |
+
+Nezināmas vadu opcijas, nedroši TLS karodziņi, ārējie spraudņi, lokālo failu ceļu opcijas un neatbalstītas kombinācijas tiek noraidītas, nevis klusi izmestas. Vietējie objekti ir izejošās definīcijas, nevis visa kodola konfigurācijas; control/direct/bypass izejošās ziņas netiek pieņemtas. WireGuard uz sing-box 1.14 izmanto beigu punktus, tāpēc tas netiek pieņemts kā vietējais izejošs. Šis nav visu formātu pārveidotājs; SSR, mantotajām whole-base64 Shadowsocks saitēm, patvaļīgiem Clash objektiem un transporta variantiem, kas nav tabulā, ir nepieciešams atsevišķi atbalstīts avota formāts.
+
+`/api/services/managed-proxy` ir autentificēts un ir tikai atpakaļcilpas: GET uzskaita rediģētos metadatus, POST saglabā `{core,name,sourceLink,id?,assignment?}`, PATCH pieņem `{core,action:"start"|"stop"}`. Jābūt resursdatora uzticamam vienādranga zīmoga konveijeram. Vietējā pamata diagnostika tiek apspiesta, jo tajā var būt akreditācijas dati; dzīves cikla notikumi izmanto esošo strukturēto lietojumprogrammu failu reģistrētāju bez avota saitēm vai augšupējās slodzes. Lai saņemtu atbalstu, pievienojiet tikai sanitizētus lietojumprogrammu žurnālus. Oficiālās versijas ir piespraustas sing-box 1.14.3 un Xray 26.3.27 ar release-asset SHA-256 manifestiem; turpmākajiem atjauninājumiem ir jāmaina versija un visi pārbaudītie īssavilkumi kopā.
### Galvenie lēmumi (no dizaina plāna)
| Lēmums | Vērtība |
| ------------------------------------------------ | ----------------------------------------------------------------------------------- |
-| Informācijas paneļa piekļuve 9Router vietējai UI | Reversais starpniekserveris pie `/dashboard/providers/services/9router/embed/*` |
+| Informācijas paneļa piekļuve 9Router vietējam UI | Reversais starpniekserveris pie `/dashboard/providers/services/9router/embed/*` |
| Uzstādīšanas mehānisms | `npm install {package}` izmantojot `execFile` (bez čaulas interpolācijas) |
| Patēriņa režīms | Pakalpojumu sniedzējs maršrutēšanas programmā reģistrēts kā `9router/{sub}/{model}` |
| API atslēgu pārvaldība | OmniRoute ģenerē, šifrē miera stāvoklī (AES-256-GCM) un ievada, izmantojot env |
diff --git a/docs/i18n/ml/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/ml/docs/frameworks/EMBEDDED-SERVICES.md
index bb4144db3b1e..d70ee281e0d9 100644
--- a/docs/i18n/ml/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/ml/docs/frameworks/EMBEDDED-SERVICES.md
@@ -47,6 +47,24 @@
- OmniRoute കുട്ടിയുടെ പരിതസ്ഥിതിയിലേക്ക് ഒരു എഫിമെറൽ API കീ കുത്തിവയ്ക്കുകയും പ്രവർത്തനരഹിതമാക്കാതെ അത് തിരിക്കുകയും ചെയ്യുന്നു (ബാധകമെങ്കിൽ)
- എല്ലാ മാനേജ്മെൻ്റ് റൂട്ടുകളും (`/api/services/*`) ആണ്**LOCAL_ONLY** ലൂപ്പ്ബാക്കിൽ നിന്ന് മാത്രമേ — ആക്സസ് ചെയ്യാനാകൂ (ഹാർഡ് റൂൾ #17)
+### നിയന്ത്രിത പ്രോക്സി കോറുകൾ
+
+ഇഷ്ടാനുസൃത പ്രോക്സി ഹോസ്റ്റ് ഫീൽഡും ഒരു V2Ray ഉറവിട ലിങ്ക് സ്വീകരിക്കുന്നു. തിരഞ്ഞെടുക്കുക** പാട്ടുപെട്ടി** അല്ലെങ്കിൽ** എക്സ്റേ** വ്യക്തമായി, തുടർന്ന് സംരക്ഷിക്കുക ക്ലിക്കുചെയ്യുക. ടൈപ്പിംഗ് ഒരിക്കലും ഒരു കോർ ഡൗൺലോഡ് ചെയ്യുകയോ ആരംഭിക്കുകയോ ചെയ്യുന്നില്ല. സേവ് ഔദ്യോഗിക റിലീസ് ആർക്കൈവ് സ്ഥിരീകരിക്കുന്നു, നേറ്റീവ് കോൺഫിഗറേഷൻ സാധൂകരിക്കുന്നു, ഒരു പ്രത്യേക ലോക്കൽ ഹോസ്റ്റ് SOCKS ലിസണർ ആരംഭിക്കുന്നു, അതിനുശേഷം മാത്രമേ പ്രോക്സി രജിസ്ട്രി അസൈൻമെൻ്റ് എഴുതുകയുള്ളൂ. പരാജയപ്പെട്ട സജീവമാക്കൽ മുമ്പത്തെ മാനേജ് ചെയ്ത കോൺഫിഗറേഷനും പ്രോസസ്സും പുനഃസ്ഥാപിക്കുന്നു. `STORAGE_ENCRYPTION_KEY` ആവശ്യമാണ്; ഉറവിട ലിങ്കുകൾ എൻക്രിപ്റ്റ് ചെയ്തിരിക്കുന്നു.
+
+നിയന്ത്രിത ഫയലുകൾ `DATA_DIR/services/managed-proxy/` TPROXY നിന്ന് വ്യത്യസ്തമായി തത്സമയമാണ്. തിരഞ്ഞെടുത്ത ഓരോ കോറിനും ഒരു ഉടമസ്ഥതയിലുള്ള പ്രക്രിയയുണ്ട്, 100 ശ്രോതാക്കൾ വരെ. ഓട്ടോസ്റ്റാർട്ട് അല്ലെങ്കിൽ ഗ്ലോബൽ റൂട്ടിംഗ് ഡിഫോൾട്ടൊന്നും മാറ്റിയിട്ടില്ല. ഈ നിയന്ത്രിത കോർ മാത്രം സജീവമാക്കുന്നത് വിജയകരമായ സേവ് ഓർക്കുന്നു; ആപ്ലിക്കേഷൻ സ്റ്റാർട്ടപ്പ് ഇതിനകം പരിശോധിച്ച ബൈനറി ഉപയോഗിച്ച് പ്രവർത്തനക്ഷമമാക്കിയ സംരക്ഷിച്ച കോറുകൾ പുനഃസ്ഥാപിക്കുന്നു, ഒരിക്കലും ബൂട്ട്-ടൈം ഡൗൺലോഡ് അല്ല. വ്യക്തമായ സ്റ്റോപ്പ് ആ ആക്ടിവേഷൻ ഫ്ലാഗ് മായ്ക്കുന്നു. നഷ്ടപ്പെട്ടതോ കേടായതോ ആയ ബൈനറിക്ക് ഒരു ഉറവിടം വീണ്ടും സംരക്ഷിക്കേണ്ടതുണ്ട്. രജിസ്ട്രി ഇല്ലാതാക്കൽ ഉറവിടത്തെയും ശ്രോതാക്കളെയും പ്രാദേശികമായി നീക്കംചെയ്യുന്നു; നിയന്ത്രിത വരികൾക്കായി സാധാരണ എൻഡ്പോയിൻ്റ് എഡിറ്റുകൾ നിരസിക്കപ്പെട്ടതിനാൽ സംരക്ഷിച്ച ഉറവിടത്തിന് അതിൻ്റെ റൂട്ട് ചെയ്ത ശ്രോതാവിൽ നിന്ന് നിശബ്ദമായി നീങ്ങാൻ കഴിയില്ല.
+
+| ഉറവിട ഫോർമാറ്റ് | പാട്ടുപെട്ടി | എക്സ്റേ |
+| ------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | പിന്തുണയുള്ള പരിവർത്തനം | പിന്തുണയുള്ള പരിവർത്തനം |
+| Hysteria2/hy2, TUIC, AnyTLS URI | പിന്തുണയുള്ള പരിവർത്തനം | നിരസിച്ചു; അനുയോജ്യമായ ഒരു കോർ ഉപയോഗിക്കുക |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | VLESS/VMess/Trojan യെ പിന്തുണയ്ക്കുന്നു | VLESS/VMess/Trojan യെ പിന്തുണയ്ക്കുന്നു |
+| XHTTP URI ഗതാഗതം | നിരസിച്ചു | പിന്തുണയുള്ള പരിവർത്തനം |
+| നേറ്റീവ് ഔട്ട്ബൗണ്ട് JSON | തിരഞ്ഞെടുത്ത കോറിൻ്റെ അനുവദനീയമായ പ്രോക്സി protocols/options, നേറ്റീവ് ആയി പരിശോധിച്ചു | തിരഞ്ഞെടുത്ത കോറിൻ്റെ അനുവദനീയമായ പ്രോക്സി protocols/options, നേറ്റീവ് ആയി പരിശോധിച്ചു |
+
+അജ്ഞാത വയർ ഓപ്ഷനുകൾ, സുരക്ഷിതമല്ലാത്ത TLS ഫ്ലാഗുകൾ, ബാഹ്യ പ്ലഗിനുകൾ, പ്രാദേശിക ഫയൽ-പാത്ത് ഓപ്ഷനുകൾ, പിന്തുണയ്ക്കാത്ത കോമ്പിനേഷനുകൾ എന്നിവ നിശ്ശബ്ദമായി നിരസിക്കുന്നതിന് പകരം നിരസിക്കപ്പെടും. നേറ്റീവ് ഒബ്ജക്റ്റുകൾ ഔട്ട്ബൗണ്ട് നിർവചനങ്ങളാണ്, പൂർണ്ണ-കോർ കോൺഫിഗറേഷനുകളല്ല; control/direct/bypass ഔട്ട്ബൗണ്ടുകൾ സ്വീകരിക്കപ്പെടുന്നില്ല. sing-box 1.14-ലെ WireGuard എൻഡ് പോയിൻ്റുകൾ ഉപയോഗിക്കുന്നു, അതിനാൽ ഇത് ഒരു നേറ്റീവ് ഔട്ട്ബൗണ്ടായി അംഗീകരിക്കപ്പെടുന്നില്ല. ഇതൊരു ഓൾ ഫോർമാറ്റ് കൺവെർട്ടർ അല്ല; SSR, ലെഗസി whole-base64 ഷാഡോസോക്ക് ലിങ്കുകൾ, അനിയന്ത്രിതമായ ക്ലാഷ് ഒബ്ജക്റ്റുകൾ, ടേബിളിൽ ഇല്ലാത്ത ട്രാൻസ്പോർട്ട് വേരിയൻ്റുകൾ എന്നിവയ്ക്ക് പ്രത്യേകം പിന്തുണയ്ക്കുന്ന ഉറവിട ഫോർമാറ്റ് ആവശ്യമാണ്.
+
+`/api/services/managed-proxy` ആധികാരികവും ലൂപ്പ്ബാക്ക്-മാത്രം: GET തിരുത്തിയ മെറ്റാഡാറ്റ പട്ടികപ്പെടുത്തുന്നു, POST `{core,name,sourceLink,id?,assignment?}` സംരക്ഷിക്കുന്നു, PATCH `{core,action:"start"|"stop"}` സ്വീകരിക്കുന്നു. ഹോസ്റ്റിൻ്റെ വിശ്വസ്ത പിയർ-സ്റ്റാമ്പ് പൈപ്പ്ലൈൻ ഉണ്ടായിരിക്കണം. നേറ്റീവ് കോർ ഡയഗ്നോസ്റ്റിക്സ് അടിച്ചമർത്തപ്പെടുന്നു, കാരണം അവയിൽ ക്രെഡൻഷ്യലുകൾ അടങ്ങിയിരിക്കാം; ലൈഫ് സൈക്കിൾ ഇവൻ്റുകൾ ഉറവിട ലിങ്കുകളോ അപ്സ്ട്രീം പേലോഡുകളോ ഇല്ലാതെ നിലവിലുള്ള ഘടനാപരമായ ആപ്ലിക്കേഷൻ ഫയൽ ലോഗർ ഉപയോഗിക്കുന്നു. പിന്തുണയ്ക്കായി അണുവിമുക്തമാക്കിയ ആപ്ലിക്കേഷൻ ലോഗുകൾ മാത്രം അറ്റാച്ചുചെയ്യുക. ഔദ്യോഗിക പതിപ്പുകൾ sing-box 1.14.3, Xray 26.3.27 എന്നിവയിൽ റിലീസ്-അസറ്റ് SHA-256 മാനിഫെസ്റ്റുകൾ ഉപയോഗിച്ച് പിൻ ചെയ്തിരിക്കുന്നു; ഭാവിയിലെ അപ്ഡേറ്റുകൾക്ക് പതിപ്പും പരിശോധിച്ച എല്ലാ ഡൈജസ്റ്റുകളും ഒരുമിച്ച് മാറ്റേണ്ടതുണ്ട്.
+
### പ്രധാന തീരുമാനങ്ങൾ (ഡിസൈൻ പ്ലാനിൽ നിന്ന്)
| തീരുമാനം | മൂല്യം |
diff --git a/docs/i18n/mr/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/mr/docs/frameworks/EMBEDDED-SERVICES.md
index 136fab3b57d7..c741e291bcee 100644
--- a/docs/i18n/mr/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/mr/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,7 +45,25 @@
- OmniRoute त्यांना `DATA_DIR/services/{name}/` अंतर्गत स्थापित करते ( OmniRoute च्या स्वतःच्या `package.json` पासून वेगळे)
- OmniRoute त्यांना बाल प्रक्रिया म्हणून विकसित करते आणि त्यांचे निरीक्षण करते
- OmniRoute मुलाच्या वातावरणात तात्पुरती API की इंजेक्ट करते आणि डाउनटाइमशिवाय ती फिरवते (जेथे लागू असेल)
-- सर्व व्यवस्थापन मार्ग (`/api/services/*`) आहेत**LOCAL_ONLY** — केवळ लूपबॅकवरून प्रवेशयोग्य (कठीण नियम #17)
+- सर्व व्यवस्थापन मार्ग (`/api/services/*`) आहेत**LOCAL_ONLY** — फक्त लूपबॅकवरून प्रवेशयोग्य (कठीण नियम #17)
+
+### व्यवस्थापित प्रॉक्सी कोर
+
+कस्टम प्रॉक्सी होस्ट फील्ड V2Ray स्त्रोत लिंक देखील स्वीकारते. निवडा** गाण्याची पेटी** किंवा** एक्सरे** स्पष्टपणे, नंतर जतन करा क्लिक करा. टायपिंग कधीही डाउनलोड होत नाही किंवा कोर सुरू होत नाही. सेव्ह अधिकृत रिलीझ संग्रहण सत्यापित करते, मूळ कॉन्फिगरेशन प्रमाणित करते, एक वेगळे लोकलहोस्ट SOCKS श्रोता सुरू करते आणि त्यानंतरच प्रॉक्सी नोंदणी असाइनमेंट लिहिते. अयशस्वी सक्रियकरण मागील व्यवस्थापित कॉन्फिगरेशन आणि प्रक्रिया पुनर्संचयित करते. `STORAGE_ENCRYPTION_KEY` आवश्यक आहे; स्त्रोत दुवे एनक्रिप्ट केलेले आहेत.
+
+व्यवस्थापित फाइल्स `DATA_DIR/services/managed-proxy/` अंतर्गत राहतात, TPROXY पेक्षा वेगळ्या. 100 श्रोत्यांपर्यंत प्रत्येक निवडलेल्या कोरसाठी एक मालकीची प्रक्रिया आहे. कोणतेही ऑटोस्टार्ट किंवा ग्लोबल रूटिंग डीफॉल्ट बदललेले नाही. यशस्वी जतन केवळ या व्यवस्थापित कोरसाठी सक्रियकरण लक्षात ठेवते; ऍप्लिकेशन स्टार्टअप आधीपासून सत्यापित बायनरी वापरून सक्षम सेव्ह केलेले कोर पुनर्संचयित करते, बूट-टाइम डाउनलोड कधीही नाही. स्पष्ट स्टॉप सक्रियता ध्वज साफ करते. गहाळ किंवा खराब झालेल्या बायनरीसाठी स्त्रोत पुन्हा जतन करणे आवश्यक आहे. रेजिस्ट्री हटवल्याने स्त्रोत आणि श्रोता स्थानिक पातळीवर काढला जातो; व्यवस्थापित पंक्तींसाठी सामान्य एंडपॉईंट संपादने नाकारली जातात म्हणून जतन केलेला स्त्रोत त्याच्या राउट केलेल्या श्रोत्यापासून शांतपणे वाहून जाऊ शकत नाही.
+
+| स्रोत स्वरूप | गाण्याची पेटी | एक्सरे |
+| ------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
+| VLESS, VMess, ट्रोजन, Shadowsocks URI | समर्थित रूपांतरण | समर्थित रूपांतरण |
+| Hysteria2/hy2, TUIC, AnyTLS URI | समर्थित रूपांतरण | नाकारले; एक सुसंगत कोर वापरा |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | VLESS/VMess/Trojan साठी समर्थित | VLESS/VMess/Trojan साठी समर्थित |
+| XHTTP URI वाहतूक | नाकारले | समर्थित रूपांतरण |
+| नेटिव्ह आउटबाउंड JSON | निवडलेल्या कोरच्या अनुमत प्रॉक्सी protocols/options, नेटिव्हली तपासले | निवडलेल्या कोरच्या अनुमत प्रॉक्सी protocols/options, नेटिव्हली तपासले |
+
+अज्ञात वायर पर्याय, असुरक्षित TLS ध्वज, बाह्य प्लगइन, स्थानिक फाइल-पथ पर्याय आणि असमर्थित संयोजने शांतपणे टाकून देण्याऐवजी नाकारली जातात. नेटिव्ह ऑब्जेक्ट्स आउटबाउंड व्याख्या आहेत, संपूर्ण-कोर कॉन्फिगरेशन नाहीत; control/direct/bypass आउटबाउंड स्वीकारले जात नाहीत. sing-box 1.14 वर WireGuard एंडपॉइंट्स वापरते, त्यामुळे ते मूळ आउटबाउंड म्हणून स्वीकारले जात नाही. हे सर्व-स्वरूप कनवर्टर नाही; SSR, लेगसी whole-base64 Shadowsocks लिंक्स, अनियंत्रित क्लॅश ऑब्जेक्ट्स आणि टेबलमधून अनुपस्थित ट्रान्सपोर्ट व्हेरियंटना स्वतंत्रपणे समर्थित स्त्रोत स्वरूप आवश्यक आहे.
+
+`/api/services/managed-proxy` प्रमाणीकृत आहे आणि फक्त-लूपबॅक आहे: GET पुनर्संचयित मेटाडेटा सूचीबद्ध करते, POST `{core,name,sourceLink,id?,assignment?}` वाचवते, PATCH `{core,action:"start"|"stop"}` स्वीकारते. होस्टचा विश्वासू पीअर-स्टॅम्प पाइपलाइन उपस्थित असणे आवश्यक आहे. नेटिव्ह कोर डायग्नोस्टिक्स दाबले जातात कारण त्यात क्रेडेन्शियल असू शकतात; लाइफसायकल इव्हेंट्स विद्यमान संरचित ॲप्लिकेशन फाइल लॉगरचा वापर स्त्रोत लिंक किंवा अपस्ट्रीम पेलोडशिवाय करतात. समर्थनासाठी फक्त सॅनिटाइज्ड ऍप्लिकेशन लॉग जोडा. अधिकृत आवृत्त्या sing-box 1.14.3 आणि Xray 26.3.27 वर रिलीझ-ॲसेट SHA-256 मॅनिफेस्टसह पिन केल्या आहेत; भविष्यातील अद्यतनांसाठी आवृत्ती आणि सर्व सत्यापित डायजेस्ट एकत्र बदलणे आवश्यक आहे.
### प्रमुख निर्णय (डिझाइन योजनेतून)
diff --git a/docs/i18n/ms/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/ms/docs/frameworks/EMBEDDED-SERVICES.md
index ca3e10616213..a6f03d9340cb 100644
--- a/docs/i18n/ms/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/ms/docs/frameworks/EMBEDDED-SERVICES.md
@@ -47,6 +47,24 @@ Kesemua lapan mengikuti model penyeliaan yang sama:
- OmniRoute menyuntik kunci API fana ke dalam persekitaran kanak-kanak dan memutarkannya tanpa masa henti (jika berkenaan)
- Semua laluan pengurusan (`/api/services/*`) adalah**LOCAL_ONLY** — boleh diakses hanya dari loopback (peraturan keras #17)
+### Teras proksi terurus
+
+Medan hos proksi tersuai juga menerima pautan sumber V2Ray. Pilih** kotak nyanyian** atau** Xray** secara eksplisit, kemudian klik Simpan. Menaip tidak pernah memuat turun atau memulakan teras. Simpan mengesahkan arkib keluaran rasmi, mengesahkan konfigurasi asli, memulakan pendengar SOCKS localhost yang berbeza, dan hanya kemudian menulis tugasan pendaftaran proksi. Pengaktifan yang gagal memulihkan konfigurasi dan proses terurus sebelumnya. `STORAGE_ENCRYPTION_KEY` diperlukan; pautan sumber disulitkan.
+
+Fail terurus secara langsung di bawah `DATA_DIR/services/managed-proxy/`, berasingan daripada TPROXY. Terdapat satu proses yang dimiliki setiap teras yang dipilih, sehingga 100 pendengar. Tiada autostart atau lalai penghalaan global diubah. Simpan yang Berjaya mengingati pengaktifan untuk teras terurus ini sahaja; permulaan aplikasi memulihkan teras tersimpan yang didayakan menggunakan binari yang telah disahkan, bukan muat turun masa but. Explicit Stop mengosongkan bendera pengaktifan itu. Binari yang hilang atau rosak memerlukan menyimpan semula sumber. Pemadaman pendaftaran mengalih keluar sumber dan pendengar secara setempat; suntingan titik akhir biasa ditolak untuk baris terurus supaya sumber yang disimpan tidak boleh hanyut secara senyap daripada pendengar yang dihalakan.
+
+| Format sumber | kotak nyanyian | Xray |
+| ------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | Penukaran yang disokong | Penukaran yang disokong |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Penukaran yang disokong | Ditolak; gunakan teras yang serasi |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Disokong untuk VLESS/VMess/Trojan | Disokong untuk VLESS/VMess/Trojan |
+| pengangkutan XHTTP URI | ditolak | Penukaran yang disokong |
+| JSON keluar asli | protocols/options proksi dibenarkan teras yang dipilih, disemak secara asli | protocols/options proksi dibenarkan teras yang dipilih, disemak secara asli |
+
+Pilihan wayar yang tidak diketahui, bendera TLS yang tidak selamat, pemalam luaran, pilihan laluan fail setempat dan gabungan yang tidak disokong ditolak dan bukannya dibuang secara senyap. Objek asli ialah definisi keluar, bukan konfigurasi teras keseluruhan; control/direct/bypass keluar tidak diterima. WireGuard pada sing-box 1.14 menggunakan titik akhir, jadi ia tidak diterima sebagai keluar asli. Ini bukan penukar semua format; SSR, pautan whole-base64 Shadowsocks warisan, objek Clash sewenang-wenangnya dan varian pengangkutan yang tidak terdapat dalam jadual memerlukan format sumber yang disokong secara berasingan.
+
+`/api/services/managed-proxy` disahkan dan gelung balik sahaja: GET menyenaraikan metadata yang disunting, POST menyimpan `{core,name,sourceLink,id?,assignment?}`, PATCH menerima `{core,action:"start"|"stop"}`. Saluran paip peer-cop yang dipercayai hos mesti ada. Diagnostik teras asli ditindas kerana ia boleh mengandungi bukti kelayakan; peristiwa kitaran hayat menggunakan logger fail aplikasi berstruktur sedia ada tanpa pautan sumber atau muatan huluan. Lampirkan hanya log aplikasi yang telah dibersihkan untuk sokongan. Versi rasmi disematkan pada kotak nyanyian 1.14.3 dan Xray 26.3.27 dengan manifes SHA-256 aset keluaran; kemas kini masa hadapan memerlukan menukar versi dan semua ringkasan yang disahkan bersama-sama.
+
### Keputusan utama (daripada pelan reka bentuk)
| Keputusan | Nilai |
diff --git a/docs/i18n/mt/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/mt/docs/frameworks/EMBEDDED-SERVICES.md
index 4f68c2a1d37b..d4dbbacc92a1 100644
--- a/docs/i18n/mt/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/mt/docs/frameworks/EMBEDDED-SERVICES.md
@@ -47,16 +47,34 @@ It-tmienja kollha jsegwu l-istess mudell superviżorju:
- OmniRoute jinjetta ċavetta API effimera fl-ambjent tat-tifel u dawwarha mingħajr ħin ta’ waqfien (fejn applikabbli)
- Ir-rotot kollha ta’ ġestjoni (`/api/services/*`) huma**LOCAL_ONLY** — aċċessibbli biss minn loopback (regola iebsa #17)
+### Proxy cores ġestiti
+
+Il-qasam Custom proxy host jaċċetta wkoll link tas-sors V2Ray. Agħżel** sing-box** jew** Xray** espliċitament, imbagħad ikklikkja Save. It-tajpjar qatt ma jniżżel jew jibda qalba. Save jivverifika l-arkivju tar-rilaxx uffiċjali, jivvalida konfigurazzjoni nattiva, jibda semmiegħ SOCKS localhost distint, u mbagħad biss jikteb l-assenjazzjoni tar-reġistru tal-prokura. L-attivazzjoni falluta tirrestawra l-konfigurazzjoni u l-proċess ġestiti preċedenti. `STORAGE_ENCRYPTION_KEY` huwa meħtieġ; links tas-sors huma encrypted.
+
+Fajls immaniġġjati jgħixu taħt `DATA_DIR/services/managed-proxy/`, separati minn TPROXY. Hemm proċess wieħed proprjetà għal kull qalba magħżula, sa 100 semmiegħa. L-ebda awtostart jew default tar-routing globali ma jinbidel. Successful Save jiftakar l-attivazzjoni għal din il-qalba ġestita biss; l-istartjar tal-applikazzjoni jirrestawra l-qlub salvati attivati bl-użu tal-binarju diġà vverifikat, qatt download tal-boot-time. Waqfien espliċitu jneħħi dik il-bandiera ta' attivazzjoni. Binarju nieqes jew bil-ħsara jeħtieġ li s-sors jerġa' jiġi salvat. It-tħassir tar-reġistru jneħħi s-sors u s-semmiegħ lokalment; edits ta' endpoint ordinarji huma miċħuda għal ringieli ġestiti sabiex is-sors issejvjat ma jkunx jista' jiċċaqlaq siekta mis-semmiegħ irrotta tiegħu.
+
+| Format tas-sors | sing-box | Xray |
+| ------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | Konverżjoni appoġġjata | Konverżjoni appoġġjata |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Konverżjoni appoġġjata | Miċħuda; uża qalba kompatibbli |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Appoġġjat għal VLESS/VMess/Trojan | Appoġġjat għal VLESS/VMess/Trojan |
+| XHTTP URI trasport | Miċħuda | Konverżjoni appoġġjata |
+| Native outbound JSON | Proxy permess tal-qalba magħżula protocols/options, iċċekkjat b'mod nattiv | Proxy permess tal-qalba magħżula protocols/options, iċċekkjat b'mod nattiv |
+
+Għażliet tal-wajer mhux magħrufa, bnadar TLS mhux sikuri, plugins esterni, għażliet lokali tal-passaġġ tal-fajls u kombinazzjonijiet mhux appoġġjati huma miċħuda aktar milli mormija fis-skiet. Oġġetti indiġeni huma definizzjonijiet barra, mhux konfigurazzjonijiet tal-qalba kollha; control/direct/bypass outbounds mhumiex aċċettati. WireGuard fuq sing-box 1.14 juża endpoints, għalhekk mhuwiex aċċettat bħala barra nattiva. Dan mhuwiex konvertitur tal-format kollu; SSR, whole-base64 legacy Shadowsocks links, oġġetti Clash arbitrarji u varjanti tat-trasport assenti mit-tabella jeħtieġu format sors appoġġjat separatament.
+
+`/api/services/managed-proxy` hija awtentikata u loopback biss: GET telenka metadata rediġjata, POST jiffranka `{core,name,sourceLink,id?,assignment?}`, PATCH jaċċetta `{core,action:"start"|"stop"}`. Il-pipeline ta' timbru tal-pari fdati tal-ospitant irid ikun preżenti. Id-dijanjostiċi tal-qalba indiġeni huma mrażżna minħabba li jista 'jkun fihom kredenzjali; avvenimenti taċ-ċiklu tal-ħajja jużaw il-logger tal-fajl tal-applikazzjoni strutturat eżistenti mingħajr links tas-sors jew payloads upstream. Ehmeż zkuk tal-applikazzjoni sanitizzati biss għall-appoġġ. Verżjonijiet uffiċjali huma pinnjati għal sing-box 1.14.3 u Xray 26.3.27 b'manifesti SHA-256 release-asset; aġġornamenti futuri jeħtieġu li tinbidel il-verżjoni u d-diġesti kollha verifikati flimkien.
+
### Deċiżjonijiet ewlenin (mill-pjan tad-disinn)
-| Deċiżjoni | Valur |
-| -------------------------------------------- | ------------------------------------------------------------------------------------------- |
-| Aċċess għad-dashboard għal 9Router native UI | Reverse proxy fi `/dashboard/providers/services/9router/embed/*` |
-| Mekkaniżmu ta 'installazzjoni | `npm install {package}` permezz ta' `execFile` (l-ebda interpolazzjoni tal-qoxra) |
-| Mod ta 'konsum | Fornitur irreġistrat bħala `9router/{sub}/{model}` fir-routing engine |
-| API key management | OmniRoute tiġġenera, tikkodifika waqt il-mistrieħ (AES-256-GCM), u tinjetta permezz ta' env |
-| Post tad-daxxbord | `/dashboard/providers/services` (tliet tabs) |
-| Auto-start | Toggle kull servizz, default OFF |
+| Deċiżjoni | Valur |
+| --------------------------------------- | ------------------------------------------------------------------------------------------- |
+| Aċċess dashboard għal 9Router native UI | Reverse proxy fi `/dashboard/providers/services/9router/embed/*` |
+| Mekkaniżmu ta 'installazzjoni | `npm install {package}` permezz ta' `execFile` (l-ebda interpolazzjoni tal-qoxra) |
+| Mod ta 'konsum | Fornitur irreġistrat bħala `9router/{sub}/{model}` fir-routing engine |
+| API key management | OmniRoute tiġġenera, tikkodifika waqt il-mistrieħ (AES-256-GCM), u tinjetta permezz ta' env |
+| Post tad-daxxbord | `/dashboard/providers/services` (tliet tabs) |
+| Auto-start | Toggle kull servizz, default OFF |
---
diff --git a/docs/i18n/my/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/my/docs/frameworks/EMBEDDED-SERVICES.md
index 0aef0c10a6c7..8606bce8639b 100644
--- a/docs/i18n/my/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/my/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,14 +45,32 @@
- OmniRoute ၎င်းတို့အား `DATA_DIR/services/{name}/` အောက်တွင် ထည့်သွင်းသည် ( OmniRoute၏ ကိုယ်ပိုင် `package.json` မှ သီးခြားခွဲထားသည်)
- OmniRoute သည် ၎င်းတို့ကို ကလေးဖြစ်စဉ်များအဖြစ် မွေးမြူပြီး စောင့်ကြည့်သည်။
- OmniRoute ကလေး၏ပတ်ဝန်းကျင်သို့ ပေါ်ပင် API သော့ကို ထိုးသွင်းပြီး စက်ရပ်ခြင်းမရှိဘဲ ၎င်းကို လှည့်ပေးသည် (အသုံးပြုနိုင်သည့်နေရာတွင်)
-- စီမံခန့်ခွဲမှုလမ်းကြောင်းအားလုံး (`/api/services/*`) များဖြစ်သည်။**LOCAL_ONLY** — loopback မှသာလျှင် ဝင်ရောက်နိုင်သည် ( hard rule #17 )
+- စီမံခန့်ခွဲမှုလမ်းကြောင်းအားလုံး (`/api/services/*`) များဖြစ်သည်။**LOCAL_ONLY** — loopback မှသာလျှင် ဝင်ရောက်နိုင်သည် ( hard rule #17)
+
+### ပရောက်စီ cores များကို စီမံထားသည်။
+
+Custom proxy host အကွက်သည် V2Ray ရင်းမြစ်လင့်ခ်ကိုလည်း လက်ခံပါသည်။ ရွေးချယ်ပါ။** sing-box** သို့မဟုတ်** ဓာတ်မှန်** ပြတ်သားစွာ၊ ထို့နောက် Save ကိုနှိပ်ပါ။ စာရိုက်ခြင်းသည် မည်သည့်အခါမျှ ဒေါင်းလုဒ်မလုပ်ပါ သို့မဟုတ် core တစ်ခုစတင်ပါသည်။ Save သည် တရားဝင်ထုတ်ဝေမှုမှတ်တမ်းကို အတည်ပြုသည်၊ မူရင်းဖွဲ့စည်းပုံကို အတည်ပြုသည်၊ ကွဲပြားသော localhost SOCKS နားထောင်သူကို စတင်သည်၊ ထို့နောက်မှသာ proxy registry assignment ကို ရေးသည်။ အသက်သွင်းခြင်း မအောင်မြင်ပါက ယခင်စီမံထားသော ဖွဲ့စည်းမှုပုံစံနှင့် လုပ်ငန်းစဉ်ကို ပြန်လည်ရယူသည်။ `STORAGE_ENCRYPTION_KEY` လိုအပ်သည်၊ အရင်းအမြစ်လင့်ခ်များကို ကုဒ်ဝှက်ထားသည်။
+
+စီမံခန့်ခွဲထားသောဖိုင်များသည် `DATA_DIR/services/managed-proxy/` အောက်တွင်၊ TPROXY နှင့် သီးခြားဖြစ်သည်။ နားထောင်သူ 100 အထိ ရွေးချယ်ထားသော core တစ်ခုလျှင် ပိုင်ဆိုင်သည့် လုပ်ငန်းစဉ်တစ်ခု ရှိပါသည်။ အလိုအလျောက်စတင်ခြင်း သို့မဟုတ် ကမ္ဘာလုံးဆိုင်ရာလမ်းကြောင်းသတ်မှတ်ခြင်း ပုံသေကို ပြောင်းလဲခြင်းမရှိပါ။ အောင်မြင်သော Save သည် ဤစီမံခန့်ခွဲထားသော core အတွက်သာ အသက်သွင်းခြင်းကို မှတ်သားသည်။ အပလီကေးရှင်းစတင်ခြင်းတွင် သိမ်းဆည်းထားသော cores များကို ပြန်လည်စစ်ဆေးပြီး binary ကို အသုံးပြု၍ ဖွင့်ချိန်-ဒေါင်းလုဒ်ကို ဘယ်သောအခါမှ ပြန်လည်ရယူသည်။ Explicit Stop သည် အဆိုပါ အသက်သွင်းမှုအလံကို ရှင်းလင်းသည်။ ပျောက်ဆုံးနေသော သို့မဟုတ် ပျက်စီးနေသော ဒွိစုံတစ်ခုသည် အရင်းအမြစ်တစ်ခုကို ပြန်လည်သိမ်းဆည်းရန် လိုအပ်သည်။ မှတ်ပုံတင်ခြင်းကို ဖျက်ခြင်းသည် စက်တွင်းရှိ အရင်းအမြစ်နှင့် နားဆင်သူကို ဖယ်ရှားသည်။ သာမန်အဆုံးမှတ်တည်းဖြတ်မှုများကို စီမံခန့်ခွဲထားသောအတန်းများအတွက် ငြင်းပယ်ခံရသောကြောင့် သိမ်းဆည်းထားသောရင်းမြစ်သည် ၎င်း၏လမ်းကြောင်းပေါ်မှ နားဆင်သူထံမှ တိတ်တဆိတ် ရုန်းမထွက်နိုင်ပါ။
+
+| အရင်းအမြစ်ဖော်မတ် | sing-box | ဓာတ်မှန် |
+| -------------------------------------- | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
+| VLESS၊ VMess၊ Trojan ၊ Shadowsocks URI | ပြောင်းလဲခြင်းကို ပံ့ပိုးထားသည်။ | ပြောင်းလဲခြင်းကို ပံ့ပိုးထားသည်။ |
+| Hysteria2/hy2, TUIC, AnyTLS URI | ပြောင်းလဲခြင်းကို ပံ့ပိုးထားသည်။ | ပယ်ချ; တွဲဖက်အသုံးပြုနိုင်သော core ကိုအသုံးပြုပါ။ |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | VLESS/VMess/Trojan အတွက် ပံ့ပိုးထားသည်။ | VLESS/VMess/Trojan အတွက် ပံ့ပိုးထားသည်။ |
+| XHTTP URI သယ်ယူပို့ဆောင်ရေး | ပယ်ချသည်။ | ပြောင်းလဲခြင်းကို ပံ့ပိုးထားသည်။ |
+| ဇာတိ အပြင်ဘက် JSON | ရွေးချယ်ထားသော core ၏ခွင့်ပြုထားသော proxy protocols/options မူရင်းအတိုင်း အမှန်ခြစ်ထားသည်။ | ရွေးချယ်ထားသော core ၏ခွင့်ပြုထားသော proxy protocols/options မူရင်းအတိုင်း အမှန်ခြစ်ထားသည်။ |
+
+အမည်မသိဝိုင်ယာရွေးချယ်မှုများ၊ မလုံခြုံသော TLS အလံများ၊ ပြင်ပပလပ်အင်များ၊ စက်တွင်းဖိုင်လမ်းကြောင်းရွေးချယ်မှုများနှင့် ပံ့ပိုးမထားသော ပေါင်းစပ်မှုများကို တိတ်တဆိတ်စွန့်ပစ်မည့်အစား ပယ်ချပါသည်။ မူလအရာဝတ္ထုများသည် အပြင်ဘက် အဓိပ္ပါယ်ဖွင့်ဆိုချက်များဖြစ်ပြီး core တစ်ခုလုံးဖွဲ့စည်းပုံများမဟုတ်ဘဲ၊ control/direct/bypass အထွက်များကို လက်မခံပါ။ sing-box 1.14 ရှိ WireGuard အဆုံးမှတ်များကို အသုံးပြုသောကြောင့် ၎င်းကို မူရင်းအပြင်ထွက်အဖြစ် လက်မခံပါ။ ၎င်းသည် ဖော်မက်အားလုံးပြောင်းသည့်စနစ်မဟုတ်ပါ။ SSR၊ အမွေအနှစ် whole-base64 Shadowsocks လင့်ခ်များ၊ မတရားသော Clash အရာဝတ္ထုများနှင့် ဇယားမှမရှိသော သယ်ယူပို့ဆောင်ရေးမျိုးကွဲများသည် သီးခြားပံ့ပိုးထားသော ရင်းမြစ်ဖော်မတ်တစ်ခု လိုအပ်ပါသည်။
+
+`/api/services/managed-proxy` သည် စစ်မှန်ကြောင်းအထောက်အထားပြပြီး လှည့်ပြန်ခြင်းသာဖြစ်သည်- GET ပြန်လည်ပြင်ဆင်ထားသော မက်တာဒေတာစာရင်းများ၊ POST `{core,name,sourceLink,id?,assignment?}` သိမ်းဆည်းသည်၊ PATCH သည် `{core,action:"start"|"stop"}` လက်ခံသည်။ အိမ်ရှင်၏ ယုံကြည်စိတ်ချရသော သက်တူရွယ်တူ-တံဆိပ်တုံး ပိုက်လိုင်းသည် ရှိနေရပါမည်။ အထောက်အထားများ ပါဝင်နိုင်သောကြောင့် မူလပင်မရောဂါရှာဖွေမှုများကို ဖိနှိပ်ထားသည်။ lifecycle ဖြစ်ရပ်များသည် အရင်းအမြစ်လင့်ခ်များ သို့မဟုတ် အထက်စီးကြောင်းပေးချေမှုများမပါဘဲ လက်ရှိဖွဲ့စည်းထားသော အပလီကေးရှင်းဖိုင်မှတ်တမ်းကို အသုံးပြုသည်။ ပံ့ပိုးမှုအတွက် သန့်ရှင်းရေးပြုလုပ်ထားသော အပလီကေးရှင်းမှတ်တမ်းများကိုသာ ပူးတွဲပါ။ တရားဝင်ဗားရှင်းများကို sing-box 1.14.3 နှင့် Xray 26.3.27 တွင် ထုတ်ဝေမှု-ပိုင်ဆိုင်မှု SHA-256 သရုပ်ဖော်ချက်များနှင့်အတူ ချိတ်တွဲထားသည်။ အနာဂတ် အပ်ဒိတ်များတွင် ဗားရှင်းနှင့် အတည်ပြုထားသော အချေအတင်အားလုံးကို အတူတကွ ပြောင်းလဲရန် လိုအပ်သည်။
### အဓိကဆုံးဖြတ်ချက်များ (ဒီဇိုင်းအစီအစဥ်မှ)
| ဆုံးဖြတ်ချက် | တန်ဖိုး |
| --------------------------------------------- | ---------------------------------------------------------------------------------------- |
| 9Router ၏ဇာတိ UI သို့ ဒက်ရှ်ဘုတ်ဝင်ရောက်ခွင့် | `/dashboard/providers/services/9router/embed/*` တွင် ပြောင်းပြန် ပရောက်စီ |
-| တပ်ဆင်ခြင်း ယန္တရား | `npm install {package}` မှတဆင့် `execFile` (အခွံကို ပေါင်းစပ်ခြင်းမရှိပါ) |
+| တပ်ဆင်ခြင်း ယန္တရား | `npm install {package}` မှတဆင့် `execFile` (အခွံကိုထည့်သွင်းခြင်းမပြုပါ) |
| စားသုံးမှုမုဒ် | ပံ့ပိုးသူသည် လမ်းကြောင်းပြအင်ဂျင်တွင် `9router/{sub}/{model}` အဖြစ် မှတ်ပုံတင်ထားသည်။ |
| API သော့စီမံခန့်ခွဲမှု | OmniRoute သည် at-rest (AES-256-GCM) ကိုထုတ်ပေးသည်၊ ကုဒ်ဝှက်ပြီး env မှတဆင့်ထိုးသွင်းသည်။ |
| ဒက်ရှ်ဘုတ်တည်နေရာ | `/dashboard/providers/services` (တက်ဘ်သုံးခု) |
diff --git a/docs/i18n/my/docs/ops/PROXY_GUIDE.md b/docs/i18n/my/docs/ops/PROXY_GUIDE.md
index 97b7bf3652c7..693616959bcf 100644
--- a/docs/i18n/my/docs/ops/PROXY_GUIDE.md
+++ b/docs/i18n/my/docs/ops/PROXY_GUIDE.md
@@ -549,7 +549,7 @@ curl "http://localhost:20128/api/settings/oneproxy?action=status"
## Database Schema
-### `proxy_registry` Table
+### `proxy_registry` ဇယား
```sql
CREATE TABLE proxy_registry (
@@ -563,11 +563,11 @@ CREATE TABLE proxy_registry (
region TEXT,
notes TEXT,
status TEXT DEFAULT 'active',
- source TEXT NOT NULL DEFAULT 'manual', -- 'manual' သို့မဟုတ် 'oneproxy'
- quality_score INTEGER, -- 0-100 (1proxy အတွက်သာ)
- latency_ms INTEGER, -- မီလီစက္ကန့် (1proxy အတွက်သာ)
+ source TEXT NOT NULL DEFAULT 'manual', -- 'manual' or 'oneproxy'
+ quality_score INTEGER, -- 0-100 (1proxy only)
+ latency_ms INTEGER, -- milliseconds (1proxy only)
anonymity TEXT, -- transparent/anonymous/elite
- google_access INTEGER DEFAULT 0, -- Google ကို ဝင်ရောက်နိုင်ပါသလား။ (1proxy)
+ google_access INTEGER DEFAULT 0, -- can access Google? (1proxy)
last_validated TEXT, -- ISO timestamp (1proxy)
country_code TEXT, -- ISO 2-letter code (1proxy)
created_at TEXT NOT NULL,
@@ -575,14 +575,14 @@ CREATE TABLE proxy_registry (
);
```
-### `proxy_assignments` Table
+### `proxy_assignments` ဇယား
```sql
CREATE TABLE proxy_assignments (
id INTEGER PRIMARY KEY AUTOINCREMENT,
proxy_id TEXT NOT NULL REFERENCES proxy_registry(id),
scope TEXT NOT NULL, -- 'global', 'provider', 'account', 'combo'
- scope_id TEXT, -- provider ID၊ connection ID သို့မဟုတ် combo ID
+ scope_id TEXT, -- provider ID, connection ID, or combo ID
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL,
UNIQUE(scope, scope_id)
diff --git a/docs/i18n/ne/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/ne/docs/frameworks/EMBEDDED-SERVICES.md
index a1463a97f052..f567f384372c 100644
--- a/docs/i18n/ne/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/ne/docs/frameworks/EMBEDDED-SERVICES.md
@@ -47,6 +47,24 @@
- OmniRoute बच्चाको वातावरणमा अल्पकालिक API कुञ्जी इन्जेक्ट गर्छ र डाउनटाइम बिना नै घुमाउँछ (जहाँ लागू हुन्छ)
- सबै व्यवस्थापन मार्गहरू (`/api/services/*`) छन्**LOCAL_ONLY** — लुपब्याकबाट मात्र पहुँचयोग्य (हार्ड नियम #17)
+### व्यवस्थित प्रोक्सी कोर
+
+अनुकूलन प्रोक्सी होस्ट फिल्डले V2Ray स्रोत लिङ्क पनि स्वीकार गर्दछ। चयन गर्नुहोस्** गाउने बक्स** वा** एक्सरे** स्पष्ट रूपमा, त्यसपछि बचत क्लिक गर्नुहोस्। टाइपले कहिल्यै डाउनलोड वा कोर सुरु गर्दैन। सेभले आधिकारिक रिलीज अभिलेख प्रमाणित गर्छ, नेटिभ कन्फिगरेसनलाई प्रमाणित गर्छ, छुट्टै लोकलहोस्ट SOCKS श्रोता सुरु गर्छ, र त्यसपछि मात्र प्रोक्सी रजिस्ट्री असाइनमेन्ट लेख्छ। असफल सक्रियताले अघिल्लो व्यवस्थित कन्फिगरेसन र प्रक्रियालाई पुनर्स्थापित गर्छ। `STORAGE_ENCRYPTION_KEY` आवश्यक छ; स्रोत लिङ्कहरू इन्क्रिप्टेड छन्।
+
+व्यवस्थित फाइलहरू `DATA_DIR/services/managed-proxy/` अन्तर्गत रहन्छन्, TPROXY बाट अलग। त्यहाँ प्रति चयन गरिएको कोरमा एक स्वामित्व प्रक्रिया छ, १०० श्रोताहरू सम्म। कुनै अटोस्टार्ट वा ग्लोबल रूटिङ डिफल्ट परिवर्तन गरिएको छैन। सफल बचतले यो व्यवस्थित कोरको लागि मात्र सक्रियता सम्झन्छ; एप्लिकेसन स्टार्टअपले पहिले नै प्रमाणित बाइनरी प्रयोग गरी सुरक्षित गरिएका कोरहरूलाई पुनर्स्थापना गर्छ, कहिल्यै बुट-टाइम डाउनलोड हुँदैन। स्पष्ट रोकले त्यो सक्रियता झण्डा खाली गर्छ। हराएको वा क्षतिग्रस्त बाइनरीलाई स्रोत पुन: बचत गर्न आवश्यक छ। रजिस्ट्री मेटाउनुले स्थानीय रूपमा स्रोत र श्रोतालाई हटाउँछ; साधारण अन्त्यबिन्दु सम्पादनहरू व्यवस्थित पङ्क्तिहरूका लागि अस्वीकार गरिन्छन् त्यसैले सुरक्षित गरिएको स्रोतले यसको रूट गरिएको श्रोताबाट चुपचाप बहाउन सक्दैन।
+
+| स्रोत ढाँचा | गाउने बक्स | एक्सरे |
+| ------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | समर्थित रूपान्तरण | समर्थित रूपान्तरण |
+| Hysteria2/hy2, TUIC, AnyTLS URI | समर्थित रूपान्तरण | अस्वीकृत; मिल्दो कोर प्रयोग गर्नुहोस् |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | VLESS/VMess/Trojan को लागि समर्थित | VLESS/VMess/Trojan को लागि समर्थित |
+| XHTTP URI यातायात | अस्वीकार गरियो | समर्थित रूपान्तरण |
+| नेटिभ आउटबाउन्ड JSON | चयन गरिएको कोरको अनुमति दिइएको प्रोक्सी protocols/options, नेटिभ रूपमा जाँच गरियो | चयन गरिएको कोरको अनुमति दिइएको प्रोक्सी protocols/options, नेटिभ रूपमा जाँच गरियो |
+
+अज्ञात तार विकल्पहरू, असुरक्षित TLS फ्ल्यागहरू, बाह्य प्लगइनहरू, स्थानीय फाइल-पथ विकल्पहरू र असमर्थित संयोजनहरू चुपचाप खारेज गर्नुको सट्टा अस्वीकार गरिन्छ। मूल वस्तुहरू आउटबाउन्ड परिभाषाहरू हुन्, सम्पूर्ण-कोर कन्फिगरेसनहरू होइनन्; control/direct/bypass आउटबाउन्डहरू स्वीकार गरिँदैन। sing-box 1.14 मा WireGuard अन्तिम बिन्दुहरू प्रयोग गर्दछ, त्यसैले यसलाई नेटिभ आउटबाउन्डको रूपमा स्वीकार गरिँदैन। यो सबै ढाँचा कनवर्टर होइन; SSR, Legacy whole-base64 Shadowsocks लिङ्कहरू, स्वेच्छाचारी क्लैश वस्तुहरू र तालिकाबाट अनुपस्थित यातायात भेरियन्टहरूलाई छुट्टै समर्थित स्रोत ढाँचा चाहिन्छ।
+
+`/api/services/managed-proxy` प्रमाणीकृत र लुपब्याक मात्र हो: GET redacted मेटाडेटा सूची गर्दछ, POST `{core,name,sourceLink,id?,assignment?}` बचत गर्छ, PATCH `{core,action:"start"|"stop"}` स्वीकार गर्दछ। होस्टको विश्वसनीय पियर-स्ट्याम्प पाइपलाइन उपस्थित हुनुपर्छ। नेटिभ कोर डायग्नोस्टिकहरूलाई दबाइन्छ किनभने तिनीहरूले प्रमाणहरू समावेश गर्न सक्छन्; जीवनचक्र घटनाहरूले स्रोत लिङ्कहरू वा अपस्ट्रीम पेलोडहरू बिना अवस्थित संरचित अनुप्रयोग फाइल लगर प्रयोग गर्दछ। समर्थनको लागि सेनिटाइज गरिएको आवेदन लगहरू मात्र संलग्न गर्नुहोस्। आधिकारिक संस्करणहरू sing-box 1.14.3 र Xray 26.3.27 मा रिलीज-एसेट SHA-256 manifests मा पिन गरिएको छ; भविष्यका अद्यावधिकहरूलाई संस्करण र सबै प्रमाणित डाइजेस्टहरू सँगै परिवर्तन गर्न आवश्यक छ।
+
### प्रमुख निर्णयहरू (डिजाइन योजनाबाट)
| निर्णय | मूल्य |
diff --git a/docs/i18n/nl/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/nl/docs/frameworks/EMBEDDED-SERVICES.md
index 64b3b47e7444..266e24c435f7 100644
--- a/docs/i18n/nl/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/nl/docs/frameworks/EMBEDDED-SERVICES.md
@@ -47,6 +47,24 @@ Alle acht volgen hetzelfde toezichtmodel:
- OmniRoute injecteert een kortstondige API sleutel in de omgeving van het kind en roteert deze zonder onderbreking (indien van toepassing)
- Alle beheerroutes (`/api/services/*`) zijn dat**LOCAL_ONLY** — alleen toegankelijk via loopback (harde regel #17)
+### Beheerde proxykernen
+
+Het veld Aangepaste proxyhost accepteert ook een V2Ray bronlink. Selecteer** zangdoos** of** Röntgenfoto** expliciet en klik vervolgens op Opslaan. Door te typen wordt nooit een kern gedownload of gestart. Save verifieert het officiële release-archief, valideert de eigen configuratie, start een aparte localhost SOCKS listener en schrijft dan pas de proxy-registertoewijzing. Bij een mislukte activering worden de vorige beheerde configuratie en het vorige beheerde proces hersteld. `STORAGE_ENCRYPTION_KEY` is vereist; bronlinks zijn gecodeerd.
+
+Beheerde bestanden staan onder `DATA_DIR/services/managed-proxy/`, gescheiden van TPROXY. Er is één eigen proces per geselecteerde kern, maximaal 100 luisteraars. Er is geen standaard voor automatisch starten of globale routering gewijzigd. Succesvol opslaan onthoudt alleen de activering voor deze beheerde kern; het opstarten van de applicatie herstelt ingeschakelde opgeslagen kernen met behulp van het reeds geverifieerde binaire bestand, nooit een download tijdens het opstarten. Expliciete stop wist die activeringsvlag. Voor een ontbrekend of beschadigd binair bestand moet een bron opnieuw worden opgeslagen. Door het register te verwijderen worden de bron en luisteraar lokaal verwijderd; gewone eindpuntbewerkingen worden afgewezen voor beheerde rijen, zodat de opgeslagen bron niet stilletjes van de gerouteerde luisteraar kan afwijken.
+
+| Bronformaat | zangdoos | Röntgenfoto |
+| ------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | Ondersteunde conversie | Ondersteunde conversie |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Ondersteunde conversie | Afgewezen; gebruik een compatibele kern |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Ondersteund voor VLESS/VMess/Trojan | Ondersteund voor VLESS/VMess/Trojan |
+| XHTTP URI vervoer | Afgewezen | Ondersteunde conversie |
+| Inheemse uitgaande JSON | Geselecteerde core's toegestane proxy protocols/options, native gecontroleerd | Geselecteerde core's toegestane proxy protocols/options, native gecontroleerd |
+
+Onbekende draadopties, onveilige TLS vlaggen, externe plug-ins, lokale bestandspadopties en niet-ondersteunde combinaties worden afgewezen in plaats van stilzwijgend weggegooid. Native objecten zijn uitgaande definities, geen volledige kernconfiguraties; control/direct/bypass uitgaande verbindingen worden niet geaccepteerd. WireGuard op sing-box 1.14 gebruikt eindpunten, dus het wordt niet geaccepteerd als native uitgaand verkeer. Dit is geen converter voor alle formaten; SSR, oudere whole-base64 Shadowsocks-koppelingen, willekeurige Clash-objecten en transportvarianten die niet in de tabel voorkomen, hebben een afzonderlijk ondersteund bronformaat nodig.
+
+`/api/services/managed-proxy` is geauthenticeerd en alleen loopback: GET geeft geredigeerde metadata weer, POST slaat `{core,name,sourceLink,id?,assignment?}` op, PATCH accepteert `{core,action:"start"|"stop"}`. De vertrouwde peer-stamp-pijplijn van de host moet aanwezig zijn. Native core-diagnostiek wordt onderdrukt omdat deze referenties kan bevatten; levenscyclusgebeurtenissen gebruiken de bestaande gestructureerde applicatiebestandslogger zonder bronlinks of upstream-payloads. Voeg ter ondersteuning alleen opgeschoonde applicatielogboeken toe. Officiële versies zijn vastgemaakt aan sing-box 1.14.3 en Xray 26.3.27 met release-asset SHA-256 manifesten; toekomstige updates vereisen het samen wijzigen van de versie en alle geverifieerde samenvattingen.
+
### Kernbeslissingen (uit ontwerpplan)
| Beslissing | Waarde |
diff --git a/docs/i18n/no/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/no/docs/frameworks/EMBEDDED-SERVICES.md
index a69e8b7bbee8..a4c9cd8c513f 100644
--- a/docs/i18n/no/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/no/docs/frameworks/EMBEDDED-SERVICES.md
@@ -36,7 +36,7 @@ Innebygde tjenester er lokalt installerte prosesssidevognverktøy som OmniRoute
| **Mux** | `mux` (hodeløs `mux server`) | 8322 | Lokal agent-orkestreringsdemon (coder/mux). Livssyklusadministrert kun — ikke et rutemål (ingen LLM proxying). |
| **Bifrost** | `@maximhq/bifrost` | 8080 | Gå til AI-gateway relé backend. Når du løper, automatisk valgt av reléruten (`/v1/relay/`) |
| **Dario** | `@askalf/dario` | 3456 | Claude-abonnement proxy — alternative/failover til CLIProxyAPI for Claude-kode-formet trafikk; den injiserte nøkkelen blir `DARIO_ADMIN_TOKEN` som porterer dens `/admin/*` OAuth kontrollplan |
-| **åpen-wa** | `@open-wa/wa-automate` | 8323 | WhatsApp webautomatisering (hodeløs Chromium via Puppeteer). Kun livssyklusadministrert — ikke et rutemål. |
+| **åpen-wa** | `@open-wa/wa-automate` | 8323 | WhatsApp webautomatisering (hodeløs Chromium via Puppeteer). Kun livssyklusstyrt — ikke et rutemål. |
| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Prompt-komprimering sidevogn — ekte LLMLingua-2 ONNX modell (JS/TS port av Microsoft sin algoritme). `open-sse/services/compression/engines/llmlingua/index.ts` sender `/compress` over HTTP til den, og faller tilbake til den igangværende arbeidertråden når sidevognen er nede. Livssyklus-administrert bare — ikke et rutemål. |
| **synge-boks** | GitHub release binær (`singbox`) | 20140 | TPROXY sidevogn som støtter `applyTproxy()` transparente proxy-avskjæring (`src/mitm/tproxy/setup.ts`). Installasjonsprogrammet laster ned den festede, kontrollsum-verifiserte utgivelsen. Kun livssyklusstyrt — ikke et rutemål (ingen LLM proxying) |
@@ -47,16 +47,34 @@ Alle åtte følger samme tilsynsmodell:
- OmniRoute injiserer en flyktig API nøkkel inn i barnets miljø og roterer den uten nedetid (der det er aktuelt)
- Alle forvaltningsruter (`/api/services/*`) er**LOCAL_ONLY** — kun tilgjengelig fra loopback (hard regel #17)
+### Administrerte proxy-kjerner
+
+Egendefinert proxy-vertsfeltet godtar også en V2Ray -kildekobling. Velge** synge-boks** eller** Røntgen** eksplisitt, og klikk deretter på Lagre. Skriving laster aldri ned eller starter en kjerne. Lagre verifiserer det offisielle utgivelsesarkivet, validerer opprinnelig konfigurasjon, starter en distinkt localhost SOCKS -lytter, og først da skriver proxy-registertilordningen. Mislykket aktivering gjenoppretter den tidligere administrerte konfigurasjonen og prosessen. `STORAGE_ENCRYPTION_KEY` kreves; kildelenker er kryptert.
+
+Administrerte filer lever under `DATA_DIR/services/managed-proxy/`, atskilt fra TPROXY. Det er én eiet prosess per valgt kjerne, opptil 100 lyttere. Ingen autostart eller global rutingstandard er endret. Vellykket lagring husker aktivering kun for denne administrerte kjernen; programoppstart gjenoppretter aktiverte lagrede kjerner ved å bruke den allerede verifiserte binære filen, aldri en nedlasting ved oppstart. Eksplisitt stopp fjerner dette aktiveringsflagget. En manglende eller skadet binærfil krever lagring av en kilde på nytt. Sletting av register fjerner kilden og lytteren lokalt; Vanlige endepunktsredigeringer avvises for administrerte rader, slik at den lagrede kilden ikke kan drive fra den rutede lytteren.
+
+| Kildeformat | synge-boks | Røntgen |
+| ------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | Støttet konvertering | Støttet konvertering |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Støttet konvertering | Avvist; bruk en kompatibel kjerne |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Støttes for VLESS/VMess/Trojan | Støttes for VLESS/VMess/Trojan |
+| XHTTP URI transport | Avvist | Støttet konvertering |
+| Innfødt utgående JSON | Den valgte kjernens tillatte proxy protocols/options, sjekket innfødt | Den valgte kjernens tillatte proxy protocols/options, sjekket innfødt |
+
+Ukjente ledningsalternativer, usikre TLS flagg, eksterne plugins, lokale filbanealternativer og ustøttede kombinasjoner avvises i stedet for å forkastes stille. Innfødte objekter er utgående definisjoner, ikke hele kjernekonfigurasjoner; control/direct/bypass utgående er ikke akseptert. WireGuard på sing-box 1.14 bruker endepunkter, så det er ikke akseptert som en opprinnelig utgående. Dette er ikke en konverterer i alle formater; SSR, eldre whole-base64 Shadowsocks-koblinger, vilkårlige Clash-objekter og transportvarianter som mangler fra tabellen trenger et separat støttet kildeformat.
+
+`/api/services/managed-proxy` er autentisert og loopback-bare: GET viser redigerte metadata, POST lagrer `{core,name,sourceLink,id?,assignment?}`, PATCH godtar `{core,action:"start"|"stop"}`. Vertens pålitelige peer-stamp pipeline må være til stede. Innfødt kjernediagnostikk undertrykkes fordi de kan inneholde legitimasjon; livssyklushendelser bruker den eksisterende strukturerte applikasjonsfilloggeren uten kildekoblinger eller oppstrøms nyttelast. Legg kun ved desinfiserte applikasjonslogger for støtte. Offisielle versjoner er festet til sing-box 1.14.3 og Xray 26.3.27 med SHA-256 -manifester for release-asset; fremtidige oppdateringer krever endring av versjonen og alle verifiserte sammendrag.
+
### Nøkkelbeslutninger (fra designplan)
-| Avgjørelse | Verdi |
-| --------------------------------------- | ------------------------------------------------------------------------- |
-| Dashboard-tilgang til 9Router native UI | Omvendt proxy ved `/dashboard/providers/services/9router/embed/*` |
-| Installasjonsmekanisme | `npm install {package}` via `execFile` (ingen skallinterpolasjon) |
-| Forbruksmodus | Leverandør registrert som `9router/{sub}/{model}` i rutingmotor |
-| API nøkkelstyring | OmniRoute genererer, krypterer at-rest (AES-256-GCM) og injiserer via env |
-| Dashboard plassering | `/dashboard/providers/services` (tre faner) |
-| Autostart | Veksle per tjeneste, standard OFF |
+| Avgjørelse | Verdi |
+| --------------------------------------- | -------------------------------------------------------------------------- |
+| Dashboard-tilgang til 9Router native UI | Omvendt proxy ved `/dashboard/providers/services/9router/embed/*` |
+| Installasjonsmekanisme | `npm install {package}` via `execFile` (ingen skallinterpolasjon) |
+| Forbruksmodus | Leverandør registrert som `9router/{sub}/{model}` i rutingmotor |
+| API nøkkelstyring | OmniRoute genererer, krypterer at-rest (AES-256-GCM), og injiserer via env |
+| Dashboard plassering | `/dashboard/providers/services` (tre faner) |
+| Autostart | Veksle per tjeneste, standard OFF |
---
diff --git a/docs/i18n/or/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/or/docs/frameworks/EMBEDDED-SERVICES.md
index 596519a3b406..fd4aef21a5a0 100644
--- a/docs/i18n/or/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/or/docs/frameworks/EMBEDDED-SERVICES.md
@@ -27,40 +27,58 @@ Embedded services ହେଉଛି ସ୍ଥାନୀୟ ଭାବେ ସ୍ଥ
---
-## ୧. ସାରାଂଶ
-
-### ଏମ୍ବେଡ୍ କରାଯାଇଥିବା ସେବା କାହିଁକି?
-
-ଆଠଟି ସେବା ଏମ୍ବେଡ୍ କରାଯାଇଛି:
-
-| ସେବା | npm ପ୍ୟାକେଜ୍ | ଡିଫଲ୍ଟ ପୋର୍ଟ | ଉଦ୍ଦେଶ୍ୟ |
-| --------------- | ---------------------------------- | :----------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **9Router** | `9router` | 20130 | OmniRoute ଉପ-ପ୍ରଦାତା ଭାବେ ବ୍ୟବହାର କରିପାରୁଥିବା AI ରାଉଟର୍। `9router/{sub}/{model}` ଭାବେ ମଡେଲ୍ଗୁଡ଼ିକୁ ପ୍ରକାଶ କରେ |
-| **CLIProxyAPI** | GitHub ରିଲିଜ୍ ବାଇନାରୀ (`cliproxy`) | 8317 | Anthropic CLI ଅଥେଣ୍ଟିକେସନ୍ ଫ୍ଲୋ ପାଇଁ ସ୍ଥାନୀୟ ପ୍ରକ୍ସି ଆଡାପ୍ଟର୍। OAuth ଟୋକେନ୍ର ମেয়ାଦ ଶେଷ ହେଲେ ଫଲ୍ବ୍ୟାକ୍ ରାଉଟିଂ ପ୍ରଦାନ କରେ |
-| **Mux** | `mux` (headless `mux server`) | 8322 | ସ୍ଥାନୀୟ ଏଜେଣ୍ଟ୍-ଅର୍କେଷ୍ଟ୍ରେସନ୍ ଡେମନ୍ (coder/mux)। କେବଳ ଲାଇଫ୍ସାଇକେଲ୍-ପରିଚାଳିତ — ରାଉଟିଂ ଲକ୍ଷ୍ୟ ନୁହେଁ (LLM ପ୍ରକ୍ସିଂ ନାହିଁ)। |
-| **Bifrost** | `@maximhq/bifrost` | 8080 | Go AI-ଗେଟୱେ ରିଲେ ବ୍ୟାକଏଣ୍ଡ୍। ଚାଲୁ ଥିବାବେଳେ, ରିଲେ ରୁଟ୍ (`/v1/relay/`) ଦ୍ୱାରା ସ୍ୱୟଂଚାଳିତ ଭାବେ ଚୟନ ହୁଏ |
-| **Dario** | `@askalf/dario` | 3456 | Claude ସବ୍ସକ୍ରିପ୍ସନ୍ ପ୍ରକ୍ସି — Claude-Code-ଆକୃତିର ଟ୍ରାଫିକ୍ ପାଇଁ CLIProxyAPI-ର ବିକଳ୍ପ/ଫେଲଓଭର୍; ଇଞ୍ଜେକ୍ଟ କରାଯାଇଥିବା କୀ `DARIO_ADMIN_TOKEN` ହୋଇ ଏହାର `/admin/*` OAuth କଣ୍ଟ୍ରୋଲ୍ ପ୍ଲେନ୍କୁ ନିୟନ୍ତ୍ରଣ କରେ |
-| **open-wa** | `@open-wa/wa-automate` | 8323 | WhatsApp Web ଅଟୋମେସନ୍ (Puppeteer ମାଧ୍ୟମରେ headless Chromium)। କେବଳ ଲାଇଫ୍ସାଇକେଲ୍-ପରିଚାଳିତ — ରାଉଟିଂ ଲକ୍ଷ୍ୟ ନୁହେଁ। |
-| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | ପ୍ରମ୍ପ୍ଟ-କମ୍ପ୍ରେସନ୍ ସାଇଡ୍କାର୍ — ପ୍ରକୃତ LLMLingua-2 ONNX ମଡେଲ୍ (Microsoft ର ଆଲଗୋରିଦମ୍ର JS/TS ପୋର୍ଟ)। `open-sse/services/compression/engines/llmlingua/index.ts` HTTP ମାଧ୍ୟମରେ ଏହାକୁ `/compress` ପଠାଏ, ଏବଂ ସାଇଡ୍କାର୍ ଡାଉନ୍ ଥିଲେ ଇନ୍-ପ୍ରୋସେସ୍ worker-thread ବ୍ୟାକଏଣ୍ଡ୍କୁ ଫଲ୍ବ୍ୟାକ୍ କରେ। କେବଳ ଲାଇଫ୍ସାଇକେଲ୍-ପରିଚାଳିତ — ରାଉଟିଂ ଲକ୍ଷ୍ୟ ନୁହେଁ। |
-| **sing-box** | GitHub ରିଲିଜ୍ ବାଇନାରୀ (`singbox`) | 20140 | `applyTproxy()`-ର ସ୍ୱଚ୍ଛ-ପ୍ରକ୍ସି ଇଣ୍ଟରସେପ୍ସନ୍କୁ ସମର୍ଥନ କରୁଥିବା TPROXY ସାଇଡ୍କାର୍ (`src/mitm/tproxy/setup.ts`)। ଇନ୍ଷ୍ଟଲର୍ ପିନ୍ କରାଯାଇଥିବା, checksum-ଯାଞ୍ଚିତ ରିଲିଜ୍ ଡାଉନ୍ଲୋଡ୍ କରେ। କେବଳ ଲାଇଫ୍ସାଇକେଲ୍-ପରିଚାଳିତ — ରାଉଟିଂ ଲକ୍ଷ୍ୟ ନୁହେଁ (LLM ପ୍ରକ୍ସିଂ ନାହିଁ) |
-
-ସମସ୍ତ ଆଠଟି ସେବା ସମାନ ସୁପରଭାଇଜରୀ ମଡେଲ୍ ଅନୁସରଣ କରେ:
-
-- OmniRoute ସେଗୁଡ଼ିକୁ `DATA_DIR/services/{name}/` ଅଧୀନରେ ଇନ୍ଷ୍ଟଲ୍ କରେ (OmniRoute ର ନିଜସ୍ୱ `package.json` ଠାରୁ ପୃଥକ)
-- OmniRoute ସେଗୁଡ଼ିକୁ ଚାଇଲ୍ଡ୍ ପ୍ରୋସେସ୍ ଭାବେ ଆରମ୍ଭ କରେ ଏବଂ ମନିଟର୍ କରେ
-- OmniRoute ଚାଇଲ୍ଡ୍ର ପରିବେଶରେ ଏକ ଅସ୍ଥାୟୀ API କୀ ଇଞ୍ଜେକ୍ଟ କରେ ଏବଂ ଡାଉନ୍ଟାଇମ୍ ବିନା ଏହାକୁ ରୋଟେଟ୍ କରେ (ଯେଉଁଠାରେ ପ୍ରୟୋଜ୍ୟ)
-- ସମସ୍ତ ପରିଚାଳନା ରୁଟ୍ (`/api/services/*`) **LOCAL_ONLY** — କେବଳ ଲୁପ୍ବ୍ୟାକ୍ରୁ ଅଭିଗମ୍ୟ (କଠୋର ନିୟମ #17)
-
-### ପ୍ରମୁଖ ନିଷ୍ପତ୍ତି (ଡିଜାଇନ୍ ପ୍ଲାନ୍ରୁ)
-
-| ନିଷ୍ପତ୍ତି | ମୂଲ୍ୟ |
-| -------------------------------------- | ------------------------------------------------------------------------------------------- |
-| ଡ୍ୟାସ୍ବୋର୍ଡ୍ରୁ 9Router ନେଟିଭ୍ UI ଅଭିଗମ | `/dashboard/providers/services/9router/embed/*` ରେ ରିଭର୍ସ ପ୍ରକ୍ସି |
-| ଇନ୍ଷ୍ଟଲେସନ୍ ପ୍ରଣାଳୀ | `npm install {package}` `execFile` ମାଧ୍ୟମରେ (କୌଣସି shell interpolation ନାହିଁ) |
-| ବ୍ୟବହାର ମୋଡ୍ | ରାଉଟିଂ ଇଞ୍ଜିନ୍ରେ `9router/{sub}/{model}` ଭାବେ ପ୍ରଦାତା ପଞ୍ଜୀକୃତ |
-| API କୀ ପରିଚାଳନା | OmniRoute ଉତ୍ପନ୍ନ କରେ, at-rest ଏନ୍କ୍ରିପ୍ଟ୍ କରେ (AES-256-GCM), ଏବଂ env ମାଧ୍ୟମରେ ଇଞ୍ଜେକ୍ଟ କରେ |
-| ଡ୍ୟାସ୍ବୋର୍ଡ୍ ସ୍ଥାନ | `/dashboard/providers/services` (ତିନୋଟି ଟ୍ୟାବ୍) |
-| ସ୍ୱୟଂଚାଳିତ ଆରମ୍ଭ | ପ୍ରତ୍ୟେକ ସେବା ପାଇଁ ଟଗଲ୍, ଡିଫଲ୍ଟ ଭାବେ OFF |
+## 1 ସମୀକ୍ଷା
+
+### ଏମ୍ବେଡ୍ ହୋଇଥିବା ସେବାଗୁଡିକ କାହିଁକି?
+
+ଆଠଟି ସେବା ଏମ୍ବେଡ୍ ହୋଇଛି:
+
+| ସେବା | npm ପ୍ୟାକେଜ୍। | ଡିଫଲ୍ଟ ପୋର୍ଟ | ଉଦ୍ଦେଶ୍ୟ |
+| --------------- | ---------------------------------- | :----------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **9 ରାଉଟର** | `9router` | 20130 | AI ରାଉଟର ଯାହାକି OmniRoute ଏକ ଉପ-ପ୍ରଦାନକାରୀ ଭାବରେ ବ୍ୟବହାର କରିପାରିବ। `9router/{sub}/{model}` ଭାବରେ ପ୍ରକାଶିତ ମଡେଲଗୁଡିକ। |
+| **CLIProxyAPI** | GitHub ବାଇନାରୀ ରିଲିଜ୍ (`cliproxy`) | 8317 | Anthropic CLI auth ପ୍ରବାହ ପାଇଁ ସ୍ଥାନୀୟ ପ୍ରକ୍ସି ଆଡାପ୍ଟର। OAuth ଟୋକେନ୍ ସମାପ୍ତ ହେଲେ ଫଲବ୍ୟାକ୍ ରାଉଟିଙ୍ଗ୍ ପ୍ରଦାନ କରେ। |
+| **ମୁକ୍ସ** | `mux` (ମୁଣ୍ଡବିହୀନ `mux server`) | 8322 | ସ୍ଥାନୀୟ ଏଜେଣ୍ଟ-ଅର୍କେଷ୍ଟ୍ରେସନ୍ ଡେମନ୍ (coder/mux)। ଲାଇଫ୍ ସାଇକେଲ୍ ଦ୍ୱାରା ପରିଚାଳିତ କେବଳ — ଏକ ରାଉଟିଙ୍ଗ୍ ଟାର୍ଗେଟ୍ ନୁହେଁ (କ z ଣସି LLM ପ୍ରକ୍ସିଂ ନାହିଁ)। |
+| **ବିଫ୍ରୋଷ୍ଟ।** | `@maximhq/bifrost` | 8080 | AI- ଗେଟୱେ ରିଲେ ବ୍ୟାକେଣ୍ଡକୁ ଯାଆନ୍ତୁ। ଚାଲିବାବେଳେ, ରିଲେ ମାର୍ଗ (`/v1/relay/`) ଦ୍ୱାରା ସ୍ auto ତ - ମନୋନୀତ। |
+| **ଡାରିଓ।** | `@askalf/dario` | 3456 | କ୍ଲାଉଡ୍-କୋଡ୍ ଆକୃତିର ଟ୍ରାଫିକ୍ ପାଇଁ କ୍ଲାଉଡ୍-ସବସ୍କ୍ରିପସନ୍ ପ୍ରକ୍ସି — CLIProxyAPI ରୁ alternative/failover ; ଇଞ୍ଜେକ୍ସନ ହୋଇଥିବା ଚାବି `DARIO_ADMIN_TOKEN` ହୋଇଯାଏ ଏହାର `/admin/*` OAuth କଣ୍ଟ୍ରୋଲ୍ ପ୍ଲେନ୍। |
+| **ଓପନ୍-ୱା** | `@open-wa/wa-automate` | 8323 | WhatsApp ୱେବ୍ ସ୍ୱୟଂଚାଳିତ (ପପୁପିଟର ମାଧ୍ୟମରେ ମୁଣ୍ଡବିହୀନ କ୍ରୋମିୟମ୍)। ଲାଇଫ୍ ସାଇକେଲ୍ ଦ୍ୱାରା ପରିଚାଳିତ କେବଳ — ଏକ ରାଉଟିଙ୍ଗ୍ ଟାର୍ଗେଟ୍ ନୁହେଁ। |
+| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | ପ୍ରମ୍ପ୍ଟ-ସଙ୍କୋଚନ ସାଇଡେକାର୍ — ପ୍ରକୃତ LLMLingua-2 ONNX ମଡେଲ୍ ( Microsoft ର ଆଲଗୋରିଦମର JS/TS ପୋର୍ଟ)। `open-sse/services/compression/engines/llmlingua/index.ts` `/compress` HTTP ଉପରେ ପଠାଇଥାଏ, ସାଇଡେକାର୍ ଡାଉନ୍ ଥିବାବେଳେ ଇନ୍-ପ୍ରୋସେସ୍ ୱାର୍କର୍-ଥ୍ରେଡ୍ ବ୍ୟାକେଣ୍ଡକୁ ଖସିଯାଏ। ଲାଇଫ୍ ସାଇକେଲ୍ ଦ୍ୱାରା ପରିଚାଳିତ କେବଳ — ଏକ ରାଉଟିଙ୍ଗ୍ ଟାର୍ଗେଟ୍ ନୁହେଁ। |
+| **ସିଙ୍ଗ-ବକ୍ସ** | GitHub ବାଇନାରୀ ରିଲିଜ୍ (`singbox`) | 20140 | TPROXY ସାଇଡେକାର୍ ବ୍ୟାକିଂ `applyTproxy()` ର ସ୍ୱଚ୍ଛ-ପ୍ରକ୍ସି ଇଣ୍ଟରସେପ୍ଟ (`src/mitm/tproxy/setup.ts`)। ସଂସ୍ଥାପକ ପିନ୍ ହୋଇଥିବା, ଚେକସମ୍-ଯାଞ୍ଚ ହୋଇଥିବା ପ୍ରକାଶନକୁ ଡାଉନଲୋଡ୍ କରେ। ଲାଇଫ୍ ସାଇକେଲ୍ ଦ୍ୱାରା ପରିଚାଳିତ କେବଳ — ଏକ ରାଉଟିଙ୍ଗ୍ ଟାର୍ଗେଟ୍ ନୁହେଁ ( LLM ପ୍ରକ୍ସିଂ ନାହିଁ)। |
+
+ସମସ୍ତ ଆଠଟି ସମାନ ପର୍ଯ୍ୟବେକ୍ଷକ ମଡେଲକୁ ଅନୁସରଣ କରନ୍ତି:
+
+- OmniRoute ସେମାନଙ୍କୁ `DATA_DIR/services/{name}/` ଅଧୀନରେ ସଂସ୍ଥାପନ କରେ ( OmniRoute ର ନିଜସ୍ୱ `package.json` ରୁ ପୃଥକ)।
+- OmniRoute ସେମାନଙ୍କୁ ଶିଶୁ ପ୍ରକ୍ରିୟା ଭାବରେ ସ୍ପାଉନ୍ କରେ ଏବଂ ମନିଟର୍ କରେ।
+- OmniRoute ଶିଶୁର ପରିବେଶରେ ଏକ ଏଫେମେରାଲ୍ API କି ଇଞ୍ଜେକ୍ସନ୍ କରେ ଏବଂ ଏହାକୁ ଡାଉନଟାଇମ୍ ବିନା ଘୂର୍ଣ୍ଣନ କରେ (ଯେଉଁଠାରେ ପ୍ରଯୁଜ୍ୟ)
+- ସମସ୍ତ ପରିଚାଳନା ମାର୍ଗ (`/api/services/*`) ହେଉଛି।**LOCAL_ONLY** — କେବଳ ଲୁପବ୍ୟାକ୍ (ହାର୍ଡ ନିୟମ #17) ରୁ ଉପଲବ୍ଧ।
+
+### ପରିଚାଳିତ ପ୍ରକ୍ସି କୋରଗୁଡିକ।
+
+କଷ୍ଟମ୍ ପ୍ରକ୍ସି ହୋଷ୍ଟ ଫିଲ୍ଡ ମଧ୍ୟ ଏକ V2Ray ଉତ୍ସ ଲିଙ୍କ୍ ଗ୍ରହଣ କରେ। ଚୟନ କରନ୍ତୁ।** ସିଙ୍ଗ-ବକ୍ସ** କିମ୍ବା** Xray** ସ୍ପଷ୍ଟ ଭାବରେ, ତାପରେ ସେଭ୍ କ୍ଲିକ୍ କରନ୍ତୁ। ଟାଇପିଂ କଦାପି ଡାଉନଲୋଡ୍ କରେ ନାହିଁ କିମ୍ବା ଏକ କୋର୍ ଆରମ୍ଭ କରେ ନାହିଁ। ସେଭ୍ ଅଫିସିଆଲ୍ ରିଲିଜ୍ ଅଭିଲେଖାଗାର ଯାଞ୍ଚ କରେ, ଦେଶୀ ବିନ୍ୟାସକୁ ବ valid ଧ କରେ, ଏକ ଭିନ୍ନ ଲୋକାଲ୍ ହୋଷ୍ଟ SOCKS ଶ୍ରୋତା ଆରମ୍ଭ କରେ, ଏବଂ କେବଳ ସେତେବେଳେ ପ୍ରକ୍ସି ରେଜିଷ୍ଟ୍ରି ଆସାଇନମେଣ୍ଟ ଲେଖେ। ବିଫଳ ସକ୍ରିୟତା ପୂର୍ବ ପରିଚାଳିତ ସଂରଚନା ଏବଂ ପ୍ରକ୍ରିୟାକୁ ପୁନ ores ସ୍ଥାପନ କରେ। `STORAGE_ENCRYPTION_KEY` ଆବଶ୍ୟକ; ଉତ୍ସ ଲିଙ୍କଗୁଡ଼ିକ ଏନକ୍ରିପ୍ଟ ହୋଇଛି।
+
+ପରିଚାଳିତ ଫାଇଲଗୁଡ଼ିକ `DATA_DIR/services/managed-proxy/` ଠାରୁ ଅଲଗା, TPROXY ଠାରୁ ଅଲଗା। 100 ଟି ଶ୍ରୋତା ପର୍ଯ୍ୟନ୍ତ ମନୋନୀତ କୋର୍ ପ୍ରତି ଗୋଟିଏ ମାଲିକାନା ପ୍ରକ୍ରିୟା ଅଛି। କ aut ଣସି ଅଟୋଷ୍ଟାର୍ଟ କିମ୍ବା ଗ୍ଲୋବାଲ୍ ରାଉଟିଙ୍ଗ୍ ଡିଫଲ୍ଟ ପରିବର୍ତ୍ତନ ହୋଇନାହିଁ। ସଫଳ ସଞ୍ଚୟ କେବଳ ଏହି ପରିଚାଳିତ କୋର ପାଇଁ ସକ୍ରିୟତାକୁ ମନେ ରଖିଥାଏ। ପ୍ରୟୋଗ ଷ୍ଟାର୍ଟଅପ୍ ପୂର୍ବରୁ ଯାଞ୍ଚ ହୋଇଥିବା ବାଇନାରୀ ବ୍ୟବହାର କରି ସଞ୍ଚିତ କୋରଗୁଡ଼ିକୁ ପୁନ ores ସ୍ଥାପନ କରିଥାଏ, କଦାପି ବୁଟ-ଟାଇମ୍ ଡାଉନଲୋଡ୍ ନୁହେଁ। ସ୍ପଷ୍ଟ ଷ୍ଟପ୍ ସେହି ଆକ୍ଟିଭେସନ୍ ପତାକା ସଫା କରେ। ଏକ ନିଖୋଜ କିମ୍ବା ନଷ୍ଟ ହୋଇଥିବା ବାଇନାରୀ ଏକ ଉତ୍ସକୁ ପୁନ saving ସଂରକ୍ଷଣ କରିବା ଆବଶ୍ୟକ କରେ। ରେଜିଷ୍ଟ୍ରି ବିଲୋପ ଉତ୍ସ ଏବଂ ଶ୍ରୋତାଙ୍କୁ ସ୍ଥାନୀୟ ଭାବରେ ଅପସାରଣ କରେ; ପରିଚାଳିତ ଧାଡିଗୁଡିକ ପାଇଁ ସାଧାରଣ ଏଣ୍ଡପଏଣ୍ଟ ଏଡିଟ୍ ଗୁଡିକ ପ୍ରତ୍ୟାଖ୍ୟାନ ହୋଇଛି ତେଣୁ ସଞ୍ଚିତ ଉତ୍ସ ଚୁପଚାପ୍ ଏହାର ରାଉଟ୍ ଶ୍ରୋତାମାନଙ୍କଠାରୁ ଦୂରେଇ ଯାଇପାରିବ ନାହିଁ।
+
+| ଉତ୍ସ ଫର୍ମାଟ୍। | ସିଙ୍ଗ-ବକ୍ସ | Xray |
+| ------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | ସମର୍ଥିତ ରୂପାନ୍ତର। | ସମର୍ଥିତ ରୂପାନ୍ତର। |
+| Hysteria2/hy2, TUIC, AnyTLS URI | ସମର୍ଥିତ ରୂପାନ୍ତର। | ପ୍ରତ୍ୟାଖ୍ୟାନ; ଏକ ସୁସଙ୍ଗତ କୋର ବ୍ୟବହାର କରନ୍ତୁ। |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | VLESS/VMess/Trojan ପାଇଁ ସମର୍ଥିତ। | VLESS/VMess/Trojan ପାଇଁ ସମର୍ଥିତ। |
+| XHTTP URI ପରିବହନ | ପ୍ରତ୍ୟାଖ୍ୟାନ | ସମର୍ଥିତ ରୂପାନ୍ତର। |
+| ଦେଶୀ ବାହାଘର JSON | ମନୋନୀତ କୋରର ଅନୁମୋଦିତ ପ୍ରକ୍ସି protocols/options, ସ୍ଥାନୀୟ ଭାବରେ ଯାଞ୍ଚ କରାଯାଇଛି। | ମନୋନୀତ କୋରର ଅନୁମୋଦିତ ପ୍ରକ୍ସି protocols/options, ସ୍ଥାନୀୟ ଭାବରେ ଯାଞ୍ଚ କରାଯାଇଛି। |
+
+ଅଜ୍ଞାତ ତାର ବିକଳ୍ପ, ଅସୁରକ୍ଷିତ TLS ଫ୍ଲାଗ, ବାହ୍ୟ ପ୍ଲଗଇନ୍, ସ୍ଥାନୀୟ ଫାଇଲ୍-ପଥ ବିକଳ୍ପ ଏବଂ ଅସମର୍ଥିତ ମିଶ୍ରଣକୁ ଚୁପଚାପ୍ ବର୍ଜନ କରିବା ପରିବର୍ତ୍ତେ ପ୍ରତ୍ୟାଖ୍ୟାନ କରାଯାଏ। ଦେଶୀ ବସ୍ତୁଗୁଡ଼ିକ ବାହ୍ୟ ସଂଜ୍ଞା, ସମ୍ପୂର୍ଣ୍ଣ-ମୂଳ ବିନ୍ୟାସ ନୁହେଁ; control/direct/bypass ବାହାଘର ଗ୍ରହଣୀୟ ନୁହେଁ। sing-box 1.14 ରେ WireGuard ଏଣ୍ଡପଏଣ୍ଟ ବ୍ୟବହାର କରେ, ତେଣୁ ଏହା ଏକ ଦେଶୀ ଆଉଟବାଉଣ୍ଡ ଭାବରେ ଗ୍ରହଣୀୟ ନୁହେଁ। ଏହା ଏକ ସର୍ବ-ଫର୍ମାଟ୍ ରୂପାନ୍ତରକାରୀ ନୁହେଁ; SSR, ପୁରୁଣା whole-base64 Shadowsocks ଲିଙ୍କ୍, ଇଚ୍ଛାଧୀନ କ୍ଲାସ୍ ବସ୍ତୁ ଏବଂ ସାରଣୀରୁ ଅନୁପସ୍ଥିତ ପରିବହନ ପ୍ରକାରଗୁଡିକ ଏକ ପୃଥକ ସମର୍ଥିତ ଉତ୍ସ ଫର୍ମାଟ୍ ଆବଶ୍ୟକ କରେ।
+
+`/api/services/managed-proxy` ପ୍ରାମାଣିକ ଏବଂ କେବଳ ଲୁପବ୍ୟାକ୍: GET ତାଲିକାଗୁଡ଼ିକ ରିଡାକ୍ଟ ହୋଇଥିବା ମେଟାଡାଟା, POST `{core,name,sourceLink,id?,assignment?}` ସଞ୍ଚୟ କରେ, PATCH `{core,action:"start"|"stop"}` ଗ୍ରହଣ କରେ। ହୋଷ୍ଟର ବିଶ୍ୱସ୍ତ ସାଥି-ଷ୍ଟାମ୍ପ ପାଇପଲାଇନ ଉପସ୍ଥିତ ରହିବା ଜରୁରୀ। ଦେଶୀ କୋର ଡାଇଗ୍ନୋଷ୍ଟିକ୍ ଦମନ କରାଯାଇଥାଏ କାରଣ ସେମାନେ ପରିଚୟପତ୍ର ଧାରଣ କରିପାରନ୍ତି; ଜୀବନଚକ୍ର ଇଭେଣ୍ଟଗୁଡିକ ଉତ୍ସ ଲିଙ୍କ୍ କିମ୍ବା ଅପଷ୍ଟ୍ରିମ୍ ପେଲୋଡ୍ ବିନା ବିଦ୍ୟମାନ ସଂରଚନା ପ୍ରୟୋଗ ଫାଇଲ୍ ଲଗରକୁ ବ୍ୟବହାର କରେ। ସମର୍ଥନ ପାଇଁ କେବଳ ସାନିଟାଇଜଡ୍ ଆପ୍ଲିକେସନ୍ ଲଗ୍ ସଂଲଗ୍ନ କରନ୍ତୁ। ଅଫିସିଆଲ୍ ସଂସ୍କରଣଗୁଡ଼ିକ ସିଙ୍ଗ-ବକ୍ସ 1.14.3 ଏବଂ Xray 26.3.27 କୁ ରିଲିଜ୍-ଆସେଟ୍ SHA-256 ମନିଫେଷ୍ଟସ୍ ସହିତ ପିନ୍ କରାଯାଇଛି। ଭବିଷ୍ୟତର ଅଦ୍ୟତନଗୁଡ଼ିକ ସଂସ୍କରଣ ଏବଂ ସମସ୍ତ ଯାଞ୍ଚ ହୋଇଥିବା ହଜମକୁ ଏକତ୍ର ପରିବର୍ତ୍ତନ କରିବା ଆବଶ୍ୟକ କରେ।
+
+### ମୁଖ୍ୟ ନିଷ୍ପତ୍ତି (ଡିଜାଇନ୍ ଯୋଜନାରୁ)
+
+| ନିଷ୍ପତ୍ତି | ମୂଲ୍ୟ |
+| ------------------------------------- | -------------------------------------------------------------------------------------------- |
+| 9 ରାଉଟର ଦେଶୀ UI କୁ ଡ୍ୟାସବୋର୍ଡ ପ୍ରବେଶ। | `/dashboard/providers/services/9router/embed/*` ରେ ଓଲଟା ପ୍ରକ୍ସି। |
+| ସ୍ଥାପନ କ mechanism ଶଳ | `execFile` ମାଧ୍ୟମରେ`npm install {package}` (କ shell ଣସି ସେଲ ଇଣ୍ଟରପୋଲେସନ୍ ନାହିଁ) |
+| ବ୍ୟବହାର ଧାରା | ପ୍ରଦାନକାରୀ ରାଉଟିଙ୍ଗ ଇଞ୍ଜିନରେ `9router/{sub}/{model}` ଭାବରେ ପଞ୍ଜିକୃତ। |
+| API କି ପରିଚାଳନା | OmniRoute ସୃଷ୍ଟି କରେ, ବିଶ୍ରାମରେ ଏନକ୍ରିପ୍ଟ କରେ (AES-256-GCM), ଏବଂ env ମାଧ୍ୟମରେ ଇଞ୍ଜେକ୍ସନ ଦିଏ। |
+| ଡ୍ୟାସବୋର୍ଡ ଅବସ୍ଥାନ। | `/dashboard/providers/services` (ତିନୋଟି ଟ୍ୟାବ୍) |
+| ଅଟୋ-ଷ୍ଟାର୍ଟ। | ସେବା ପ୍ରତି ଟୋଗଲ୍ କରନ୍ତୁ, ଡିଫଲ୍ଟ OFF |
---
diff --git a/docs/i18n/pa/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/pa/docs/frameworks/EMBEDDED-SERVICES.md
index dc00ff0f42a1..32523d5a86c6 100644
--- a/docs/i18n/pa/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/pa/docs/frameworks/EMBEDDED-SERVICES.md
@@ -47,16 +47,34 @@
- OmniRoute ਬੱਚੇ ਦੇ ਵਾਤਾਵਰਣ ਵਿੱਚ ਇੱਕ ਅਕਾਦਮੀ API ਕੁੰਜੀ ਨੂੰ ਇੰਜੈਕਟ ਕਰਦਾ ਹੈ ਅਤੇ ਇਸਨੂੰ ਡਾਊਨਟਾਈਮ ਤੋਂ ਬਿਨਾਂ ਘੁੰਮਾਉਂਦਾ ਹੈ (ਜਿੱਥੇ ਲਾਗੂ ਹੁੰਦਾ ਹੈ)
- ਸਾਰੇ ਪ੍ਰਬੰਧਨ ਰਸਤੇ (`/api/services/*`) ਹਨ**LOCAL_ONLY** — ਸਿਰਫ਼ ਲੂਪਬੈਕ ਤੋਂ ਪਹੁੰਚਯੋਗ (ਸਖਤ ਨਿਯਮ #17)
+### ਪ੍ਰਬੰਧਿਤ ਪ੍ਰੌਕਸੀ ਕੋਰ
+
+ਕਸਟਮ ਪ੍ਰੌਕਸੀ ਹੋਸਟ ਖੇਤਰ ਇੱਕ V2Ray ਸਰੋਤ ਲਿੰਕ ਨੂੰ ਵੀ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ। ਚੁਣੋ** sing-box** ਜਾਂ** ਐਕਸਰੇ** ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ, ਫਿਰ ਸੇਵ 'ਤੇ ਕਲਿੱਕ ਕਰੋ। ਟਾਈਪਿੰਗ ਕਦੇ ਵੀ ਡਾਊਨਲੋਡ ਜਾਂ ਕੋਰ ਸ਼ੁਰੂ ਨਹੀਂ ਹੁੰਦੀ ਹੈ। ਸੇਵ ਅਧਿਕਾਰਤ ਰੀਲੀਜ਼ ਆਰਕਾਈਵ ਦੀ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ, ਨੇਟਿਵ ਕੌਂਫਿਗਰੇਸ਼ਨ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਦਾ ਹੈ, ਇੱਕ ਵੱਖਰਾ ਲੋਕਲਹੋਸਟ SOCKS ਲਿਸਨਰ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ, ਅਤੇ ਕੇਵਲ ਤਦ ਹੀ ਪ੍ਰੌਕਸੀ ਰਜਿਸਟਰੀ ਅਸਾਈਨਮੈਂਟ ਲਿਖਦਾ ਹੈ। ਅਸਫਲ ਸਰਗਰਮੀ ਪਿਛਲੀ ਵਿਵਸਥਿਤ ਸੰਰਚਨਾ ਅਤੇ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਬਹਾਲ ਕਰਦੀ ਹੈ। `STORAGE_ENCRYPTION_KEY` ਦੀ ਲੋੜ ਹੈ; ਸਰੋਤ ਲਿੰਕ ਐਨਕ੍ਰਿਪਟ ਕੀਤੇ ਗਏ ਹਨ।
+
+ਪ੍ਰਬੰਧਿਤ ਫਾਈਲਾਂ `DATA_DIR/services/managed-proxy/` ਦੇ ਅਧੀਨ ਰਹਿੰਦੀਆਂ ਹਨ, TPROXY ਤੋਂ ਵੱਖਰੀਆਂ। ਪ੍ਰਤੀ ਚੁਣੇ ਹੋਏ ਕੋਰ, 100 ਸਰੋਤਿਆਂ ਤੱਕ ਇੱਕ ਮਲਕੀਅਤ ਵਾਲੀ ਪ੍ਰਕਿਰਿਆ ਹੈ। ਕੋਈ ਆਟੋਸਟਾਰਟ ਜਾਂ ਗਲੋਬਲ ਰਾਊਟਿੰਗ ਡਿਫੌਲਟ ਨਹੀਂ ਬਦਲਿਆ ਗਿਆ ਹੈ। ਸਫਲ ਸੇਵ ਸਿਰਫ ਇਸ ਪ੍ਰਬੰਧਿਤ ਕੋਰ ਲਈ ਕਿਰਿਆਸ਼ੀਲਤਾ ਨੂੰ ਯਾਦ ਰੱਖਦਾ ਹੈ; ਐਪਲੀਕੇਸ਼ਨ ਸਟਾਰਟਅਪ ਪਹਿਲਾਂ ਤੋਂ ਪ੍ਰਮਾਣਿਤ ਬਾਈਨਰੀ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਸੁਰੱਖਿਅਤ ਕੀਤੇ ਕੋਰਾਂ ਨੂੰ ਰੀਸਟੋਰ ਕਰਦਾ ਹੈ, ਕਦੇ ਵੀ ਬੂਟ-ਟਾਈਮ ਡਾਉਨਲੋਡ ਨਹੀਂ। ਸਪਸ਼ਟ ਸਟਾਪ ਉਸ ਸਰਗਰਮੀ ਫਲੈਗ ਨੂੰ ਸਾਫ਼ ਕਰਦਾ ਹੈ। ਇੱਕ ਗੁੰਮ ਜਾਂ ਖਰਾਬ ਬਾਈਨਰੀ ਲਈ ਇੱਕ ਸਰੋਤ ਨੂੰ ਮੁੜ-ਸੁਰੱਖਿਅਤ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਰਜਿਸਟਰੀ ਨੂੰ ਮਿਟਾਉਣਾ ਸਰੋਤ ਅਤੇ ਸਰੋਤਿਆਂ ਨੂੰ ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਹਟਾਉਂਦਾ ਹੈ; ਪ੍ਰਬੰਧਿਤ ਕਤਾਰਾਂ ਲਈ ਸਧਾਰਣ ਅੰਤਮ ਬਿੰਦੂ ਸੰਪਾਦਨਾਂ ਨੂੰ ਅਸਵੀਕਾਰ ਕਰ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ ਤਾਂ ਜੋ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਸਰੋਤ ਚੁੱਪਚਾਪ ਇਸਦੇ ਰੂਟ ਕੀਤੇ ਸਰੋਤਿਆਂ ਤੋਂ ਦੂਰ ਨਹੀਂ ਜਾ ਸਕਦਾ।
+
+| ਸਰੋਤ ਫਾਰਮੈਟ | sing-box | ਐਕਸਰੇ |
+| ------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | ਸਹਿਯੋਗੀ ਪਰਿਵਰਤਨ | ਸਹਿਯੋਗੀ ਪਰਿਵਰਤਨ |
+| Hysteria2/hy2, TUIC, AnyTLS URI | ਸਹਿਯੋਗੀ ਪਰਿਵਰਤਨ | ਅਸਵੀਕਾਰ; ਇੱਕ ਅਨੁਕੂਲ ਕੋਰ ਦੀ ਵਰਤੋਂ ਕਰੋ |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | VLESS/VMess/Trojan ਲਈ ਸਮਰਥਿਤ ਹੈ | VLESS/VMess/Trojan ਲਈ ਸਮਰਥਿਤ ਹੈ |
+| XHTTP URI ਆਵਾਜਾਈ | ਰੱਦ ਕਰ ਦਿੱਤਾ | ਸਹਿਯੋਗੀ ਪਰਿਵਰਤਨ |
+| ਨੇਟਿਵ ਆਊਟਬਾਉਂਡ JSON | ਚੁਣੇ ਗਏ ਕੋਰ ਦੀ ਮਨਜ਼ੂਰ ਪ੍ਰੌਕਸੀ protocols/options, ਨੇਟਿਵ ਤੌਰ 'ਤੇ ਜਾਂਚ ਕੀਤੀ ਗਈ | ਚੁਣੇ ਗਏ ਕੋਰ ਦੀ ਮਨਜ਼ੂਰ ਪ੍ਰੌਕਸੀ protocols/options, ਨੇਟਿਵ ਤੌਰ 'ਤੇ ਜਾਂਚ ਕੀਤੀ ਗਈ |
+
+ਅਣਜਾਣ ਤਾਰ ਵਿਕਲਪ, ਅਸੁਰੱਖਿਅਤ TLS ਫਲੈਗ, ਬਾਹਰੀ ਪਲੱਗਇਨ, ਸਥਾਨਕ ਫਾਈਲ-ਪਾਥ ਵਿਕਲਪ ਅਤੇ ਅਸਮਰਥਿਤ ਸੰਜੋਗਾਂ ਨੂੰ ਚੁੱਪਚਾਪ ਰੱਦ ਕਰਨ ਦੀ ਬਜਾਏ ਰੱਦ ਕਰ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ। ਮੂਲ ਵਸਤੂਆਂ ਆਊਟਬਾਉਂਡ ਪਰਿਭਾਸ਼ਾਵਾਂ ਹਨ, ਨਾ ਕਿ ਪੂਰੀ-ਕੋਰ ਸੰਰਚਨਾਵਾਂ; control/direct/bypass ਆਊਟਬਾਉਂਡ ਸਵੀਕਾਰ ਨਹੀਂ ਕੀਤੇ ਜਾਂਦੇ ਹਨ। sing-box 1.14 'ਤੇ WireGuard ਅੰਤਮ ਬਿੰਦੂਆਂ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ, ਇਸਲਈ ਇਸਨੂੰ ਮੂਲ ਆਊਟਬਾਉਂਡ ਵਜੋਂ ਸਵੀਕਾਰ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਇਹ ਇੱਕ ਆਲ-ਫਾਰਮੈਟ ਕਨਵਰਟਰ ਨਹੀਂ ਹੈ; SSR, ਲੀਗੇਸੀ whole-base64 ਸ਼ੈਡੋਸੌਕਸ ਲਿੰਕਸ, ਆਰਬਿਟਰਰੀ ਕਲੈਸ਼ ਆਬਜੈਕਟ ਅਤੇ ਟੇਬਲ ਤੋਂ ਗੈਰਹਾਜ਼ਰ ਟ੍ਰਾਂਸਪੋਰਟ ਵੇਰੀਐਂਟਸ ਨੂੰ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਸਮਰਥਿਤ ਸਰੋਤ ਫਾਰਮੈਟ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
+
+`/api/services/managed-proxy` ਪ੍ਰਮਾਣਿਤ ਅਤੇ ਲੂਪਬੈਕ-ਸਿਰਫ਼ ਹੈ: GET ਰੀਡੈਕਟ ਕੀਤੇ ਮੈਟਾਡੇਟਾ ਨੂੰ ਸੂਚੀਬੱਧ ਕਰਦਾ ਹੈ, POST `{core,name,sourceLink,id?,assignment?}` ਸੁਰੱਖਿਅਤ ਕਰਦਾ ਹੈ, PATCH `{core,action:"start"|"stop"}` ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ। ਹੋਸਟ ਦੀ ਭਰੋਸੇਯੋਗ ਪੀਅਰ-ਸਟੈਂਪ ਪਾਈਪਲਾਈਨ ਮੌਜੂਦ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ। ਨੇਟਿਵ ਕੋਰ ਡਾਇਗਨੌਸਟਿਕਸ ਨੂੰ ਦਬਾਇਆ ਜਾਂਦਾ ਹੈ ਕਿਉਂਕਿ ਉਹਨਾਂ ਵਿੱਚ ਪ੍ਰਮਾਣ ਪੱਤਰ ਸ਼ਾਮਲ ਹੋ ਸਕਦੇ ਹਨ; ਲਾਈਫਸਾਈਕਲ ਇਵੈਂਟਸ ਮੌਜੂਦਾ ਸਟ੍ਰਕਚਰਡ ਐਪਲੀਕੇਸ਼ਨ ਫਾਈਲ ਲੌਗਰ ਦੀ ਵਰਤੋਂ ਬਿਨਾਂ ਸਰੋਤ ਲਿੰਕ ਜਾਂ ਅੱਪਸਟ੍ਰੀਮ ਪੇਲੋਡ ਦੇ ਕਰਦੇ ਹਨ। ਸਹਾਇਤਾ ਲਈ ਸਿਰਫ ਰੋਗਾਣੂ-ਮੁਕਤ ਐਪਲੀਕੇਸ਼ਨ ਲੌਗ ਨੱਥੀ ਕਰੋ। ਅਧਿਕਾਰਤ ਸੰਸਕਰਣਾਂ ਨੂੰ ਰਿਲੀਜ਼-ਸੰਪੱਤੀ SHA-256 ਮੈਨੀਫੈਸਟ ਦੇ ਨਾਲ ਸਿੰਗ-ਬਾਕਸ 1.14.3 ਅਤੇ Xray 26.3.27 ਵਿੱਚ ਪਿੰਨ ਕੀਤਾ ਗਿਆ ਹੈ; ਭਵਿੱਖ ਦੇ ਅੱਪਡੇਟਾਂ ਲਈ ਵਰਜਨ ਅਤੇ ਸਾਰੇ ਪ੍ਰਮਾਣਿਤ ਡਾਇਜੈਸਟਾਂ ਨੂੰ ਇਕੱਠੇ ਬਦਲਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
+
### ਮੁੱਖ ਫੈਸਲੇ (ਡਿਜ਼ਾਇਨ ਯੋਜਨਾ ਤੋਂ)
-| ਫੈਸਲਾ | ਮੁੱਲ |
-| --------------------------------- | --------------------------------------------------------------------------------------------- |
-| 9Router ਮੂਲ UI ਤੱਕ ਡੈਸ਼ਬੋਰਡ ਪਹੁੰਚ | `/dashboard/providers/services/9router/embed/*` ਤੇ ਉਲਟਾ ਪ੍ਰੌਕਸੀ |
-| ਇੰਸਟਾਲੇਸ਼ਨ ਵਿਧੀ | `npm install {package}` ਰਾਹੀਂ `execFile` (ਕੋਈ ਸ਼ੈੱਲ ਇੰਟਰਪੋਲੇਸ਼ਨ ਨਹੀਂ) |
-| ਖਪਤ ਮੋਡ | ਰੂਟਿੰਗ ਇੰਜਣ ਵਿੱਚ `9router/{sub}/{model}` ਵਜੋਂ ਰਜਿਸਟਰਡ ਪ੍ਰਦਾਤਾ |
-| API ਕੁੰਜੀ ਪ੍ਰਬੰਧਨ | OmniRoute ਉਤਪੰਨ ਕਰਦਾ ਹੈ, ਏਨਕ੍ਰਿਪਟ ਕਰਦਾ ਹੈ ਅਟ-ਰੈਸਟ (AES-256-GCM), ਅਤੇ env ਦੁਆਰਾ ਇੰਜੈਕਟ ਕਰਦਾ ਹੈ |
-| ਡੈਸ਼ਬੋਰਡ ਟਿਕਾਣਾ | `/dashboard/providers/services` (ਤਿੰਨ ਟੈਬਸ) |
-| ਆਟੋ-ਸਟਾਰਟ | ਪ੍ਰਤੀ ਸੇਵਾ ਟੌਗਲ, ਡਿਫੌਲਟ OFF |
+| ਫੈਸਲਾ | ਮੁੱਲ |
+| --------------------------------- | ------------------------------------------------------------------------------------- |
+| 9Router ਮੂਲ UI ਤੱਕ ਡੈਸ਼ਬੋਰਡ ਪਹੁੰਚ | `/dashboard/providers/services/9router/embed/*` ਤੇ ਉਲਟਾ ਪ੍ਰੌਕਸੀ |
+| ਇੰਸਟਾਲੇਸ਼ਨ ਵਿਧੀ | `npm install {package}` ਰਾਹੀਂ `execFile` (ਕੋਈ ਸ਼ੈੱਲ ਇੰਟਰਪੋਲੇਸ਼ਨ ਨਹੀਂ) |
+| ਖਪਤ ਮੋਡ | ਰੂਟਿੰਗ ਇੰਜਣ ਵਿੱਚ `9router/{sub}/{model}` ਵਜੋਂ ਰਜਿਸਟਰਡ ਪ੍ਰਦਾਤਾ |
+| API ਕੁੰਜੀ ਪ੍ਰਬੰਧਨ | OmniRoute ਜਨਰੇਟ ਕਰਦਾ ਹੈ, ਏਨਕ੍ਰਿਪਟ ਐਟ-ਰੈਸਟ (AES-256-GCM), ਅਤੇ env ਰਾਹੀਂ ਇੰਜੈਕਟ ਕਰਦਾ ਹੈ |
+| ਡੈਸ਼ਬੋਰਡ ਟਿਕਾਣਾ | `/dashboard/providers/services` (ਤਿੰਨ ਟੈਬਸ) |
+| ਆਟੋ-ਸਟਾਰਟ | ਪ੍ਰਤੀ ਸੇਵਾ ਟੌਗਲ, ਡਿਫੌਲਟ OFF |
---
@@ -137,23 +155,23 @@
### ਮੁੱਖ ਸਰੋਤ ਫਾਈਲਾਂ
-| ਫਾਈਲ | ਭੂਮਿਕਾ |
-| ------------------------------------------- | --------------------------------------------- |
-| `src/lib/services/ServiceSupervisor.ts` | ਕੋਰ ਕਲਾਸ: ਜੀਵਨ ਚੱਕਰ, ਲਾਕ, ਸਿਹਤ, ਰਿੰਗ ਬਫਰ |
-| `src/lib/services/bootstrap.ts` | ਪ੍ਰਕਿਰਿਆ-ਪੱਧਰ ਦੀ ਰਜਿਸਟ੍ਰੇਸ਼ਨ ਅਤੇ ਆਟੋ-ਸਟਾਰਟ |
-| `src/lib/services/registry.ts` | ਸਿੰਗਲਟਨ ਨਕਸ਼ਾ `tool → supervisor` |
-| `src/lib/services/apiKey.ts` | ਕੁੰਜੀ ਪੀੜ੍ਹੀ, AES-256-GCM ਏਨਕ੍ਰਿਪਸ਼ਨ 'ਤੇ-ਆਰਾਮ |
-| `src/lib/services/modelSync.ts` | ਪੀਰੀਅਡਿਕ ਮਾਡਲ ਸਿੰਕ (5 ਮਿੰਟ) + ਆਨ-ਡਿਮਾਂਡ |
-| `src/lib/services/ringBuffer.ts` | SSE ਸਬਸਕ੍ਰਾਈਬ ਦੇ ਨਾਲ 5 MB ਸਰਕੂਲਰ ਲੌਗ ਬਫਰ |
-| `src/lib/services/healthCheck.ts` | HTTP ਸਿਹਤ ਜਾਂਚ (ਸੰਰਚਨਾਯੋਗ ਅੰਤਰਾਲ) |
-| `src/lib/services/installers/ninerouter.ts` | 9 ਰਾਊਟਰ ਲਈ npm install/update/uninstall |
-| `src/lib/services/installers/cliproxy.ts` | CLIProxyAPI ਲਈ npm install/update/uninstall |
-| `src/lib/services/installers/mux.ts` | Mux ਲਈ npm install/update/uninstall |
-| `src/lib/services/installers/openwa.ts` | ਓਪਨ-ਵਾ ਲਈ npm install/update/uninstall |
-| `src/lib/services/installers/llmlingua.ts` | LLMLingua ਲਈ npm install/update/uninstall |
-| `src/app/api/services/9router/_lib.ts` | `getOrInitSupervisor()` ਸਹਾਇਕ |
-| `src/app/api/services/[name]/logs/route.ts` | ਸ਼ੇਅਰਡ SSE ਲੌਗਸ ਐਂਡਪੁਆਇੰਟ |
-| `open-sse/executors/ninerouter.ts` | ਪ੍ਰੋਵਾਈਡਰ ਐਗਜ਼ੀਕਿਊਟਰ (ਲੇਅਰ 4) |
+| ਫਾਈਲ | ਭੂਮਿਕਾ |
+| ------------------------------------------- | -------------------------------------------- |
+| `src/lib/services/ServiceSupervisor.ts` | ਕੋਰ ਕਲਾਸ: ਜੀਵਨ ਚੱਕਰ, ਲਾਕ, ਸਿਹਤ, ਰਿੰਗ ਬਫਰ |
+| `src/lib/services/bootstrap.ts` | ਪ੍ਰਕਿਰਿਆ-ਪੱਧਰ ਦੀ ਰਜਿਸਟ੍ਰੇਸ਼ਨ ਅਤੇ ਆਟੋ-ਸਟਾਰਟ |
+| `src/lib/services/registry.ts` | ਸਿੰਗਲਟਨ ਨਕਸ਼ਾ `tool → supervisor` |
+| `src/lib/services/apiKey.ts` | ਕੁੰਜੀ ਪੀੜ੍ਹੀ, AES-256-GCM ਏਨਕ੍ਰਿਪਸ਼ਨ ਤੇ ਆਰਾਮ |
+| `src/lib/services/modelSync.ts` | ਪੀਰੀਅਡਿਕ ਮਾਡਲ ਸਿੰਕ (5 ਮਿੰਟ) + ਆਨ-ਡਿਮਾਂਡ |
+| `src/lib/services/ringBuffer.ts` | SSE ਸਬਸਕ੍ਰਾਈਬ ਦੇ ਨਾਲ 5 MB ਸਰਕੂਲਰ ਲੌਗ ਬਫਰ |
+| `src/lib/services/healthCheck.ts` | HTTP ਹੈਲਥ ਪੜਤਾਲ (ਸੰਰਚਨਾਯੋਗ ਅੰਤਰਾਲ) |
+| `src/lib/services/installers/ninerouter.ts` | 9 ਰਾਊਟਰ ਲਈ npm install/update/uninstall |
+| `src/lib/services/installers/cliproxy.ts` | CLIProxyAPI ਲਈ npm install/update/uninstall |
+| `src/lib/services/installers/mux.ts` | Mux ਲਈ npm install/update/uninstall |
+| `src/lib/services/installers/openwa.ts` | ਓਪਨ-ਵਾ ਲਈ npm install/update/uninstall |
+| `src/lib/services/installers/llmlingua.ts` | LLMLingua ਲਈ npm install/update/uninstall |
+| `src/app/api/services/9router/_lib.ts` | `getOrInitSupervisor()` ਸਹਾਇਕ |
+| `src/app/api/services/[name]/logs/route.ts` | ਸ਼ੇਅਰਡ SSE ਲੌਗਸ ਐਂਡਪੁਆਇੰਟ |
+| `open-sse/executors/ninerouter.ts` | ਪ੍ਰੋਵਾਈਡਰ ਐਗਜ਼ੀਕਿਊਟਰ (ਲੇਅਰ 4) |
---
diff --git a/docs/i18n/phi/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/phi/docs/frameworks/EMBEDDED-SERVICES.md
index d39be1bca06b..d6d51a02bd17 100644
--- a/docs/i18n/phi/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/phi/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,7 +45,25 @@ Lahat ng walo ay sumusunod sa parehong supervisory model:
- ini-install OmniRoute ang mga ito sa ilalim `DATA_DIR/services/{name}/` (nahihiwalay sa sariling `package.json` ng OmniRoute)
- OmniRoute spawns at sinusubaybayan ang mga ito bilang proseso ng bata
- OmniRoute ay nag-inject ng ephemeral API key sa kapaligiran ng bata at iniikot ito nang walang downtime (kung saan naaangkop)
-- Ang lahat ng mga ruta ng pamamahala (`/api/services/*`) ay**LOCAL_ONLY** Maa-access lang — mula sa loopback (hard rule #17)
+- Ang lahat ng mga ruta ng pamamahala (`/api/services/*`) ay**LOCAL_ONLY** — maa-access lamang mula sa loopback (hard rule #17)
+
+### Mga pinamamahalaang proxy core
+
+Tumatanggap din ang field ng Custom na proxy host ng link ng pinagmulang V2Ray. Pumili** sing-box** o** Xray** tahasan, pagkatapos ay i-click ang I-save. Ang pag-type ay hindi kailanman magda-download o magsisimula ng isang core. Bine-verify ng Save ang opisyal na archive ng release, pinapatunayan ang native na configuration, nagsisimula ng isang natatanging localhost SOCKS listener, at pagkatapos lamang isusulat ang pagtatalaga ng proxy registry. Ibinabalik ng nabigong pag-activate ang nakaraang pinamamahalaang configuration at proseso. `STORAGE_ENCRYPTION_KEY` ay kinakailangan; naka-encrypt ang mga source link.
+
+Ang mga pinamamahalaang file ay nakatira sa ilalim `DATA_DIR/services/managed-proxy/`, hiwalay sa TPROXY. Mayroong isang pag-aari na proseso sa bawat napiling core, hanggang sa 100 tagapakinig. Walang binago ang autostart o global na default na pagruruta. Naaalala ng matagumpay na Save ang activation para sa pinamamahalaang core na ito lamang; nire-restore ng application startup ang mga naka-enable na naka-save na core gamit ang na-verify na binary, hindi kailanman isang boot-time na pag-download. Tinatanggal ng Explicit Stop ang flag ng activation na iyon. Ang isang nawawala o nasira na binary ay nangangailangan ng muling pag-save ng pinagmulan. Tinatanggal ng pagtanggal ng rehistro ang pinagmulan at tagapakinig nang lokal; ang mga ordinaryong endpoint na pag-edit ay tinatanggihan para sa mga pinamamahalaang row upang ang naka-save na pinagmulan ay hindi maaaring tahimik na maanod mula sa iruruta nitong tagapakinig.
+
+| Format ng pinagmulan | sing-box | Xray |
+| ------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | Sinusuportahang conversion | Sinusuportahang conversion |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Sinusuportahang conversion | Tinanggihan; gumamit ng katugmang core |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Sinusuportahan para sa VLESS/VMess/Trojan | Sinusuportahan para sa VLESS/VMess/Trojan |
+| XHTTP URI transportasyon | Tinanggihan | Sinusuportahang conversion |
+| Native outbound JSON | Pinapahintulutang proxy protocols/options ng napiling core, native na nilagyan ng check | Pinapahintulutang proxy protocols/options ng napiling core, native na nilagyan ng check |
+
+Ang mga hindi kilalang opsyon sa wire, mga hindi secure TLS flag, mga panlabas na plugin, mga opsyon sa lokal na file-path at hindi sinusuportahang kumbinasyon ay tinatanggihan sa halip na tahimik na itapon. Ang mga native na bagay ay mga papalabas na kahulugan, hindi buong-core na mga pagsasaayos; control/direct/bypass outbounds ay hindi tinatanggap. WireGuard sa sing-box 1.14 ay gumagamit ng mga endpoint, kaya hindi ito tinatanggap bilang katutubong palabas. Ito ay hindi isang all-format converter; SSR, legacy whole-base64 Shadowsocks links, arbitrary Clash objects at transport variant na wala sa talahanayan ay nangangailangan ng hiwalay na sinusuportahang source format.
+
+`/api/services/managed-proxy` ay napatotohanan at loopback-only: GET lists redacted metadata, POST save `{core,name,sourceLink,id?,assignment?}`, PATCH accepts `{core,action:"start"|"stop"}`. Dapat na naroroon ang pinagkakatiwalaang pipeline ng peer-stamp ng host. Ang mga native na pangunahing diagnostic ay pinipigilan dahil maaari silang maglaman ng mga kredensyal; Ginagamit ng mga kaganapan sa lifecycle ang umiiral nang structured application file logger nang walang source link o upstream payload. Maglakip lamang ng mga na-sanitize na log ng application para sa suporta. Ang mga opisyal na bersyon ay naka-pin sa sing-box 1.14.3 at Xray 26.3.27 na may mga release-asset SHA-256 manifest; Nangangailangan ang mga update sa hinaharap na baguhin ang bersyon at lahat ng na-verify na digest nang magkasama.
### Mga pangunahing desisyon (mula sa plano ng disenyo)
diff --git a/docs/i18n/pl/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/pl/docs/frameworks/EMBEDDED-SERVICES.md
index 81f68f75bf54..2d7a7244d686 100644
--- a/docs/i18n/pl/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/pl/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,7 +45,25 @@ Cała ósemka kieruje się tym samym modelem nadzoru:
- OmniRoute instaluje je w `DATA_DIR/services/{name}/` (odizolowane od własnego `package.json` OmniRoute)
- OmniRoute tworzy je i monitoruje jako procesy potomne
- OmniRoute wprowadza efemeryczny klucz API do środowiska dziecka i obraca go bez przestojów (w stosownych przypadkach)
-- Wszystkie trasy zarządzania (`/api/services/*`) są**LOCAL_ONLY** — dostępne tylko z pętli zwrotnej (twarda zasada nr 17)
+- Wszystkie trasy zarządzania (`/api/services/*`) są**LOCAL_ONLY** — dostępne tylko z pętli zwrotnej (twarda reguła #17)
+
+### Zarządzane rdzenie proxy
+
+Pole Niestandardowy host proxy akceptuje także łącze źródłowe V2Ray. Wybierać** śpiewak** Lub** Xray** jawnie, a następnie kliknij Zapisz. Pisanie nigdy nie powoduje pobrania ani uruchomienia rdzenia. Save weryfikuje oficjalne archiwum wydań, sprawdza natywną konfigurację, uruchamia odrębny odbiornik SOCKS localhost i dopiero wtedy zapisuje przypisanie rejestru proxy. Nieudana aktywacja przywraca poprzednią zarządzaną konfigurację i proces. wymagane jest `STORAGE_ENCRYPTION_KEY` ; linki źródłowe są szyfrowane.
+
+Zarządzane pliki znajdują się w `DATA_DIR/services/managed-proxy/`, oddzielnie od TPROXY. Na wybrany rdzeń przypada jeden proces własny, do 100 słuchaczy. Nie zmienia się żadnych ustawień domyślnych autostartu ani globalnego routingu. Pomyślne zapisanie zapamiętuje aktywację tylko dla tego zarządzanego rdzenia; uruchamianie aplikacji przywraca włączone zapisane rdzenie przy użyciu już zweryfikowanego pliku binarnego, nigdy nie jest pobierane w czasie rozruchu. Jawne zatrzymanie czyści tę flagę aktywacji. Brakujący lub uszkodzony plik binarny wymaga ponownego zapisania źródła. Usunięcie rejestru usuwa lokalnie źródło i słuchacz; zwykłe zmiany w punktach końcowych są odrzucane w przypadku zarządzanych wierszy, więc zapisane źródło nie może po cichu odejść od kierowanego odbiornika.
+
+| Format źródłowy | śpiewak | Xray |
+| ------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
+| VLESS, VMess, trojan, Shadowsocks URI | Obsługiwana konwersja | Obsługiwana konwersja |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Obsługiwana konwersja | Odrzucony; użyj kompatybilnego rdzenia |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Obsługiwane dla VLESS/VMess/Trojan | Obsługiwane dla VLESS/VMess/Trojan |
+| XHTTP URI transport | Odrzucony | Obsługiwana konwersja |
+| Natywny wychodzący JSON | Dozwolony serwer proxy protocols/options wybranego rdzenia, sprawdzany natywnie | Dozwolony serwer proxy protocols/options wybranego rdzenia, sprawdzany natywnie |
+
+Nieznane opcje połączeń, niezabezpieczone flagi TLS, wtyczki zewnętrzne, opcje lokalnych ścieżek plików i nieobsługiwane kombinacje są raczej odrzucane niż dyskretnie odrzucane. Obiekty natywne to definicje wychodzące, a nie konfiguracje obejmujące cały rdzeń; Wyjścia control/direct/bypass nie są akceptowane. WireGuard w sing-boxie 1.14 używa punktów końcowych, więc nie jest akceptowany jako natywny ruch wychodzący. To nie jest konwerter wszystkich formatów; SSR, starsze linki whole-base64 Shadowsocks, dowolne obiekty Clash i warianty transportu nieobecne w tabeli wymagają oddzielnie obsługiwanego formatu źródłowego.
+
+`/api/services/managed-proxy` jest uwierzytelniana i obsługuje tylko pętlę zwrotną: GET wyświetla zredagowane metadane, POST zapisuje `{core,name,sourceLink,id?,assignment?}`, PATCH akceptuje `{core,action:"start"|"stop"}`. Musi być obecny zaufany potok stempli równorzędnych hosta. Natywne podstawowe narzędzia diagnostyczne są pomijane, ponieważ mogą zawierać poświadczenia; zdarzenia cyklu życia korzystają z istniejącego strukturalnego rejestratora plików aplikacji bez łączy źródłowych i ładunków nadrzędnych. Aby uzyskać pomoc, dołączaj tylko oczyszczone dzienniki aplikacji. Oficjalne wersje są przypięte do sing-box 1.14.3 i Xray 26.3.27 z manifestami SHA-256 zasobów wydania; przyszłe aktualizacje wymagają jednoczesnej zmiany wersji i wszystkich zweryfikowanych podsumowań.
### Kluczowe decyzje (z planu projektu)
diff --git a/docs/i18n/pt-BR/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/pt-BR/docs/frameworks/EMBEDDED-SERVICES.md
index 973760518e8e..89b1cd5bc4a6 100644
--- a/docs/i18n/pt-BR/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/pt-BR/docs/frameworks/EMBEDDED-SERVICES.md
@@ -29,23 +29,41 @@ Os serviços incorporados são ferramentas secundárias de processo instaladas l
Oito serviços estão incorporados:
-| Serviço | pacote npm | Porta padrão | Propósito |
-| ------------------- | ---------------------------------------- | :----------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| **9Roteador** | `9router` | 20130 | roteador AI que OmniRoute pode usar como subprovedor. Modelos expostos como `9router/{sub}/{model}` |
-| **CLIProxyAPI** | binário de liberação GitHub (`cliproxy`) | 8317 | Adaptador de proxy local para fluxos de autenticação Anthropic CLI. Fornece roteamento substituto quando os tokens OAuth expiram |
-| **Mux** | `mux` ( `mux server` sem cabeça) | 8322 | Daemon de orquestração de agente local (coder/mux). Somente — gerenciado pelo ciclo de vida, não um destino de roteamento (sem proxy LLM ). |
-| **Bifrost** | `@maximhq/bifrost` | 8080 | Vá para o back-end de retransmissão do gateway AI. Ao executar, selecionado automaticamente pela rota de retransmissão (`/v1/relay/`) |
-| **Dário** | `@askalf/dario` | 3456 | Proxy de assinatura Claude — alternative/failover para CLIProxyAPI para tráfego em formato de Claude-Code; a chave injetada torna-se `DARIO_ADMIN_TOKEN` bloqueando seu plano de controle `/admin/*` OAuth |
-| **abrir-wa** | `@open-wa/wa-automate` | 8323 | Automação WhatsApp Web (Chromium sem cabeça via Puppeteer). Somente — gerenciado pelo ciclo de vida não é um destino de roteamento. |
-| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Modelo sidecar de compactação de prompt — real LLMLingua-2 ONNX (porta JS/TS do algoritmo de Microsoft). `open-sse/services/compression/engines/llmlingua/index.ts` despacha `/compress` sobre HTTP para ele, voltando para o back-end do thread de trabalho em processo quando o arquivo secundário está inativo. Somente — gerenciado pelo ciclo de vida não é um destino de roteamento. |
-| **caixa de cantar** | binário de liberação GitHub (`singbox`) | 20140 | TPROXY sidecar apoiando a interceptação de proxy transparente do `applyTproxy()`(`src/mitm/tproxy/setup.ts`). O instalador baixa a versão fixada e verificada pela soma de verificação. Somente — gerenciado pelo ciclo de vida, não um destino de roteamento (sem proxy LLM ) |
+| Serviço | pacote npm | Porta padrão | Propósito |
+| ------------------ | ---------------------------------------- | :----------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| **9Roteador** | `9router` | 20130 | roteador AI que OmniRoute pode usar como subprovedor. Modelos expostos como `9router/{sub}/{model}` |
+| **CLIProxyAPI** | binário de liberação GitHub (`cliproxy`) | 8317 | Adaptador de proxy local para fluxos de autenticação Anthropic CLI. Fornece roteamento substituto quando os tokens OAuth expiram |
+| **Mux** | `mux` ( `mux server` sem cabeça) | 8322 | Daemon de orquestração de agente local (coder/mux). Somente — gerenciado pelo ciclo de vida, não um destino de roteamento (sem proxy LLM ). |
+| **Bifrost** | `@maximhq/bifrost` | 8080 | Vá para o back-end de retransmissão do gateway AI. Ao executar, selecionado automaticamente pela rota de retransmissão (`/v1/relay/`) |
+| **Dário** | `@askalf/dario` | 3456 | Proxy de assinatura Claude — alternative/failover para CLIProxyAPI para tráfego em formato de Claude-Code; a chave injetada torna-se `DARIO_ADMIN_TOKEN` bloqueando seu plano de controle `/admin/*` OAuth |
+| **abrir-wa** | `@open-wa/wa-automate` | 8323 | Automação WhatsApp Web (Chromium sem cabeça via Puppeteer). Somente — gerenciado pelo ciclo de vida não é um destino de roteamento. |
+| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Modelo sidecar de compactação de prompt — real LLMLingua-2 ONNX (porta JS/TS do algoritmo de Microsoft). `open-sse/services/compression/engines/llmlingua/index.ts` despacha `/compress` sobre HTTP para ele, voltando para o back-end do thread de trabalho em processo quando o arquivo secundário está inativo. Somente — gerenciado pelo ciclo de vida não é um destino de roteamento. |
+| **caixa de canto** | binário de liberação GitHub (`singbox`) | 20140 | TPROXY sidecar apoiando a interceptação de proxy transparente do `applyTproxy()`(`src/mitm/tproxy/setup.ts`). O instalador baixa a versão fixada e verificada pela soma de verificação. Somente — gerenciado pelo ciclo de vida, não um destino de roteamento (sem proxy LLM ) |
Todos os oito seguem o mesmo modelo de supervisão:
- OmniRoute os instala em `DATA_DIR/services/{name}/` (isolado do próprio OmniRoute `package.json`)
- OmniRoute os gera e os monitora como processos filhos
-- OmniRoute injeta uma chave API efêmera no ambiente filho e a rotaciona sem tempo de inatividade (quando aplicável)
-- Todas as rotas de gerenciamento (`/api/services/*`) são**LOCAL_ONLY** — acessível apenas por loopback (regra rígida nº 17)
+- OmniRoute injeta uma chave API efêmera no ambiente filho e a alterna sem tempo de inatividade (quando aplicável)
+- Todas as rotas de gerenciamento (`/api/services/*`) são**LOCAL_ONLY** — acessível apenas por loopback (regra rígida #17)
+
+### Núcleos de proxy gerenciados
+
+O campo Host proxy personalizado também aceita um link de origem V2Ray. Selecione** caixa de canto** ou** Raio X** explicitamente e clique em Salvar. Digitar nunca baixa ou inicia um núcleo. Save verifica o arquivo de lançamento oficial, valida a configuração nativa, inicia um ouvinte SOCKS localhost distinto e só então grava a atribuição do registro de proxy. A falha na ativação restaura a configuração e o processo gerenciados anteriores. `STORAGE_ENCRYPTION_KEY` é obrigatório; links de origem são criptografados.
+
+Os arquivos gerenciados ficam em `DATA_DIR/services/managed-proxy/`, separados de TPROXY. Há um processo próprio por núcleo selecionado, até 100 ouvintes. Nenhum início automático ou padrão de roteamento global é alterado. O salvamento bem-sucedido lembra a ativação apenas para esse núcleo gerenciado; a inicialização do aplicativo restaura núcleos salvos habilitados usando o binário já verificado, nunca um download no momento da inicialização. Parada explícita limpa esse sinalizador de ativação. Um binário ausente ou danificado requer salvar novamente uma fonte. A exclusão do registro remove a origem e o ouvinte localmente; edições comuns de endpoint são rejeitadas para linhas gerenciadas para que a origem salva não possa ser desviada silenciosamente de seu ouvinte roteado.
+
+| Formato de origem | caixa de canto | Raio X |
+| ------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | Conversão suportada | Conversão suportada |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Conversão suportada | Rejeitado; use um núcleo compatível |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Compatível com VLESS/VMess/Trojan | Compatível com VLESS/VMess/Trojan |
+| transporte XHTTP URI | Rejeitado | Conversão suportada |
+| JSON de saída nativo | Proxy permitido protocols/options do núcleo selecionado, verificado nativamente | Proxy permitido protocols/options do núcleo selecionado, verificado nativamente |
+
+Opções de conexão desconhecidas, sinalizadores TLS inseguros, plug-ins externos, opções de caminho de arquivo local e combinações não suportadas são rejeitadas em vez de descartadas silenciosamente. Objetos nativos são definições de saída, não configurações de núcleo inteiro; Saídas control/direct/bypass não são aceitas. WireGuard no sing-box 1.14 usa endpoints, portanto não é aceito como saída nativa. Este não é um conversor para todos os formatos; SSR, links legados whole-base64 Shadowsocks, objetos Clash arbitrários e variantes de transporte ausentes da tabela precisam de um formato de origem com suporte separado.
+
+`/api/services/managed-proxy` é autenticado e somente loopback: GET lista metadados editados, POST salva `{core,name,sourceLink,id?,assignment?}`, PATCH aceita `{core,action:"start"|"stop"}`. O pipeline de carimbo de ponto confiável do host deve estar presente. Os diagnósticos principais nativos são suprimidos porque podem conter credenciais; os eventos de ciclo de vida usam o registrador de arquivos de aplicativo estruturado existente sem links de origem ou cargas upstream. Anexe apenas logs de aplicativos limpos para suporte. As versões oficiais estão fixadas em sing-box 1.14.3 e Xray 26.3.27 com manifestos SHA-256 de ativos de lançamento; atualizações futuras exigem a alteração da versão e de todos os resumos verificados juntos.
### Principais decisões (do plano de design)
diff --git a/docs/i18n/pt/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/pt/docs/frameworks/EMBEDDED-SERVICES.md
index ca1b286e5bb0..4f1ad2d3468d 100644
--- a/docs/i18n/pt/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/pt/docs/frameworks/EMBEDDED-SERVICES.md
@@ -29,23 +29,41 @@ Os serviços incorporados são ferramentas secundárias de processo instaladas l
Oito serviços estão incorporados:
-| Serviço | pacote npm | Porta padrão | Finalidade |
-| ------------------- | ----------------------------------------- | :----------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **9Router** | `9router` | 20130 | router AI que OmniRoute pode utilizar como subfornecedor. Modelos expostos como `9router/{sub}/{model}` |
-| **CLIProxyAPI** | binário de libertação GitHub (`cliproxy`) | 8317 | Adaptador de proxy local para fluxos de autenticação Anthropic CLI. Fornece um encaminhamento substituto quando os tokens OAuth expiram |
-| **Mux** | `mux` ( `mux server` sem cabeça) | 8322 | Daemon de orquestração de agentes locais (coder/mux). Apenas — gerido pelo ciclo de vida, não um destino de encaminhamento (sem proxy LLM ). |
-| **Bifrost** | `@maximhq/bifrost` | 8080 | Vá para o back-end de retransmissão do gateway AI. Ao executar, selecionado automaticamente pela rota de retransmissão (`/v1/relay/`) |
-| **Dário** | `@askalf/dario` | 3456 | Claude — alternative/failover assinatura proxy para CLIProxyAPI para tráfego em formato Claude-Code; a chave injetada passa a ser `DARIO_ADMIN_TOKEN` bloqueando o seu plano de controlo `/admin/*` OAuth |
-| **abrir-wa** | `@open-wa/wa-automate` | 8323 | Automação WhatsApp Web (Chromium headless via Puppeteer). Apenas — gerido pelo ciclo de vida não é um destino de encaminhamento. |
-| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Modelo sidecar de compressão de prompt — real LLMLingua-2 ONNX (porta JS/TS do algoritmo de Microsoft). `open-sse/services/compression/engines/llmlingua/index.ts` despacha `/compress` sobre HTTP para ele, voltando para o back-end do thread de trabalho em processo quando o ficheiro secundário está inativo. Apenas — gerido pelo ciclo de vida não é um destino de encaminhamento. |
-| **caixa de cantar** | binário de libertação GitHub (`singbox`) | 20140 | TPROXY sidecar suportando a interceção de proxy transparente do `applyTproxy()`(`src/mitm/tproxy/setup.ts`). O instalador descarrega a versão fixada e verificada pela soma de verificação. Apenas — gerido pelo ciclo de vida, não um destino de encaminhamento (sem proxy LLM ) |
+| Serviço | pacote npm | Porta padrão | Finalidade |
+| ------------------ | ----------------------------------------- | :----------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **9Router** | `9router` | 20130 | router AI que OmniRoute pode utilizar como subprovedor. Modelos expostos como `9router/{sub}/{model}` |
+| **CLIProxyAPI** | binário de libertação GitHub (`cliproxy`) | 8317 | Adaptador de proxy local para fluxos de autenticação Anthropic CLI. Fornece um encaminhamento substituto quando os tokens OAuth expiram |
+| **Mux** | `mux` ( `mux server` sem cabeça) | 8322 | Daemon de orquestração de agentes locais (coder/mux). Apenas — gerido pelo ciclo de vida, não um destino de encaminhamento (sem proxy LLM ). |
+| **Bifrost** | `@maximhq/bifrost` | 8080 | Vá para o back-end de retransmissão do gateway AI. Ao executar, selecionado automaticamente pela rota de retransmissão (`/v1/relay/`) |
+| **Dário** | `@askalf/dario` | 3456 | Claude — alternative/failover assinatura proxy para CLIProxyAPI para tráfego em formato Claude-Code; a chave injetada passa a ser `DARIO_ADMIN_TOKEN` bloqueando o seu plano de controlo `/admin/*` OAuth |
+| **abrir-wa** | `@open-wa/wa-automate` | 8323 | Automação WhatsApp Web (Chromium headless via Puppeteer). Apenas — gerido pelo ciclo de vida não é um destino de encaminhamento. |
+| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Modelo sidecar de compressão de prompt — real LLMLingua-2 ONNX (porta JS/TS do algoritmo de Microsoft). `open-sse/services/compression/engines/llmlingua/index.ts` despacha `/compress` sobre HTTP para ele, voltando para o back-end do thread de trabalho em processo quando o ficheiro secundário está inativo. Apenas — gerido pelo ciclo de vida não é um destino de encaminhamento. |
+| **caixa de canto** | binário de libertação GitHub (`singbox`) | 20140 | TPROXY sidecar suportando a interceção de proxy transparente do `applyTproxy()`(`src/mitm/tproxy/setup.ts`). O instalador descarrega a versão fixada e verificada pela soma de verificação. Apenas — gerido pelo ciclo de vida, não um destino de encaminhamento (sem proxy LLM ) |
Todos os oito seguem o mesmo modelo de supervisão:
- OmniRoute instala-os em `DATA_DIR/services/{name}/` (isolado do próprio OmniRoute `package.json`)
- OmniRoute gera-os e monitoriza-os como processos filhos
-- OmniRoute injeta uma chave API efémera no ambiente filho e roda-a sem tempo de inatividade (quando aplicável)
-- Todas as rotas de gestão (`/api/services/*`) são**LOCAL_ONLY** — apenas acessível por loopback (regra rígida nº 17)
+- OmniRoute injeta uma chave API efémera no ambiente filho e alterna-a sem tempo de inatividade (quando aplicável)
+- Todas as rotas de gestão (`/api/services/*`) são**LOCAL_ONLY** — apenas acessível por loopback (regra rígida #17)
+
+### Núcleos de proxy geridos
+
+O campo Host proxy personalizado também aceita um link de origem V2Ray. Selecione** caixa de canto** ou** Raio X** explicitamente e clique em Guardar. Digitar nunca descarrega ou inicia um núcleo. Save verifica o ficheiro de lançamento oficial, valida a configuração nativa, inicia um listener SOCKS localhost distinto e só depois grava a atribuição do registo proxy. A falha na ativação restaura a configuração e o processo geridos anteriores. `STORAGE_ENCRYPTION_KEY` é obrigatório; os links de origem são encriptados.
+
+Os ficheiros geridos estão em `DATA_DIR/services/managed-proxy/`, separados de TPROXY. Existe um processo próprio por núcleo selecionado, até 100 ouvintes. Nenhum início automático ou padrão de encaminhamento global é alterado. O salvamento bem-sucedido recorda a ativação apenas para esse núcleo gerido; a inicialização da aplicação restaura os núcleos guardados ativados usando o binário já verificado, nunca um download no momento da inicialização. A paragem explícita limpa este sinalizador de ativação. Um binário em falta ou danificado requer guardar novamente uma fonte. A eliminação do registo remove a origem e o listener localmente; as edições comuns de endpoint são rejeitadas para linhas geridas para que a origem guardada não possa ser desviada silenciosamente do seu listener encaminhado.
+
+| Formato de origem | caixa de canto | Raio X |
+| ------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | Conversão suportada | Conversão suportada |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Conversão suportada | Rejeitado; utilize um núcleo compatível |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Compatível com VLESS/VMess/Trojan | Compatível com VLESS/VMess/Trojan |
+| transporte XHTTP URI | Rejeitado | Conversão suportada |
+| JSON de saída nativo | Proxy permitido protocols/options do núcleo selecionado, verificado nativamente | Proxy permitido protocols/options do núcleo selecionado, verificado nativamente |
+
+As opções de ligação desconhecidas, os sinalizadores TLS inseguros, os plug-ins externos, as opções de caminho de ficheiro local e as combinações não suportadas são rejeitadas em vez de serem descartadas silenciosamente. Os objetos nativos são definições de saída, não configurações de núcleo inteiro; As saídas control/direct/bypass não são aceites. WireGuard no sing-box 1.14 utiliza endpoints, pelo que não é aceite como saída nativa. Este não é um conversor para todos os formatos; SSR, os links legados whole-base64 Shadowsocks, os objetos Clash arbitrários e as variantes de transporte em falta da tabela necessitam de um formato de origem com suporte separado.
+
+`/api/services/managed-proxy` é autenticado e apenas loopback: GET lista metadados editados, POST guarda `{core,name,sourceLink,id?,assignment?}`, PATCH aceita `{core,action:"start"|"stop"}`. O pipeline de carimbo de ponto fiável do host deve estar presente. Os diagnósticos principais nativos são suprimidos porque podem conter credenciais; os eventos de ciclo de vida utilizam o registo de ficheiros de aplicação estruturado existente sem ligações de origem ou cargas upstream. Anexe apenas registos de aplicações limpos para suporte. As versões oficiais estão fixadas em sing-box 1.14.3 e Xray 26.3.27 com manifestos SHA-256 de ativos de lançamento; futuras atualizações exigem a alteração da versão e de todos os resumos verificados em conjunto.
### Principais decisões (do plano de design)
diff --git a/docs/i18n/ro/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/ro/docs/frameworks/EMBEDDED-SERVICES.md
index fd1928324038..3d1e773fbb6e 100644
--- a/docs/i18n/ro/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/ro/docs/frameworks/EMBEDDED-SERVICES.md
@@ -29,25 +29,43 @@ Serviciile încorporate sunt instrumente secundare de proces instalate local pe
Sunt încorporate opt servicii:
-| Serviciu | pachet npm | Port implicit | Scop |
-| -------------------- | ------------------------------------ | :-----------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **9 Router** | `9router` | 20130 | router AI pe care OmniRoute îl poate folosi ca sub-furnizor. Modele expuse ca `9router/{sub}/{model}` |
-| **CLIProxyAPI** | binar de lansare GitHub (`cliproxy`) | 8317 | Adaptor proxy local pentru fluxurile de autentificare Anthropic CLI. Oferă rutare de rezervă atunci când tokenurile OAuth expiră |
-| **Mux** | `mux` ( `mux server` fără cap) | 8322 | Daemon de orchestrare agent local (coder/mux). Numai — gestionat de ciclul de viață, nu o țintă de rutare (fără proxy LLM ). |
-| **Bifrost** | `@maximhq/bifrost` | 8080 | Accesați backend-ul releu AI-gateway. Când rulați, selectat automat de traseul releu (`/v1/relay/`) |
-| **Dario** | `@askalf/dario` | 3456 | Claude-abonament proxy — alternative/failover la CLIProxyAPI pentru trafic în formă de Claude-Code; cheia injectată devine `DARIO_ADMIN_TOKEN` pornind planul său de control `/admin/*` OAuth |
-| **deschis-wa** | `@open-wa/wa-automate` | 8323 | WhatsApp Web automation (fără cap Chromium prin Puppeteer). Numai — gestionat de ciclul de viață nu este o țintă de rutare. |
-| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Sidecar cu compresie promptă — model real LLMLingua-2 ONNX (portul JS/TS al algoritmului lui Microsoft). `open-sse/services/compression/engines/llmlingua/index.ts` îi trimite `/compress` peste HTTP, revenind la backend-ul worker-thread în proces când sidecar-ul este jos. Numai — gestionat de ciclul de viață nu este o țintă de rutare. |
-| **cutie de cântare** | binar de lansare GitHub (`singbox`) | 20140 | TPROXY sidecar susține interceptarea proxy transparent a `applyTproxy()`(`src/mitm/tproxy/setup.ts`). Programul de instalare descarcă versiunea fixată, verificată prin sumă de control. Numai — gestionat de ciclul de viață nu este o țintă de rutare (fără proxy LLM ) |
+| Serviciu | pachet npm | Port implicit | Scop |
+| -------------------- | ------------------------------------ | :-----------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **9 Router** | `9router` | 20130 | router AI pe care OmniRoute îl poate folosi ca sub-furnizor. Modele expuse ca `9router/{sub}/{model}` |
+| **CLIProxyAPI** | binar de lansare GitHub (`cliproxy`) | 8317 | Adaptor proxy local pentru fluxurile de autentificare Anthropic CLI. Oferă rutare de rezervă atunci când tokenurile OAuth expiră |
+| **Mux** | `mux` ( `mux server` fără cap) | 8322 | Daemon de orchestrare agent local (coder/mux). Numai — gestionat de ciclul de viață, nu o țintă de rutare (fără proxy LLM ). |
+| **Bifrost** | `@maximhq/bifrost` | 8080 | Accesați backend-ul releu AI-gateway. Când rulați, selectat automat de traseul releu (`/v1/relay/`) |
+| **Dario** | `@askalf/dario` | 3456 | Claude-abonament proxy — alternative/failover la CLIProxyAPI pentru trafic în formă de Claude-Code; cheia injectată devine `DARIO_ADMIN_TOKEN` pornind planul său de control `/admin/*` OAuth |
+| **deschis-wa** | `@open-wa/wa-automate` | 8323 | WhatsApp Web automation (fără cap Chromium prin Puppeteer). Numai — gestionat de ciclul de viață nu este o țintă de rutare. |
+| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Sidecar cu compresie promptă — model real LLMLingua-2 ONNX (portul JS/TS al algoritmului lui Microsoft). `open-sse/services/compression/engines/llmlingua/index.ts` îi trimite `/compress` peste HTTP, revenind la backend-ul worker-thread în proces când sidecar-ul este în jos. Numai — gestionat de ciclul de viață nu este o țintă de rutare. |
+| **cutie de cântare** | binar de lansare GitHub (`singbox`) | 20140 | TPROXY sidecar susține interceptarea transparent-proxy a `applyTproxy()`(`src/mitm/tproxy/setup.ts`). Programul de instalare descarcă versiunea fixată, verificată prin sumă de verificare. Numai — gestionat de ciclul de viață nu este o țintă de rutare (fără proxy LLM ) |
Toate cele opt urmează același model de supraveghere:
- OmniRoute le instalează sub `DATA_DIR/services/{name}/` (izolat de propriul `package.json` al lui OmniRoute)
- OmniRoute generează și le monitorizează ca procese copil
- OmniRoute injectează o cheie API efemeră în mediul copilului și o rotește fără timp de nefuncționare (unde este cazul)
-- Toate rutele de gestionare (`/api/services/*`) sunt**LOCAL_ONLY** — accesibil numai din loopback (regula grea #17)
+- Toate rutele de gestionare (`/api/services/*`) sunt**LOCAL_ONLY** — accesibil numai din loopback (regulă grea #17)
-### Deciziile cheie (din planul de proiectare)
+### Miezuri proxy gestionate
+
+Câmpul gazdă proxy personalizat acceptă, de asemenea, o legătură sursă V2Ray. Selecta** cutie de cântare** sau** cu raze X** în mod explicit, apoi faceți clic pe Salvare. Tastarea nu descarcă și nu pornește niciodată un nucleu. Salvare verifică arhiva oficială de lansare, validează configurația nativă, pornește un ascultător SOCKS localhost distinct și abia apoi scrie atribuirea registrului proxy. Activarea eșuată restabilește configurația și procesul gestionat anterior. `STORAGE_ENCRYPTION_KEY` este necesar; link-urile sursă sunt criptate.
+
+Fișierele gestionate trăiesc sub `DATA_DIR/services/managed-proxy/`, separat de TPROXY. Există un proces deținut pentru fiecare nucleu selectat, până la 100 de ascultători. Nicio pornire automată sau implicită de rutare globală nu este modificată. Salvarea cu succes reține activarea numai pentru acest nucleu gestionat; pornirea aplicației restaurează nucleele salvate activate folosind binarul deja verificat, niciodată o descărcare la pornire. Oprire explicită șterge acel semnal de activare. Un binar lipsă sau deteriorat necesită re-salvarea unei surse. Ștergerea registrului elimină sursa și ascultătorul la nivel local; editările obișnuite ale punctelor finale sunt respinse pentru rândurile gestionate, astfel încât sursa salvată să nu se poată deplasa în tăcere de la ascultătorul său direcționat.
+
+| Format sursă | cutie de cântare | cu raze X |
+| ------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
+| VLESS, VMess, Troian, Shadowsocks URI | Conversie acceptată | Conversie acceptată |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Conversie acceptată | Respins; utilizați un nucleu compatibil |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Suportat pentru VLESS/VMess/Trojan | Suportat pentru VLESS/VMess/Trojan |
+| XHTTP URI transport | Respins | Conversie acceptată |
+| JSON nativ de ieșire | Proxy-ul permis protocols/options pentru nucleul selectat, verificat nativ | Proxy-ul permis protocols/options pentru nucleul selectat, verificat nativ |
+
+Opțiunile de cablu necunoscute, semnalizatoarele TLS nesigure, pluginurile externe, opțiunile de cale de fișiere locale și combinațiile neacceptate sunt respinse în loc să fie aruncate în tăcere. Obiectele native sunt definiții de ieșire, nu configurații întregi; ieșirile control/direct/bypass nu sunt acceptate. WireGuard pe sing-box 1.14 utilizează puncte finale, deci nu este acceptat ca un outbound nativ. Acesta nu este un convertor pentru toate formatele; Legăturile SSR, legacy whole-base64 Shadowsocks, obiectele Clash arbitrare și variantele de transport absente din tabel au nevoie de un format sursă suportat separat.
+
+`/api/services/managed-proxy` este autentificat și numai pentru loopback: GET listează metadatele redactate, POST salvează `{core,name,sourceLink,id?,assignment?}`, PATCH acceptă `{core,action:"start"|"stop"}`. Conducta de încredere peer-stamp a gazdei trebuie să fie prezentă. Diagnosticele de bază native sunt suprimate deoarece pot conține acreditări; evenimentele ciclului de viață folosesc fișierul de înregistrare a fișierelor de aplicație structurat existent fără link-uri sursă sau încărcături utile în amonte. Atașați numai jurnalele de aplicații igienizate pentru asistență. Versiunile oficiale sunt fixate pe sing-box 1.14.3 și Xray 26.3.27 cu manifeste SHA-256 release-asset; actualizările viitoare necesită schimbarea versiunii și a tuturor rezumatelor verificate împreună.
+
+### Decizii cheie (din planul de proiectare)
| Decizie | Valoare |
| -------------------------------------------- | ----------------------------------------------------------------------------- |
diff --git a/docs/i18n/ru/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/ru/docs/frameworks/EMBEDDED-SERVICES.md
index 9fecec7d4411..faee7f4afb25 100644
--- a/docs/i18n/ru/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/ru/docs/frameworks/EMBEDDED-SERVICES.md
@@ -44,8 +44,26 @@
- OmniRoute устанавливает их под `DATA_DIR/services/{name}/` (изолировано от собственного `package.json` OmniRoute)
- OmniRoute порождает и отслеживает их как дочерние процессы
-- OmniRoute внедряет эфемерный ключ API в дочернюю среду и вращает его без простоя (где это применимо)
-- Все маршруты управления (`/api/services/*`)**LOCAL_ONLY** — доступен только из шлейфа (жесткое правило № 17)
+- OmniRoute внедряет эфемерный ключ API в дочернюю среду и меняет его без простоя (где это применимо)
+- Все маршруты управления (`/api/services/*`)**LOCAL_ONLY** — доступен только из шлейфа (жесткое правило #17)
+
+### Управляемые прокси-ядра
+
+Поле Пользовательский прокси-хост также принимает ссылку на источник V2Ray. Выбирать** пень-бокс** или** рентген** явно, затем нажмите «Сохранить». При вводе текста никогда не загружается и не запускается ядро. Save проверяет официальный архив выпуска, проверяет собственную конфигурацию, запускает отдельный прослушиватель SOCKS localhost и только затем записывает назначение реестра прокси. Неудачная активация восстанавливает предыдущую управляемую конфигурацию и процесс. требуется `STORAGE_ENCRYPTION_KEY` ; ссылки на источники зашифрованы.
+
+Управляемые файлы хранятся в `DATA_DIR/services/managed-proxy/` отдельно от TPROXY. На каждое выбранное ядро приходится один собственный процесс, до 100 прослушивателей. Ни автозапуск, ни глобальная маршрутизация по умолчанию не изменяются. При успешном сохранении запоминается активация только для этого управляемого ядра; запуск приложения восстанавливает включенные сохраненные ядра, используя уже проверенный двоичный файл, а не загрузку во время загрузки. Явная остановка очищает этот флаг активации. Отсутствующий или поврежденный двоичный файл требует повторного сохранения источника. При удалении реестра источник и прослушиватель удаляются локально; обычные изменения конечной точки отклоняются для управляемых строк, поэтому сохраненный источник не может незаметно отклониться от маршрутизируемого прослушивателя.
+
+| Исходный формат | пень-бокс | рентген |
+| ------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
+| VLESS, VMess, троян, Shadowsocks URI | Поддерживаемое преобразование | Поддерживаемое преобразование |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Поддерживаемое преобразование | Отклоненный; используйте совместимое ядро |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Поддерживается для VLESS/VMess/Trojan | Поддерживается для VLESS/VMess/Trojan |
+| XHTTP URI транспорт | Отклоненный | Поддерживаемое преобразование |
+| Собственный исходящий JSON | Разрешенный прокси-сервер выбранного ядра protocols/options, проверено изначально | Разрешенный прокси-сервер выбранного ядра protocols/options, проверено изначально |
+
+Неизвестные параметры подключения, небезопасные флаги TLS, внешние плагины, параметры локального пути к файлу и неподдерживаемые комбинации скорее отклоняются, чем автоматически отбрасываются. Собственные объекты — это исходящие определения, а не конфигурации всего ядра; Исходящие сообщения control/direct/bypass не принимаются. WireGuard в Sing-Box 1.14 использует конечные точки, поэтому он не принимается как собственный исходящий трафик. Это не конвертер всех форматов; SSR, устаревшие ссылки whole-base64 Shadowsocks, произвольные объекты Clash и транспортные варианты, отсутствующие в таблице, требуют отдельно поддерживаемого исходного формата.
+
+`/api/services/managed-proxy` аутентифицируется и работает только с обратной связью: GET перечисляет отредактированные метаданные, POST сохраняет `{core,name,sourceLink,id?,assignment?}`, PATCH принимает `{core,action:"start"|"stop"}`. Должен присутствовать доверенный конвейер одноранговых меток хоста. Собственная базовая диагностика подавляется, поскольку она может содержать учетные данные; События жизненного цикла используют существующее средство регистрации файлов структурированного приложения без ссылок на источники или исходных полезных данных. Для поддержки прикрепляйте только проверенные журналы приложений. Официальные версии привязаны к Sing-Box 1.14.3 и Xray 26.3.27 с манифестами Release-Asset SHA-256 ; будущие обновления требуют изменения версии и всех проверенных дайджестов вместе.
### Ключевые решения (из проектного плана)
diff --git a/docs/i18n/si/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/si/docs/frameworks/EMBEDDED-SERVICES.md
index 897b5e4aa58c..94ab27825897 100644
--- a/docs/i18n/si/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/si/docs/frameworks/EMBEDDED-SERVICES.md
@@ -44,15 +44,33 @@ Embedded Services යනු OmniRoute ස්ථාපනය කරන, අධී
- OmniRoute ඒවා `DATA_DIR/services/{name}/` යටතේ ස්ථාපනය කරයි ( OmniRoute `package.json` හුදකලා වේ)
- OmniRoute පැටවුන් බිහි කරන අතර ළමා ක්රියාවලීන් ලෙස ඒවා නිරීක්ෂණය කරයි
-- OmniRoute දරුවාගේ පරිසරයට එෆීමරල් API යතුරක් එන්නත් කර එය අක්රිය නොවී භ්රමණය කරයි (අදාළ තැන්වල)
-- සියලුම කළමනාකරණ මාර්ග (`/api/services/*`) වේ**LOCAL_ONLY** — ප්රවේශ විය හැක්කේ ලූප්බැක් වෙතින් පමණි (දෘඩ රීතිය #17)
+- OmniRoute දරුවාගේ පරිසරයට එපීමරල් API යතුරක් එන්නත් කර එය අක්රිය නොවී භ්රමණය කරයි (අදාළ තැන්වල)
+- සියලුම කළමනාකරණ මාර්ග (`/api/services/*`) වේ**LOCAL_ONLY** — ප්රවේශ විය හැක්කේ ලූප්බැක් වෙතින් පමණි (දෘඪ රීතිය #17)
+
+### කළමනාකරණය කරන ලද ප්රොක්සි කෝර්
+
+අභිරුචි ප්රොක්සි සත්කාරක ක්ෂේත්රය V2Ray මූලාශ්ර සබැඳියක් ද පිළිගනී. තෝරන්න** ගායනා පෙට්ටිය** හෝ** Xray** පැහැදිලිවම, පසුව සුරකින්න ක්ලික් කරන්න. ටයිප් කිරීම කිසි විටක හරයක් බාගැනීම හෝ ආරම්භ නොවේ. සුරැකීම නිල නිකුතු ලේඛනාගාරය සත්යාපනය කරයි, ස්වදේශීය වින්යාසය වලංගු කරයි, වෙනස් දේශීය සත්කාරක SOCKS සවන්දෙන්නෙකු ආරම්භ කරයි, සහ පසුව පමණක් ප්රොක්සි රෙජිස්ට්රි පැවරුම ලියයි. අසාර්ථක සක්රිය කිරීම පෙර කළමනා කළ වින්යාසය සහ ක්රියාවලිය ප්රතිසාධනය කරයි. `STORAGE_ENCRYPTION_KEY` අවශ්ය වේ; මූලාශ්ර සබැඳි සංකේතනය කර ඇත.
+
+කළමනාකරණය කළ ගොනු `DATA_DIR/services/managed-proxy/` යටතේ සජීවීව, TPROXY වලින් වෙන්ව. තෝරාගත් හරයකට, සවන්දෙන්නන් 100ක් දක්වා එක් හිමිකාරී ක්රියාවලියක් ඇත. ස්වයංක්රීය ආරම්භයක් හෝ ගෝලීය මාර්ගගත කිරීමේ පෙරනිමියක් වෙනස් නොවේ. මෙම කළමනාකරණය කළ හරය සඳහා පමණක් සක්රිය කිරීම සාර්ථක සුරැකීම මතක තබා ගනී; යෙදුම් ආරම්භය දැනටමත් සත්යාපිත ද්විමය භාවිතයෙන් සක්රීය සුරකින ලද හරයන් ප්රතිසාධනය කරයි, කිසි විටක ඇරඹුම් කාල බාගත කිරීම නොවේ. පැහැදිලි නැවතුම එම සක්රිය ධජය හිස් කරයි. නැතිවූ හෝ හානි වූ ද්විමය සඳහා මූලාශ්රයක් නැවත සුරැකීම අවශ්ය වේ. රෙජිස්ට්රි මකාදැමීම දේශීයව මූලාශ්රය සහ සවන්දෙන්නා ඉවත් කරයි; සාමාන්ය අන්ත ලක්ෂ්ය සංස්කරණ කළමනාකරණය කළ පේළි සඳහා ප්රතික්ෂේප කරනු ලැබේ, එබැවින් සුරකින ලද මූලාශ්රයට එහි මාර්ගගත ශ්රාවකයා වෙතින් නිහඬව ප්ලාවිත විය නොහැක.
+
+| මූලාශ්ර ආකෘතිය | ගායනා පෙට්ටිය | Xray |
+| ------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | සහාය දක්වන පරිවර්තනය | සහාය දක්වන පරිවර්තනය |
+| Hysteria2/hy2, TUIC, AnyTLS URI | සහාය දක්වන පරිවර්තනය | ප්රතික්ෂේප කරන ලදී; ගැළපෙන හරයක් භාවිතා කරන්න |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | VLESS/VMess/Trojan සඳහා සහය දක්වයි | VLESS/VMess/Trojan සඳහා සහය දක්වයි |
+| XHTTP URI ප්රවාහනය | ප්රතික්ෂේප කළා | සහාය දක්වන පරිවර්තනය |
+| දේශීය පිටතට යන JSON | තෝරන ලද හරයට අවසර දී ඇති ප්රොක්සි protocols/options, ස්වදේශිකව පරීක්ෂා කර ඇත | තෝරන ලද හරයට අවසර දී ඇති ප්රොක්සි protocols/options, ස්වදේශිකව පරීක්ෂා කර ඇත |
+
+නොදන්නා වයර් විකල්ප, අනාරක්ෂිත TLS කොඩි, බාහිර ප්ලගීන, දේශීය ගොනු මාර්ග විකල්ප සහ සහය නොදක්වන සංයෝජන නිශ්ශබ්දව ඉවත දමනවාට වඩා ප්රතික්ෂේප කරනු ලැබේ. ස්වදේශික වස්තු යනු පිටතට යන නිර්වචනයන් මිස සම්පූර්ණ මූලික වින්යාසයන් නොවේ; control/direct/bypass පිටතට යාම පිළිගනු නොලැබේ. sing-box 1.14 හි WireGuard අන්ත ලක්ෂ්ය භාවිතා කරයි, එබැවින් එය ස්වදේශීය පිටතට යන එකක් ලෙස පිළිගනු නොලැබේ. මෙය සියලු ආකෘති පරිවර්තකයක් නොවේ; SSR, legacy whole-base64 Shadowsocks සබැඳි, අත්තනෝමතික Clash වස්තු සහ වගුවේ නොමැති ප්රවාහන ප්රභේද සඳහා වෙනම සහාය දක්වන මූලාශ්ර ආකෘතියක් අවශ්ය වේ.
+
+`/api/services/managed-proxy` සත්යාපනය කර ඇති අතර ලූප්බැක්-පමණි: GET නැවත සකස් කරන ලද පාර-දත්ත ලැයිස්තුගත කරයි, POST `{core,name,sourceLink,id?,assignment?}` සුරකියි, PATCH `{core,action:"start"|"stop"}` පිළිගනී. ධාරකයාගේ විශ්වාසවන්ත සම-මුද්දර නල මාර්ගය තිබිය යුතුය. අක්තපත්ර අඩංගු විය හැකි බැවින් දේශීය මූලික රෝග විනිශ්චය යටපත් කරනු ලැබේ; ජීවන චක්ර සිදුවීම් මූලාශ්ර සබැඳි හෝ උඩුගත ගෙවීම් නොමැතිව පවතින ව්යුහගත යෙදුම් ගොනු ලොගර් භාවිතා කරයි. සහාය සඳහා සනීපාරක්ෂක යෙදුම් ලොග පමණක් අමුණන්න. නිල අනුවාද sing-box 1.14.3 සහ Xray 26.3.27 නිකුතු-වත්කම් SHA-256 මැනිෆෙස්ට් සමඟ අමුණා ඇත; අනාගත යාවත්කාලීන කිරීම් සඳහා අනුවාදය සහ සියලුම සත්යාපිත සංග්රහයන් එකට වෙනස් කිරීම අවශ්ය වේ.
### ප්රධාන තීරණ (සැලසුම් සැලැස්මෙන්)
| තීරණය | වටිනාකම |
| -------------------------------------------- | ------------------------------------------------------------------------------------- |
| 9Router ස්වදේශික UI වෙත උපකරණ පුවරු ප්රවේශය | `/dashboard/providers/services/9router/embed/*` හි ප්රතිලෝම ප්රොක්සි |
-| ස්ථාපන යාන්ත්රණය | `npm install {package}` `execFile` හරහා (කවච අතුරු ආන්තරණයක් නොමැත) |
+| ස්ථාපන යාන්ත්රණය | `npm install {package}` `execFile` හරහා (කවච ප්රතිස්ථාපන නැත) |
| පරිභෝජන මාදිලිය | සපයන්නා මාර්ගගත කිරීමේ එන්ජිමෙහි `9router/{sub}/{model}` ලෙස ලියාපදිංචි කර ඇත |
| API යතුරු කළමනාකරණය | OmniRoute උත්පාදනය කරයි, විවේකයෙන් සංකේතනය කරයි (AES-256-GCM) සහ env හරහා එන්නත් කරයි |
| උපකරණ පුවරුවේ පිහිටීම | `/dashboard/providers/services` (ටැබ් තුනක්) |
diff --git a/docs/i18n/sk/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/sk/docs/frameworks/EMBEDDED-SERVICES.md
index 963cdef4455d..e1fa7c61ee0a 100644
--- a/docs/i18n/sk/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/sk/docs/frameworks/EMBEDDED-SERVICES.md
@@ -29,34 +29,52 @@ Vstavané služby sú lokálne nainštalované nástroje sprievodcu procesov, kt
Je zabudovaných osem služieb:
-| servis | npm balík | Predvolený port | Účel |
-| --------------- | ----------------------------------- | :-------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **9 Smerovač** | `9router` | 20130 | AI router, ktorý môže OmniRoute použiť ako sub-poskytovateľ. Modely vystavené ako `9router/{sub}/{model}` |
-| **CLIProxyAPI** | binárne vydanie GitHub (`cliproxy`) | 8317 | Lokálny proxy adaptér pre overovacie toky CLI Anthropic Poskytuje záložné smerovanie, keď vyprší platnosť tokenov OAuth |
-| **Mux** | `mux` (bezhlavý `mux server`) | 8322 | Miestny démon-orchestačný démon (coder/mux). Životný cyklus je riadený iba — nie je cieľom smerovania (žiadne LLM proxy). |
-| **Bifrost** | `@maximhq/bifrost` | 8080 | Prejsť na backend relé brány AI. Pri behu sa automaticky vyberie podľa trasy relé (`/v1/relay/`) |
-| **Dario** | `@askalf/dario` | 3456 | Claude-subscription proxy — alternative/failover na CLIProxyAPI pre prevádzku v tvare Claude-Code; vstreknutý kľúč sa zmení `DARIO_ADMIN_TOKEN` hradlujúci svoju riadiacu rovinu `/admin/*` OAuth |
-| **open-wa** | `@open-wa/wa-automate` | 8323 | WhatsApp Webová automatizácia (bezhlavý Chromium cez Puppeteer). Iba — spravuje životný cyklus, nie je cieľom smerovania. |
-| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Postranný vozík rýchlej kompresie — skutočný model LLMLingua-2 ONNX (port JS/TS algoritmu Microsoft). `open-sse/services/compression/engines/llmlingua/index.ts` do nej odošle `/compress` cez HTTP, pričom keď je postranný vozík vypnutý, vráti sa späť na procesné pracovné vlákno. Životný cyklus je riadený iba —, nie je cieľom smerovania. |
-| **sing-box** | binárne vydanie GitHub (`singbox`) | 20140 | TPROXY sajdkár podporí transparentné zachytenie proxy `applyTproxy()`(`src/mitm/tproxy/setup.ts`). Inštalátor stiahne pripnuté vydanie overené kontrolným súčtom. Spravované len životným cyklom — nie je cieľ smerovania (žiadne LLM proxying) |
+| servis | npm balík | Predvolený port | Účel |
+| --------------- | ----------------------------------- | :-------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **9 Smerovač** | `9router` | 20130 | AI router, ktorý môže OmniRoute použiť ako sub-poskytovateľ. Modely vystavené ako `9router/{sub}/{model}` |
+| **CLIProxyAPI** | binárne vydanie GitHub (`cliproxy`) | 8317 | Lokálny proxy adaptér pre overovacie toky CLI Anthropic Poskytuje záložné smerovanie, keď vyprší platnosť tokenov OAuth |
+| **Mux** | `mux` (bezhlavý `mux server`) | 8322 | Miestny démon-orchestačný démon (coder/mux). Životný cyklus je riadený iba — nie je cieľom smerovania (žiadne LLM proxy). |
+| **Bifrost** | `@maximhq/bifrost` | 8080 | Prejsť na backend relé brány AI. Pri behu sa automaticky vyberie podľa trasy relé (`/v1/relay/`) |
+| **Dario** | `@askalf/dario` | 3456 | Claude-subscription proxy — alternative/failover to CLIProxyAPI pre prevádzku v tvare Claude-Code; vstreknutý kľúč sa zmení `DARIO_ADMIN_TOKEN` hradlujúci svoju riadiacu rovinu `/admin/*` OAuth |
+| **open-wa** | `@open-wa/wa-automate` | 8323 | WhatsApp Webová automatizácia (bezhlavý Chromium cez Puppeteer). Iba — spravuje životný cyklus, nie je cieľom smerovania. |
+| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Postranný vozík rýchlej kompresie — skutočný model LLMLingua-2 ONNX (port JS/TS algoritmu Microsoft). `open-sse/services/compression/engines/llmlingua/index.ts` do nej odošle `/compress` cez HTTP, pričom sa vráti späť na koncovú časť pracovného vlákna v procese, keď je postranný vozík vypnutý. Životný cyklus je riadený iba —, nie je cieľom smerovania. |
+| **sing-box** | binárne vydanie GitHub (`singbox`) | 20140 | TPROXY sajdkár podporuje transparentné zachytenie proxy `applyTproxy()`(`src/mitm/tproxy/setup.ts`). Inštalátor stiahne pripnuté vydanie overené kontrolným súčtom. Spravované len životným cyklom — nie je cieľ smerovania (žiadne LLM proxying) |
Všetkých osem sa riadi rovnakým modelom dohľadu:
- OmniRoute ich nainštaluje pod `DATA_DIR/services/{name}/` (izolované od vlastného `package.json` OmniRoute)
- OmniRoute ich vytvára a monitoruje ako podriadené procesy
- OmniRoute vstrekne efemérny kľúč API do prostredia dieťaťa a otočí ho bez prestojov (ak je to možné)
-- Všetky cesty riadenia (`/api/services/*`) sú**LOCAL_ONLY** — prístupné iba zo spätnej slučky (tvrdé pravidlo č. 17)
+- Všetky cesty riadenia (`/api/services/*`) sú**LOCAL_ONLY** — prístupné iba zo spätnej slučky (tvrdé pravidlo #17)
+
+### Spravované proxy jadrá
+
+Pole Vlastný hostiteľ proxy tiež akceptuje zdrojový odkaz V2Ray. Vyberte** sing-box** alebo** Xray** explicitne, potom kliknite na tlačidlo Uložiť. Písaním sa nikdy nestiahne ani nespustí jadro. Uložiť overí oficiálny archív vydania, overí natívnu konfiguráciu, spustí samostatný poslucháč localhost SOCKS a až potom zapíše priradenie proxy registra. Neúspešná aktivácia obnoví predchádzajúcu riadenú konfiguráciu a proces. vyžaduje sa `STORAGE_ENCRYPTION_KEY` ; zdrojové odkazy sú šifrované.
+
+Spravované súbory žijú pod `DATA_DIR/services/managed-proxy/`, oddelene od TPROXY. Na vybrané jadro pripadá jeden vlastnený proces, až 100 poslucháčov. Nezmení sa žiadne automatické spustenie ani predvolené globálne smerovanie. Úspešné uloženie si zapamätá aktiváciu iba pre toto spravované jadro; Spustenie aplikácie obnoví povolené uložené jadrá pomocou už overeného binárneho súboru, nikdy nie sťahovaním pri spustení. Explicitné zastavenie vymaže tento aktivačný príznak. Chýbajúci alebo poškodený binárny súbor vyžaduje opätovné uloženie zdroja. Odstránenie databázy Registry odstráni zdroj a poslucháča lokálne; bežné úpravy koncového bodu sú pre spravované riadky odmietnuté, takže uložený zdroj nemôže ticho prejsť zo svojho smerovaného poslucháča.
+
+| Zdrojový formát | sing-box | Xray |
+| ------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | Podporovaná konverzia | Podporovaná konverzia |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Podporovaná konverzia | Odmietnuté; použite kompatibilné jadro |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Podporované pre VLESS/VMess/Trojan | Podporované pre VLESS/VMess/Trojan |
+| XHTTP URI doprava | Odmietnuté | Podporovaná konverzia |
+| Natívne odchádzajúce JSON | Vybraný povolený server proxy protocols/options jadra, kontrolovaný natívne | Vybraný povolený server proxy protocols/options jadra, kontrolovaný natívne |
+
+Neznáme možnosti pripojenia, nezabezpečené príznaky TLS, externé zásuvné moduly, možnosti lokálnej cesty k súboru a nepodporované kombinácie sú skôr odmietnuté ako potichu zahodené. Natívne objekty sú odchádzajúce definície, nie konfigurácie celého jadra; control/direct/bypass odchádzajúce nie sú akceptované. WireGuard na sing-boxe 1.14 používa koncové body, takže nie je akceptovaný ako natívny výstup. Toto nie je konvertor všetkých formátov; SSR, staršie odkazy whole-base64 Shadowsocks, ľubovoľné objekty Clash a transportné varianty, ktoré chýbajú v tabuľke, potrebujú samostatne podporovaný zdrojový formát.
+
+`/api/services/managed-proxy` je overený a má iba spätnú slučku: GET uvádza zredigované metadáta, POST uloží `{core,name,sourceLink,id?,assignment?}`, PATCH akceptuje `{core,action:"start"|"stop"}`. Musí byť prítomný dôveryhodný kanál peer-stamp. Natívna diagnostika jadra je potlačená, pretože môže obsahovať poverenia; udalosti životného cyklu používajú existujúci zapisovač súborov štruktúrovanej aplikácie bez zdrojových odkazov alebo upstream dát. Na podporu pripájajte iba vyčistené denníky aplikácií. Oficiálne verzie sú pripnuté na sing-box 1.14.3 a Xray 26.3.27 s manifestmi release-asset SHA-256 ; budúce aktualizácie vyžadujú zmenu verzie a všetkých overených súhrnov súčasne.
### Kľúčové rozhodnutia (z plánu dizajnu)
-| rozhodnutie | Hodnota |
-| ----------------------------------------------- | ---------------------------------------------------------------------- |
-| Prístup k palubnej doske k natívnemu UI 9Router | Reverzný proxy na `/dashboard/providers/services/9router/embed/*` |
-| Inštalačný mechanizmus | `npm install {package}` cez `execFile` (bez interpolácie shellu) |
-| Režim spotreby | Poskytovateľ registrovaný ako `9router/{sub}/{model}` v routing engine |
-| správa kľúčov API | OmniRoute generuje, šifruje v pokoji (AES-256-GCM) a vkladá cez env |
-| Umiestnenie palubnej dosky | `/dashboard/providers/services` (tri karty) |
-| Automatické spustenie | Prepnúť podľa služby, predvolená hodnota OFF |
+| rozhodnutie | Hodnota |
+| ----------------------------------------------- | --------------------------------------------------------------------------- |
+| Prístup k palubnej doske k natívnemu UI 9Router | Reverzný proxy na `/dashboard/providers/services/9router/embed/*` |
+| Inštalačný mechanizmus | `npm install {package}` cez `execFile` (bez interpolácie shellu) |
+| Režim spotreby | Poskytovateľ registrovaný ako `9router/{sub}/{model}` v nástroji smerovania |
+| správa kľúčov API | OmniRoute generuje, šifruje v pokoji (AES-256-GCM) a vkladá cez env |
+| Umiestnenie palubnej dosky | `/dashboard/providers/services` (tri karty) |
+| Automatické spustenie | Prepnúť podľa služby, predvolená hodnota OFF |
---
diff --git a/docs/i18n/sl/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/sl/docs/frameworks/EMBEDDED-SERVICES.md
index 33cb95a0a884..dc73d539b97e 100644
--- a/docs/i18n/sl/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/sl/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,14 +45,32 @@ Vseh osem sledi istemu modelu nadzora:
- OmniRoute jih namesti pod `DATA_DIR/services/{name}/` (izolirano od OmniRoute-jevega lastnega `package.json`)
- OmniRoute sproži in jih spremlja kot podrejene procese
- OmniRoute vstavi efemerni ključ API v otrokovo okolje in ga zavrti brez izpadov (kjer je primerno)
-- Vse upravljavske poti (`/api/services/*`) so**LOCAL_ONLY** — dostopen samo iz povratne zanke (trdo pravilo št. 17)
+- Vse upravljavske poti (`/api/services/*`) so**LOCAL_ONLY** — dostopen le iz povratne zanke (trdo pravilo #17)
+
+### Upravljana proxy jedra
+
+Polje Custom proxy host sprejema tudi izvorno povezavo V2Ray. Izberite** pevska škatla** oz** Rentgen** izrecno, nato kliknite Shrani. Tipkanje nikoli ne prenese ali zažene jedra. Shranjevanje preveri uradni arhiv izdaje, potrdi izvorno konfiguracijo, zažene ločen poslušalec SOCKS lokalnega gostitelja in šele nato zapiše dodelitev registra proxy. Neuspela aktivacija obnovi prejšnjo upravljano konfiguracijo in proces. potreben je `STORAGE_ENCRYPTION_KEY` ; izvorne povezave so šifrirane.
+
+Upravljane datoteke živijo pod `DATA_DIR/services/managed-proxy/`, ločeno od TPROXY. Na izbrano jedro je en proces v lasti, do 100 poslušalcev. Privzeti samodejni zagon ali globalno usmerjanje se ne spremeni. Uspešno shranjevanje si zapomni aktivacijo samo za to upravljano jedro; zagon aplikacije obnovi omogočena shranjena jedra z uporabo že preverjene binarne datoteke, nikoli prenosa ob zagonu. Eksplicitna zaustavitev počisti to aktivacijsko zastavico. Manjkajoča ali poškodovana dvojiška datoteka zahteva ponovno shranjevanje vira. Brisanje registra odstrani izvor in poslušalca lokalno; navadna urejanja končne točke so zavrnjena za upravljane vrstice, tako da se shranjeni vir ne more tiho oddaljiti od svojega preusmerjenega poslušalca.
+
+| Izvorni format | pevska škatla | Rentgen |
+| --------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
+| VLESS, VMess, trojanec, Shadowsocks URI | Podprta pretvorba | Podprta pretvorba |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Podprta pretvorba | Zavrnjeno; uporabite združljivo jedro |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Podprto za VLESS/VMess/Trojan | Podprto za VLESS/VMess/Trojan |
+| XHTTP URI transport | Zavrnjeno | Podprta pretvorba |
+| Izvorni odhodni JSON | Dovoljen posredniški protocols/options izbranega jedra, izvorno preverjen | Dovoljen posredniški protocols/options izbranega jedra, izvorno preverjen |
+
+Možnosti neznanih žic, nevarne zastavice TLS, zunanji vtičniki, možnosti poti lokalnih datotek in nepodprte kombinacije so zavrnjene, namesto da bi jih tiho zavrgli. Izvorni objekti so izhodne definicije, ne konfiguracije celotnega jedra; control/direct/bypass odhodi niso sprejeti. WireGuard na sing-boxu 1.14 uporablja končne točke, zato ni sprejet kot izvorni izhodni. To ni pretvornik vseh formatov; SSR, podedovane povezave whole-base64 Shadowsocks, poljubni predmeti Clash in transportne različice, ki jih ni v tabeli, potrebujejo ločeno podprto izvorno obliko.
+
+`/api/services/managed-proxy` je overjen in uporablja samo povratno zanko: GET izpiše redigirane metapodatke, POST shrani `{core,name,sourceLink,id?,assignment?}`, PATCH sprejme `{core,action:"start"|"stop"}`. Prisoten mora biti gostiteljev zaupanja vreden cevovod enakovrednih žigov. Izvorna jedrna diagnostika je izključena, ker lahko vsebuje poverilnice; dogodki življenjskega cikla uporabljajo obstoječi zapisovalnik strukturiranih aplikacijskih datotek brez izvornih povezav ali uporabnih obremenitev navzgor. Za podporo priložite samo prečiščene dnevnike aplikacij. Uradne različice so pripete na sing-box 1.14.3 in Xray 26.3.27 z manifesti SHA-256 sredstva izdaje; prihodnje posodobitve zahtevajo spremembo različice in vseh preverjenih povzetkov skupaj.
### Ključne odločitve (iz projektnega načrta)
| Odločitev | Vrednost |
| ------------------------------------------------- | -------------------------------------------------------------------------------- |
| Dostop do nadzorne plošče do izvornega UI 9Router | Povratni proxy pri `/dashboard/providers/services/9router/embed/*` |
-| Namestitev mehanizma | `npm install {package}` preko `execFile` (brez lupinske interpolacije) |
+| Namestitev mehanizma | `npm install {package}` prek `execFile` (brez interpolacije lupine) |
| Način porabe | Ponudnik registriran kot `9router/{sub}/{model}` v mehanizmu usmerjanja |
| upravljanje ključev API | OmniRoute generira, šifrira v stanju mirovanja (AES-256-GCM) in vbrizga prek env |
| Lokacija nadzorne plošče | `/dashboard/providers/services` (trije zavihki) |
diff --git a/docs/i18n/sr/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/sr/docs/frameworks/EMBEDDED-SERVICES.md
index 5b0388bf9b57..ac5e245156da 100644
--- a/docs/i18n/sr/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/sr/docs/frameworks/EMBEDDED-SERVICES.md
@@ -38,7 +38,7 @@
| **Дарио** | `@askalf/dario` | 3456 | Цлауде-субсцриптион проки — CLIProxyAPI alternative/failover саобраћај у облику Цлауде-Цоде-а; убризгани кључ постаје `DARIO_ADMIN_TOKEN` гатинг своју `/admin/*` OAuth контролну раван |
| **опен-ва** | `@open-wa/wa-automate` | 8323 | WhatsApp Веб аутоматизација (Цхромиум без главе преко Пуппетеер-а). Само — којим се управља животним циклусом није циљ рутирања. |
| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Промпт-цомпрессион сидецар — реал LLMLingua-2 ONNX модел (JS/TS порт Microsoft-овог алгоритма). `open-sse/services/compression/engines/llmlingua/index.ts` му шаље `/compress` преко HTTP, враћајући се назад на позадину радне нити у процесу када је приколица доље. Само — којим се управља животним циклусом није циљ рутирања. |
-| **синг-бок** | GitHub издање бинарни (`singbox`) | 20140 | TPROXY сидецар подржава пресретање транспарентног проксија `applyTproxy()`-а (`src/mitm/tproxy/setup.ts`). Инсталатер преузима закачено издање са верификованом контролном сумом. Само — којим се управља животним циклусом, а не циљ рутирања (без LLM проксија) |
+| **синг-бок** | GitHub издање бинарни (`singbox`) | 20140 | TPROXY сидецар подржава `applyTproxy()`-ов транспарентни прокси пресретање (`src/mitm/tproxy/setup.ts`). Инсталатер преузима закачено издање са верификованом контролном сумом. Само — којим се управља животним циклусом, а не циљ рутирања (без LLM проксија) |
Свих осам прате исти модел надзора:
@@ -47,16 +47,34 @@
- OmniRoute убризгава ефемерни API кључ у дететово окружење и ротира га без прекида (где је применљиво)
- Сви путеви управљања (`/api/services/*`) су**LOCAL_ONLY** — доступан само из повратне петље (тврдо правило #17)
+### Управљана прокси језгра
+
+Прилагођено поље хост проки сервера такође прихвата V2Ray изворну везу. Изаберите** синг-бок** или** Ксраи** експлицитно, а затим кликните на Сачувај. Куцање никада не преузима или покреће језгро. Сачувај верификује званичну архиву издања, потврђује изворну конфигурацију, покреће посебан локални хост SOCKS слушалац и тек онда уписује додељивање прокси регистра. Неуспела активација враћа претходну управљану конфигурацију и процес. `STORAGE_ENCRYPTION_KEY` је обавезан; изворне везе су шифроване.
+
+Управљане датотеке живе под `DATA_DIR/services/managed-proxy/`, одвојено од TPROXY. Постоји један процес у власништву по изабраном језгру, до 100 слушалаца. Није промењено аутоматско покретање или глобално рутирање. Успешно чување памти активацију само за ово управљано језгро; Покретање апликације враћа омогућена сачувана језгра користећи већ верификовани бинарни фајл, никада преузимање током покретања. Експлицитно заустављање брише ту заставицу за активацију. Бинарни фајл који недостаје или је оштећен захтева поновно чување извора. Брисањем регистра се локално уклања извор и слушалац; обичне измене крајње тачке се одбијају за управљане редове, тако да сачувани извор не може тихо да одступи од свог преусмереног слушаоца.
+
+| Изворни формат | синг-бок | Ксраи |
+| --------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
+| VLESS, VMess, тројанац, Схадовсоцкс URI | Подржана конверзија | Подржана конверзија |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Подржана конверзија | Одбијено; користите компатибилно језгро |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Подржано за VLESS/VMess/Trojan | Подржано за VLESS/VMess/Trojan |
+| XHTTP URI транспорт | Одбијено | Подржана конверзија |
+| Нативе оутбоунд JSON | Дозвољени прокси protocols/options изабраног језгра, изворно проверен | Дозвољени прокси protocols/options изабраног језгра, изворно проверен |
+
+Непознате жичне опције, несигурне TLS заставице, екстерни додаци, опције локалне путање датотека и неподржане комбинације се одбијају уместо тихо одбацују. Нативни објекти су излазне дефиниције, а не конфигурације целог језгра; control/direct/bypass излазе се не прихватају. WireGuard на синг-бок 1.14 користи крајње тачке, тако да није прихваћен као изворни излаз. Ово није конвертор свих формата; SSR, старе whole-base64 Схадовсоцкс везе, произвољни Цласх објекти и транспортне варијанте које одсутне у табели захтевају одвојено подржан изворни формат.
+
+`/api/services/managed-proxy` је аутентификован и само за повратну петљу: GET наводи редиговане метаподатке, POST чува `{core,name,sourceLink,id?,assignment?}`, PATCH прихвата `{core,action:"start"|"stop"}`. Мора бити присутан хостов поуздани пеер-стамп пипелине. Дијагностика изворног језгра је потиснута јер може да садржи акредитиве; Догађаји животног циклуса користе постојећи структурирани програм за бележење датотека без изворних веза или упстреам корисних података. Приложите само дезинфициране евиденције апликација за подршку. Званичне верзије су закачене за синг-бок 1.14.3 и Ксраи 26.3.27 са манифестима SHA-256 -а за ослобађање; будућа ажурирања захтевају промену верзије и свих верификованих сажетака заједно.
+
### Кључне одлуке (из плана дизајна)
-| Одлука | Валуе |
-| ---------------------------------------------- | ------------------------------------------------------------------------ |
-| Приступ контролној табли изворном UI 9Роутер-у | Обрнути прокси на `/dashboard/providers/services/9router/embed/*` |
-| Механизам уградње | `npm install {package}` преко `execFile` (без интерполације љуске) |
-| Режим потрошње | Провајдер регистрован као `9router/{sub}/{model}` у механизму рутирања |
-| API управљање кључевима | OmniRoute генерише, шифрује у мировању (AES-256-GCM) и убацује преко енв |
-| Локација контролне табле | `/dashboard/providers/services` (три картице) |
-| Ауто-старт | Пребаци по услузи, подразумевани OFF |
+| Одлука | Валуе |
+| ---------------------------------------------- | ------------------------------------------------------------------------------ |
+| Приступ контролној табли изворном UI 9Роутер-у | Обрнути прокси на `/dashboard/providers/services/9router/embed/*` |
+| Механизам уградње | `npm install {package}` преко `execFile` (без интерполације љуске) |
+| Режим потрошње | Провајдер регистрован као `9router/{sub}/{model}` у механизму рутирања |
+| API управљање кључевима | OmniRoute генерише, шифрује у стању мировања (AES-256-GCM) и убацује преко енв |
+| Локација контролне табле | `/dashboard/providers/services` (три картице) |
+| Ауто-старт | Пребаци по услузи, подразумевани OFF |
---
diff --git a/docs/i18n/sv/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/sv/docs/frameworks/EMBEDDED-SERVICES.md
index 8551d236d301..f8101c2b501d 100644
--- a/docs/i18n/sv/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/sv/docs/frameworks/EMBEDDED-SERVICES.md
@@ -29,16 +29,16 @@ Inbäddade tjänster är lokalt installerade processsidecar-verktyg som OmniRout
Åtta tjänster är inbäddade:
-| Service | npm-paket | Standardport | Ändamål |
-| --------------- | --------------------------------- | :----------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| **9 Router** | `9router` | 20130 | AI router som OmniRoute kan använda som underleverantör. Modeller exponerade som `9router/{sub}/{model}` |
-| **CLIProxyAPI** | GitHub release binär (`cliproxy`) | 8317 | Lokal proxyadapter för Anthropic CLI auth-flöden. Ger reservrutt när OAuth tokens löper ut |
-| **Mux** | `mux` (huvudlös `mux server`) | 8322 | Lokal agent-orkestreringsdemon (coder/mux). Livscykelhanterad endast — inte ett routingmål (ingen LLM proxying). |
-| **Bifrost** | `@maximhq/bifrost` | 8080 | Gå AI-gateway relä backend. När du springer, väljs automatiskt av relävägen (`/v1/relay/`) |
-| **Dario** | `@askalf/dario` | 3456 | Claude-prenumerationsproxy — alternative/failover till CLIProxyAPI för Claude-kodformad trafik; den injicerade nyckeln blir `DARIO_ADMIN_TOKEN` som grindar dess `/admin/*` OAuth kontrollplan |
-| **öppen-wa** | `@open-wa/wa-automate` | 8323 | WhatsApp Webbautomatisering (huvudlös Chromium via Puppeteer). Livscykelhanterad endast — inte ett routingmål. |
-| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Snabbkompression sidovagn — riktig LLMLingua-2 ONNX modell (JS/TS port av Microsoft algoritm). `open-sse/services/compression/engines/llmlingua/index.ts` skickar `/compress` över HTTP till den och faller tillbaka till den pågående arbetstrådens backend när sidovagnen är nere. Livscykelhanterad endast — inte ett routingmål. |
-| **sjunga-box** | GitHub release binär (`singbox`) | 20140 | TPROXY sidovagn som stödjer `applyTproxy()` transparenta proxyavlyssning (`src/mitm/tproxy/setup.ts`). Installationsprogrammet laddar ner den fästa, checksum-verifierade versionen. Livscykelhanterad endast — inte ett routingmål (ingen LLM proxying) |
+| Service | npm-paket | Standardport | Ändamål |
+| --------------- | --------------------------------- | :----------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **9 Router** | `9router` | 20130 | AI router som OmniRoute kan använda som underleverantör. Modeller exponerade som `9router/{sub}/{model}` |
+| **CLIProxyAPI** | GitHub release binär (`cliproxy`) | 8317 | Lokal proxyadapter för Anthropic CLI auth-flöden. Ger reservrutt när OAuth tokens löper ut |
+| **Mux** | `mux` (huvudlös `mux server`) | 8322 | Lokal agent-orkestreringsdemon (coder/mux). Livscykelhanterad endast — inte ett routingmål (ingen LLM proxying). |
+| **Bifrost** | `@maximhq/bifrost` | 8080 | Gå AI-gateway relä backend. När du springer, väljs automatiskt av relävägen (`/v1/relay/`) |
+| **Dario** | `@askalf/dario` | 3456 | Claude-prenumerationsproxy — alternative/failover till CLIProxyAPI för Claude-kodformad trafik; den injicerade nyckeln blir `DARIO_ADMIN_TOKEN` som grindar dess `/admin/*` OAuth kontrollplan |
+| **öppen-wa** | `@open-wa/wa-automate` | 8323 | WhatsApp Webbautomatisering (huvudlös Chromium via Puppeteer). Livscykelhanterad endast — inte ett routingmål. |
+| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Snabbkompression sidovagn — riktig LLMLingua-2 ONNX modell (JS/TS port för Microsoft algoritm). `open-sse/services/compression/engines/llmlingua/index.ts` skickar `/compress` över HTTP till den och faller tillbaka till den pågående arbetstrådens backend när sidovagnen är nere. Livscykelhanterad endast — inte ett routingmål. |
+| **sjunga-box** | GitHub release binär (`singbox`) | 20140 | TPROXY sidovagn som stödjer `applyTproxy()` transparenta proxyavlyssning (`src/mitm/tproxy/setup.ts`). Installationsprogrammet laddar ner den fästa, checksum-verifierade versionen. Livscykelhanterad endast — inte ett routingmål (ingen LLM proxying) |
Alla åtta följer samma tillsynsmodell:
@@ -47,6 +47,24 @@ Alla åtta följer samma tillsynsmodell:
- OmniRoute injicerar en tillfällig API nyckel i barnets miljö och roterar den utan driftstopp (där tillämpligt)
- Alla förvaltningsvägar (`/api/services/*`) är**LOCAL_ONLY** — endast tillgänglig från loopback (hård regel #17)
+### Hanterade proxykärnor
+
+Fältet Anpassad proxyvärd accepterar också en V2Ray källlänk. Välja** sjunga-box** eller** Röntgen** uttryckligen och klicka sedan på Spara. Att skriva laddar aldrig ner eller startar en kärna. Spara verifierar det officiella utgivningsarkivet, validerar inbyggd konfiguration, startar en distinkt localhost SOCKS lyssnare och skriver först därefter proxyregistertilldelningen. Misslyckad aktivering återställer den tidigare hanterade konfigurationen och processen. `STORAGE_ENCRYPTION_KEY` krävs; källlänkar är krypterade.
+
+Hanterade filer lever under `DATA_DIR/services/managed-proxy/`, separat från TPROXY. Det finns en ägd process per vald kärna, upp till 100 lyssnare. Ingen autostart eller global routingstandard ändras. Framgångsrik spara kommer endast ihåg aktivering för denna hanterade kärna; applikationsstart återställer aktiverade sparade kärnor med den redan verifierade binära filen, aldrig en nedladdning vid uppstart. Explicit Stop rensar aktiveringsflaggan. En saknad eller skadad binärfil kräver att en källa sparas på nytt. Registerradering tar bort källan och lyssnaren lokalt; vanliga slutpunktsredigeringar avvisas för hanterade rader så att den sparade källan inte tyst kan glida från sin dirigerade lyssnare.
+
+| Källformat | sjunga-box | Röntgen |
+| ------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | Konvertering som stöds | Konvertering som stöds |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Konvertering som stöds | Avvisad; använd en kompatibel kärna |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Stöds för VLESS/VMess/Trojan | Stöds för VLESS/VMess/Trojan |
+| XHTTP URI transport | Avvisad | Konvertering som stöds |
+| Native utgående JSON | Vald kärnans tillåtna proxy protocols/options, kontrollerad inbyggt | Vald kärnans tillåtna proxy protocols/options, kontrollerad inbyggt |
+
+Okända trådalternativ, osäkra TLS flaggor, externa plugins, lokala filsökvägsalternativ och kombinationer som inte stöds avvisas snarare än kasseras tyst. Inbyggda objekt är utgående definitioner, inte hela kärnkonfigurationer; control/direct/bypass utgående accepteras inte. WireGuard på sing-box 1.14 använder slutpunkter, så det accepteras inte som en inbyggd utgående. Detta är inte en konverterare i alla format; SSR, äldre whole-base64 Shadowsocks-länkar, godtyckliga Clash-objekt och transportvarianter som saknas i tabellen behöver ett källformat som stöds separat.
+
+`/api/services/managed-proxy` är autentiserat och endast loopback: GET listar redigerad metadata, POST sparar `{core,name,sourceLink,id?,assignment?}`, PATCH accepterar `{core,action:"start"|"stop"}`. Värdens betrodda peer-stamp pipeline måste finnas. Inbyggd kärndiagnostik undertrycks eftersom den kan innehålla referenser; livscykelhändelser använder den befintliga strukturerade applikationsfilloggaren utan källlänkar eller uppströmsnyttolaster. Bifoga endast sanerade applikationsloggar för support. Officiella versioner är fästa till sing-box 1.14.3 och Xray 26.3.27 med SHA-256 -manifest för release-tillgång; framtida uppdateringar kräver ändring av versionen och alla verifierade sammanfattningar tillsammans.
+
### Nyckelbeslut (från designplan)
| Beslut | Värde |
@@ -55,7 +73,7 @@ Alla åtta följer samma tillsynsmodell:
| Installationsmekanism | `npm install {package}` via `execFile` (ingen skalinterpolation) |
| Konsumtionsläge | Leverantör registrerad som `9router/{sub}/{model}` i routingmotor |
| API nyckelhantering | OmniRoute genererar, krypterar at-rest (AES-256-GCM) och injicerar via env |
-| Instrumentpanelens placering | `/dashboard/providers/services` (tre flikar) |
+| Instrumentpanelens plats | `/dashboard/providers/services` (tre flikar) |
| Autostart | Växla per tjänst, standard OFF |
---
diff --git a/docs/i18n/sw/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/sw/docs/frameworks/EMBEDDED-SERVICES.md
index bad43a64642b..cbbdc466bfc0 100644
--- a/docs/i18n/sw/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/sw/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,7 +45,25 @@ Wote wanane wanafuata modeli sawa ya usimamizi:
- OmniRoute huziweka chini ya `DATA_DIR/services/{name}/` (zilizotengwa na OmniRoute mwenyewe `package.json`)
- OmniRoute huzaa na kuzifuatilia kama mchakato wa mtoto
- OmniRoute huingiza ufunguo wa API wa muda mfupi kwenye mazingira ya mtoto na kuzungusha bila muda wa kupumzika (inapohitajika)
-- Njia zote za usimamizi (`/api/services/*`) ni**LOCAL_ONLY** — kupatikana tu kutoka kwa loopback (sheria ngumu # 17)
+- Njia zote za usimamizi (`/api/services/*`) ni**LOCAL_ONLY** — kupatikana tu kutoka kwa loopback (kanuni ngumu #17)
+
+### Viini vya seva mbadala vinavyodhibitiwa
+
+Sehemu ya seva pangishi ya seva mbadala Maalum pia inakubali kiungo cha chanzo cha V2Ray. Chagua** kisanduku cha kuimba** au** Xray** kwa uwazi, kisha ubofye Hifadhi. Kuandika kamwe hakupakuliwa au kuanzisha msingi. Hifadhi huthibitisha kumbukumbu rasmi ya toleo, huthibitisha usanidi asilia, huanzisha kisikilizaji mahususi cha mwenyeji wa SOCKS, na kisha kuandika kazi ya kusajili seva mbadala. Uamilisho ulioshindwa hurejesha usanidi na mchakato uliodhibitiwa uliopita. `STORAGE_ENCRYPTION_KEY` inahitajika; viungo vya chanzo vimesimbwa kwa njia fiche.
+
+Faili zinazodhibitiwa zinaishi chini ya `DATA_DIR/services/managed-proxy/`, tofauti na TPROXY. Kuna mchakato mmoja unaomilikiwa kwa kila msingi uliochaguliwa, hadi wasikilizaji 100. Hakuna kuanzisha kiotomatiki au chaguomsingi ya uelekezaji ya kimataifa inayobadilishwa. Imefaulu Kuhifadhi hukumbuka kuwezesha msingi huu unaodhibitiwa pekee; uanzishaji wa programu hurejesha viini vilivyohifadhiwa vilivyowezeshwa kwa kutumia jozi iliyothibitishwa tayari, kamwe upakuaji wa wakati wa kuwasha. Komesha Dhahiri huondoa alama hiyo ya kuwezesha. Nambari inayokosekana au iliyoharibika inahitaji kuhifadhi tena chanzo. Ufutaji wa Usajili huondoa chanzo na msikilizaji ndani ya nchi; mabadiliko ya kawaida ya sehemu ya mwisho yamekataliwa kwa safu mlalo zinazodhibitiwa ili chanzo kilichohifadhiwa kisiondoke kimyakimya kutoka kwa kisikilizaji kilichopitishwa.
+
+| Umbizo la chanzo | kisanduku cha kuimba | Xray |
+| ------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | Uongofu unaotumika | Uongofu unaotumika |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Uongofu unaotumika | Imekataliwa; tumia msingi unaoendana |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Inaungwa mkono kwa VLESS/VMess/Trojan | Inaungwa mkono kwa VLESS/VMess/Trojan |
+| usafiri wa XHTTP URI | Imekataliwa | Uongofu unaotumika |
+| JSON za asili zinazotoka nje | Wakala wa msingi uliochaguliwa protocols/options, umechaguliwa asili | Wakala wa msingi uliochaguliwa protocols/options, umechaguliwa asili |
+
+Chaguo za waya zisizojulikana, bendera za TLS zisizo salama, programu-jalizi za nje, chaguo za njia ya faili za ndani na michanganyiko isiyotumika hukataliwa badala ya kutupwa kimyakimya. Vitu asili ni ufafanuzi wa nje, sio usanidi wa msingi mzima; control/direct/bypass za nje hazikubaliwi. WireGuard kwenye sing-box 1.14 hutumia miisho, kwa hivyo haikubaliwi kama mzaliwa wa nje. Hiki si kigeuzi cha umbizo zote; SSR, legacy whole-base64 Viungo vya Shadowsocks, vitu vya Clash kiholela na vibadala vya usafiri ambavyo havipo kwenye jedwali vinahitaji umbizo la chanzo linalotumika kando.
+
+`/api/services/managed-proxy` imethibitishwa na loopback-pekee: GET huorodhesha metadata iliyorekebishwa, POST huhifadhi `{core,name,sourceLink,id?,assignment?}`, PATCH inakubali `{core,action:"start"|"stop"}`. Ni lazima bomba la muhuri rika la mwenyeji liwepo. Uchunguzi wa kimsingi wa asili hukandamizwa kwa sababu unaweza kuwa na kitambulisho; matukio ya mzunguko wa maisha hutumia kiweka kumbukumbu cha faili cha programu kilichopangwa bila viungo vya chanzo au upakiaji wa juu. Ambatisha kumbukumbu za programu zilizosafishwa pekee kwa usaidizi. Matoleo rasmi yamebandikwa kwenye kisanduku cha kuimba 1.14.3 na Xray 26.3.27 chenye maonyesho ya SHA-256 ya mali ya kutolewa; masasisho yajayo yanahitaji kubadilisha toleo na muhtasari wote uliothibitishwa kwa pamoja.
### Maamuzi muhimu (kutoka kwa mpango wa muundo)
@@ -54,9 +72,9 @@ Wote wanane wanafuata modeli sawa ya usimamizi:
| Ufikiaji wa dashibodi kwa 9Router asili UI | Reverse proksi kwa `/dashboard/providers/services/9router/embed/*` |
| Utaratibu wa ufungaji | `npm install {package}` kupitia `execFile` (hakuna tafsiri ya ganda) |
| Hali ya matumizi | Mtoa huduma aliyesajiliwa kama `9router/{sub}/{model}` katika injini ya uelekezaji |
-| API usimamizi muhimu | OmniRoute hutoa, husimba kwa njia fiche (AES-256-GCM), na kuingiza kupitia env |
+| API usimamizi muhimu | OmniRoute huzalisha, husimba kwa njia fiche (AES-256-GCM), na kuingiza kupitia env |
| Mahali pa dashibodi | `/dashboard/providers/services` (tabo tatu) |
-| Anza kiotomatiki | Geuza kwa kila huduma, OFF chaguomsingi |
+| Anza kiotomatiki | Geuza kwa kila huduma, chaguo-msingi OFF |
---
diff --git a/docs/i18n/ta/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/ta/docs/frameworks/EMBEDDED-SERVICES.md
index a355c276ed94..f785b9438940 100644
--- a/docs/i18n/ta/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/ta/docs/frameworks/EMBEDDED-SERVICES.md
@@ -38,7 +38,7 @@
| **டாரியோ** | `@askalf/dario` | 3456 | கிளாட்-சந்தா ப்ராக்ஸி — alternative/failover முதல் CLIProxyAPI வரை க்ளாட்-கோட் வடிவ போக்குவரத்திற்கு; உட்செலுத்தப்பட்ட விசை `DARIO_ADMIN_TOKEN` ஆனது அதன் `/admin/*` OAuth கட்டுப்பாட்டு விமானத்தை இணைக்கிறது |
| **திறந்த-வா** | `@open-wa/wa-automate` | 8323 | WhatsApp வெப் ஆட்டோமேஷன் (தலை இல்லாத குரோமியம் பப்பீட்டீர் வழியாக). வாழ்க்கைச் சுழற்சியால் நிர்வகிக்கப்படும் — மட்டுமே ரூட்டிங் இலக்கு அல்ல. |
| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | ப்ராம்ட்-கம்ப்ரஷன் சைட்கார் — உண்மையான LLMLingua-2 ONNX மாதிரி ( Microsoft இன் அல்காரிதத்தின்JS/TS போர்ட்). `open-sse/services/compression/engines/llmlingua/index.ts` HTTP க்கு மேல் `/compress` அனுப்புகிறது, சைட்கார் கீழே இருக்கும் போது, செயல்பாட்டில் உள்ள வேலைக்காரன்-த்ரெட் பின்தளத்திற்கு திரும்பும். வாழ்க்கைச் சுழற்சி-நிர்வகிக்கப்பட்ட — மட்டுமே ரூட்டிங் இலக்கு அல்ல. |
-| **பாட பெட்டி** | GitHub வெளியீடு பைனரி (`singbox`) | 20140 | TPROXY சைட்கார் பேக்கிங் `applyTproxy()` இன் வெளிப்படையான-ப்ராக்ஸி இடைமறிப்பு (`src/mitm/tproxy/setup.ts`). பின் செய்யப்பட்ட, செக்சம் சரிபார்க்கப்பட்ட வெளியீட்டை நிறுவி பதிவிறக்குகிறது. வாழ்க்கைச் சுழற்சி-நிர்வகித்தல் மட்டுமே — ஒரு ரூட்டிங் இலக்கு அல்ல ( LLM ப்ராக்ஸிங் இல்லை) |
+| **பாட பெட்டி** | GitHub வெளியீடு பைனரி (`singbox`) | 20140 | TPROXY பக்கவாட்டு ஆதரவு `applyTproxy()` இன் வெளிப்படையான-ப்ராக்ஸி இடைமறிப்பு (`src/mitm/tproxy/setup.ts`). பின் செய்யப்பட்ட, செக்சம் சரிபார்க்கப்பட்ட வெளியீட்டை நிறுவி பதிவிறக்குகிறது. வாழ்க்கைச் சுழற்சி-நிர்வகித்தல் மட்டுமே — ஒரு ரூட்டிங் இலக்கு அல்ல ( LLM ப்ராக்ஸிங் இல்லை) |
எட்டும் ஒரே மேற்பார்வை மாதிரியைப் பின்பற்றுகின்றன:
@@ -47,6 +47,24 @@
- OmniRoute ஒரு எபிமரல் API விசையை குழந்தையின் சுற்றுச்சூழலில் செலுத்துகிறது மற்றும் அதை வேலையில்லா நேரம் இல்லாமல் சுழற்றுகிறது (பொருந்தக்கூடிய இடத்தில்)
- அனைத்து மேலாண்மை வழிகளும் (`/api/services/*`)**LOCAL_ONLY** — லூப்பேக்கிலிருந்து மட்டுமே அணுக முடியும் (கடின விதி #17)
+### நிர்வகிக்கப்பட்ட ப்ராக்ஸி கோர்கள்
+
+தனிப்பயன் ப்ராக்ஸி ஹோஸ்ட் புலம் V2Ray மூல இணைப்பையும் ஏற்றுக்கொள்கிறது. தேர்ந்தெடு** பாட பெட்டி** அல்லது** எக்ஸ்ரே** வெளிப்படையாக, பின்னர் சேமி என்பதைக் கிளிக் செய்யவும். தட்டச்சு செய்வது ஒரு மையத்தை பதிவிறக்கம் செய்யாது அல்லது தொடங்காது. சேவ் அதிகாரப்பூர்வ வெளியீட்டு காப்பகத்தை சரிபார்க்கிறது, சொந்த உள்ளமைவை சரிபார்க்கிறது, ஒரு தனித்துவமான லோக்கல் ஹோஸ்ட் SOCKS கேட்பவரைத் தொடங்குகிறது, அதன் பிறகுதான் ப்ராக்ஸி ரெஜிஸ்ட்ரி ஒதுக்கீட்டை எழுதுகிறது. தோல்வியடைந்த செயல்படுத்தல் முந்தைய நிர்வகிக்கப்பட்ட உள்ளமைவு மற்றும் செயல்முறையை மீட்டெடுக்கிறது. `STORAGE_ENCRYPTION_KEY` தேவை; மூல இணைப்புகள் குறியாக்கம் செய்யப்பட்டுள்ளன.
+
+நிர்வகிக்கப்பட்ட கோப்புகள் `DATA_DIR/services/managed-proxy/` இன் கீழ் , TPROXY இலிருந்து பிரிக்கப்பட்டிருக்கும் . தேர்ந்தெடுக்கப்பட்ட மையத்திற்கு ஒரு சொந்தமான செயல்முறை உள்ளது, 100 கேட்போர் வரை. ஆட்டோஸ்டார்ட் அல்லது உலகளாவிய ரூட்டிங் இயல்புநிலை மாற்றப்படவில்லை. வெற்றிகரமான சேமி இந்த நிர்வகிக்கப்பட்ட மையத்திற்கான செயல்பாட்டை மட்டுமே நினைவில் கொள்கிறது; பயன்பாட்டு தொடக்கமானது, ஏற்கனவே சரிபார்க்கப்பட்ட பைனரியைப் பயன்படுத்தி இயக்கப்பட்ட சேமித்த கோர்களை மீட்டமைக்கிறது, துவக்க நேர பதிவிறக்கம் அல்ல. வெளிப்படையான நிறுத்தம், செயல்படுத்தும் கொடியை அழிக்கிறது. விடுபட்ட அல்லது சேதமடைந்த பைனரிக்கு ஆதாரத்தை மீண்டும் சேமிக்க வேண்டும். பதிவேட்டில் நீக்குதல் மூலத்தையும் கேட்பவரையும் உள்நாட்டில் நீக்குகிறது; நிர்வகிக்கப்பட்ட வரிசைகளுக்கு சாதாரண எண்ட்பாயிண்ட் திருத்தங்கள் நிராகரிக்கப்படுகின்றன, எனவே சேமிக்கப்பட்ட மூலமானது அதன் வழித்தடப்பட்ட கேட்பவரிடமிருந்து அமைதியாக விலகிச் செல்ல முடியாது.
+
+| மூல வடிவம் | பாட பெட்டி | எக்ஸ்ரே |
+| ------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | ஆதரவு மாற்றம் | ஆதரவு மாற்றம் |
+| Hysteria2/hy2, TUIC, AnyTLS URI | ஆதரவு மாற்றம் | நிராகரிக்கப்பட்டது; இணக்கமான மையத்தைப் பயன்படுத்தவும் |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | VLESS/VMess/Trojan க்கு ஆதரவு | VLESS/VMess/Trojan க்கு ஆதரவு |
+| XHTTP URI போக்குவரத்து | நிராகரிக்கப்பட்டது | ஆதரவு மாற்றம் |
+| பூர்வீகம் வெளிச்செல்லும் JSON | தேர்ந்தெடுக்கப்பட்ட மையத்தின் அனுமதிக்கப்பட்ட ப்ராக்ஸி protocols/options, சொந்தமாக சரிபார்க்கப்பட்டது | தேர்ந்தெடுக்கப்பட்ட மையத்தின் அனுமதிக்கப்பட்ட ப்ராக்ஸி protocols/options, சொந்தமாக சரிபார்க்கப்பட்டது |
+
+அறியப்படாத கம்பி விருப்பங்கள், பாதுகாப்பற்ற TLS கொடிகள், வெளிப்புற செருகுநிரல்கள், உள்ளூர் கோப்பு-பாதை விருப்பங்கள் மற்றும் ஆதரிக்கப்படாத சேர்க்கைகள் அமைதியாக நிராகரிக்கப்படுவதற்குப் பதிலாக நிராகரிக்கப்படுகின்றன. பூர்வீக பொருள்கள் வெளிச்செல்லும் வரையறைகள், முழு மைய கட்டமைப்புகள் அல்ல; control/direct/bypass அவுட்பவுண்டுகள் ஏற்றுக்கொள்ளப்படாது. sing-box 1.14 இல் உள்ள WireGuard இறுதிப் புள்ளிகளைப் பயன்படுத்துகிறது, எனவே இது ஒரு நேட்டிவ் அவுட்பவுண்டாக ஏற்றுக்கொள்ளப்படவில்லை. இது அனைத்து வடிவ மாற்றி அல்ல; SSR, மரபு whole-base64 Shadowsocks இணைப்புகள், தன்னிச்சையான மோதல் பொருள்கள் மற்றும் அட்டவணையில் இல்லாத போக்குவரத்து மாறுபாடுகளுக்கு தனித்தனியாக ஆதரிக்கப்படும் மூல வடிவம் தேவை.
+
+`/api/services/managed-proxy` அங்கீகரிக்கப்பட்டது மற்றும் லூப்பேக்-மட்டுமே: GET திருத்தப்பட்ட மெட்டாடேட்டாவை பட்டியலிடுகிறது, POST `{core,name,sourceLink,id?,assignment?}` சேமிக்கிறது, PATCH `{core,action:"start"|"stop"}` ஏற்றுக்கொள்கிறது. ஹோஸ்டின் நம்பகமான பியர்-ஸ்டாம்ப் பைப்லைன் இருக்க வேண்டும். நேட்டிவ் கோர் கண்டறிதல்கள் நசுக்கப்படுகின்றன, ஏனெனில் அவை நற்சான்றிதழ்களைக் கொண்டிருக்கலாம்; வாழ்க்கைச் சுழற்சி நிகழ்வுகள், மூல இணைப்புகள் அல்லது அப்ஸ்ட்ரீம் பேலோடுகள் இல்லாமல் ஏற்கனவே உள்ள கட்டமைக்கப்பட்ட பயன்பாட்டுக் கோப்பு லாகரைப் பயன்படுத்துகின்றன. ஆதரவுக்காக சுத்திகரிக்கப்பட்ட பயன்பாட்டுப் பதிவுகளை மட்டும் இணைக்கவும். அதிகாரப்பூர்வ பதிப்புகள் sing-box 1.14.3 மற்றும் Xray 26.3.27 உடன் வெளியீடு-சொத்து SHA-256 மேனிஃபெஸ்ட்டுகளுடன் பொருத்தப்பட்டுள்ளன; எதிர்கால புதுப்பிப்புகளுக்கு பதிப்பு மற்றும் அனைத்து சரிபார்க்கப்பட்ட டைஜெஸ்ட்களையும் ஒன்றாக மாற்ற வேண்டும்.
+
### முக்கிய முடிவுகள் (வடிவமைப்பு திட்டத்திலிருந்து)
| முடிவு | மதிப்பு |
diff --git a/docs/i18n/te/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/te/docs/frameworks/EMBEDDED-SERVICES.md
index 07093de5bc23..38e41f1c35f9 100644
--- a/docs/i18n/te/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/te/docs/frameworks/EMBEDDED-SERVICES.md
@@ -43,10 +43,28 @@
మొత్తం ఎనిమిది ఒకే పర్యవేక్షక నమూనాను అనుసరిస్తాయి:
- OmniRoute వాటిని `DATA_DIR/services/{name}/` కింద ఇన్స్టాల్ చేస్తుంది ( OmniRoute స్వంత `package.json` నుండి వేరుచేయబడింది)
-- OmniRoute వాటిని చైల్డ్ ప్రాసెస్గా పుట్టిస్తుంది మరియు పర్యవేక్షిస్తుంది
+- OmniRoute వాటిని చైల్డ్ ప్రాసెస్లుగా పుట్టిస్తుంది మరియు పర్యవేక్షిస్తుంది
- OmniRoute పిల్లల వాతావరణంలోకి ఒక అశాశ్వతమైన API కీని ఇంజెక్ట్ చేస్తుంది మరియు పనికిరాని సమయం లేకుండా తిప్పుతుంది (వర్తించే చోట)
- అన్ని నిర్వహణ మార్గాలు (`/api/services/*`).**LOCAL_ONLY** — లూప్బ్యాక్ నుండి మాత్రమే అందుబాటులో ఉంటుంది (హార్డ్ రూల్ #17)
+### నిర్వహించబడే ప్రాక్సీ కోర్లు
+
+కస్టమ్ ప్రాక్సీ హోస్ట్ ఫీల్డ్ కూడా V2Ray సోర్స్ లింక్ని అంగీకరిస్తుంది. ఎంచుకోండి** పాడే పెట్టె** లేదా** Xray** స్పష్టంగా, ఆపై సేవ్ క్లిక్ చేయండి. టైపింగ్ ఎప్పుడూ డౌన్లోడ్ చేయదు లేదా కోర్ను ప్రారంభించదు. సేవ్ అధికారిక విడుదల ఆర్కైవ్ను ధృవీకరిస్తుంది, స్థానిక కాన్ఫిగరేషన్ను ధృవీకరిస్తుంది, ప్రత్యేకమైన లోకల్ హోస్ట్ SOCKS లిజనర్ను ప్రారంభిస్తుంది మరియు ఆ తర్వాత మాత్రమే ప్రాక్సీ రిజిస్ట్రీ అసైన్మెంట్ను వ్రాస్తుంది. విఫలమైన క్రియాశీలత మునుపటి నిర్వహించబడిన కాన్ఫిగరేషన్ మరియు ప్రాసెస్ని పునరుద్ధరిస్తుంది. `STORAGE_ENCRYPTION_KEY` అవసరం; మూల లింక్లు గుప్తీకరించబడ్డాయి.
+
+నిర్వహించబడే ఫైల్లు `DATA_DIR/services/managed-proxy/` క్రింద ప్రత్యక్షంగా ఉంటాయి, TPROXY నుండి వేరుగా ఉంటాయి. ఎంచుకున్న కోర్కి ఒక యాజమాన్య ప్రక్రియ ఉంది, గరిష్టంగా 100 మంది శ్రోతలు. ఆటోస్టార్ట్ లేదా గ్లోబల్ రూటింగ్ డిఫాల్ట్ ఏదీ మార్చబడలేదు. విజయవంతమైన సేవ్ ఈ నిర్వహించబడే కోర్ కోసం మాత్రమే యాక్టివేషన్ను గుర్తుంచుకుంటుంది; అప్లికేషన్ స్టార్టప్ ఇప్పటికే ధృవీకరించబడిన బైనరీని ఉపయోగించి ప్రారంభించబడిన సేవ్ చేయబడిన కోర్లను పునరుద్ధరిస్తుంది, ఇది బూట్-టైమ్ డౌన్లోడ్ కాదు. స్పష్టమైన స్టాప్ ఆ యాక్టివేషన్ ఫ్లాగ్ను క్లియర్ చేస్తుంది. తప్పిపోయిన లేదా దెబ్బతిన్న బైనరీకి మూలాన్ని మళ్లీ సేవ్ చేయడం అవసరం. రిజిస్ట్రీ తొలగింపు స్థానికంగా మూలం మరియు శ్రోతలను తొలగిస్తుంది; నిర్వహించబడే అడ్డు వరుసల కోసం సాధారణ ఎండ్పాయింట్ సవరణలు తిరస్కరించబడతాయి కాబట్టి సేవ్ చేయబడిన మూలం దాని రూట్ చేయబడిన శ్రోత నుండి నిశ్శబ్దంగా డ్రిఫ్ట్ అవ్వదు.
+
+| మూలం ఫార్మాట్ | పాడే పెట్టె | Xray |
+| ------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
+| VLESS, VMess, ట్రోజన్, షాడోసాక్స్ URI | మద్దతు గల మార్పిడి | మద్దతు గల మార్పిడి |
+| Hysteria2/hy2, TUIC, AnyTLS URI | మద్దతు గల మార్పిడి | తిరస్కరించబడింది; అనుకూలమైన కోర్ని ఉపయోగించండి |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | VLESS/VMess/Trojan కోసం మద్దతు ఉంది | VLESS/VMess/Trojan కోసం మద్దతు ఉంది |
+| XHTTP URI రవాణా | తిరస్కరించబడింది | మద్దతు గల మార్పిడి |
+| స్థానిక అవుట్బౌండ్ JSON | ఎంచుకున్న కోర్ అనుమతించబడిన ప్రాక్సీ protocols/options, స్థానికంగా తనిఖీ చేయబడింది | ఎంచుకున్న కోర్ అనుమతించబడిన ప్రాక్సీ protocols/options, స్థానికంగా తనిఖీ చేయబడింది |
+
+తెలియని వైర్ ఎంపికలు, అసురక్షిత TLS ఫ్లాగ్లు, బాహ్య ప్లగిన్లు, స్థానిక ఫైల్-పాత్ ఎంపికలు మరియు మద్దతు లేని కలయికలు నిశ్శబ్దంగా విస్మరించబడకుండా తిరస్కరించబడతాయి. స్థానిక వస్తువులు అవుట్బౌండ్ నిర్వచనాలు, పూర్తి-కోర్ కాన్ఫిగరేషన్లు కాదు; control/direct/bypass అవుట్బౌండ్లు ఆమోదించబడవు. WireGuard on sing-box 1.14 ఎండ్పాయింట్లను ఉపయోగిస్తుంది, కాబట్టి ఇది స్థానిక అవుట్బౌండ్గా అంగీకరించబడదు. ఇది ఆల్-ఫార్మాట్ కన్వర్టర్ కాదు; SSR, లెగసీ whole-base64 షాడోసాక్స్ లింక్లు, ఆర్బిట్రరీ క్లాష్ ఆబ్జెక్ట్లు మరియు టేబుల్లో లేని రవాణా వేరియంట్లకు విడిగా మద్దతు ఉన్న సోర్స్ ఫార్మాట్ అవసరం.
+
+`/api/services/managed-proxy` ప్రమాణీకరించబడింది మరియు లూప్బ్యాక్-మాత్రమే: GET సవరించిన మెటాడేటాను జాబితా చేస్తుంది, POST `{core,name,sourceLink,id?,assignment?}` సేవ్ చేస్తుంది, PATCH `{core,action:"start"|"stop"}` ని అంగీకరిస్తుంది. హోస్ట్ యొక్క విశ్వసనీయ పీర్-స్టాంప్ పైప్లైన్ తప్పనిసరిగా ఉండాలి. స్థానిక కోర్ డయాగ్నస్టిక్స్ అణచివేయబడతాయి ఎందుకంటే అవి ఆధారాలను కలిగి ఉంటాయి; లైఫ్సైకిల్ ఈవెంట్లు సోర్స్ లింక్లు లేదా అప్స్ట్రీమ్ పేలోడ్లు లేకుండా ఇప్పటికే ఉన్న నిర్మాణాత్మక అప్లికేషన్ ఫైల్ లాగర్ను ఉపయోగిస్తాయి. సపోర్ట్ కోసం శానిటైజ్ చేసిన అప్లికేషన్ లాగ్లను మాత్రమే అటాచ్ చేయండి. అధికారిక సంస్కరణలు విడుదల-ఆస్తి SHA-256 మానిఫెస్ట్లతో సింగ్-బాక్స్ 1.14.3 మరియు Xray 26.3.27కి పిన్ చేయబడ్డాయి; భవిష్యత్ అప్డేట్లకు సంస్కరణను మరియు అన్ని ధృవీకరించబడిన డైజెస్ట్లను కలిపి మార్చడం అవసరం.
+
### కీలక నిర్ణయాలు (డిజైన్ ప్లాన్ నుండి)
| నిర్ణయం | విలువ |
@@ -56,7 +74,7 @@
| వినియోగం మోడ్ | రూటింగ్ ఇంజిన్లో ప్రొవైడర్ `9router/{sub}/{model}` గా నమోదు చేయబడింది |
| API కీ నిర్వహణ | OmniRoute జెనరేట్ చేస్తుంది, ఎన్క్రిప్ట్ ఎట్-రెస్ట్ (AES-256-GCM) మరియు env ద్వారా ఇంజెక్ట్ చేస్తుంది |
| డాష్బోర్డ్ స్థానం | `/dashboard/providers/services` (మూడు ట్యాబ్లు) |
-| ఆటో-స్టార్ట్ | ప్రతి సేవకు టోగుల్ చేయండి, డిఫాల్ట్ OFF |
+| స్వీయ-ప్రారంభం | ప్రతి సేవకు టోగుల్ చేయండి, డిఫాల్ట్ OFF |
---
diff --git a/docs/i18n/th/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/th/docs/frameworks/EMBEDDED-SERVICES.md
index 87bb99d9ad9d..da26a3f69177 100644
--- a/docs/i18n/th/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/th/docs/frameworks/EMBEDDED-SERVICES.md
@@ -32,7 +32,7 @@
| บริการ | แพ็คเกจ NPM | พอร์ตเริ่มต้น | วัตถุประสงค์ |
| ----------------- | -------------------------------- | :-----------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **9เราเตอร์** | `9router` | 20130 | เราเตอร์AI ที่ OmniRoute สามารถใช้เป็นผู้ให้บริการย่อยได้ โมเดลที่เปิดเผยเป็น `9router/{sub}/{model}` |
-| **CLIProxyAPI** | GitHub ปล่อยไบนารี่ (`cliproxy`) | 8317 | อะแด็ปเตอร์พร็อกซีในเครื่องสำหรับโฟลว์การตรวจสอบสิทธิ์ Anthropic CLI จัดเตรียมเส้นทางสำรองเมื่อโทเค็น OAuth หมดอายุ |
+| **CLIProxyAPI** | GitHub ปล่อยไบนารี่ (`cliproxy`) | 8317 | อะแด็ปเตอร์พร็อกซีในเครื่องสำหรับโฟลว์การตรวจสอบสิทธิ์ Anthropic CLI จัดเตรียมเส้นทางทางเลือกเมื่อโทเค็น OAuth หมดอายุ |
| **มิกซ์** | `mux` (หัวขาด `mux server`) | 8322 | daemon-orchestration agent โลคัล (coder/mux) — ที่จัดการวงจรการใช้งานเท่านั้น ไม่ใช่เป้าหมายการกำหนดเส้นทาง (ไม่มีพร็อก LLM ) |
| **ไบฟรอสต์** | `@maximhq/bifrost` | 8080 | ไปที่แบ็กเอนด์รีเลย์เกตเวย์ AI เมื่อทำงานให้เลือกอัตโนมัติตามเส้นทางรีเลย์ (`/v1/relay/`) |
| **ดาริโอ** | `@askalf/dario` | 3456 | Claude-subscription proxy — alternative/failover ถึง CLIProxyAPI สำหรับการรับส่งข้อมูลที่มีรูปทรงของ Claude-Code; คีย์ที่ฉีดเข้าไปจะกลายเป็น `DARIO_ADMIN_TOKEN` gating ระนาบควบคุม `/admin/*` OAuth ของมัน |
@@ -43,10 +43,28 @@
ทั้งแปดปฏิบัติตามรูปแบบการกำกับดูแลเดียวกัน:
- OmniRoute ติดตั้งภายใต้ `DATA_DIR/services/{name}/` (แยกจาก OmniRoute ของตัวเอง `package.json`)
-- OmniRoute วางไข่และติดตามพวกมันเป็นกระบวนการย่อย
+- OmniRoute วางไข่และติดตามพวกมันเป็นกระบวนการลูก
- OmniRoute ฉีดคีย์ API ชั่วคราวลงในสภาพแวดล้อมของเด็กและหมุนโดยไม่มีการหยุดทำงาน (ถ้ามี)
- เส้นทางการจัดการทั้งหมด (`/api/services/*`) คือ**LOCAL_ONLY** — เข้าถึงได้จากลูปแบ็คเท่านั้น (กฎยาก #17)
+### แกนพร็อกซีที่มีการจัดการ
+
+ฟิลด์โฮสต์พร็อกซีแบบกำหนดเองยังยอมรับลิงก์ต้นทาง V2Ray อีกด้วย เลือก** กล่องร้องเพลง** หรือ** เอ็กซ์เรย์** อย่างชัดเจน จากนั้นคลิกบันทึก การพิมพ์จะไม่ดาวน์โหลดหรือเริ่มแกนหลัก บันทึกจะตรวจสอบไฟล์เก็บถาวรรีลีสอย่างเป็นทางการ ตรวจสอบการกำหนดค่าดั้งเดิม เริ่มฟังโลคัลโฮสต์ SOCKS ที่แตกต่างกัน จากนั้นจึงเขียนเฉพาะการมอบหมายรีจิสทรีพร็อกซี การเปิดใช้งานที่ล้มเหลวจะคืนค่าการกำหนดค่าและกระบวนการที่ได้รับการจัดการก่อนหน้านี้ จำเป็นต้องมี `STORAGE_ENCRYPTION_KEY` ; ลิงก์แหล่งที่มาถูกเข้ารหัส
+
+ไฟล์ที่ได้รับการจัดการอยู่ภายใต้ `DATA_DIR/services/managed-proxy/` แยกจาก TPROXY มีหนึ่งกระบวนการที่เป็นเจ้าของต่อคอร์ที่เลือก โดยมี Listener สูงสุด 100 คน ไม่มีการเปลี่ยนแปลงการเริ่มต้นอัตโนมัติหรือค่าเริ่มต้นของเส้นทางทั่วโลก Successful Save จะจดจำการเปิดใช้งานสำหรับคอร์ที่ได้รับการจัดการนี้เท่านั้น การเริ่มต้นแอปพลิเคชันจะกู้คืนแกนที่บันทึกไว้ที่เปิดใช้งานโดยใช้ไบนารีที่ตรวจสอบแล้ว โดยไม่ต้องดาวน์โหลดเวลาบูต Explicit Stop ล้างค่าสถานะการเปิดใช้งานนั้น ไบนารีที่หายไปหรือเสียหายจำเป็นต้องบันทึกแหล่งที่มาอีกครั้ง การลบรีจิสทรีจะลบแหล่งที่มาและผู้ฟังในเครื่อง การแก้ไขจุดสิ้นสุดแบบธรรมดาจะถูกปฏิเสธสำหรับแถวที่ได้รับการจัดการ ดังนั้นแหล่งข้อมูลที่บันทึกไว้จึงไม่สามารถเบี่ยงเบนไปจาก Listener ที่กำหนดเส้นทางได้อย่างเงียบๆ
+
+| รูปแบบแหล่งที่มา | กล่องร้องเพลง | เอ็กซ์เรย์ |
+| ------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- |
+| VLESS, VMess, โทรจัน, Shadowsocks URI | รองรับการแปลง | รองรับการแปลง |
+| Hysteria2/hy2, TUIC, AnyTLS URI | รองรับการแปลง | ถูกปฏิเสธ; ใช้แกนที่เข้ากันได้ |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | รองรับ VLESS/VMess/Trojan | รองรับ VLESS/VMess/Trojan |
+| การขนส่ง XHTTP URI | ถูกปฏิเสธ | รองรับการแปลง |
+| JSON ออกดั้งเดิม | พร็อกซีที่อนุญาตของคอร์ที่เลือก protocols/options ตรวจสอบแบบเนทีฟ | พร็อกซีที่อนุญาตของคอร์ที่เลือก protocols/options ตรวจสอบแบบเนทีฟ |
+
+ตัวเลือกการโยงที่ไม่รู้จัก แฟล็ก TLS ที่ไม่ปลอดภัย ปลั๊กอินภายนอก ตัวเลือกพาธไฟล์ในเครื่อง และชุดค่าผสมที่ไม่รองรับจะถูกปฏิเสธ แทนที่จะละทิ้งอย่างเงียบๆ ออบเจ็กต์ดั้งเดิมเป็นคำจำกัดความขาออก ไม่ใช่การกำหนดค่าแบบคอร์ทั้งหมด ไม่ยอมรับขาออก control/direct/bypass WireGuard บน sing-box 1.14 ใช้จุดปลาย ดังนั้นจึงไม่ได้รับการยอมรับว่าเป็นขาออกดั้งเดิม นี่ไม่ใช่ตัวแปลงทุกรูปแบบ SSR, ลิงก์ whole-base64 Shadowsocks แบบเดิม, วัตถุ Clash ตามอำเภอใจ และรูปแบบการขนส่งที่ขาดหายไปจากตาราง จำเป็นต้องมีรูปแบบแหล่งที่มาที่รองรับแยกต่างหาก
+
+`/api/services/managed-proxy` ได้รับการตรวจสอบสิทธิ์และวนกลับเท่านั้น: GET แสดงรายการข้อมูลเมตาที่แก้ไข, POST บันทึก `{core,name,sourceLink,id?,assignment?}`, PATCH ยอมรับ `{core,action:"start"|"stop"}` ต้องมีไปป์ไลน์เพียร์สแตมป์ที่เชื่อถือได้ของโฮสต์ การวินิจฉัยเนทิฟคอร์จะถูกระงับเนื่องจากสามารถมีข้อมูลประจำตัวได้ เหตุการณ์วงจรการใช้งานใช้ตัวบันทึกไฟล์แอปพลิเคชันที่มีโครงสร้างที่มีอยู่โดยไม่มีลิงก์ต้นทางหรือเพย์โหลดอัปสตรีม แนบเฉพาะบันทึกแอปพลิเคชันที่ผ่านการฆ่าเชื้อแล้วเพื่อรับการสนับสนุน เวอร์ชันอย่างเป็นทางการถูกปักหมุดไว้ที่ sing-box 1.14.3 และ Xray 26.3.27 พร้อมด้วย release-asset SHA-256 manifests; การอัปเดตในอนาคตจำเป็นต้องเปลี่ยนเวอร์ชันและไดเจสต์ที่ตรวจสอบแล้วทั้งหมดพร้อมกัน
+
### การตัดสินใจที่สำคัญ (จากแผนการออกแบบ)
| การตัดสินใจ | ค่า |
@@ -56,7 +74,7 @@
| โหมดการบริโภค | ผู้ให้บริการลงทะเบียนเป็น `9router/{sub}/{model}` ในกลไกการกำหนดเส้นทาง |
| การจัดการคีย์API | OmniRoute สร้าง เข้ารหัสที่เหลือ (AES-256-GCM) และฉีดผ่าน env |
| ตำแหน่งแดชบอร์ด | `/dashboard/providers/services` (สามแท็บ) |
-| เริ่มต้นอัตโนมัติ | สลับต่อบริการ OFF เริ่มต้น |
+| เริ่มต้นอัตโนมัติ | สลับต่อบริการ ค่าเริ่มต้น OFF |
---
diff --git a/docs/i18n/tr/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/tr/docs/frameworks/EMBEDDED-SERVICES.md
index 9c318fe35e35..0d5f65a70494 100644
--- a/docs/i18n/tr/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/tr/docs/frameworks/EMBEDDED-SERVICES.md
@@ -31,7 +31,7 @@ Sekiz hizmet yerleşiktir:
| Hizmet | npm paketi | Varsayılan bağlantı noktası | Amaç |
| ----------------- | --------------------------------------- | :-------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **9Yönlendirici** | `9router` | 20130 | OmniRoute alt sağlayıcı olarak kullanabileceği AI yönlendiricisi. `9router/{sub}/{model}` olarak sunulan modeller |
+| **9Yönlendirici** | `9router` | 20130 | OmniRoute alt sağlayıcı olarak kullanabileceği AI yönlendiricisi. `9router/{sub}/{model}` olarak gösterilen modeller |
| **CLIProxyAPI** | GitHub sürüm ikili dosyası (`cliproxy`) | 8317 | Anthropic CLI kimlik doğrulama akışları için yerel proxy bağdaştırıcısı. OAuth belirteçlerinin süresi dolduğunda geri dönüş yönlendirmesi sağlar |
| **Mux** | `mux` (başsız `mux server`) | 8322 | Yerel aracı düzenleme arka plan programı (coder/mux). Yalnızca yaşam döngüsü tarafından yönetilen — bir yönlendirme hedefi değil ( LLM proxy oluşturma yok). |
| **Bifrost** | `@maximhq/bifrost` | 8080 | AI ağ geçidi geçiş arka ucuna gidin. Çalışırken, geçiş yolu (`/v1/relay/`) tarafından otomatik olarak seçilir |
@@ -45,18 +45,36 @@ Sekizinin tümü aynı denetim modelini takip ediyor:
- OmniRoute bunları `DATA_DIR/services/{name}/` altına kurar ( OmniRoute kendi `package.json` yalıtılmış olarak)
- OmniRoute bunları alt süreçler olarak oluşturur ve izler
- OmniRoute çocuğun ortamına geçici bir API anahtarı enjekte eder ve kesinti olmadan onu döndürür (varsa)
-- Tüm yönetim yolları (`/api/services/*`)**LOCAL_ONLY** — yalnızca geridöngüden erişilebilir (katı kural #17)
-
-### Önemli kararlar (tasarım planından)
-
-| Karar | Değer |
-| ------------------------------------------ | ----------------------------------------------------------------------------------------------- |
-| 9Router yerel UI kontrol panelinden erişim | `/dashboard/providers/services/9router/embed/*` ters proxy |
-| Kurulum mekanizması | `execFile` aracılığıyla `npm install {package}` (kabuk enterpolasyonu yok) |
-| Tüketim modu | Sağlayıcı, yönlendirme motorunda `9router/{sub}/{model}` olarak kayıtlı |
-| API anahtar yönetimi | OmniRoute, hareketsiz durumdayken (AES-256-GCM) oluşturur, şifreler ve env yoluyla enjekte eder |
-| Kontrol paneli konumu | `/dashboard/providers/services` (üç sekme) |
-| Otomatik başlatma | Hizmet başına geçiş, varsayılan OFF |
+- Tüm yönetim yolları (`/api/services/*`)**LOCAL_ONLY** — yalnızca geri döngüden erişilebilir ( #17 katı kuralı)
+
+### Yönetilen proxy çekirdekleri
+
+Özel proxy ana bilgisayar alanı aynı zamanda bir V2Ray kaynak bağlantısını da kabul eder. Seçme** şarkı kutusu** veya** Röntgen** açıkça belirtin ve ardından Kaydet'e tıklayın. Yazmak hiçbir zaman bir çekirdeği indirmez veya başlatmaz. Kaydet, resmi sürüm arşivini doğrular, yerel yapılandırmayı doğrular, farklı bir localhost SOCKS dinleyicisini başlatır ve ancak bundan sonra proxy kayıt defteri atamasını yazar. Başarısız etkinleştirme, önceki yönetilen yapılandırmayı ve süreci geri yükler. `STORAGE_ENCRYPTION_KEY` gereklidir; kaynak bağlantıları şifrelenir.
+
+Yönetilen dosyalar TPROXY ayrı olarak `DATA_DIR/services/managed-proxy/` altında bulunur. Seçilen çekirdek başına 100 dinleyiciye kadar sahip olunan bir süreç vardır. Otomatik başlatma veya genel yönlendirme varsayılanı değiştirilmedi. Başarılı Kaydetme yalnızca bu yönetilen çekirdek için etkinleştirmeyi hatırlar; uygulama başlatma, önceden doğrulanmış ikili dosyayı kullanarak etkinleştirilmiş kayıtlı çekirdekleri geri yükler; asla önyükleme sırasında indirme yapılmaz. Açık Durdurma, bu aktivasyon bayrağını temizler. Eksik veya hasarlı bir ikili dosya, kaynağın yeniden kaydedilmesini gerektirir. Kayıt defterinin silinmesi, kaynağı ve dinleyiciyi yerel olarak kaldırır; yönetilen satırlar için sıradan uç nokta düzenlemeleri reddedilir, böylece kaydedilen kaynak yönlendirilen dinleyiciden sessizce ayrılamaz.
+
+| Kaynak formatı | şarkı kutusu | Röntgen |
+| ---------------------------------------- | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
+| VLESS, VMess, Truva atı, Shadowsocks URI | Desteklenen dönüşüm | Desteklenen dönüşüm |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Desteklenen dönüşüm | Reddedilmiş; uyumlu bir çekirdek kullanın |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | VLESS/VMess/Trojan için desteklenir | VLESS/VMess/Trojan için desteklenir |
+| XHTTP URI taşıma | Reddedilmiş | Desteklenen dönüşüm |
+| Yerel giden JSON | Seçilen çekirdeğin izin verilen proxy protocols/options, yerel olarak kontrol edildi | Seçilen çekirdeğin izin verilen proxy protocols/options, yerel olarak kontrol edildi |
+
+Bilinmeyen bağlantı seçenekleri, güvenli olmayan TLS işaretleri, harici eklentiler, yerel dosya yolu seçenekleri ve desteklenmeyen kombinasyonlar sessizce atılmak yerine reddedilir. Yerel nesneler, tüm çekirdek yapılandırmaları değil, giden tanımlardır; control/direct/bypass gidenleri kabul edilmez. sing-box 1.14'teki WireGuard uç noktaları kullandığından yerel giden olarak kabul edilmez. Bu, tüm formatları kapsayan bir dönüştürücü değildir; SSR, eski whole-base64 Shadowsocks bağlantıları, rastgele Clash nesneleri ve tabloda bulunmayan taşıma çeşitleri, ayrı olarak desteklenen bir kaynak formatına ihtiyaç duyar.
+
+`/api/services/managed-proxy` kimliği doğrulanmıştır ve yalnızca geri döngüye sahiptir: GET düzeltilmiş meta verileri listeler, POST `{core,name,sourceLink,id?,assignment?}` kaydeder, PATCH, `{core,action:"start"|"stop"}` kabul eder. Ana bilgisayarın güvenilir eş damgası hattının mevcut olması gerekir. Yerel çekirdek tanılamaları kimlik bilgileri içerebileceğinden gizlenir; yaşam döngüsü olayları, kaynak bağlantıları veya yukarı akış yükleri olmadan mevcut yapılandırılmış uygulama dosya günlükçüsünü kullanır. Destek için yalnızca sterilize edilmiş uygulama günlüklerini ekleyin. Resmi sürümler, sürüm varlığı SHA-256 bildirimleriyle birlikte sing-box 1.14.3 ve Xray 26.3.27'ye sabitlenmiştir; gelecekteki güncellemeler, sürümün ve tüm doğrulanmış özetlerin birlikte değiştirilmesini gerektirir.
+
+### Anahtar kararlar (tasarım planından)
+
+| Karar | Değer |
+| ------------------------------------------ | ---------------------------------------------------------------------------------------------------- |
+| 9Router yerel UI kontrol panelinden erişim | `/dashboard/providers/services/9router/embed/*` ters proxy |
+| Kurulum mekanizması | `execFile` aracılığıyla `npm install {package}` (kabuk enterpolasyonu yok) |
+| Tüketim modu | Sağlayıcı, yönlendirme motorunda `9router/{sub}/{model}` olarak kayıtlı |
+| API anahtar yönetimi | OmniRoute, hareketsiz durumdayken (AES-256-GCM) oluşturur, şifreler ve env aracılığıyla enjekte eder |
+| Kontrol paneli konumu | `/dashboard/providers/services` (üç sekme) |
+| Otomatik başlatma | Hizmet başına geçiş, varsayılan OFF |
---
diff --git a/docs/i18n/uk-UA/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/uk-UA/docs/frameworks/EMBEDDED-SERVICES.md
index 651eb7be2a86..9418802d2b60 100644
--- a/docs/i18n/uk-UA/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/uk-UA/docs/frameworks/EMBEDDED-SERVICES.md
@@ -29,34 +29,52 @@
Вбудовано вісім сервісів:
-| Сервіс | пакет npm | Порт за замовчуванням | призначення |
-| ------------------- | ------------------------------------------ | :-------------------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **9 Маршрутизатор** | `9router` | 20130 | маршрутизатор AI, який OmniRoute може використовувати як суб-провайдера. Моделі, представлені як `9router/{sub}/{model}` |
-| **CLIProxyAPI** | двійковий файл випуску GitHub (`cliproxy`) | 8317 | Локальний проксі-адаптер для потоків автентифікації Anthropic CLI. Забезпечує резервну маршрутизацію, коли закінчується термін дії токенів OAuth |
-| **Мукс** | `mux` (безголовий `mux server`) | 8322 | Локальний демон оркестровки агента (coder/mux). Лише —, керований життєвим циклом, не є метою маршрутизації (без проксі-сервера LLM ). |
-| **Біфрост** | `@maximhq/bifrost` | 8080 | Go AI-gateway relay backend. Під час запуску автоматично вибирається маршрутом реле (`/v1/relay/`) |
-| **Даріо** | `@askalf/dario` | 3456 | Проксі-сервер підписки Claude — alternative/failover до CLIProxyAPI для трафіку у формі Claude-Code; ін'єктований ключ стає `DARIO_ADMIN_TOKEN` стробуючи його площину управління `/admin/*` OAuth |
-| **опен-ва** | `@open-wa/wa-automate` | 8323 | WhatsApp Веб-автоматизація (безголовий Chromium через Puppeteer). Лише —, керований життєвим циклом, не є метою маршрутизації. |
-| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Промт-компресія sidecar — real LLMLingua-2 ONNX модель (JS/TS порт алгоритму Microsoft). `open-sse/services/compression/engines/llmlingua/index.ts` надсилає до нього `/compress` через HTTP, повертаючись до робочого потоку внутрішнього процесу, коли коляска не працює. Лише —, керований життєвим циклом, не є метою маршрутизації. |
-| **скринька співу** | двійковий файл випуску GitHub (`singbox`) | 20140 | TPROXY sidecar підтримує перехоплення прозорого проксі `applyTproxy()`(`src/mitm/tproxy/setup.ts`). Інсталятор завантажує закріплений випуск, перевірений контрольною сумою. Лише —, керований життєвим циклом, але не ціль маршрутизації (без проксі-сервера LLM ) |
+| Сервіс | пакет npm | Порт за замовчуванням | призначення |
+| ------------------- | ------------------------------------------ | :-------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **9 Маршрутизатор** | `9router` | 20130 | маршрутизатор AI, який OmniRoute може використовувати як суб-провайдера. Моделі, представлені як `9router/{sub}/{model}` |
+| **CLIProxyAPI** | двійковий файл випуску GitHub (`cliproxy`) | 8317 | Локальний проксі-адаптер для потоків автентифікації Anthropic CLI. Забезпечує резервну маршрутизацію, коли закінчується термін дії токенів OAuth |
+| **Мукс** | `mux` (безголовий `mux server`) | 8322 | Локальний демон оркестровки агента (coder/mux). Лише —, керований життєвим циклом, не є метою маршрутизації (без проксі-сервера LLM ). |
+| **Біфрост** | `@maximhq/bifrost` | 8080 | Go AI-gateway relay backend. Під час запуску автоматично вибирається маршрутом реле (`/v1/relay/`) |
+| **Даріо** | `@askalf/dario` | 3456 | Проксі Claude-підписки — alternative/failover до CLIProxyAPI для трафіку у формі Claude-Code; ін'єктований ключ стає `DARIO_ADMIN_TOKEN` стробуючи його площину управління `/admin/*` OAuth |
+| **опен-ва** | `@open-wa/wa-automate` | 8323 | WhatsApp Веб-автоматизація (безголовий Chromium через Puppeteer). Лише —, керований життєвим циклом, не є метою маршрутизації. |
+| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Промт-стиснення sidecar — реальна модель LLMLingua-2 ONNX (порт JS/TS алгоритму Microsoft). `open-sse/services/compression/engines/llmlingua/index.ts` надсилає до нього `/compress` через HTTP, повертаючись до робочого потоку внутрішнього процесу, коли коляска не працює. Лише —, керований життєвим циклом, не є метою маршрутизації. |
+| **скринька співу** | двійковий файл випуску GitHub (`singbox`) | 20140 | TPROXY sidecar підтримує перехоплення прозорого проксі `applyTproxy()`(`src/mitm/tproxy/setup.ts`). Інсталятор завантажує закріплений випуск, перевірений контрольною сумою. Лише —, керований життєвим циклом, але не ціль маршрутизації (без проксі-сервера LLM ) |
Усі вісім дотримуються однієї моделі нагляду:
- OmniRoute встановлює їх під `DATA_DIR/services/{name}/` (ізольовано від власного `package.json` OmniRoute)
- OmniRoute породжує та контролює їх як дочірні процеси
- OmniRoute вводить ефемерний ключ API у дочірнє середовище та обертає його без простою (де це можливо)
-- Усі маршрути керування (`/api/services/*`) є**LOCAL_ONLY** — доступний лише через loopback (жорстке правило №17)
+- Усі маршрути керування (`/api/services/*`) є**LOCAL_ONLY** — доступний лише через петлю (жорстке правило #17)
+
+### Керовані проксі-ядра
+
+Поле Custom proxy host також приймає посилання на джерело V2Ray. Виберіть** скринька співу** або** рентген** явно, а потім натисніть «Зберегти». Введення ніколи не завантажує та не запускає ядро. Збереження перевіряє офіційний архів випуску, перевіряє рідну конфігурацію, запускає окремий прослухувач локального хосту SOCKS і лише потім записує призначення реєстру проксі. Невдала активація відновлює попередню керовану конфігурацію та процес. потрібен `STORAGE_ENCRYPTION_KEY` ; вихідні посилання зашифровані.
+
+Керовані файли знаходяться в `DATA_DIR/services/managed-proxy/` окремо від TPROXY. Для кожного вибраного ядра є один власний процес, до 100 слухачів. Автозапуск або глобальна маршрутизація за замовчуванням не змінюються. Успішне збереження запам’ятовує активацію лише для цього керованого ядра; запуск програми відновлює активовані збережені ядра, використовуючи вже перевірений двійковий файл, ніколи не завантажуючи під час завантаження. Явна зупинка знімає цей прапор активації. Відсутній або пошкоджений двійковий файл потребує повторного збереження джерела. Видалення реєстру видаляє джерело та слухач локально; звичайні редагування кінцевої точки відхиляються для керованих рядків, тому збережене джерело не може мовчки відійти від маршрутизованого слухача.
+
+| Вихідний формат | скринька співу | рентген |
+| ------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
+| VLESS, VMess, троян, Shadowsocks URI | Підтримується перетворення | Підтримується перетворення |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Підтримується перетворення | Відхилено; використовувати сумісне ядро |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Підтримується для VLESS/VMess/Trojan | Підтримується для VLESS/VMess/Trojan |
+| XHTTP URI транспорт | Відхилено | Підтримується перетворення |
+| Рідний вихідний JSON | Дозволений проксі-сервер protocols/options вибраного ядра, перевірено нативно | Дозволений проксі-сервер protocols/options вибраного ядра, перевірено нативно |
+
+Невідомі параметри з’єднання, небезпечні позначки TLS, зовнішні плагіни, параметри локального шляху до файлів і непідтримувані комбінації відхиляються, а не мовчки відкидаються. Власні об’єкти – це вихідні визначення, а не конфігурації всього ядра; вихідні повідомлення control/direct/bypass не приймаються. WireGuard на sing-box 1.14 використовує кінцеві точки, тому він не приймається як рідний вихідний. Це не конвертер усіх форматів; SSR, старі посилання whole-base64 Shadowsocks, довільні об’єкти Clash і варіанти транспорту, яких немає в таблиці, потребують окремого підтримуваного вихідного формату.
+
+`/api/services/managed-proxy` проходить автентифікацію та використовує лише зворотний зв’язок: GET перераховує відредаговані метадані, POST зберігає `{core,name,sourceLink,id?,assignment?}`, PATCH приймає `{core,action:"start"|"stop"}`. Має бути присутнім довірений конвеєр однорангових штампів. Діагностика рідного ядра пригнічується, оскільки вона може містити облікові дані; Події життєвого циклу використовують існуючий реєстратор структурованих файлів додатків без джерельних посилань або вихідних корисних навантажень. Для підтримки долучайте лише оброблені журнали програм. Офіційні версії закріплено на sing-box 1.14.3 і Xray 26.3.27 з маніфестами SHA-256 -активу випуску; майбутні оновлення вимагають зміни версії та всіх перевірених дайджестів разом.
### Ключові рішення (з проектного плану)
-| Рішення | Значення |
-| --------------------------------------------------- | --------------------------------------------------------------------------------- |
-| Доступ до інформаційної панелі до рідної UI 9Router | Зворотний проксі на `/dashboard/providers/services/9router/embed/*` |
-| Механізм установки | `npm install {package}` через `execFile` (без інтерполяції оболонки) |
-| Режим споживання | Постачальник, зареєстрований як `9router/{sub}/{model}` в механізмі маршрутизації |
-| управління ключами API | OmniRoute генерує, шифрує в стані спокою (AES-256-GCM) і вводить через env |
-| Розташування приладової панелі | `/dashboard/providers/services` (три вкладки) |
-| Автозапуск | Перемикати для кожної служби, за замовчуванням OFF |
+| Рішення | Значення |
+| --------------------------------------------------- | -------------------------------------------------------------------------------- |
+| Доступ до інформаційної панелі до рідної UI 9Router | Зворотний проксі на `/dashboard/providers/services/9router/embed/*` |
+| Механізм установки | `npm install {package}` через `execFile` (без інтерполяції оболонки) |
+| Режим споживання | Постачальник зареєстрований як `9router/{sub}/{model}` в механізмі маршрутизації |
+| управління ключами API | OmniRoute генерує, шифрує в стані спокою (AES-256-GCM) і вводить через env |
+| Розташування приладової панелі | `/dashboard/providers/services` (три вкладки) |
+| Автозапуск | Перемикати для кожної служби, за замовчуванням OFF |
---
diff --git a/docs/i18n/ur/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/ur/docs/frameworks/EMBEDDED-SERVICES.md
index 1b6a72bdf7f0..1999750a5f17 100644
--- a/docs/i18n/ur/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/ur/docs/frameworks/EMBEDDED-SERVICES.md
@@ -47,6 +47,24 @@
- OmniRoute بچے کے ماحول میں ایک عارضی API کلید لگاتا ہے اور اسے بغیر وقت کے گھماتا ہے (جہاں قابل اطلاق ہو)
- تمام انتظامی راستے (`/api/services/*`) ہیں۔**LOCAL_ONLY** — صرف لوپ بیک سے قابل رسائی (سخت اصول #17)
+### منظم پراکسی کور
+
+کسٹم پراکسی ہوسٹ فیلڈ V2Ray سورس لنک کو بھی قبول کرتا ہے۔ منتخب کریں۔** سنگ باکس** یا** ایکسرے** واضح طور پر، پھر محفوظ کریں پر کلک کریں۔ ٹائپنگ کبھی بھی ڈاؤن لوڈ نہیں ہوتی ہے اور نہ ہی ایک کور شروع کرتی ہے۔ Save آفیشل ریلیز آرکائیو کی تصدیق کرتا ہے، مقامی کنفیگریشن کی توثیق کرتا ہے، ایک الگ لوکل ہوسٹ SOCKS سننے والا شروع کرتا ہے، اور تب ہی پراکسی رجسٹری اسائنمنٹ لکھتا ہے۔ ناکام ایکٹیویشن پچھلی منظم کنفیگریشن اور عمل کو بحال کرتی ہے۔ `STORAGE_ENCRYPTION_KEY` کی ضرورت ہے؛ سورس لنکس کو خفیہ کیا گیا ہے۔
+
+زیر انتظام فائلیں `DATA_DIR/services/managed-proxy/` کے تحت رہتی ہیں، TPROXY سے الگ۔ فی منتخب کور، 100 سامعین تک ایک ملکیتی عمل ہے۔ کوئی آٹو اسٹارٹ یا عالمی روٹنگ ڈیفالٹ تبدیل نہیں کیا گیا ہے۔ کامیاب محفوظ صرف اس مینیجڈ کور کے لیے ایکٹیویشن کو یاد رکھتا ہے۔ ایپلیکیشن اسٹارٹ اپ پہلے سے تصدیق شدہ بائنری کا استعمال کرتے ہوئے محفوظ شدہ کور کو بحال کرتا ہے، کبھی بوٹ ٹائم ڈاؤن لوڈ نہیں۔ واضح اسٹاپ اس ایکٹیویشن پرچم کو صاف کرتا ہے۔ گمشدہ یا خراب شدہ بائنری کے لیے ماخذ کو دوبارہ محفوظ کرنے کی ضرورت ہوتی ہے۔ رجسٹری کو حذف کرنے سے ماخذ اور سننے والے کو مقامی طور پر ہٹا دیا جاتا ہے۔ منظم قطاروں کے لیے عام اختتامی نقطہ کی ترامیم کو مسترد کر دیا جاتا ہے اس لیے محفوظ کردہ ماخذ خاموشی سے اپنے روٹڈ سننے والے سے نہیں نکل سکتا۔
+
+| ماخذ کی شکل | سنگ باکس | ایکسرے |
+| ------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
+| VLESS، VMess، Trojan، Shadowsocks URI | تائید شدہ تبدیلی | تائید شدہ تبدیلی |
+| Hysteria2/hy2, TUIC, AnyTLS URI | تائید شدہ تبدیلی | مسترد ایک ہم آہنگ کور کا استعمال کریں |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | VLESS/VMess/Trojan کے لیے تعاون یافتہ | VLESS/VMess/Trojan کے لیے تعاون یافتہ |
+| XHTTP URI ٹرانسپورٹ | مسترد | تائید شدہ تبدیلی |
+| مقامی آؤٹ باؤنڈ JSON | منتخب کور کی اجازت یافتہ پراکسی protocols/options، مقامی طور پر چیک کیا گیا۔ | منتخب کور کی اجازت یافتہ پراکسی protocols/options، مقامی طور پر چیک کیا گیا۔ |
+
+نامعلوم تار کے اختیارات، غیر محفوظ TLS پرچم، بیرونی پلگ ان، مقامی فائل پاتھ کے اختیارات اور غیر تعاون یافتہ امتزاج کو خاموشی سے ضائع کرنے کے بجائے مسترد کر دیا جاتا ہے۔ مقامی آبجیکٹ آؤٹ باؤنڈ تعریفیں ہیں، پوری بنیادی ترتیب نہیں؛ control/direct/bypass آؤٹ باؤنڈز قبول نہیں ہیں۔ sing-box 1.14 پر WireGuard اینڈ پوائنٹس کا استعمال کرتا ہے، لہذا اسے مقامی آؤٹ باؤنڈ کے طور پر قبول نہیں کیا جاتا ہے۔ یہ ایک آل فارمیٹ کنورٹر نہیں ہے۔ SSR, legacy whole-base64 Shadowsocks لنکس، صوابدیدی تصادم آبجیکٹ اور ٹیبل سے غیر حاضر ٹرانسپورٹ ویریئنٹس کو الگ سے تعاون یافتہ سورس فارمیٹ کی ضرورت ہے۔
+
+`/api/services/managed-proxy` تصدیق شدہ اور صرف لوپ بیک ہے: GET ترمیم شدہ میٹا ڈیٹا کی فہرست دیتا ہے، POST محفوظ کرتا ہے `{core,name,sourceLink,id?,assignment?}`، PATCH `{core,action:"start"|"stop"}` قبول کرتا ہے۔ میزبان کی قابل اعتماد پیئر سٹیمپ پائپ لائن کا موجود ہونا ضروری ہے۔ مقامی بنیادی تشخیص کو دبا دیا جاتا ہے کیونکہ ان میں اسناد ہو سکتی ہیں۔ لائف سائیکل ایونٹس موجودہ سٹرکچرڈ ایپلیکیشن فائل لاگر کو سورس لنکس یا اپ اسٹریم پے لوڈ کے بغیر استعمال کرتے ہیں۔ سپورٹ کے لیے صرف سینیٹائزڈ ایپلیکیشن لاگز منسلک کریں۔ آفیشل ورژن سنگ باکس 1.14.3 اور Xray 26.3.27 پر ریلیز اثاثہ SHA-256 مینی فیسٹ کے ساتھ پن کیے گئے ہیں۔ مستقبل کے اپ ڈیٹس کے لیے ورژن اور تمام تصدیق شدہ ڈائجسٹ کو ایک ساتھ تبدیل کرنے کی ضرورت ہے۔
+
### اہم فیصلے (ڈیزائن پلان سے)
| فیصلہ | قدر |
diff --git a/docs/i18n/uz/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/uz/docs/frameworks/EMBEDDED-SERVICES.md
index 6ec638de488f..6d7e82e31f50 100644
--- a/docs/i18n/uz/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/uz/docs/frameworks/EMBEDDED-SERVICES.md
@@ -45,7 +45,25 @@ Barcha sakkizta bir xil nazorat modeliga amal qiladi:
- OmniRoute ularni `DATA_DIR/services/{name}/` ostida o'rnatadi ( OmniRoute o'z `package.json` dan ajratilgan)
- OmniRoute ularni bola jarayonlari sifatida yaratadi va nazorat qiladi
- OmniRoute vaqtinchalik API kalitini bolaning muhitiga kiritadi va uni uzilishlarsiz aylantiradi (agar mavjud bo'lsa)
-- Barcha boshqaruv yo'llari (`/api/services/*`) mavjud**LOCAL_ONLY** — faqat orqaga qaytish orqali kirish mumkin (qattiq qoida №17)
+- Barcha boshqaruv yo'llari (`/api/services/*`) mavjud**LOCAL_ONLY** — faqat orqaga qaytish orqali kirish mumkin (qattiq qoida #17)
+
+### Boshqariladigan proksi yadrolari
+
+Maxsus proksi xost maydoni V2Ray manba havolasini ham qabul qiladi. Tanlang** qo'shiq qutisi** yoki** Rentgen** aniq, keyin Saqlash tugmasini bosing. Yozish hech qachon yadroni yuklab olmaydi yoki ishga tushirmaydi. Saqlash rasmiy nashr arxivini tekshiradi, mahalliy konfiguratsiyani tasdiqlaydi, alohida localhost SOCKS tinglovchisini ishga tushiradi va shundan keyingina proksi-server registriga topshiriq yozadi. Muvaffaqiyatsiz faollashtirish oldingi boshqariladigan konfiguratsiya va jarayonni tiklaydi. `STORAGE_ENCRYPTION_KEY` talab qilinadi; manba havolalari shifrlangan.
+
+Boshqariladigan fayllar `DATA_DIR/services/managed-proxy/` ostida, TPROXY dan alohida yashaydi. Tanlangan yadro uchun bitta jarayon, 100 tagacha tinglovchi mavjud. Hech qanday avtomatik ishga tushirish yoki global marshrutlash standarti o'zgarmaydi. Muvaffaqiyatli saqlash faqat ushbu boshqariladigan yadro uchun faollashtirishni eslab qoladi; Ilovani ishga tushirish allaqachon tasdiqlangan ikkilik fayldan foydalangan holda yoqilgan saqlangan yadrolarni qayta tiklaydi, hech qachon yuklash vaqtida yuklanmaydi. Aniq to'xtash faollashtirish belgisini o'chiradi. Yo'qolgan yoki shikastlangan ikkilik manbani qayta saqlashni talab qiladi. Ro'yxatga olish kitobini o'chirish manba va tinglovchini mahalliy sifatida olib tashlaydi; oddiy so‘nggi nuqta tahrirlari boshqariladigan satrlar uchun rad etiladi, shuning uchun saqlangan manba o‘zining marshrutlangan tinglovchisidan jimgina chetga chiqa olmaydi.
+
+| Manba formati | qo'shiq qutisi | Rentgen |
+| ------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
+| VLESS, VMess, troyan, Shadowsocks URI | Qo'llab-quvvatlanadigan konvertatsiya | Qo'llab-quvvatlanadigan konvertatsiya |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Qo'llab-quvvatlanadigan konvertatsiya | Rad etilgan; mos keladigan yadrodan foydalaning |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | VLESS/VMess/Trojan uchun qo'llab-quvvatlanadi | VLESS/VMess/Trojan uchun qo'llab-quvvatlanadi |
+| XHTTP URI transport | Rad etilgan | Qo'llab-quvvatlanadigan konvertatsiya |
+| Mahalliy chiquvchi JSON | Tanlangan yadroning ruxsat etilgan proksi protocols/options, mahalliy sifatida tekshiriladi | Tanlangan yadroning ruxsat etilgan proksi protocols/options, mahalliy sifatida tekshiriladi |
+
+Noma'lum sim opsiyalari, xavfsiz bo'lmagan TLS bayroqlari, tashqi plaginlar, mahalliy fayl yo'li opsiyalari va qo'llab-quvvatlanmaydigan kombinatsiyalar jimgina o'chirish o'rniga rad etiladi. Native ob'ektlar butun yadro konfiguratsiyalari emas, balki chiquvchi ta'riflardir; control/direct/bypass chiqishlari qabul qilinmaydi. sing-box 1.14-dagi WireGuard oxirgi nuqtalardan foydalanadi, shuning uchun u mahalliy chiquvchi sifatida qabul qilinmaydi. Bu barcha formatli konvertor emas; SSR, eski whole-base64 Shadowsocks havolalari, ixtiyoriy Clash ob'ektlari va jadvalda mavjud bo'lmagan transport variantlari uchun alohida qo'llab-quvvatlanadigan manba formati kerak.
+
+`/api/services/managed-proxy` autentifikatsiya qilingan va faqat orqaga qaytish: GET tahrirlangan metamaʼlumotlarni roʻyxatlaydi, POST `{core,name,sourceLink,id?,assignment?}` saqlaydi, PATCH `{core,action:"start"|"stop"}` qabul qiladi. Uy egasining ishonchli peer-stamp quvur liniyasi mavjud bo'lishi kerak. Mahalliy diagnostika bostiriladi, chunki ular hisob ma'lumotlarini o'z ichiga olishi mumkin; hayot tsikli hodisalari manba havolalari yoki yuqori oqim yuklarisiz mavjud tuzilgan dastur fayllari jurnalidan foydalanadi. Qo'llab-quvvatlash uchun faqat tozalangan dastur jurnallarini biriktiring. Rasmiy versiyalar sing-box 1.14.3 va Xray 26.3.27-ga reliz-aktiv SHA-256 manifestlari bilan biriktirilgan; kelajakdagi yangilanishlar versiyani va barcha tasdiqlangan dayjestlarni birgalikda o'zgartirishni talab qiladi.
### Asosiy qarorlar (dizayn rejasidan)
diff --git a/docs/i18n/vi/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/vi/docs/frameworks/EMBEDDED-SERVICES.md
index 000900548924..feae63bfeb6b 100644
--- a/docs/i18n/vi/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/vi/docs/frameworks/EMBEDDED-SERVICES.md
@@ -29,23 +29,41 @@ Các dịch vụ nhúng là các công cụ sidecar quy trình được cài đ
Tám dịch vụ được nhúng:
-| Dịch vụ | gói npm | Cổng mặc định | Mục đích |
-| -------------------- | -------------------------------------- | :-----------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **9Bộ định tuyến** | `9router` | 20130 | bộ định tuyến AI mà OmniRoute có thể sử dụng làm nhà cung cấp phụ. Mô hình được hiển thị dưới dạng `9router/{sub}/{model}` |
-| **CLIProxyAPI** | GitHub phát hành nhị phân (`cliproxy`) | 8317 | Bộ điều hợp proxy cục bộ cho các luồng xác thực Anthropic CLI. Cung cấp định tuyến dự phòng khi mã thông báo OAuth hết hạn |
-| **Mux** | `mux` ( `mux server` không đầu) | 8322 | Daemon điều phối đại lý cục bộ (coder/mux). Chỉ — được quản lý vòng đời chứ không phải mục tiêu định tuyến (không có ủy quyền LLM ). |
-| **hai lớp băng giá** | `@maximhq/bifrost` | 8080 | Đi đến phần phụ trợ chuyển tiếp cổng AI. Khi chạy, tự động chọn theo tuyến chuyển tiếp (`/v1/relay/`) |
-| **Dario** | `@askalf/dario` | 3456 | Proxy đăng ký Claude — alternative/failover tới CLIProxyAPI cho lưu lượng truy cập có hình dạng Claude; khóa được chèn trở thành `DARIO_ADMIN_TOKEN` điều khiển mặt phẳng điều khiển `/admin/*` OAuth của nó |
-| **mở-wa** | `@open-wa/wa-automate` | 8323 | WhatsApp Tự động hóa web (Chrome không đầu thông qua Puppeteer). Chỉ — được quản lý vòng đời chứ không phải mục tiêu định tuyến. |
-| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Mô hình sidecar nén nhanh — real LLMLingua-2 ONNX ( cổng JS/TS của thuật toán Microsoft). `open-sse/services/compression/engines/llmlingua/index.ts` gửi `/compress` qua HTTP tới nó, quay trở lại chương trình phụ trợ luồng công nhân đang xử lý khi sidecar ngừng hoạt động. Chỉ — được quản lý vòng đời chứ không phải mục tiêu định tuyến. |
-| **hộp hát** | GitHub phát hành nhị phân (`singbox`) | 20140 | TPROXY sidecar ủng hộ việc chặn proxy trong suốt của `applyTproxy()`(`src/mitm/tproxy/setup.ts`). Trình cài đặt tải xuống bản phát hành được ghim, đã được xác minh bằng tổng kiểm tra. Chỉ — được quản lý vòng đời chứ không phải mục tiêu định tuyến (không có ủy quyền LLM ) |
+| Dịch vụ | gói npm | Cổng mặc định | Mục đích |
+| ------------------ | -------------------------------------- | :-----------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **9Bộ định tuyến** | `9router` | 20130 | bộ định tuyến AI mà OmniRoute có thể sử dụng làm nhà cung cấp phụ. Mô hình được hiển thị dưới dạng `9router/{sub}/{model}` |
+| **CLIProxyAPI** | GitHub phát hành nhị phân (`cliproxy`) | 8317 | Bộ điều hợp proxy cục bộ cho các luồng xác thực Anthropic CLI. Cung cấp định tuyến dự phòng khi mã thông báo OAuth hết hạn |
+| **Mux** | `mux` ( `mux server` không đầu) | 8322 | Daemon điều phối đại lý cục bộ (coder/mux). Chỉ — được quản lý vòng đời chứ không phải mục tiêu định tuyến (không có ủy quyền LLM ). |
+| **lưỡng cực** | `@maximhq/bifrost` | 8080 | Đi đến phần phụ trợ chuyển tiếp cổng AI. Khi chạy, tự động chọn theo tuyến chuyển tiếp (`/v1/relay/`) |
+| **Dario** | `@askalf/dario` | 3456 | Proxy đăng ký Claude — alternative/failover đến CLIProxyAPI cho lưu lượng truy cập có hình dạng Claude; khóa được chèn trở thành `DARIO_ADMIN_TOKEN` gating mặt phẳng điều khiển `/admin/*` OAuth của nó |
+| **mở-wa** | `@open-wa/wa-automate` | 8323 | WhatsApp Tự động hóa web (Chrome không đầu thông qua Puppeteer). Chỉ — được quản lý vòng đời chứ không phải mục tiêu định tuyến. |
+| **LLMLingua** | `@atjsh/llmlingua-2` | 20135 | Mô hình sidecar nén nhanh — real LLMLingua-2 ONNX ( cổng JS/TS của thuật toán Microsoft). `open-sse/services/compression/engines/llmlingua/index.ts` gửi `/compress` qua HTTP tới nó, quay trở lại chương trình phụ trợ luồng công nhân đang xử lý khi sidecar ngừng hoạt động. Chỉ — được quản lý vòng đời chứ không phải mục tiêu định tuyến. |
+| **hộp hát** | GitHub phát hành nhị phân (`singbox`) | 20140 | TPROXY sidecar ủng hộ việc chặn proxy trong suốt của `applyTproxy()`(`src/mitm/tproxy/setup.ts`). Trình cài đặt tải xuống bản phát hành được ghim, đã được xác minh bằng tổng kiểm tra. Chỉ — được quản lý vòng đời chứ không phải mục tiêu định tuyến (không có ủy quyền LLM ) |
Tất cả tám đều theo cùng một mô hình giám sát:
- OmniRoute cài đặt chúng dưới `DATA_DIR/services/{name}/` (tách biệt với `package.json` của chính OmniRoute)
- OmniRoute sinh ra và giám sát chúng như các tiến trình con
- OmniRoute đưa một khóa API tạm thời vào môi trường của trẻ và xoay nó mà không có thời gian chết (nếu có)
-- Tất cả các tuyến quản lý (`/api/services/*`) đều**LOCAL_ONLY** — chỉ có thể truy cập được từ loopback (quy tắc cứng số 17)
+- Tất cả các tuyến quản lý (`/api/services/*`) đều**LOCAL_ONLY** — chỉ có thể truy cập được từ loopback (quy tắc cứng #17)
+
+### Lõi proxy được quản lý
+
+Trường Máy chủ proxy tùy chỉnh cũng chấp nhận liên kết nguồn V2Ray. Lựa chọn** hộp hát** hoặc** Tia X** rõ ràng rồi nhấp vào Lưu. Gõ không bao giờ tải xuống hoặc khởi động lõi. Lưu xác minh kho lưu trữ phát hành chính thức, xác thực cấu hình gốc, khởi động trình nghe SOCKS localhost riêng biệt và chỉ sau đó ghi nhiệm vụ đăng ký proxy. Kích hoạt không thành công sẽ khôi phục cấu hình và quy trình được quản lý trước đó. `STORAGE_ENCRYPTION_KEY` là bắt buộc; liên kết nguồn được mã hóa.
+
+Các tệp được quản lý nằm dưới `DATA_DIR/services/managed-proxy/`, tách biệt với TPROXY. Có một quy trình được sở hữu cho mỗi lõi được chọn, tối đa 100 người nghe. Không có mặc định tự khởi động hoặc định tuyến toàn cầu nào được thay đổi. Lưu thành công chỉ ghi nhớ kích hoạt cho lõi được quản lý này; khởi động ứng dụng khôi phục các lõi đã lưu đã kích hoạt bằng cách sử dụng tệp nhị phân đã được xác minh, không bao giờ tải xuống trong thời gian khởi động. Dừng rõ ràng sẽ xóa cờ kích hoạt đó. Tệp nhị phân bị thiếu hoặc bị hỏng yêu cầu phải lưu lại nguồn. Việc xóa sổ đăng ký sẽ loại bỏ nguồn và trình nghe cục bộ; các chỉnh sửa điểm cuối thông thường bị từ chối đối với các hàng được quản lý nên nguồn đã lưu không thể âm thầm trôi ra khỏi trình nghe được định tuyến của nó.
+
+| Định dạng nguồn | hộp hát | Tia X |
+| ------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
+| VLESS, VMess, Trojan, Shadowsocks URI | Chuyển đổi được hỗ trợ | Chuyển đổi được hỗ trợ |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Chuyển đổi được hỗ trợ | Vật bị loại bỏ; sử dụng lõi tương thích |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Được hỗ trợ cho VLESS/VMess/Trojan | Được hỗ trợ cho VLESS/VMess/Trojan |
+| vận chuyển XHTTP URI | Vật bị loại bỏ | Chuyển đổi được hỗ trợ |
+| JSON gửi đi gốc | Proxy protocols/options được phép của lõi đã chọn, được kiểm tra nguyên bản | Proxy protocols/options được phép của lõi đã chọn, được kiểm tra nguyên bản |
+
+Các tùy chọn dây không xác định, cờ TLS không an toàn, plugin bên ngoài, tùy chọn đường dẫn tệp cục bộ và các kết hợp không được hỗ trợ đều bị từ chối thay vì bị loại bỏ trong âm thầm. Đối tượng gốc là các định nghĩa bên ngoài, không phải cấu hình toàn bộ lõi; hướng đi control/direct/bypass không được chấp nhận. WireGuard trên sing-box 1.14 sử dụng điểm cuối, vì vậy nó không được chấp nhận dưới dạng đường đi gốc. Đây không phải là công cụ chuyển đổi mọi định dạng; SSR, các liên kết whole-base64 Shadowsocks cũ, các đối tượng Clash tùy ý và các biến thể vận chuyển không có trong bảng cần có định dạng nguồn được hỗ trợ riêng.
+
+`/api/services/managed-proxy` được xác thực và chỉ lặp lại: GET liệt kê siêu dữ liệu được xử lý lại, POST lưu `{core,name,sourceLink,id?,assignment?}`, PATCH chấp nhận `{core,action:"start"|"stop"}`. Phải có đường dẫn đóng dấu ngang hàng đáng tin cậy của máy chủ. Chẩn đoán cốt lõi gốc bị chặn vì chúng có thể chứa thông tin xác thực; các sự kiện trong vòng đời sử dụng trình ghi nhật ký tệp ứng dụng có cấu trúc hiện có mà không có liên kết nguồn hoặc tải trọng ngược dòng. Chỉ đính kèm nhật ký ứng dụng đã được làm sạch để được hỗ trợ. Các phiên bản chính thức được ghim vào sing-box 1.14.3 và Xray 26.3.27 với các bảng kê khai SHA-256 tài sản phát hành; các bản cập nhật trong tương lai yêu cầu thay đổi phiên bản và tất cả các bản tóm tắt đã được xác minh cùng nhau.
### Các quyết định quan trọng (từ kế hoạch thiết kế)
diff --git a/docs/i18n/yo/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/yo/docs/frameworks/EMBEDDED-SERVICES.md
index 3f352228f2f0..2bcb31141609 100644
--- a/docs/i18n/yo/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/yo/docs/frameworks/EMBEDDED-SERVICES.md
@@ -47,6 +47,24 @@ Gbogbo awọn mẹjọ tẹle awoṣe abojuto kanna:
- OmniRoute fi bọtini API ephemeral sinu agbegbe ọmọde ati yiyi pada laisi akoko isinmi (nibiti o ba wulo)
- Gbogbo awọn ipa ọna iṣakoso (`/api/services/*`) jẹ**LOCAL_ONLY** — wiwọle nikan lati loopback (ofin lile #17)
+### Awọn ohun kohun aṣoju ti iṣakoso
+
+Aaye agbalejo aṣoju aṣa tun gba ọna asopọ orisun V2Ray kan. Yan** apoti orin** tabi** Xray** ni gbangba, lẹhinna tẹ Fipamọ. Titẹ ko ṣe igbasilẹ tabi bẹrẹ mojuto. Ṣafipamọ jẹri iwe-ipamọ itusilẹ ti oṣiṣẹ, ṣe atunto atunto abinibi, bẹrẹ olutẹtisi localhost SOCKS kan pato, ati pe lẹhinna nikan kọ iṣẹ iyansilẹ iforukọsilẹ aṣoju. Imuṣiṣẹ ti kuna ṣe atunṣe iṣeto iṣakoso iṣaaju ati ilana. `STORAGE_ENCRYPTION_KEY` nilo; awọn ọna asopọ orisun ti wa ni ti paroko.
+
+Awọn faili iṣakoso n gbe labẹ `DATA_DIR/services/managed-proxy/`, lọtọ lati TPROXY. Ilana ohun-ini kan wa fun mojuto ti a yan, to awọn olutẹtisi 100. Ko si adaṣe adaṣe tabi aiyipada ipa-ọna agbaye ti yipada. Fipamọ Aṣeyọri ranti imuṣiṣẹ fun ipilẹ iṣakoso yii nikan; Ibẹrẹ ohun elo ṣe atunṣe awọn ohun kohun ti o fipamọ ni lilo alakomeji ti a ti rii tẹlẹ, kii ṣe igbasilẹ akoko-bata. Iduro ti o han gbangba n pa asia imuṣiṣẹ naa kuro. Alakomeji ti o padanu tabi ti bajẹ nilo tun-fifipamọ orisun kan. Iforukọsilẹ piparẹ kuro ni orisun ati olutẹtisi ni agbegbe; Awọn atunṣe ipari ipari lasan ni a kọ fun awọn ori ila ti a ṣakoso nitoribẹẹ orisun ti o fipamọ ko le fi ipalọlọ fifo kuro ninu olutẹtisi rẹ.
+
+| Orisun kika | apoti orin | Xray |
+| --------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
+| VLESS, VMess, Tirojanu, Shadowsocks URI | Iyipada atilẹyin | Iyipada atilẹyin |
+| Hysteria2/hy2, TUIC, AnyTLS URI | Iyipada atilẹyin | Kọ silẹ; lo mojuto ibaramu |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | Atilẹyin fun VLESS/VMess/Trojan | Atilẹyin fun VLESS/VMess/Trojan |
+| XHTTP URI irinna | Ti kọ | Iyipada atilẹyin |
+| Ilu abinibi JSON | Aṣoju protocols/options ti a gba laaye ti mojuto ti a ti yan, ṣayẹwo ni abinibi | Aṣoju protocols/options ti a gba laaye ti mojuto ti a ti yan, ṣayẹwo ni abinibi |
+
+Awọn aṣayan waya ti a ko mọ, awọn asia TLS ti ko ni aabo, awọn afikun ita, awọn aṣayan ọna-faili agbegbe ati awọn akojọpọ ti ko ṣe atilẹyin jẹ kọ kuku ju sisọnu ni ipalọlọ. Awọn nkan abinibi jẹ awọn asọye ti o njade lo, kii ṣe awọn atunto gbogbo-mojuto; Awọn ijade control/direct/bypass ko gba. WireGuard lori apoti orin 1.14 nlo awọn aaye ipari, nitorinaa ko gba bi ijade abinibi. Eyi kii ṣe oluyipada ọna kika gbogbo; SSR, legacy whole-base64 Shadowsocks awọn ọna asopọ, awọn nkan Clash lainidii ati awọn iyatọ gbigbe ti ko si ni tabili nilo ọna kika orisun ti o ni atilẹyin lọtọ.
+
+`/api/services/managed-proxy` jẹ ifọwọsi ati loopback-nikan: awọn atokọ GET ti a ṣe atunṣe metadata, POST fipamọ `{core,name,sourceLink,id?,assignment?}`, PATCH gba `{core,action:"start"|"stop"}`. Opopona opo gigun ti ontẹ ẹlẹgbẹ ti agbalejo gbọdọ wa. Awọn iwadii aisan inu abinibi ti wa ni idinku nitori wọn le ni awọn iwe-ẹri ninu; awọn iṣẹlẹ igbesi aye lo oluṣamulo faili ohun elo ti o wa tẹlẹ laisi awọn ọna asopọ orisun tabi awọn fifuye isanwo oke. So awọn iwe ohun elo ti a sọ di mimọ nikan fun atilẹyin. Awọn ẹya osise ti wa ni ṣoki si apoti orin 1.14.3 ati Xray 26.3.27 pẹlu awọn ifihan dukia SHA-256 ; awọn imudojuiwọn ọjọ iwaju nilo iyipada ẹya ati gbogbo awọn idawọle ti a rii daju papọ.
+
### Awọn ipinnu pataki (lati inu ero apẹrẹ)
| Ipinnu | Iye |
diff --git a/docs/i18n/zh-CN/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/zh-CN/docs/frameworks/EMBEDDED-SERVICES.md
index 89d8afdf8324..3b8c90311384 100644
--- a/docs/i18n/zh-CN/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/zh-CN/docs/frameworks/EMBEDDED-SERVICES.md
@@ -47,6 +47,24 @@
- OmniRoute将临时API密钥注入子环境并在不停机的情况下轮换它(如果适用)
- 所有管理路线(`/api/services/*`)都是**LOCAL_ONLY** —只能从环回访问(硬规则#17)
+### 托管代理核心
+
+自定义代理主机字段还接受V2Ray源链接。选择**唱盒**或者**X射线**明确,然后单击“保存”。打字永远不会下载或启动核心。 Save 验证官方发布存档,验证本机配置,启动不同的 localhost SOCKS侦听器,然后才写入代理注册表分配。失败的激活将恢复之前的托管配置和流程。需要`STORAGE_ENCRYPTION_KEY` ;源链接已加密。
+
+托管文件位于`DATA_DIR/services/managed-proxy/`下,与TPROXY分开。每个选定的核心有一个自有进程,最多 100 个侦听器。没有更改自动启动或全局路由默认值。成功保存仅记住此托管核心的激活;应用程序启动时使用已验证的二进制文件恢复已启用的已保存核心,而不是启动时下载。显式停止会清除该激活标志。丢失或损坏的二进制文件需要重新保存源。注册表删除会在本地删除源和侦听器;对于托管行,普通端点编辑会被拒绝,因此保存的源不能默默地偏离其路由侦听器。
+
+| 源格式 | 唱盒 | X射线 |
+| ------------------------------------- | --------------------------------------------- | --------------------------------------------- |
+| VLESS、 VMess、木马、Shadowsocks URI | 支持的转换 | 支持的转换 |
+| Hysteria2/hy2, TUIC, AnyTLS URI | 支持的转换 | 已拒绝;使用兼容的核心 |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | 支持VLESS/VMess/Trojan | 支持VLESS/VMess/Trojan |
+| XHTTP URI运输 | 被拒绝 | 支持的转换 |
+| 本机出站JSON | 选定核心允许的代理protocols/options,本地检查 | 选定核心允许的代理protocols/options,本地检查 |
+
+未知的线路选项、不安全的TLS标志、外部插件、本地文件路径选项和不支持的组合都会被拒绝,而不是默默地丢弃。原生对象是出站定义,而不是整个核心配置;不接受control/direct/bypass出境。 sing-box 1.14 上的WireGuard使用端点,因此不接受本机出站。这不是一个全格式转换器; SSR、旧版whole-base64 Shadowsocks 链接、表中缺少的任意 Clash 对象和传输变体需要单独支持的源格式。
+
+`/api/services/managed-proxy`经过身份验证并且仅环回: GET列出编辑的元数据, POST保存`{core,name,sourceLink,id?,assignment?}`, PATCH接受`{core,action:"start"|"stop"}`。主机的可信对等标记管道必须存在。本机核心诊断被抑制,因为它们可以包含凭据;生命周期事件使用现有的结构化应用程序文件记录器,无需源链接或上游有效负载。仅附加经过清理的应用程序日志以获取支持。正式版本固定在 sing-box 1.14.3 和 Xray 26.3.27 上,并带有发布资产SHA-256清单;未来的更新需要一起更改版本和所有经过验证的摘要。
+
### 关键决策(来自设计计划)
| 决定 | 价值 |
diff --git a/docs/i18n/zh-TW/docs/frameworks/EMBEDDED-SERVICES.md b/docs/i18n/zh-TW/docs/frameworks/EMBEDDED-SERVICES.md
index deeb7c3d33b5..5346f8d2fae3 100644
--- a/docs/i18n/zh-TW/docs/frameworks/EMBEDDED-SERVICES.md
+++ b/docs/i18n/zh-TW/docs/frameworks/EMBEDDED-SERVICES.md
@@ -47,6 +47,24 @@
- OmniRoute將臨時API密鑰注入子環境並在不停機的情況下輪換它(如果適用)
- 所有管理路線(`/api/services/*`)都是**LOCAL_ONLY** —只能從環回存取(硬規則#17)
+### 託管代理核心
+
+自訂代理主機欄位也接受V2Ray來源連結。選擇**唱盒**或者**X射線**明確,然後按一下“儲存”。打字永遠不會下載或啟動核心。 Save 驗證官方發布存檔,驗證本機配置,啟動不同的 localhost SOCKS偵聽器,然後才寫入代理註冊表分配。失敗的啟動將恢復先前的託管配置和流程。需要`STORAGE_ENCRYPTION_KEY` ;來源連結已加密。
+
+託管文件位於`DATA_DIR/services/managed-proxy/`下,與TPROXY分開。每個選定的核心都有一個自有進程,最多 100 個偵聽器。沒有更改自動啟動或全域路由預設值。成功保存僅記住此託管核心的啟動;應用程式啟動時使用已驗證的二進位檔案還原已啟用的已儲存核心,而不是啟動時下載。顯式停止會清除該啟動標誌。遺失或損壞的二進位檔案需要重新儲存來源。登錄刪除會在本機刪除來源和偵聽器;對於託管行,普通端點編輯會被拒絕,因此已儲存的來源不能默默地偏離其路由偵聽器。
+
+| 來源格式 | 唱盒 | X射線 |
+| ------------------------------------- | --------------------------------------------- | --------------------------------------------- |
+| VLESS、 VMess、木馬、Shadowsocks URI | 支援的轉換 | 支援的轉換 |
+| Hysteria2/hy2, TUIC, AnyTLS URI | 支援的轉換 | 已拒絕;使用相容的核心 |
+| TCP/raw, WebSocket, gRPC, HTTPUpgrade | 支持VLESS/VMess/Trojan | 支持VLESS/VMess/Trojan |
+| XHTTP URI運輸 | 被拒絕 | 支援的轉換 |
+| 本機出站JSON | 選定核心允許的代理protocols/options,本地檢查 | 選定核心允許的代理protocols/options,本地檢查 |
+
+未知的線路選項、不安全的TLS標誌、外部插件、本地檔案路徑選項和不支援的組合都會被拒絕,而不是默默地丟棄。原生物件是出站定義,而不是整個核心配置;不接受control/direct/bypass出境。 sing-box 1.14 上的WireGuard使用端點,因此不接受本機出站。這不是一個全格式轉換器; SSR、舊版whole-base64 Shadowsocks 連結、表中缺少的任意 Clash 物件和傳輸變體需要單獨支援的來源格式。
+
+`/api/services/managed-proxy`經過身份驗證並且僅環回: GET列出編輯的元數據, POST保存`{core,name,sourceLink,id?,assignment?}`, PATCH接受`{core,action:"start"|"stop"}`。主機的可信任對等標記管道必須存在。本機核心診斷被抑制,因為它們可以包含憑證;生命週期事件使用現有的結構化應用程式檔案記錄器,無需來源連結或上游有效負載。僅附加經過清理的應用程式日誌以取得支援。正式版本固定在 sing-box 1.14.3 和 Xray 26.3.27 上,並附有發布資產SHA-256清單;未來的更新需要一起更改版本和所有經過驗證的摘要。
+
### 關鍵決策(來自設計計劃)
| 決定 | 價值 |
From f41feb5759ddbce5462a1954af7a99c23eb8ea08 Mon Sep 17 00:00:00 2001
From: Kiaro Sama
Date: Tue, 3 Nov 2026 23:42:26 +0000
Subject: [PATCH 21/25] fix(ci): isolate managed proxy HTTP auth audit state
---
changelog.d/fixes/managed-proxy-http-fixture-isolation.md | 1 +
tests/integration/managed-proxy/deletion-dispatch.test.ts | 6 +++++-
2 files changed, 6 insertions(+), 1 deletion(-)
create mode 100644 changelog.d/fixes/managed-proxy-http-fixture-isolation.md
diff --git a/changelog.d/fixes/managed-proxy-http-fixture-isolation.md b/changelog.d/fixes/managed-proxy-http-fixture-isolation.md
new file mode 100644
index 000000000000..ce30f16794b3
--- /dev/null
+++ b/changelog.d/fixes/managed-proxy-http-fixture-isolation.md
@@ -0,0 +1 @@
+Keep the managed-proxy HTTP regression fixture isolated from the client API auth-touch database, while retaining real authorization and deletion dispatch checks on both supported CI platforms.
diff --git a/tests/integration/managed-proxy/deletion-dispatch.test.ts b/tests/integration/managed-proxy/deletion-dispatch.test.ts
index d993ff499fcb..587ff3504f69 100644
--- a/tests/integration/managed-proxy/deletion-dispatch.test.ts
+++ b/tests/integration/managed-proxy/deletion-dispatch.test.ts
@@ -45,7 +45,11 @@ const adapters: Record = {
export function isTrustedLoopbackInternalServiceRequest(){return false;}`,
"src/lib/middleware/cliTokenAuth": "export async function isCliTokenAuthValid(){return false;}",
"open-sse/services/ipFilter": "export function checkRequestIP(){return {allowed:true};}",
- "src/shared/utils/featureFlags": "export function isRequireApiKeyEnabled(){return true;}",
+ // Auth-touch persistence is outside the deletion contract; keep its DB out of the bundle.
+ "src/lib/compliance/index": "export function recordApiKeyAuthTouch(){}",
+ "src/shared/utils/featureFlags": `
+ export function isRequireApiKeyEnabled(){return true;}
+ export function isFeatureFlagEnabled(){return false;}`,
"open-sse/utils/proxyDispatcher": "export function clearDispatcherCache(){}",
"src/lib/db/proxies": `
export async function getProxyById(id){return id==="missing"?null:{id,notes:
From 1bf9bc46ce1f47695bc345e2917311f05ebe2aff Mon Sep 17 00:00:00 2001
From: Kiaro Sama
Date: Tue, 3 Nov 2026 23:58:43 +0000
Subject: [PATCH 22/25] docs(ci): format fixture repair changelog entry
---
changelog.d/fixes/managed-proxy-http-fixture-isolation.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/changelog.d/fixes/managed-proxy-http-fixture-isolation.md b/changelog.d/fixes/managed-proxy-http-fixture-isolation.md
index ce30f16794b3..8b2306dcacfb 100644
--- a/changelog.d/fixes/managed-proxy-http-fixture-isolation.md
+++ b/changelog.d/fixes/managed-proxy-http-fixture-isolation.md
@@ -1 +1 @@
-Keep the managed-proxy HTTP regression fixture isolated from the client API auth-touch database, while retaining real authorization and deletion dispatch checks on both supported CI platforms.
+- Keep the managed-proxy HTTP regression fixture isolated from the client API auth-touch database, while retaining real authorization and deletion dispatch checks on both supported CI platforms.
From 40dd9f385a8385bff344b9108df0cf947d4c1187 Mon Sep 17 00:00:00 2001
From: Kiaro-Sama <106400900+KiaroSama@users.noreply.github.com>
Date: Fri, 6 Nov 2026 04:56:22 +0330
Subject: [PATCH 23/25] fix(proxy): complete managed translations and align
hosted UI checks
---
src/i18n/messages/am.json | 20 ++++++
src/i18n/messages/ar.json | 20 ++++++
src/i18n/messages/az.json | 20 ++++++
src/i18n/messages/bg.json | 20 ++++++
src/i18n/messages/bn.json | 20 ++++++
src/i18n/messages/bs.json | 20 ++++++
src/i18n/messages/cs.json | 20 ++++++
src/i18n/messages/da.json | 20 ++++++
src/i18n/messages/de.json | 20 ++++++
src/i18n/messages/el.json | 20 ++++++
src/i18n/messages/es.json | 20 ++++++
src/i18n/messages/et.json | 20 ++++++
src/i18n/messages/fa.json | 20 ++++++
src/i18n/messages/fi.json | 20 ++++++
src/i18n/messages/fr.json | 20 ++++++
src/i18n/messages/ga.json | 20 ++++++
src/i18n/messages/gu.json | 20 ++++++
src/i18n/messages/ha.json | 20 ++++++
src/i18n/messages/he.json | 20 ++++++
src/i18n/messages/hi.json | 20 ++++++
src/i18n/messages/hr.json | 20 ++++++
src/i18n/messages/hu.json | 20 ++++++
src/i18n/messages/hy.json | 20 ++++++
src/i18n/messages/id.json | 20 ++++++
src/i18n/messages/ig.json | 20 ++++++
src/i18n/messages/it.json | 20 ++++++
src/i18n/messages/ja.json | 20 ++++++
src/i18n/messages/ka.json | 20 ++++++
src/i18n/messages/km.json | 20 ++++++
src/i18n/messages/kn.json | 20 ++++++
src/i18n/messages/ko.json | 20 ++++++
src/i18n/messages/lt.json | 20 ++++++
src/i18n/messages/lv.json | 20 ++++++
src/i18n/messages/ml.json | 20 ++++++
src/i18n/messages/mr.json | 20 ++++++
src/i18n/messages/ms.json | 20 ++++++
src/i18n/messages/mt.json | 20 ++++++
src/i18n/messages/my.json | 20 ++++++
src/i18n/messages/ne.json | 20 ++++++
src/i18n/messages/nl.json | 20 ++++++
src/i18n/messages/no.json | 20 ++++++
src/i18n/messages/or.json | 20 ++++++
src/i18n/messages/pa.json | 20 ++++++
src/i18n/messages/phi.json | 20 ++++++
src/i18n/messages/pl.json | 20 ++++++
src/i18n/messages/pt.json | 20 ++++++
src/i18n/messages/ro.json | 20 ++++++
src/i18n/messages/ru.json | 20 ++++++
src/i18n/messages/si.json | 20 ++++++
src/i18n/messages/sk.json | 20 ++++++
src/i18n/messages/sl.json | 20 ++++++
src/i18n/messages/sr.json | 20 ++++++
src/i18n/messages/sv.json | 20 ++++++
src/i18n/messages/sw.json | 20 ++++++
src/i18n/messages/ta.json | 20 ++++++
src/i18n/messages/te.json | 20 ++++++
src/i18n/messages/th.json | 20 ++++++
src/i18n/messages/tr.json | 20 ++++++
src/i18n/messages/uk-UA.json | 20 ++++++
src/i18n/messages/ur.json | 20 ++++++
src/i18n/messages/uz.json | 20 ++++++
src/i18n/messages/yo.json | 20 ++++++
src/i18n/messages/zh-CN.json | 20 ++++++
src/i18n/messages/zh-TW.json | 20 ++++++
src/i18n/routeNamespaces.generated.json | 2 +
.../managed-proxy/managedProxyUi.test.tsx | 6 +-
.../unit/managed-proxy-kit-contract.test.tsx | 32 ++++++++++
tests/unit/managed-proxy-ui-i18n.test.ts | 63 ++++++++++++++++---
68 files changed, 1373 insertions(+), 10 deletions(-)
create mode 100644 tests/unit/managed-proxy-kit-contract.test.tsx
diff --git a/src/i18n/messages/am.json b/src/i18n/messages/am.json
index 232cba7beda3..355c5fe61ad6 100644
--- a/src/i18n/messages/am.json
+++ b/src/i18n/messages/am.json
@@ -7116,6 +7116,7 @@
"fallbackRetryBackendTitle": "ፋሎቤክ ረትሪ ቤክ-ኤንድ"
},
"settings": {
+ "proxyManagedCoresTab": "የሚተዳደሩ ኮሮች",
"title": "ቅንብሮች",
"general": "አጠቃላይ",
"security": "ደህንነት",
@@ -11662,7 +11663,26 @@
"entries": "ግቤቶች",
"viewSwitcherAria": "የመሸጎጫ እይታ"
},
+ "managedProxy": {
+ "title": "የሚተዳደሩ የፕሮክሲ ኮሮች",
+ "description": "ለማስቀመጥ እና ለመመደብ የቱነል አገናኙን በብጁ ፕሮክሲ አስተናጋጅ መስክ ውስጥ ይለጥፉ። እዚህ ማንኛውንም ምደባ ሳይቀይሩ በኮሩ የሚደገፍ የወጪ ግንኙነት JSON ትርጉም ማስቀመጥም ይችላሉ።",
+ "saveHint": "በማስቀመጥ ጊዜ አስፈላጊ ከሆነ ኦፊሴላዊው ኮር ይረጋገጣል፣ ከማንቃት በፊትም በኮሩ የሚደገፈው ውቅር ይመረመራል። ምንጮች ምስጠራ ይፈልጋሉ። በቅድመ እይታ ጊዜ መጫን፣ በራስ-ሰር ማስጀመር ወይም የግልጽ ፕሮክሲ ለውጥ አይከናወንም።",
+ "saveActivate": "አስቀምጥ እና አንቃ",
+ "core": "ኮር",
+ "selectCore": "ኮር ይምረጡ",
+ "name": "ስም",
+ "source": "የምንጭ አገናኝ ወይም በኮሩ የሚደገፍ የወጪ ግንኙነት JSON",
+ "start": "ጀምር",
+ "stop": "አቁም",
+ "loadError": "የሚተዳደሩ ኮሮችን መጫን አልተቻለም",
+ "operationError": "የሚተዳደረው ኮር ክዋኔ አልተሳካም",
+ "state": "{state, select, not_installed {አልተጫነም} stopped {ቆሟል} starting {እየጀመረ ነው} running {እየሠራ ነው} stopping {እየቆመ ነው} error {ስህተት} other {ያልታወቀ}}"
+ },
"proxyConfigModal": {
+ "managedCore": "የፕሮክሲ ኮር",
+ "managedSelectCore": "ኮር ይምረጡ",
+ "managedSaveHint": "ማስቀመጥ አስፈላጊ ከሆነ ኦፊሴላዊውን ኮር ያወርዳል እና ያረጋግጣል፣ ውቅሩን ይመረምራል፣ ከዚያም ይህን ፕሮክሲ ያነቃል። መተየብ ምንም ነገር አይጭንም።",
+ "errorSelectManagedCore": "ይህን ቱነል ከማስቀመጥዎ በፊት sing-box ወይም Xray ይምረጡ",
"levelGlobal": "አጠቃላይ",
"levelProvider": "አቅራቢ",
"levelCombo": "ጥምረት",
diff --git a/src/i18n/messages/ar.json b/src/i18n/messages/ar.json
index d89396f7c213..e844047370fa 100644
--- a/src/i18n/messages/ar.json
+++ b/src/i18n/messages/ar.json
@@ -7116,6 +7116,7 @@
"fallbackRetryBackendTitle": "الخادم الاحتياطي لإعادة المحاولة"
},
"settings": {
+ "proxyManagedCoresTab": "الأنوية المُدارة",
"title": "الإعدادات",
"general": "عام",
"security": "الأمن",
@@ -11662,7 +11663,26 @@
"entries": "إدخالات",
"viewSwitcherAria": "عرض ذاكرة التخزين المؤقت"
},
+ "managedProxy": {
+ "title": "أنوية الوكيل المُدارة",
+ "description": "الصق رابط نفق في حقل المضيف للوكيل المخصص لحفظه وتعيينه. يمكنك هنا أيضًا حفظ تعريف JSON أصلي للاتصال الصادر دون تغيير أي تعيين.",
+ "saveHint": "يتحقق الحفظ من النواة الرسمية عند الحاجة ويفحص الإعداد الأصلي قبل التفعيل. تتطلب المصادر التشفير. لا يحدث تثبيت أثناء المعاينة أو تشغيل تلقائي أو تغيير للوكيل الشفاف.",
+ "saveActivate": "حفظ وتفعيل",
+ "core": "النواة",
+ "selectCore": "اختر نواة",
+ "name": "الاسم",
+ "source": "رابط المصدر أو JSON أصلي للاتصال الصادر",
+ "start": "تشغيل",
+ "stop": "إيقاف",
+ "loadError": "تعذر تحميل الأنوية المُدارة",
+ "operationError": "فشلت عملية النواة المُدارة",
+ "state": "{state, select, not_installed {غير مثبتة} stopped {متوقفة} starting {قيد التشغيل الأولي} running {تعمل} stopping {قيد الإيقاف} error {خطأ} other {غير معروفة}}"
+ },
"proxyConfigModal": {
+ "managedCore": "نواة الوكيل",
+ "managedSelectCore": "اختر نواة",
+ "managedSaveHint": "يؤدي الحفظ إلى تنزيل النواة الرسمية والتحقق منها عند الحاجة، وفحص الإعداد، ثم تفعيل هذا الوكيل. لا تؤدي الكتابة إلى تثبيت أي شيء.",
+ "errorSelectManagedCore": "اختر sing-box أو Xray قبل حفظ هذا النفق",
"levelGlobal": "عالمي",
"levelProvider": "مزود",
"levelCombo": "كومبو",
diff --git a/src/i18n/messages/az.json b/src/i18n/messages/az.json
index 70684d680189..6b2f133462bc 100644
--- a/src/i18n/messages/az.json
+++ b/src/i18n/messages/az.json
@@ -7116,6 +7116,7 @@
"fallbackRetryBackendTitle": "Əvəzleyici təkrar cəhd backendi"
},
"settings": {
+ "proxyManagedCoresTab": "İdarə olunan nüvələr",
"title": "Parametrlər",
"general": "Ümumi",
"security": "Təhlükəsizlik",
@@ -11662,7 +11663,26 @@
"entries": "Qeydlər",
"viewSwitcherAria": "Keş görünüşü"
},
+ "managedProxy": {
+ "title": "İdarə olunan proksi nüvələri",
+ "description": "Saxlamaq və təyin etmək üçün tunel keçidini fərdi proksinin host sahəsinə yapışdırın. Burada heç bir təyinatı dəyişmədən yerli çıxış JSON tərifini də saxlaya bilərsiniz.",
+ "saveHint": "Saxlama zamanı lazım gələrsə rəsmi nüvə doğrulanır və aktivləşdirmədən əvvəl yerli konfiqurasiya yoxlanılır. Mənbələr şifrələmə tələb edir. Önizləmə zamanı quraşdırma, avtomatik başlatma və ya şəffaf proksi dəyişiklikləri edilmir.",
+ "saveActivate": "Saxla və aktivləşdir",
+ "core": "Nüvə",
+ "selectCore": "Nüvə seçin",
+ "name": "Ad",
+ "source": "Mənbə keçidi və ya yerli çıxış JSON-u",
+ "start": "Başlat",
+ "stop": "Dayandır",
+ "loadError": "İdarə olunan nüvələri yükləmək mümkün olmadı",
+ "operationError": "İdarə olunan nüvə əməliyyatı uğursuz oldu",
+ "state": "{state, select, not_installed {Quraşdırılmayıb} stopped {Dayandırılıb} starting {Başladılır} running {İşləyir} stopping {Dayandırılır} error {Xəta} other {Naməlum}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Proksi nüvəsi",
+ "managedSelectCore": "Nüvə seçin",
+ "managedSaveHint": "Saxlama zamanı lazım gələrsə rəsmi nüvə endirilir və doğrulanır, konfiqurasiya yoxlanılır, sonra bu proksi aktivləşdirilir. Mətn daxil etmək heç nə quraşdırmır.",
+ "errorSelectManagedCore": "Bu tuneli saxlamazdan əvvəl sing-box və ya Xray seçin",
"levelGlobal": "Qlobal",
"levelProvider": "Provayder",
"levelCombo": "Kombinasiya",
diff --git a/src/i18n/messages/bg.json b/src/i18n/messages/bg.json
index 8f5cfc67190a..f54bab8f77c9 100644
--- a/src/i18n/messages/bg.json
+++ b/src/i18n/messages/bg.json
@@ -7116,6 +7116,7 @@
"fallbackRetryBackendTitle": "Резервен backend за повторни опити"
},
"settings": {
+ "proxyManagedCoresTab": "Управлявани ядра",
"title": "Настройки",
"general": "генерал",
"security": "сигурност",
@@ -11662,7 +11663,26 @@
"entries": "Записи",
"viewSwitcherAria": "Изглед на кеша"
},
+ "managedProxy": {
+ "title": "Управлявани прокси ядра",
+ "description": "Поставете връзка към тунел в полето за хост на персонализираното прокси, за да я запазите и зададете. Тук можете също да запазите изходяща конфигурация в нативен JSON формат, без да променяте нито едно задаване.",
+ "saveHint": "При запазване официалното ядро се проверява, ако е необходимо, а нативната конфигурация се проверява преди активиране. Източниците изискват криптиране. Няма инсталиране при преглед, автоматично стартиране или промени в прозрачното прокси.",
+ "saveActivate": "Запазване и активиране",
+ "core": "Ядро",
+ "selectCore": "Изберете ядро",
+ "name": "Име",
+ "source": "Връзка към източник или изходяща конфигурация в нативен JSON формат",
+ "start": "Стартиране",
+ "stop": "Спиране",
+ "loadError": "Неуспешно зареждане на управляваните ядра",
+ "operationError": "Операцията с управляваното ядро е неуспешна",
+ "state": "{state, select, not_installed {Не е инсталирано} stopped {Спряно} starting {Стартира се} running {Работи} stopping {Спира се} error {Грешка} other {Неизвестно}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Прокси ядро",
+ "managedSelectCore": "Изберете ядро",
+ "managedSaveHint": "При запазване официалното ядро се изтегля и проверява, ако е необходимо, конфигурацията се проверява и след това проксито се активира. Въвеждането на текст не инсталира нищо.",
+ "errorSelectManagedCore": "Изберете sing-box или Xray, преди да запазите този тунел",
"levelGlobal": "Глобален",
"levelProvider": "Доставчик",
"levelCombo": "Комбо",
diff --git a/src/i18n/messages/bn.json b/src/i18n/messages/bn.json
index 23280d208912..7ede8f61e614 100644
--- a/src/i18n/messages/bn.json
+++ b/src/i18n/messages/bn.json
@@ -1,4 +1,19 @@
{
+ "managedProxy": {
+ "title": "পরিচালিত প্রক্সি কোর",
+ "description": "টানেল লিংক সংরক্ষণ ও বরাদ্দ করতে কাস্টম প্রক্সির হোস্ট ক্ষেত্রে সেটি পেস্ট করুন। এখানে কোনো বরাদ্দ পরিবর্তন না করেও নেটিভ আউটবাউন্ড JSON সংজ্ঞা সংরক্ষণ করতে পারেন।",
+ "saveHint": "সংরক্ষণের সময় প্রয়োজনে আনুষ্ঠানিক কোর যাচাই করা হয় এবং সক্রিয় করার আগে নেটিভ কনফিগারেশন পরীক্ষা করা হয়। উৎসগুলোর জন্য এনক্রিপশন আবশ্যক। পূর্বরূপ দেখার সময় ইনস্টলেশন, স্বয়ংক্রিয় চালু বা স্বচ্ছ প্রক্সির পরিবর্তন করা হয় না।",
+ "saveActivate": "সংরক্ষণ ও সক্রিয় করুন",
+ "core": "কোর",
+ "selectCore": "একটি কোর নির্বাচন করুন",
+ "name": "নাম",
+ "source": "উৎস লিংক বা নেটিভ আউটবাউন্ড JSON",
+ "start": "চালু করুন",
+ "stop": "বন্ধ করুন",
+ "loadError": "পরিচালিত কোরগুলো লোড করা যায়নি",
+ "operationError": "পরিচালিত কোরের কার্যক্রম ব্যর্থ হয়েছে",
+ "state": "{state, select, not_installed {ইনস্টল করা নেই} stopped {বন্ধ} starting {চালু হচ্ছে} running {চলছে} stopping {বন্ধ হচ্ছে} error {ত্রুটি} other {অজানা}}"
+ },
"teamCosts": {
"title": "দলের খরচ",
"subtitle": "শেয়ার করা সফট বাজেট এবং ক্যাটালগ খরচের অনুমান পরিচালনা করুন।",
@@ -7116,6 +7131,7 @@
"fallbackRetryBackendTitle": "ফলব্যাক রিট্রাই ব্যাকএন্ড"
},
"settings": {
+ "proxyManagedCoresTab": "পরিচালিত কোর",
"title": "সেটিংস",
"general": "সাধারণ",
"security": "নিরাপত্তা",
@@ -11663,6 +11679,10 @@
"viewSwitcherAria": "ক্যাশ ভিউ"
},
"proxyConfigModal": {
+ "managedCore": "প্রক্সি কোর",
+ "managedSelectCore": "একটি কোর নির্বাচন করুন",
+ "managedSaveHint": "সংরক্ষণের সময় প্রয়োজনে আনুষ্ঠানিক কোর ডাউনলোড ও যাচাই করা হয়, কনফিগারেশন পরীক্ষা করা হয়, তারপর এই প্রক্সি সক্রিয় করা হয়। টাইপ করলে কিছুই ইনস্টল হয় না।",
+ "errorSelectManagedCore": "এই টানেল সংরক্ষণের আগে sing-box বা Xray নির্বাচন করুন",
"levelGlobal": "গ্লোবাল",
"levelProvider": "প্রোভাইডার",
"levelCombo": "কম্বো",
diff --git a/src/i18n/messages/bs.json b/src/i18n/messages/bs.json
index d656208fbea9..c9b71b6398f4 100644
--- a/src/i18n/messages/bs.json
+++ b/src/i18n/messages/bs.json
@@ -7116,6 +7116,7 @@
"fallbackRetryBackendTitle": "Pozadišni servis za ponavljanje u slučaju pada"
},
"settings": {
+ "proxyManagedCoresTab": "Upravljane jezgre",
"title": "Postavke",
"general": "Opće",
"security": "Sigurnost",
@@ -11662,7 +11663,26 @@
"entries": "Unosi",
"viewSwitcherAria": "Prikaz predmemorije"
},
+ "managedProxy": {
+ "title": "Upravljane proxy jezgre",
+ "description": "Zalijepite vezu tunela u polje hosta prilagođenog proxyja da biste ga sačuvali i dodijelili. Ovdje možete sačuvati i definiciju izlazne veze u izvornom JSON formatu bez promjene bilo koje dodjele.",
+ "saveHint": "Pri čuvanju se po potrebi provjerava službena jezgra, a izvorna konfiguracija provjerava se prije aktivacije. Izvori zahtijevaju šifriranje. Nema instalacije tokom pregleda, automatskog pokretanja ni promjena transparentnog proxyja.",
+ "saveActivate": "Sačuvaj i aktiviraj",
+ "core": "Jezgra",
+ "selectCore": "Odaberite jezgru",
+ "name": "Naziv",
+ "source": "Veza izvora ili definicija izlazne veze u izvornom JSON formatu",
+ "start": "Pokreni",
+ "stop": "Zaustavi",
+ "loadError": "Nije moguće učitati upravljane jezgre",
+ "operationError": "Operacija nad upravljanom jezgrom nije uspjela",
+ "state": "{state, select, not_installed {Nije instalirana} stopped {Zaustavljena} starting {Pokretanje} running {Pokrenuta} stopping {Zaustavljanje} error {Greška} other {Nepoznato}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Proxy jezgra",
+ "managedSelectCore": "Odaberite jezgru",
+ "managedSaveHint": "Pri čuvanju se po potrebi preuzima i provjerava službena jezgra, provjerava se konfiguracija, a zatim se aktivira ovaj proxy. Unos teksta ne instalira ništa.",
+ "errorSelectManagedCore": "Odaberite sing-box ili Xray prije čuvanja ovog tunela",
"levelGlobal": "Globalno",
"levelProvider": "Provajder",
"levelCombo": "Kombinacija",
diff --git a/src/i18n/messages/cs.json b/src/i18n/messages/cs.json
index d7fed2eecf5d..950ae497c74b 100644
--- a/src/i18n/messages/cs.json
+++ b/src/i18n/messages/cs.json
@@ -7116,6 +7116,7 @@
"fallbackRetryBackendTitle": "Záložní backend pro opakování"
},
"settings": {
+ "proxyManagedCoresTab": "Spravovaná jádra",
"title": "Nastavení",
"general": "Hlavní",
"security": "Zabezpečení",
@@ -11662,7 +11663,26 @@
"entries": "Položky",
"viewSwitcherAria": "Zobrazení mezipaměti"
},
+ "managedProxy": {
+ "title": "Spravovaná jádra proxy",
+ "description": "Vložte odkaz na tunel do pole hostitele vlastního proxy, abyste jej uložili a přiřadili. Zde můžete také uložit definici odchozího připojení v nativním formátu JSON, aniž byste změnili jakékoli přiřazení.",
+ "saveHint": "Při ukládání se v případě potřeby ověří oficiální jádro a před aktivací se zkontroluje nativní konfigurace. Zdroje vyžadují šifrování. Během náhledu se nic neinstaluje, neprobíhá automatické spouštění ani změny transparentního proxy.",
+ "saveActivate": "Uložit a aktivovat",
+ "core": "Jádro",
+ "selectCore": "Vyberte jádro",
+ "name": "Název",
+ "source": "Odkaz na zdroj nebo definice odchozího připojení v nativním formátu JSON",
+ "start": "Spustit",
+ "stop": "Zastavit",
+ "loadError": "Spravovaná jádra nelze načíst",
+ "operationError": "Operace se spravovaným jádrem selhala",
+ "state": "{state, select, not_installed {Nenainstalováno} stopped {Zastaveno} starting {Spouštění} running {Spuštěno} stopping {Zastavování} error {Chyba} other {Neznámý stav}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Jádro proxy",
+ "managedSelectCore": "Vyberte jádro",
+ "managedSaveHint": "Při ukládání se v případě potřeby stáhne a ověří oficiální jádro, zkontroluje se konfigurace a poté se toto proxy aktivuje. Samotné zadávání textu nic neinstaluje.",
+ "errorSelectManagedCore": "Před uložením tohoto tunelu vyberte sing-box nebo Xray",
"levelGlobal": "Globální",
"levelProvider": "Poskytovatel",
"levelCombo": "Kombinace",
diff --git a/src/i18n/messages/da.json b/src/i18n/messages/da.json
index 83e2a4e7ece2..5db32b599666 100644
--- a/src/i18n/messages/da.json
+++ b/src/i18n/messages/da.json
@@ -7116,6 +7116,7 @@
"fallbackRetryBackendTitle": "Fallback genforsøg backend"
},
"settings": {
+ "proxyManagedCoresTab": "Administrerede kerner",
"title": "Indstillinger",
"general": "Generelt",
"security": "Sikkerhed",
@@ -11662,7 +11663,26 @@
"entries": "Poster",
"viewSwitcherAria": "Cachevisning"
},
+ "managedProxy": {
+ "title": "Administrerede proxykerner",
+ "description": "Indsæt et tunnellink i værtsfeltet for en brugerdefineret proxy for at gemme og tildele det. Her kan du også gemme en definition af en udgående forbindelse i kernens eget JSON-format uden at ændre nogen tildeling.",
+ "saveHint": "Når du gemmer, verificeres den officielle kerne om nødvendigt, og konfigurationen i kernens eget format kontrolleres før aktivering. Kilder kræver kryptering. Ingen installation under forhåndsvisning, automatisk start eller ændringer af transparent proxy.",
+ "saveActivate": "Gem og aktivér",
+ "core": "Kerne",
+ "selectCore": "Vælg en kerne",
+ "name": "Navn",
+ "source": "Kildelink eller udgående forbindelse i kernens eget JSON-format",
+ "start": "Start",
+ "stop": "Stop",
+ "loadError": "Kunne ikke indlæse administrerede kerner",
+ "operationError": "Handlingen på den administrerede kerne mislykkedes",
+ "state": "{state, select, not_installed {Ikke installeret} stopped {Stoppet} starting {Starter} running {Kører} stopping {Stopper} error {Fejl} other {Ukendt}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Proxykerne",
+ "managedSelectCore": "Vælg en kerne",
+ "managedSaveHint": "Når du gemmer, downloades og verificeres den officielle kerne om nødvendigt, konfigurationen kontrolleres, og derefter aktiveres denne proxy. Indtastning installerer ikke noget.",
+ "errorSelectManagedCore": "Vælg sing-box eller Xray, før du gemmer denne tunnel",
"levelGlobal": "Globalt",
"levelProvider": "Udbyder",
"levelCombo": "Kombination",
diff --git a/src/i18n/messages/de.json b/src/i18n/messages/de.json
index c1dac86c52a1..67406072fdd3 100644
--- a/src/i18n/messages/de.json
+++ b/src/i18n/messages/de.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Fallback-Backend für Wiederholungen"
},
"settings": {
+ "proxyManagedCoresTab": "Verwaltete Kerne",
"title": "Einstellungen",
"general": "Allgemein",
"security": "Sicherheit",
@@ -11585,7 +11586,26 @@
"entries": "Einträge",
"viewSwitcherAria": "Cache-Ansicht"
},
+ "managedProxy": {
+ "title": "Verwaltete Proxy-Kerne",
+ "description": "Fügen Sie einen Tunnel-Link in das Host-Feld des benutzerdefinierten Proxys ein, um ihn zu speichern und zuzuweisen. Hier können Sie auch eine ausgehende Verbindung im nativen JSON-Format definieren und speichern, ohne eine Zuweisung zu ändern.",
+ "saveHint": "Beim Speichern wird bei Bedarf der offizielle Kern verifiziert und die native Konfiguration vor der Aktivierung geprüft. Quellen müssen verschlüsselt sein. Keine Installation während der Vorschau, kein Autostart und keine Änderungen am transparenten Proxy.",
+ "saveActivate": "Speichern und aktivieren",
+ "core": "Kern",
+ "selectCore": "Kern auswählen",
+ "name": "Name",
+ "source": "Quell-Link oder ausgehende Verbindung im nativen JSON-Format",
+ "start": "Starten",
+ "stop": "Stoppen",
+ "loadError": "Verwaltete Kerne konnten nicht geladen werden",
+ "operationError": "Aktion für den verwalteten Kern fehlgeschlagen",
+ "state": "{state, select, not_installed {Nicht installiert} stopped {Gestoppt} starting {Wird gestartet} running {Läuft} stopping {Wird gestoppt} error {Fehler} other {Unbekannt}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Proxy-Kern",
+ "managedSelectCore": "Kern auswählen",
+ "managedSaveHint": "Beim Speichern wird bei Bedarf der offizielle Kern heruntergeladen und verifiziert, die Konfiguration geprüft und anschließend dieser Proxy aktiviert. Die Texteingabe installiert nichts.",
+ "errorSelectManagedCore": "Wählen Sie sing-box oder Xray aus, bevor Sie diesen Tunnel speichern",
"levelGlobal": "Global",
"levelProvider": "Anbieter",
"levelCombo": "Kombi",
diff --git a/src/i18n/messages/el.json b/src/i18n/messages/el.json
index ac96c9dc292f..c8a882606171 100644
--- a/src/i18n/messages/el.json
+++ b/src/i18n/messages/el.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Εναλλακτικό backend επανάληψης"
},
"settings": {
+ "proxyManagedCoresTab": "Διαχειριζόμενοι πυρήνες",
"title": "Ρυθμίσεις",
"general": "Γενικά",
"security": "Ασφάλεια",
@@ -11585,7 +11586,26 @@
"entries": "Εγγραφές",
"viewSwitcherAria": "Προβολή κρυφής μνήμης"
},
+ "managedProxy": {
+ "title": "Διαχειριζόμενοι πυρήνες διαμεσολαβητή",
+ "description": "Επικολλήστε έναν σύνδεσμο σήραγγας στο πεδίο κεντρικού υπολογιστή του προσαρμοσμένου διαμεσολαβητή για να τον αποθηκεύσετε και να τον αντιστοιχίσετε. Εδώ μπορείτε επίσης να αποθηκεύσετε έναν ορισμό εξερχόμενης σύνδεσης στην εγγενή μορφή JSON χωρίς να αλλάξετε καμία αντιστοίχιση.",
+ "saveHint": "Κατά την αποθήκευση επαληθεύεται ο επίσημος πυρήνας, αν χρειάζεται, και ελέγχεται η εγγενής διαμόρφωση πριν από την ενεργοποίηση. Οι πηγές απαιτούν κρυπτογράφηση. Δεν γίνεται εγκατάσταση κατά την προεπισκόπηση, αυτόματη εκκίνηση ή αλλαγή στον διαφανή διαμεσολαβητή.",
+ "saveActivate": "Αποθήκευση και ενεργοποίηση",
+ "core": "Πυρήνας",
+ "selectCore": "Επιλέξτε πυρήνα",
+ "name": "Όνομα",
+ "source": "Σύνδεσμος πηγής ή εξερχόμενη σύνδεση στην εγγενή μορφή JSON",
+ "start": "Εκκίνηση",
+ "stop": "Διακοπή",
+ "loadError": "Δεν ήταν δυνατή η φόρτωση των διαχειριζόμενων πυρήνων",
+ "operationError": "Η λειτουργία του διαχειριζόμενου πυρήνα απέτυχε",
+ "state": "{state, select, not_installed {Δεν έχει εγκατασταθεί} stopped {Έχει διακοπεί} starting {Εκκινείται} running {Εκτελείται} stopping {Διακόπτεται} error {Σφάλμα} other {Άγνωστη κατάσταση}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Πυρήνας διαμεσολαβητή",
+ "managedSelectCore": "Επιλέξτε πυρήνα",
+ "managedSaveHint": "Κατά την αποθήκευση γίνεται λήψη και επαλήθευση του επίσημου πυρήνα, αν χρειάζεται, ελέγχεται η διαμόρφωση και στη συνέχεια ενεργοποιείται αυτός ο διαμεσολαβητής. Η πληκτρολόγηση δεν εγκαθιστά τίποτα.",
+ "errorSelectManagedCore": "Επιλέξτε sing-box ή Xray πριν αποθηκεύσετε αυτή τη σήραγγα",
"levelGlobal": "Καθολικό",
"levelProvider": "Πάροχος",
"levelCombo": "Συνδυασμός",
diff --git a/src/i18n/messages/es.json b/src/i18n/messages/es.json
index 13a7df6dd9f4..672984ce6a52 100644
--- a/src/i18n/messages/es.json
+++ b/src/i18n/messages/es.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Backend de reintento alternativo"
},
"settings": {
+ "proxyManagedCoresTab": "Núcleos administrados",
"title": "Configuración",
"general": "generales",
"security": "Seguridad",
@@ -11585,7 +11586,26 @@
"entries": "Entradas",
"viewSwitcherAria": "Vista de caché"
},
+ "managedProxy": {
+ "title": "Núcleos de proxy administrados",
+ "description": "Pegue un enlace de túnel en el campo de host del proxy personalizado para guardarlo y asignarlo. Aquí también puede guardar una definición de conexión saliente en formato JSON nativo sin cambiar ninguna asignación.",
+ "saveHint": "Al guardar, se verifica el núcleo oficial si es necesario y se comprueba la configuración nativa antes de activarla. Las fuentes requieren cifrado. No se realizan instalaciones durante la vista previa, inicios automáticos ni cambios en el proxy transparente.",
+ "saveActivate": "Guardar y activar",
+ "core": "Núcleo",
+ "selectCore": "Seleccione un núcleo",
+ "name": "Nombre",
+ "source": "Enlace de origen o conexión saliente en formato JSON nativo",
+ "start": "Iniciar",
+ "stop": "Detener",
+ "loadError": "No se pudieron cargar los núcleos administrados",
+ "operationError": "Error en la operación del núcleo administrado",
+ "state": "{state, select, not_installed {No instalado} stopped {Detenido} starting {Iniciando} running {En ejecución} stopping {Deteniendo} error {Error} other {Desconocido}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Núcleo del proxy",
+ "managedSelectCore": "Seleccione un núcleo",
+ "managedSaveHint": "Al guardar, se descarga y verifica el núcleo oficial si es necesario, se comprueba la configuración y después se activa este proxy. Escribir no instala nada.",
+ "errorSelectManagedCore": "Seleccione sing-box o Xray antes de guardar este túnel",
"levelGlobal": "Mundial",
"levelProvider": "Proveedor",
"levelCombo": "combinado",
diff --git a/src/i18n/messages/et.json b/src/i18n/messages/et.json
index ca6513f49f9d..1f36665b7494 100644
--- a/src/i18n/messages/et.json
+++ b/src/i18n/messages/et.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Tagamiste katsetuste tagatagasi tugi"
},
"settings": {
+ "proxyManagedCoresTab": "Hallatavad tuumad",
"title": "Seaded",
"general": "Üldine",
"security": "Turvalisus",
@@ -11585,7 +11586,26 @@
"entries": "Kirjed",
"viewSwitcherAria": "Vahemälu vaade"
},
+ "managedProxy": {
+ "title": "Hallatavad puhverserverituumad",
+ "description": "Kleepige tunnelilink kohandatud puhverserveri hosti väljale, et see salvestada ja määrata. Siin saate salvestada ka väljamineva ühenduse definitsiooni tuuma omas JSON-vormingus ilma ühtegi määrangut muutmata.",
+ "saveHint": "Salvestamisel kontrollitakse vajaduse korral ametliku tuuma ehtsust ning enne aktiveerimist kontrollitakse tuuma omas vormingus konfiguratsiooni. Allikad nõuavad krüptimist. Eelvaate ajal ei installita midagi, automaatset käivitamist ei toimu ja läbipaistva puhverserveri seadeid ei muudeta.",
+ "saveActivate": "Salvesta ja aktiveeri",
+ "core": "Tuum",
+ "selectCore": "Valige tuum",
+ "name": "Nimi",
+ "source": "Allikalink või väljaminev ühendus tuuma omas JSON-vormingus",
+ "start": "Käivita",
+ "stop": "Peata",
+ "loadError": "Hallatavaid tuumi ei saanud laadida",
+ "operationError": "Hallatava tuuma toiming ebaõnnestus",
+ "state": "{state, select, not_installed {Installimata} stopped {Peatatud} starting {Käivitub} running {Töötab} stopping {Peatub} error {Viga} other {Teadmata}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Puhverserveri tuum",
+ "managedSelectCore": "Valige tuum",
+ "managedSaveHint": "Salvestamisel laaditakse vajaduse korral ametlik tuum alla ja kontrollitakse selle ehtsust, kontrollitakse konfiguratsiooni ning seejärel aktiveeritakse see puhverserver. Teksti sisestamine ei installi midagi.",
+ "errorSelectManagedCore": "Enne selle tunneli salvestamist valige sing-box või Xray",
"levelGlobal": "Globaalne",
"levelProvider": "Teenusepakkuja",
"levelCombo": "Kombinatsioon",
diff --git a/src/i18n/messages/fa.json b/src/i18n/messages/fa.json
index 36f608e314c7..09362a52404b 100644
--- a/src/i18n/messages/fa.json
+++ b/src/i18n/messages/fa.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "بکاند تلاش مجدد جایگزین"
},
"settings": {
+ "proxyManagedCoresTab": "هستههای مدیریتشده",
"title": "تنظیمات",
"general": "عمومی",
"security": "امنیت",
@@ -11585,7 +11586,26 @@
"entries": "ورودیها",
"viewSwitcherAria": "نمای حافظه پنهان"
},
+ "managedProxy": {
+ "title": "هستههای پراکسی مدیریتشده",
+ "description": "برای ذخیره و تخصیص، پیوند تونل را در فیلد میزبان پراکسی سفارشی بچسبانید. اینجا میتوانید تعریف JSON بومی اتصال خروجی را نیز بدون تغییر هیچ تخصیصی ذخیره کنید.",
+ "saveHint": "هنگام ذخیره، هستهٔ رسمی در صورت نیاز تأیید و پیکربندی بومی پیش از فعالسازی بررسی میشود. منابع به رمزگذاری نیاز دارند. در پیشنمایش چیزی نصب نمیشود، راهاندازی خودکار انجام نمیشود و پراکسی شفاف تغییر نمیکند.",
+ "saveActivate": "ذخیره و فعالسازی",
+ "core": "هسته",
+ "selectCore": "یک هسته انتخاب کنید",
+ "name": "نام",
+ "source": "پیوند منبع یا JSON بومی اتصال خروجی",
+ "start": "شروع",
+ "stop": "توقف",
+ "loadError": "بارگذاری هستههای مدیریتشده ممکن نشد",
+ "operationError": "عملیات هستهٔ مدیریتشده ناموفق بود",
+ "state": "{state, select, not_installed {نصب نشده} stopped {متوقف} starting {در حال راهاندازی} running {در حال اجرا} stopping {در حال توقف} error {خطا} other {نامشخص}}"
+ },
"proxyConfigModal": {
+ "managedCore": "هستهٔ پراکسی",
+ "managedSelectCore": "یک هسته انتخاب کنید",
+ "managedSaveHint": "با ذخیره، هستهٔ رسمی در صورت نیاز دانلود و تأیید میشود، پیکربندی بررسی و سپس این پراکسی فعال میشود. تایپ کردن چیزی نصب نمیکند.",
+ "errorSelectManagedCore": "پیش از ذخیرهٔ این تونل، sing-box یا Xray را انتخاب کنید",
"levelGlobal": "سراسری",
"levelProvider": "ارائهدهنده",
"levelCombo": "ترکیب",
diff --git a/src/i18n/messages/fi.json b/src/i18n/messages/fi.json
index 55ff8eca624a..b4237b2de35e 100644
--- a/src/i18n/messages/fi.json
+++ b/src/i18n/messages/fi.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Vaihtoehtoinen uudelleenyritysbackendi"
},
"settings": {
+ "proxyManagedCoresTab": "Hallinnoidut ytimet",
"title": "Asetukset",
"general": "Kenraali",
"security": "Turvallisuus",
@@ -11585,7 +11586,26 @@
"entries": "Merkinnät",
"viewSwitcherAria": "Välimuistinäkymä"
},
+ "managedProxy": {
+ "title": "Hallinnoidut välityspalvelinytimet",
+ "description": "Liitä tunnelilinkki mukautetun välityspalvelimen isäntäkenttään tallentaaksesi ja määrittääksesi sen käyttöön. Täällä voit myös tallentaa lähtevän yhteyden määrityksen ytimen omassa JSON-muodossa muuttamatta yhtään kohdistusta.",
+ "saveHint": "Tallennettaessa virallinen ydin varmennetaan tarvittaessa ja ytimen omassa muodossa oleva kokoonpano tarkistetaan ennen aktivointia. Lähteet edellyttävät salausta. Esikatselun aikana ei asenneta mitään, automaattista käynnistystä ei tehdä eikä läpinäkyvän välityspalvelimen asetuksia muuteta.",
+ "saveActivate": "Tallenna ja aktivoi",
+ "core": "Ydin",
+ "selectCore": "Valitse ydin",
+ "name": "Nimi",
+ "source": "Lähdelinkki tai lähtevä yhteys ytimen omassa JSON-muodossa",
+ "start": "Käynnistä",
+ "stop": "Pysäytä",
+ "loadError": "Hallinnoituja ytimiä ei voitu ladata",
+ "operationError": "Hallinnoidun ytimen toiminto epäonnistui",
+ "state": "{state, select, not_installed {Ei asennettu} stopped {Pysäytetty} starting {Käynnistyy} running {Käynnissä} stopping {Pysähtyy} error {Virhe} other {Tuntematon}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Välityspalvelimen ydin",
+ "managedSelectCore": "Valitse ydin",
+ "managedSaveHint": "Tallennettaessa virallinen ydin ladataan ja varmennetaan tarvittaessa, kokoonpano tarkistetaan ja sitten tämä välityspalvelin aktivoidaan. Tekstin kirjoittaminen ei asenna mitään.",
+ "errorSelectManagedCore": "Valitse sing-box tai Xray ennen tämän tunnelin tallentamista",
"levelGlobal": "Maailmanlaajuinen",
"levelProvider": "Palveluntarjoaja",
"levelCombo": "Yhdistelmä",
diff --git a/src/i18n/messages/fr.json b/src/i18n/messages/fr.json
index 28de4e3bc497..63b4ac6c9adf 100644
--- a/src/i18n/messages/fr.json
+++ b/src/i18n/messages/fr.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Backend de réessai de secours"
},
"settings": {
+ "proxyManagedCoresTab": "Noyaux gérés",
"title": "Paramètres",
"general": "Général",
"security": "Sécurité",
@@ -11585,7 +11586,26 @@
"entries": "Entrées",
"viewSwitcherAria": "Vue du cache"
},
+ "managedProxy": {
+ "title": "Noyaux de proxy gérés",
+ "description": "Collez un lien de tunnel dans le champ hôte du proxy personnalisé pour l’enregistrer et l’affecter. Vous pouvez également enregistrer ici une définition de connexion sortante au format JSON natif sans modifier aucune affectation.",
+ "saveHint": "Lors de l’enregistrement, le noyau officiel est vérifié si nécessaire et la configuration native est contrôlée avant l’activation. Les sources doivent être chiffrées. Aucune installation pendant l’aperçu, aucun démarrage automatique ni aucune modification du proxy transparent.",
+ "saveActivate": "Enregistrer et activer",
+ "core": "Noyau",
+ "selectCore": "Sélectionnez un noyau",
+ "name": "Nom",
+ "source": "Lien source ou connexion sortante au format JSON natif",
+ "start": "Démarrer",
+ "stop": "Arrêter",
+ "loadError": "Impossible de charger les noyaux gérés",
+ "operationError": "Échec de l’opération sur le noyau géré",
+ "state": "{state, select, not_installed {Non installé} stopped {Arrêté} starting {Démarrage en cours} running {En cours d’exécution} stopping {Arrêt en cours} error {Erreur} other {Inconnu}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Noyau du proxy",
+ "managedSelectCore": "Sélectionnez un noyau",
+ "managedSaveHint": "Lors de l’enregistrement, le noyau officiel est téléchargé et vérifié si nécessaire, la configuration est contrôlée, puis ce proxy est activé. La saisie de texte n’installe rien.",
+ "errorSelectManagedCore": "Sélectionnez sing-box ou Xray avant d’enregistrer ce tunnel",
"levelGlobal": "Mondial",
"levelProvider": "Fournisseur",
"levelCombo": "Combinaison",
diff --git a/src/i18n/messages/ga.json b/src/i18n/messages/ga.json
index 83c9760da95e..5c7aa72b9631 100644
--- a/src/i18n/messages/ga.json
+++ b/src/i18n/messages/ga.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Cúltaca ath-iarrachta"
},
"settings": {
+ "proxyManagedCoresTab": "Croíthe bainistithe",
"title": "Socruithe",
"general": "Ginearálta",
"security": "Slándáil",
@@ -11585,7 +11586,26 @@
"entries": "Iontrálacha",
"viewSwitcherAria": "Amharc taisce"
},
+ "managedProxy": {
+ "title": "Croíthe seachfhreastalaí bainistithe",
+ "description": "Greamaigh nasc tolláin i réimse óstaigh an tseachfhreastalaí shaincheaptha chun é a shábháil agus a shannadh. Is féidir leat sainmhíniú ar nasc amach i bhformáid dhúchasach JSON a shábháil anseo freisin gan aon sannadh a athrú.",
+ "saveHint": "Le linn sábhála, fíoraítear an croí oifigiúil más gá agus seiceáiltear an chumraíocht dhúchasach roimh ghníomhachtú. Caithfidh na foinsí a bheith criptithe. Ní dhéantar suiteáil le linn réamhamhairc ná uath-thosú, agus ní athraítear an seachfhreastalaí trédhearcach.",
+ "saveActivate": "Sábháil agus gníomhachtaigh",
+ "core": "Croí",
+ "selectCore": "Roghnaigh croí",
+ "name": "Ainm",
+ "source": "Nasc foinse nó nasc amach i bhformáid dhúchasach JSON",
+ "start": "Tosaigh",
+ "stop": "Stop",
+ "loadError": "Ní féidir na croíthe bainistithe a lódáil",
+ "operationError": "Theip ar oibríocht an chroí bhainistithe",
+ "state": "{state, select, not_installed {Gan suiteáil} stopped {Stoptha} starting {Ag tosú} running {Ar siúl} stopping {Ag stopadh} error {Earráid} other {Anaithnid}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Croí seachfhreastalaí",
+ "managedSelectCore": "Roghnaigh croí",
+ "managedSaveHint": "Le linn sábhála, déantar an croí oifigiúil a íoslódáil agus a fhíorú más gá, seiceáiltear an chumraíocht, agus ansin gníomhachtaítear an seachfhreastalaí seo. Ní shuiteáiltear aon rud agus tú ag clóscríobh.",
+ "errorSelectManagedCore": "Roghnaigh sing-box nó Xray sula sábhálfaidh tú an tollán seo",
"levelGlobal": "Domhanda",
"levelProvider": "Soláthraí",
"levelCombo": "Teaglaim",
diff --git a/src/i18n/messages/gu.json b/src/i18n/messages/gu.json
index 52788e7b5ae5..284311f703a4 100644
--- a/src/i18n/messages/gu.json
+++ b/src/i18n/messages/gu.json
@@ -1,4 +1,19 @@
{
+ "managedProxy": {
+ "title": "વ્યવસ્થાપિત પ્રોક્સી કોર",
+ "description": "ટનલ લિંકને સાચવવા અને સોંપવા માટે તેને કસ્ટમ પ્રોક્સીના હોસ્ટ ફીલ્ડમાં પેસ્ટ કરો. અહીં તમે કોઈપણ સોંપણી બદલ્યા વિના નેટિવ આઉટબાઉન્ડ JSON વ્યાખ્યા પણ સાચવી શકો છો.",
+ "saveHint": "સાચવતી વખતે જરૂર હોય તો અધિકૃત કોરની ચકાસણી થાય છે અને સક્રિય કરતાં પહેલાં નેટિવ ગોઠવણી તપાસવામાં આવે છે. સ્રોતો માટે એન્ક્રિપ્શન જરૂરી છે. પૂર્વાવલોકન દરમિયાન ઇન્સ્ટોલેશન, આપમેળે પ્રારંભ કે પારદર્શક પ્રોક્સીમાં ફેરફાર થતા નથી.",
+ "saveActivate": "સાચવો અને સક્રિય કરો",
+ "core": "કોર",
+ "selectCore": "કોર પસંદ કરો",
+ "name": "નામ",
+ "source": "સ્રોત લિંક અથવા નેટિવ આઉટબાઉન્ડ JSON",
+ "start": "શરૂ કરો",
+ "stop": "બંધ કરો",
+ "loadError": "વ્યવસ્થાપિત કોર લોડ કરી શકાયા નથી",
+ "operationError": "વ્યવસ્થાપિત કોરની કામગીરી નિષ્ફળ થઈ",
+ "state": "{state, select, not_installed {ઇન્સ્ટોલ કરેલું નથી} stopped {બંધ છે} starting {શરૂ થઈ રહ્યું છે} running {ચાલી રહ્યું છે} stopping {બંધ થઈ રહ્યું છે} error {ભૂલ} other {અજ્ઞાત}}"
+ },
"codexKeyServiceMode": {
"title": "આ API કી માટે Codex સેવા મોડ",
"description": "કોમ્બોમાંના Codex મોડેલો સહિત, Codex વિનંતીઓ પર લાગુ થાય છે. ફરજિયાત મોડ ક્લાયન્ટ, વૈશ્વિક સેટિંગ્સ અને કનેક્શન ડિફૉલ્ટને ઓવરરાઇડ કરે છે. અન્ય પ્રદાતાઓમાં કોઈ ફેરફાર થતો નથી.",
@@ -7039,6 +7054,7 @@
"fallbackRetryBackendTitle": "ફોલબેક રીટ્રી બેકએન્ડ"
},
"settings": {
+ "proxyManagedCoresTab": "વ્યવસ્થાપિત કોર",
"title": "સેટિંગ્સ",
"general": "સામાન્ય",
"security": "સુરક્ષા",
@@ -11586,6 +11602,10 @@
"viewSwitcherAria": "કૅશ દૃશ્ય"
},
"proxyConfigModal": {
+ "managedCore": "પ્રોક્સી કોર",
+ "managedSelectCore": "કોર પસંદ કરો",
+ "managedSaveHint": "સાચવતી વખતે જરૂર હોય તો અધિકૃત કોર ડાઉનલોડ કરીને તેની ચકાસણી થાય છે, ગોઠવણી તપાસવામાં આવે છે અને પછી આ પ્રોક્સી સક્રિય થાય છે. ટાઇપ કરવાથી કંઈપણ ઇન્સ્ટોલ થતું નથી.",
+ "errorSelectManagedCore": "આ ટનલ સાચવતાં પહેલાં sing-box અથવા Xray પસંદ કરો",
"levelGlobal": "વૈશ્વિક",
"levelProvider": "પ્રદાતા",
"levelCombo": "કોમ્બો",
diff --git a/src/i18n/messages/ha.json b/src/i18n/messages/ha.json
index c4a1f4d1f3be..f1f5d5490bd5 100644
--- a/src/i18n/messages/ha.json
+++ b/src/i18n/messages/ha.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Baya mara da maganin maimaitawa"
},
"settings": {
+ "proxyManagedCoresTab": "Jigogin da ake sarrafawa",
"title": "Saituna",
"general": "Na Gabaɗaya",
"security": "Tsaro",
@@ -11585,7 +11586,26 @@
"entries": "Shigarwar bayanai",
"viewSwitcherAria": "Duban ma'ajiyar wucin gadi"
},
+ "managedProxy": {
+ "title": "Jigogin proksi da ake sarrafawa",
+ "description": "Manna mahaɗin rami a filin mai masaukin proksi na musamman domin adanawa da sanya shi. A nan kuma za ka iya adana ma’anar JSON ta asali ta haɗin fita ba tare da canza wani rabon aiki ba.",
+ "saveHint": "Adanawa tana tabbatar da jigon hukuma idan ana buƙata, sannan tana duba tsarin asali kafin kunnawa. Dole a ɓoye bayanan tushe. Ba a girka komai yayin samfoti, ba a farawa ta atomatik, kuma ba a canza proksi mai wucewa kai tsaye.",
+ "saveActivate": "Adana kuma kunna",
+ "core": "Jigo",
+ "selectCore": "Zaɓi jigo",
+ "name": "Suna",
+ "source": "Mahaɗin tushe ko JSON na asali na haɗin fita",
+ "start": "Fara",
+ "stop": "Dakatar",
+ "loadError": "An kasa loda jigogin da ake sarrafawa",
+ "operationError": "Aikin jigon da ake sarrafawa ya gaza",
+ "state": "{state, select, not_installed {Ba a girka ba} stopped {An dakatar} starting {Ana farawa} running {Yana aiki} stopping {Ana dakatarwa} error {Kuskure} other {Ba a sani ba}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Jigon proksi",
+ "managedSelectCore": "Zaɓi jigo",
+ "managedSaveHint": "Adanawa tana sauke jigon hukuma tare da tabbatar da shi idan ana buƙata, tana duba tsarin, sannan tana kunna wannan proksi. Rubutu kaɗai ba ya girka komai.",
+ "errorSelectManagedCore": "Zaɓi sing-box ko Xray kafin adana wannan rami",
"levelGlobal": "Na Gabaɗaya",
"levelProvider": "Mai samarwa",
"levelCombo": "Haɗin",
diff --git a/src/i18n/messages/he.json b/src/i18n/messages/he.json
index 4c634ab7b42d..648a38c730e1 100644
--- a/src/i18n/messages/he.json
+++ b/src/i18n/messages/he.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "מנגנון נסיון חוזר לזיהום"
},
"settings": {
+ "proxyManagedCoresTab": "ליבות מנוהלות",
"title": "הגדרות",
"general": "כללי",
"security": "אבטחה",
@@ -11585,7 +11586,26 @@
"entries": "רשומות",
"viewSwitcherAria": "תצוגת מטמון"
},
+ "managedProxy": {
+ "title": "ליבות פרוקסי מנוהלות",
+ "description": "יש להדביק קישור למנהרה בשדה המארח של הפרוקסי המותאם אישית כדי לשמור ולשייך אותו. כאן אפשר גם לשמור הגדרת JSON מקורית לחיבור יוצא בלי לשנות שיוך כלשהו.",
+ "saveHint": "השמירה מאמתת את הליבה הרשמית במידת הצורך ובודקת את התצורה המקורית לפני ההפעלה. המקורות דורשים הצפנה. אין התקנה בתצוגה מקדימה, הפעלה אוטומטית או שינויים בפרוקסי שקוף.",
+ "saveActivate": "שמירה והפעלה",
+ "core": "ליבה",
+ "selectCore": "בחירת ליבה",
+ "name": "שם",
+ "source": "קישור למקור או JSON מקורי לחיבור יוצא",
+ "start": "הפעלה",
+ "stop": "עצירה",
+ "loadError": "לא ניתן לטעון ליבות מנוהלות",
+ "operationError": "הפעולה בליבה המנוהלת נכשלה",
+ "state": "{state, select, not_installed {לא מותקנת} stopped {עצורה} starting {בתהליך הפעלה} running {פועלת} stopping {בתהליך עצירה} error {שגיאה} other {לא ידוע}}"
+ },
"proxyConfigModal": {
+ "managedCore": "ליבת פרוקסי",
+ "managedSelectCore": "בחירת ליבה",
+ "managedSaveHint": "השמירה מורידה ומאמתת את הליבה הרשמית במידת הצורך, בודקת את התצורה ואז מפעילה את הפרוקסי הזה. הקלדה אינה מתקינה דבר.",
+ "errorSelectManagedCore": "יש לבחור sing-box או Xray לפני שמירת המנהרה הזאת",
"levelGlobal": "גלובלי",
"levelProvider": "ספק",
"levelCombo": "קומבו",
diff --git a/src/i18n/messages/hi.json b/src/i18n/messages/hi.json
index 5e344c544ba7..28b081b71546 100644
--- a/src/i18n/messages/hi.json
+++ b/src/i18n/messages/hi.json
@@ -1,4 +1,19 @@
{
+ "managedProxy": {
+ "title": "प्रबंधित प्रॉक्सी कोर",
+ "description": "टनल लिंक सहेजने और असाइन करने के लिए उसे कस्टम प्रॉक्सी के होस्ट फ़ील्ड में पेस्ट करें। यहाँ आप किसी भी असाइनमेंट को बदले बिना नेटिव आउटबाउंड JSON परिभाषा भी सहेज सकते हैं।",
+ "saveHint": "सहेजते समय ज़रूरत पड़ने पर आधिकारिक कोर सत्यापित किया जाता है और सक्रिय करने से पहले नेटिव कॉन्फ़िगरेशन जाँचा जाता है। स्रोतों के लिए एन्क्रिप्शन आवश्यक है। पूर्वावलोकन के दौरान कोई इंस्टॉलेशन, स्वतः प्रारंभ या पारदर्शी प्रॉक्सी में बदलाव नहीं होता।",
+ "saveActivate": "सहेजें और सक्रिय करें",
+ "core": "कोर",
+ "selectCore": "कोर चुनें",
+ "name": "नाम",
+ "source": "स्रोत लिंक या नेटिव आउटबाउंड JSON",
+ "start": "शुरू करें",
+ "stop": "रोकें",
+ "loadError": "प्रबंधित कोर लोड नहीं किए जा सके",
+ "operationError": "प्रबंधित कोर का संचालन विफल हुआ",
+ "state": "{state, select, not_installed {इंस्टॉल नहीं है} stopped {रुका हुआ} starting {शुरू हो रहा है} running {चल रहा है} stopping {रुक रहा है} error {त्रुटि} other {अज्ञात}}"
+ },
"codexKeyServiceMode": {
"title": "इस API कुंजी के लिए Codex सेवा मोड",
"description": "यह Codex अनुरोधों पर लागू होता है, जिसमें कॉम्बो के अंदर मौजूद Codex मॉडल भी शामिल हैं। बाध्य मोड क्लाइंट, वैश्विक सेटिंग्स और कनेक्शन डिफ़ॉल्ट को ओवरराइड करते हैं। अन्य प्रदाता अपरिवर्तित रहते हैं।",
@@ -7039,6 +7054,7 @@
"fallbackRetryBackendTitle": "फ़ॉलबैक रीट्राई बैकएंड"
},
"settings": {
+ "proxyManagedCoresTab": "प्रबंधित कोर",
"title": "सेटिंग्स",
"general": "सामान्य",
"security": "सुरक्षा",
@@ -11586,6 +11602,10 @@
"viewSwitcherAria": "कैश दृश्य"
},
"proxyConfigModal": {
+ "managedCore": "प्रॉक्सी कोर",
+ "managedSelectCore": "कोर चुनें",
+ "managedSaveHint": "सहेजते समय ज़रूरत पड़ने पर आधिकारिक कोर डाउनलोड और सत्यापित किया जाता है, कॉन्फ़िगरेशन जाँचा जाता है, फिर यह प्रॉक्सी सक्रिय होती है। टाइप करने से कुछ भी इंस्टॉल नहीं होता।",
+ "errorSelectManagedCore": "इस टनल को सहेजने से पहले sing-box या Xray चुनें",
"levelGlobal": "वैश्विक",
"levelProvider": "प्रदाता",
"levelCombo": "कॉम्बो",
diff --git a/src/i18n/messages/hr.json b/src/i18n/messages/hr.json
index c7be86d84aa9..ff3a6d55d370 100644
--- a/src/i18n/messages/hr.json
+++ b/src/i18n/messages/hr.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Poslužnik za ponovna pokretanja u slučaju pada"
},
"settings": {
+ "proxyManagedCoresTab": "Upravljane jezgre",
"title": "Postavke",
"general": "Opće",
"security": "Sigurnost",
@@ -11585,7 +11586,26 @@
"entries": "Unosi",
"viewSwitcherAria": "Prikaz predmemorije"
},
+ "managedProxy": {
+ "title": "Upravljane proxy jezgre",
+ "description": "Zalijepite poveznicu tunela u polje poslužitelja prilagođenog proxyja kako biste ga spremili i dodijelili. Ovdje možete spremiti i definiciju odlazne veze u izvornom JSON formatu bez promjene bilo koje dodjele.",
+ "saveHint": "Pri spremanju se po potrebi provjerava službena jezgra, a izvorna konfiguracija provjerava se prije aktivacije. Izvori zahtijevaju šifriranje. Nema instalacije tijekom pretpregleda, automatskog pokretanja ni promjena transparentnog proxyja.",
+ "saveActivate": "Spremi i aktiviraj",
+ "core": "Jezgra",
+ "selectCore": "Odaberite jezgru",
+ "name": "Naziv",
+ "source": "Poveznica izvora ili odlazna veza u izvornom JSON formatu",
+ "start": "Pokreni",
+ "stop": "Zaustavi",
+ "loadError": "Nije moguće učitati upravljane jezgre",
+ "operationError": "Operacija nad upravljanom jezgrom nije uspjela",
+ "state": "{state, select, not_installed {Nije instalirana} stopped {Zaustavljena} starting {Pokretanje} running {Pokrenuta} stopping {Zaustavljanje} error {Pogreška} other {Nepoznato}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Proxy jezgra",
+ "managedSelectCore": "Odaberite jezgru",
+ "managedSaveHint": "Pri spremanju se po potrebi preuzima i provjerava službena jezgra, provjerava se konfiguracija, a zatim se aktivira ovaj proxy. Unos teksta ne instalira ništa.",
+ "errorSelectManagedCore": "Odaberite sing-box ili Xray prije spremanja ovog tunela",
"levelGlobal": "Globalno",
"levelProvider": "Pružatelj",
"levelCombo": "Kombinacija",
diff --git a/src/i18n/messages/hu.json b/src/i18n/messages/hu.json
index 7a22db0f27a4..c39f38c2266d 100644
--- a/src/i18n/messages/hu.json
+++ b/src/i18n/messages/hu.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Visszaterelési újrapróbálkozás háttérrendszere"
},
"settings": {
+ "proxyManagedCoresTab": "Felügyelt magok",
"title": "Beállítások elemre",
"general": "tábornok",
"security": "Biztonság",
@@ -11585,7 +11586,26 @@
"entries": "Bejegyzések",
"viewSwitcherAria": "Gyorsítótárnézet"
},
+ "managedProxy": {
+ "title": "Felügyelt proxymagok",
+ "description": "Illesszen be egy alagúthivatkozást az egyéni proxy gazdagépmezőjébe a mentéséhez és hozzárendeléséhez. Itt natív JSON-formátumú kimenő kapcsolatdefiníciót is menthet a meglévő hozzárendelések módosítása nélkül.",
+ "saveHint": "Mentéskor szükség esetén ellenőrizzük a hivatalos mag hitelességét, aktiválás előtt pedig a natív konfigurációt. A források titkosítást igényelnek. Előnézet közben nincs telepítés, nincs automatikus indítás és nem változik az átlátszó proxy beállítása.",
+ "saveActivate": "Mentés és aktiválás",
+ "core": "Mag",
+ "selectCore": "Válasszon magot",
+ "name": "Név",
+ "source": "Forráshivatkozás vagy natív JSON-formátumú kimenő kapcsolat",
+ "start": "Indítás",
+ "stop": "Leállítás",
+ "loadError": "Nem sikerült betölteni a felügyelt magokat",
+ "operationError": "A felügyelt mag művelete sikertelen",
+ "state": "{state, select, not_installed {Nincs telepítve} stopped {Leállítva} starting {Indítás alatt} running {Fut} stopping {Leállítás alatt} error {Hiba} other {Ismeretlen}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Proxymag",
+ "managedSelectCore": "Válasszon magot",
+ "managedSaveHint": "Mentéskor szükség esetén letöltjük és ellenőrizzük a hivatalos magot, ellenőrizzük a konfigurációt, majd aktiváljuk ezt a proxyt. A gépelés semmit sem telepít.",
+ "errorSelectManagedCore": "Az alagút mentése előtt válassza ki a sing-box vagy az Xray magot",
"levelGlobal": "Globális",
"levelProvider": "Szolgáltató",
"levelCombo": "Kombináció",
diff --git a/src/i18n/messages/hy.json b/src/i18n/messages/hy.json
index 39ddefee66d9..91887a575705 100644
--- a/src/i18n/messages/hy.json
+++ b/src/i18n/messages/hy.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Հետապատասխանվող վերափորձարարական backend"
},
"settings": {
+ "proxyManagedCoresTab": "Կառավարվող միջուկներ",
"title": "Կարգավորումներ",
"general": "Ընդհանուր",
"security": "Անվտանգություն",
@@ -11585,7 +11586,26 @@
"entries": "Գրառումներ",
"viewSwitcherAria": "Քեշի դիտում"
},
+ "managedProxy": {
+ "title": "Կառավարվող պրոքսի միջուկներ",
+ "description": "Պահպանելու և նշանակելու համար թունելի հղումը տեղադրեք անհատական պրոքսիի հոսթի դաշտում։ Այստեղ կարող եք նաև պահպանել ելքային կապի բնիկ JSON սահմանումը՝ առանց որևէ նշանակումը փոխելու։",
+ "saveHint": "Պահպանման ժամանակ անհրաժեշտության դեպքում ստուգվում է պաշտոնական միջուկի իսկությունը, իսկ ակտիվացումից առաջ՝ բնիկ կազմաձևումը։ Աղբյուրները պահանջում են գաղտնագրում։ Նախադիտման ընթացքում տեղադրում, ավտոմատ մեկնարկ կամ թափանցիկ պրոքսիի փոփոխություններ չեն կատարվում։",
+ "saveActivate": "Պահպանել և ակտիվացնել",
+ "core": "Միջուկ",
+ "selectCore": "Ընտրեք միջուկը",
+ "name": "Անուն",
+ "source": "Աղբյուրի հղում կամ ելքային կապի բնիկ JSON",
+ "start": "Գործարկել",
+ "stop": "Կանգնեցնել",
+ "loadError": "Չհաջողվեց բեռնել կառավարվող միջուկները",
+ "operationError": "Կառավարվող միջուկի գործողությունը ձախողվեց",
+ "state": "{state, select, not_installed {Տեղադրված չէ} stopped {Կանգնեցված է} starting {Գործարկվում է} running {Աշխատում է} stopping {Կանգնեցվում է} error {Սխալ} other {Անհայտ}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Պրոքսի միջուկ",
+ "managedSelectCore": "Ընտրեք միջուկը",
+ "managedSaveHint": "Պահպանման ժամանակ անհրաժեշտության դեպքում ներբեռնվում և ստուգվում է պաշտոնական միջուկը, ստուգվում է կազմաձևումը, ապա ակտիվացվում է այս պրոքսին։ Մուտքագրելը ոչինչ չի տեղադրում։",
+ "errorSelectManagedCore": "Այս թունելը պահպանելուց առաջ ընտրեք sing-box կամ Xray",
"levelGlobal": "Գլոբալ",
"levelProvider": "Մատակարար",
"levelCombo": "Համակցություն",
diff --git a/src/i18n/messages/id.json b/src/i18n/messages/id.json
index 7a088553dacc..fef18eedd0eb 100644
--- a/src/i18n/messages/id.json
+++ b/src/i18n/messages/id.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Backend percobaan ulang fallback"
},
"settings": {
+ "proxyManagedCoresTab": "Inti terkelola",
"title": "Pengaturan",
"general": "Umum",
"security": "Keamanan",
@@ -11585,7 +11586,26 @@
"entries": "Entri",
"viewSwitcherAria": "Tampilan cache"
},
+ "managedProxy": {
+ "title": "Inti proxy terkelola",
+ "description": "Tempel tautan terowongan di kolom host proxy kustom untuk menyimpan dan menetapkannya. Di sini Anda juga dapat menyimpan definisi JSON bawaan untuk koneksi keluar tanpa mengubah penetapan apa pun.",
+ "saveHint": "Saat disimpan, inti resmi diverifikasi jika diperlukan dan konfigurasi bawaan diperiksa sebelum aktivasi. Sumber memerlukan enkripsi. Tidak ada instalasi saat pratinjau, mulai otomatis, atau perubahan proxy transparan.",
+ "saveActivate": "Simpan dan aktifkan",
+ "core": "Inti",
+ "selectCore": "Pilih inti",
+ "name": "Nama",
+ "source": "Tautan sumber atau JSON bawaan untuk koneksi keluar",
+ "start": "Mulai",
+ "stop": "Hentikan",
+ "loadError": "Tidak dapat memuat inti terkelola",
+ "operationError": "Operasi inti terkelola gagal",
+ "state": "{state, select, not_installed {Belum diinstal} stopped {Dihentikan} starting {Memulai} running {Berjalan} stopping {Menghentikan} error {Kesalahan} other {Tidak diketahui}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Inti proxy",
+ "managedSelectCore": "Pilih inti",
+ "managedSaveHint": "Saat disimpan, inti resmi diunduh dan diverifikasi jika diperlukan, konfigurasi diperiksa, lalu proxy ini diaktifkan. Mengetik tidak menginstal apa pun.",
+ "errorSelectManagedCore": "Pilih sing-box atau Xray sebelum menyimpan terowongan ini",
"levelGlobal": "Global",
"levelProvider": "Penyedia",
"levelCombo": "kombo",
diff --git a/src/i18n/messages/ig.json b/src/i18n/messages/ig.json
index d7998ea2d8e5..4465d8f7d112 100644
--- a/src/i18n/messages/ig.json
+++ b/src/i18n/messages/ig.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Moodulu mgbochi nke mbàmbà nchịkwa"
},
"settings": {
+ "proxyManagedCoresTab": "Isi ndị a na-ejikwa",
"title": "Ntọala",
"general": "Izugbe",
"security": "Nchedo",
@@ -11585,7 +11586,26 @@
"entries": "Ndenye",
"viewSwitcherAria": "Nlele cache"
},
+ "managedProxy": {
+ "title": "Isi proksi a na-ejikwa",
+ "description": "Mado njikọ ọwara n’oghere onye nnabata nke proksi ahaziri iche iji chekwaa ma kenye ya. N’ebe a, ị nwekwara ike ichekwa nkọwa JSON nke isi ahụ nke njikọ na-apụ apụ n’agbanweghị ọrụ e kenyere.",
+ "saveHint": "Mgbe a na-echekwa, a na-enyocha izi ezi nke isi gọọmentị ma ọ bụrụ na ọ dị mkpa ma nyochaa nhazi nke isi ahụ tupu ịgbanye ya. Isi mmalite chọrọ izo ya ezo. Enweghị nrụnye n’oge nlele mbụ, ịmalite na-akpaghị aka ma ọ bụ mgbanwe na proksi na-agafe ozugbo.",
+ "saveActivate": "Chekwaa ma gbanye",
+ "core": "Isi",
+ "selectCore": "Họrọ isi",
+ "name": "Aha",
+ "source": "Njikọ isi mmalite ma ọ bụ JSON nke isi ahụ nke njikọ na-apụ apụ",
+ "start": "Malite",
+ "stop": "Kwụsị",
+ "loadError": "Enweghị ike ibu isi ndị a na-ejikwa",
+ "operationError": "Ọrụ isi a na-ejikwa dara",
+ "state": "{state, select, not_installed {E tinyebeghị} stopped {Akwụsịla} starting {Na-amalite} running {Na-arụ ọrụ} stopping {Na-akwụsị} error {Njehie} other {Amaghị}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Isi proksi",
+ "managedSelectCore": "Họrọ isi",
+ "managedSaveHint": "Ichekwa na-ebudata ma nyochaa izi ezi nke isi gọọmentị ma ọ bụrụ na ọ dị mkpa, na-enyocha nhazi, wee gbanye proksi a. Ịpị ederede anaghị etinye ihe ọ bụla.",
+ "errorSelectManagedCore": "Họrọ sing-box ma ọ bụ Xray tupu ịchekwa ọwara a",
"levelGlobal": "Zuru ụwa ọnụ",
"levelProvider": "Onye na-eweta ọrụ",
"levelCombo": "Ngwakọta",
diff --git a/src/i18n/messages/it.json b/src/i18n/messages/it.json
index 332d3efb8d91..813f691bc21c 100644
--- a/src/i18n/messages/it.json
+++ b/src/i18n/messages/it.json
@@ -7116,6 +7116,7 @@
"fallbackRetryBackendTitle": "Backend di riprova di fallback"
},
"settings": {
+ "proxyManagedCoresTab": "Nuclei gestiti",
"title": "Impostazioni",
"general": "Generale",
"security": "Sicurezza",
@@ -11662,7 +11663,26 @@
"entries": "Voci",
"viewSwitcherAria": "Vista cache"
},
+ "managedProxy": {
+ "title": "Nuclei proxy gestiti",
+ "description": "Incolla un link del tunnel nel campo host del proxy personalizzato per salvarlo e assegnarlo. Qui puoi anche salvare una definizione di connessione in uscita nel formato JSON nativo senza modificare alcuna assegnazione.",
+ "saveHint": "Il salvataggio verifica il nucleo ufficiale, se necessario, e controlla la configurazione nativa prima dell’attivazione. Le fonti richiedono la crittografia. Nessuna installazione durante l’anteprima, nessun avvio automatico e nessuna modifica al proxy trasparente.",
+ "saveActivate": "Salva e attiva",
+ "core": "Nucleo",
+ "selectCore": "Seleziona un nucleo",
+ "name": "Nome",
+ "source": "Link di origine o connessione in uscita nel formato JSON nativo",
+ "start": "Avvia",
+ "stop": "Arresta",
+ "loadError": "Impossibile caricare i nuclei gestiti",
+ "operationError": "Operazione sul nucleo gestito non riuscita",
+ "state": "{state, select, not_installed {Non installato} stopped {Arrestato} starting {Avvio in corso} running {In esecuzione} stopping {Arresto in corso} error {Errore} other {Sconosciuto}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Nucleo del proxy",
+ "managedSelectCore": "Seleziona un nucleo",
+ "managedSaveHint": "Il salvataggio scarica e verifica il nucleo ufficiale, se necessario, controlla la configurazione e poi attiva questo proxy. La digitazione non installa nulla.",
+ "errorSelectManagedCore": "Seleziona sing-box o Xray prima di salvare questo tunnel",
"levelGlobal": "Globale",
"levelProvider": "Fornitore",
"levelCombo": "Combinato",
diff --git a/src/i18n/messages/ja.json b/src/i18n/messages/ja.json
index 56fece2cedb2..70f32bbb16c2 100644
--- a/src/i18n/messages/ja.json
+++ b/src/i18n/messages/ja.json
@@ -1,4 +1,19 @@
{
+ "managedProxy": {
+ "title": "管理対象のプロキシコア",
+ "description": "トンネルリンクを保存して割り当てるには、カスタムプロキシのホスト欄に貼り付けてください。ここでは、割り当てを変更せずにネイティブ形式のアウトバウンド JSON 定義を保存することもできます。",
+ "saveHint": "保存時には、必要に応じて公式コアを検証し、有効化する前にネイティブ設定を確認します。ソースには暗号化が必要です。プレビュー時のインストール、自動起動、透過プロキシの変更は行いません。",
+ "saveActivate": "保存して有効化",
+ "core": "コア",
+ "selectCore": "コアを選択",
+ "name": "名前",
+ "source": "ソースリンクまたはネイティブ形式のアウトバウンド JSON",
+ "start": "起動",
+ "stop": "停止",
+ "loadError": "管理対象のコアを読み込めませんでした",
+ "operationError": "管理対象のコアの操作に失敗しました",
+ "state": "{state, select, not_installed {未インストール} stopped {停止中} starting {起動処理中} running {実行中} stopping {停止処理中} error {エラー} other {不明}}"
+ },
"codexKeyServiceMode": {
"title": "このAPIキーのCodexサービスモード",
"description": "コンボ内のCodexモデルを含むCodexリクエストに適用されます。強制モードは、クライアント、グローバル設定、接続のデフォルト設定より優先されます。他のプロバイダーには影響しません。",
@@ -7039,6 +7054,7 @@
"fallbackRetryBackendTitle": "フォールバック再試行バックエンド"
},
"settings": {
+ "proxyManagedCoresTab": "管理対象のコア",
"title": "設定",
"general": "一般",
"security": "セキュリティ",
@@ -11586,6 +11602,10 @@
"viewSwitcherAria": "キャッシュビュー"
},
"proxyConfigModal": {
+ "managedCore": "プロキシコア",
+ "managedSelectCore": "コアを選択",
+ "managedSaveHint": "保存時には、必要に応じて公式コアをダウンロードして検証し、設定を確認してからこのプロキシを有効化します。入力するだけでは何もインストールされません。",
+ "errorSelectManagedCore": "このトンネルを保存する前に sing-box または Xray を選択してください",
"levelGlobal": "グローバル",
"levelProvider": "プロバイダー",
"levelCombo": "コンボ",
diff --git a/src/i18n/messages/ka.json b/src/i18n/messages/ka.json
index b2f59817f12d..12ba941a14c1 100644
--- a/src/i18n/messages/ka.json
+++ b/src/i18n/messages/ka.json
@@ -7116,6 +7116,7 @@
"fallbackRetryBackendTitle": "სარეზერვო ხელახალი ცდის backend"
},
"settings": {
+ "proxyManagedCoresTab": "მართვადი ბირთვები",
"title": "პარამეტრები",
"general": "ზოგადი",
"security": "უსაფრთხოება",
@@ -11662,7 +11663,26 @@
"entries": "ჩანაწერები",
"viewSwitcherAria": "ქეშის ხედი"
},
+ "managedProxy": {
+ "title": "მართვადი პროქსის ბირთვები",
+ "description": "შენახვისა და მინიჭებისთვის ჩასვით გვირაბის ბმული მორგებული პროქსის ჰოსტის ველში. აქ ასევე შეგიძლიათ შეინახოთ გამავალი კავშირის მშობლიური JSON განსაზღვრება მინიჭებების შეცვლის გარეშე.",
+ "saveHint": "შენახვისას საჭიროების შემთხვევაში მოწმდება ოფიციალური ბირთვი და გააქტიურებამდე მოწმდება მშობლიური კონფიგურაცია. წყაროებს დაშიფვრა სჭირდება. წინასწარი ნახვისას არ ხდება ინსტალაცია, ავტომატური გაშვება ან გამჭვირვალე პროქსის ცვლილება.",
+ "saveActivate": "შენახვა და გააქტიურება",
+ "core": "ბირთვი",
+ "selectCore": "აირჩიეთ ბირთვი",
+ "name": "სახელი",
+ "source": "წყაროს ბმული ან გამავალი კავშირის მშობლიური JSON",
+ "start": "გაშვება",
+ "stop": "შეჩერება",
+ "loadError": "მართვადი ბირთვების ჩატვირთვა ვერ მოხერხდა",
+ "operationError": "მართვადი ბირთვის ოპერაცია ვერ შესრულდა",
+ "state": "{state, select, not_installed {არ არის დაინსტალირებული} stopped {შეჩერებულია} starting {იშვება} running {მუშაობს} stopping {ჩერდება} error {შეცდომა} other {უცნობია}}"
+ },
"proxyConfigModal": {
+ "managedCore": "პროქსის ბირთვი",
+ "managedSelectCore": "აირჩიეთ ბირთვი",
+ "managedSaveHint": "შენახვისას საჭიროების შემთხვევაში ჩამოიტვირთება და მოწმდება ოფიციალური ბირთვი, მოწმდება კონფიგურაცია, შემდეგ კი ეს პროქსი გააქტიურდება. ტექსტის შეყვანით არაფერი ინსტალირდება.",
+ "errorSelectManagedCore": "ამ გვირაბის შენახვამდე აირჩიეთ sing-box ან Xray",
"levelGlobal": "გლობალური",
"levelProvider": "პროვაიდერი",
"levelCombo": "კომბინაცია",
diff --git a/src/i18n/messages/km.json b/src/i18n/messages/km.json
index ab6af08834c7..b0363fe79bda 100644
--- a/src/i18n/messages/km.json
+++ b/src/i18n/messages/km.json
@@ -1,4 +1,19 @@
{
+ "managedProxy": {
+ "title": "ស្នូលប្រូកស៊ីដែលគ្រប់គ្រង",
+ "description": "បិទភ្ជាប់តំណរូងក្នុងវាលម៉ាស៊ីនមេរបស់ប្រូកស៊ីផ្ទាល់ខ្លួន ដើម្បីរក្សាទុក និងកំណត់ឱ្យប្រើវា។ នៅទីនេះ អ្នកក៏អាចរក្សាទុកនិយមន័យ JSON ចេញក្រៅជាទម្រង់ដើម ដោយមិនផ្លាស់ប្តូរការកំណត់ឱ្យប្រើណាមួយឡើយ។",
+ "saveHint": "ពេលរក្សាទុក ប្រព័ន្ធផ្ទៀងផ្ទាត់ស្នូលផ្លូវការបើចាំបាច់ ហើយពិនិត្យការកំណត់រចនាសម្ព័ន្ធដើមមុនពេលធ្វើឱ្យសកម្ម។ ប្រភពត្រូវមានការអ៊ិនគ្រីប។ មិនមានការដំឡើងពេលមើលជាមុន ការចាប់ផ្តើមដោយស្វ័យប្រវត្តិ ឬការផ្លាស់ប្តូរប្រូកស៊ីថ្លាឡើយ។",
+ "saveActivate": "រក្សាទុក និងធ្វើឱ្យសកម្ម",
+ "core": "ស្នូល",
+ "selectCore": "ជ្រើសរើសស្នូល",
+ "name": "ឈ្មោះ",
+ "source": "តំណប្រភព ឬ JSON ចេញក្រៅជាទម្រង់ដើម",
+ "start": "ចាប់ផ្តើម",
+ "stop": "បញ្ឈប់",
+ "loadError": "មិនអាចផ្ទុកស្នូលដែលគ្រប់គ្រងបានទេ",
+ "operationError": "ប្រតិបត្តិការស្នូលដែលគ្រប់គ្រងបានបរាជ័យ",
+ "state": "{state, select, not_installed {មិនទាន់ដំឡើង} stopped {បានបញ្ឈប់} starting {កំពុងចាប់ផ្តើម} running {កំពុងដំណើរការ} stopping {កំពុងបញ្ឈប់} error {កំហុស} other {មិនស្គាល់}}"
+ },
"teamCosts": {
"title": "ថ្លៃដើមក្រុម",
"subtitle": "គ្រប់គ្រងថវិកាទន់ចែករំលែក និងការប៉ាន់ស្មានថ្លៃដើមពីកាតាឡុក។",
@@ -7116,6 +7131,7 @@
"fallbackRetryBackendTitle": "ប្រព័ន្ធបទនុកឡើងវិញ"
},
"settings": {
+ "proxyManagedCoresTab": "ស្នូលដែលគ្រប់គ្រង",
"title": "ការកំណត់",
"general": "ទូទៅ",
"security": "សុវត្ថិភាព",
@@ -11663,6 +11679,10 @@
"viewSwitcherAria": "ទិដ្ឋភាពឃ្លាំងសម្ងាត់"
},
"proxyConfigModal": {
+ "managedCore": "ស្នូលប្រូកស៊ី",
+ "managedSelectCore": "ជ្រើសរើសស្នូល",
+ "managedSaveHint": "ពេលរក្សាទុក ប្រព័ន្ធទាញយក និងផ្ទៀងផ្ទាត់ស្នូលផ្លូវការបើចាំបាច់ ពិនិត្យការកំណត់រចនាសម្ព័ន្ធ រួចធ្វើឱ្យប្រូកស៊ីនេះសកម្ម។ ការវាយបញ្ចូលមិនដំឡើងអ្វីទាំងអស់។",
+ "errorSelectManagedCore": "ជ្រើសរើស sing-box ឬ Xray មុនពេលរក្សាទុករូងនេះ",
"levelGlobal": "សកល",
"levelProvider": "អ្នកផ្ដល់សេវា",
"levelCombo": "បន្សំ",
diff --git a/src/i18n/messages/kn.json b/src/i18n/messages/kn.json
index d2ea33b5d082..034054677898 100644
--- a/src/i18n/messages/kn.json
+++ b/src/i18n/messages/kn.json
@@ -1,4 +1,19 @@
{
+ "managedProxy": {
+ "title": "ನಿರ್ವಹಿತ ಪ್ರಾಕ್ಸಿ ಕೋರ್ಗಳು",
+ "description": "ಟನಲ್ ಲಿಂಕ್ ಅನ್ನು ಉಳಿಸಲು ಮತ್ತು ನಿಯೋಜಿಸಲು, ಅದನ್ನು ಕಸ್ಟಮ್ ಪ್ರಾಕ್ಸಿಯ ಹೋಸ್ಟ್ ಕ್ಷೇತ್ರದಲ್ಲಿ ಅಂಟಿಸಿ. ಇಲ್ಲಿ ಯಾವುದೇ ನಿಯೋಜನೆಯನ್ನು ಬದಲಿಸದೆ ಸ್ಥಳೀಯ ಸ್ವರೂಪದ ಔಟ್ಬೌಂಡ್ JSON ವ್ಯಾಖ್ಯಾನವನ್ನೂ ಉಳಿಸಬಹುದು.",
+ "saveHint": "ಉಳಿಸುವಾಗ ಅಗತ್ಯವಿದ್ದರೆ ಅಧಿಕೃತ ಕೋರ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಸಕ್ರಿಯಗೊಳಿಸುವ ಮೊದಲು ಸ್ಥಳೀಯ ಸ್ವರೂಪದ ಸಂರಚನೆಯನ್ನು ತಪಾಸಣೆ ಮಾಡಲಾಗುತ್ತದೆ. ಮೂಲಗಳಿಗೆ ಎನ್ಕ್ರಿಪ್ಶನ್ ಅಗತ್ಯ. ಪೂರ್ವವೀಕ್ಷಣೆಯ ಸಮಯದಲ್ಲಿ ಸ್ಥಾಪನೆ, ಸ್ವಯಂ ಪ್ರಾರಂಭ ಅಥವಾ ಪಾರದರ್ಶಕ ಪ್ರಾಕ್ಸಿಯ ಬದಲಾವಣೆಗಳು ನಡೆಯುವುದಿಲ್ಲ.",
+ "saveActivate": "ಉಳಿಸಿ ಮತ್ತು ಸಕ್ರಿಯಗೊಳಿಸಿ",
+ "core": "ಕೋರ್",
+ "selectCore": "ಕೋರ್ ಆಯ್ಕೆಮಾಡಿ",
+ "name": "ಹೆಸರು",
+ "source": "ಮೂಲ ಲಿಂಕ್ ಅಥವಾ ಸ್ಥಳೀಯ ಸ್ವರೂಪದ ಔಟ್ಬೌಂಡ್ JSON",
+ "start": "ಪ್ರಾರಂಭಿಸಿ",
+ "stop": "ನಿಲ್ಲಿಸಿ",
+ "loadError": "ನಿರ್ವಹಿತ ಕೋರ್ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ",
+ "operationError": "ನಿರ್ವಹಿತ ಕೋರ್ ಕಾರ್ಯಾಚರಣೆ ವಿಫಲವಾಗಿದೆ",
+ "state": "{state, select, not_installed {ಸ್ಥಾಪಿಸಲಾಗಿಲ್ಲ} stopped {ನಿಲ್ಲಿಸಲಾಗಿದೆ} starting {ಪ್ರಾರಂಭವಾಗುತ್ತಿದೆ} running {ಚಾಲನೆಯಲ್ಲಿದೆ} stopping {ನಿಲ್ಲುತ್ತಿದೆ} error {ದೋಷ} other {ಅಜ್ಞಾತ}}"
+ },
"codexKeyServiceMode": {
"title": "ಈ API ಕೀಗಾಗಿ Codex ಸೇವಾ ಮೋಡ್",
"description": "ಕಾಂಬೊಗಳಲ್ಲಿರುವ Codex ಮಾದರಿಗಳನ್ನು ಒಳಗೊಂಡಂತೆ, Codex ವಿನಂತಿಗಳಿಗೆ ಅನ್ವಯಿಸುತ್ತದೆ. ಬಲವಂತವಾಗಿ ಹೊಂದಿಸಲಾದ ಮೋಡ್ಗಳು ಕ್ಲೈಂಟ್, ಜಾಗತಿಕ ಸೆಟ್ಟಿಂಗ್ಗಳು ಮತ್ತು ಸಂಪರ್ಕದ ಡೀಫಾಲ್ಟ್ಗಳನ್ನು ಅತಿಕ್ರಮಿಸುತ್ತವೆ. ಇತರ ಪೂರೈಕೆದಾರರು ಬದಲಾಗುವುದಿಲ್ಲ.",
@@ -7039,6 +7054,7 @@
"fallbackRetryBackendTitle": "ಬ್ಯಾಕ್ಅಪ್ ರಿಟ್ರೈ ಬ್ಯಾಕೆಂಡ್"
},
"settings": {
+ "proxyManagedCoresTab": "ನಿರ್ವಹಿತ ಕೋರ್ಗಳು",
"title": "ಸೆಟ್ಟಿಂಗ್ಗಳು",
"general": "ಸಾಮಾನ್ಯ",
"security": "ಭದ್ರತೆ",
@@ -11586,6 +11602,10 @@
"viewSwitcherAria": "ಕ್ಯಾಶ್ ವೀಕ್ಷಣೆ"
},
"proxyConfigModal": {
+ "managedCore": "ಪ್ರಾಕ್ಸಿ ಕೋರ್",
+ "managedSelectCore": "ಕೋರ್ ಆಯ್ಕೆಮಾಡಿ",
+ "managedSaveHint": "ಉಳಿಸುವಾಗ ಅಗತ್ಯವಿದ್ದರೆ ಅಧಿಕೃತ ಕೋರ್ ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಿ ಪರಿಶೀಲಿಸಲಾಗುತ್ತದೆ, ಸಂರಚನೆಯನ್ನು ತಪಾಸಣೆ ಮಾಡಿ ನಂತರ ಈ ಪ್ರಾಕ್ಸಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ. ಟೈಪ್ ಮಾಡುವುದರಿಂದ ಯಾವುದೂ ಸ್ಥಾಪನೆಯಾಗುವುದಿಲ್ಲ.",
+ "errorSelectManagedCore": "ಈ ಟನಲ್ ಉಳಿಸುವ ಮೊದಲು sing-box ಅಥವಾ Xray ಆಯ್ಕೆಮಾಡಿ",
"levelGlobal": "ಜಾಗತಿಕ",
"levelProvider": "ಪೂರೈಕೆದಾರ",
"levelCombo": "ಸಂಯೋಜನೆ",
diff --git a/src/i18n/messages/ko.json b/src/i18n/messages/ko.json
index a83253c7879d..a44b6561958f 100644
--- a/src/i18n/messages/ko.json
+++ b/src/i18n/messages/ko.json
@@ -1,4 +1,19 @@
{
+ "managedProxy": {
+ "title": "관리형 프록시 코어",
+ "description": "터널 링크를 저장하고 할당하려면 사용자 지정 프록시의 호스트 필드에 붙여넣으세요. 여기에서는 할당을 변경하지 않고 네이티브 형식의 아웃바운드 JSON 정의를 저장할 수도 있습니다.",
+ "saveHint": "저장 시 필요한 경우 공식 코어를 검증하고 활성화 전에 네이티브 설정을 확인합니다. 소스에는 암호화가 필요합니다. 미리 보기 중 설치, 자동 시작 또는 투명 프록시 변경은 수행하지 않습니다.",
+ "saveActivate": "저장 및 활성화",
+ "core": "코어",
+ "selectCore": "코어 선택",
+ "name": "이름",
+ "source": "소스 링크 또는 네이티브 형식의 아웃바운드 JSON",
+ "start": "시작",
+ "stop": "중지",
+ "loadError": "관리형 코어를 불러올 수 없습니다",
+ "operationError": "관리형 코어 작업에 실패했습니다",
+ "state": "{state, select, not_installed {설치되지 않음} stopped {중지됨} starting {시작 중} running {실행 중} stopping {중지 중} error {오류} other {알 수 없음}}"
+ },
"codexKeyServiceMode": {
"title": "이 API 키의 Codex 서비스 모드",
"description": "콤보 내 Codex 모델을 포함한 Codex 요청에 적용됩니다. 강제 모드는 클라이언트, 전역 설정 및 연결 기본값보다 우선합니다. 다른 제공업체에는 영향을 주지 않습니다.",
@@ -7039,6 +7054,7 @@
"fallbackRetryBackendTitle": "폴백 재시도 백엔드"
},
"settings": {
+ "proxyManagedCoresTab": "관리형 코어",
"title": "설정",
"general": "일반",
"security": "보안",
@@ -11586,6 +11602,10 @@
"viewSwitcherAria": "캐시 보기"
},
"proxyConfigModal": {
+ "managedCore": "프록시 코어",
+ "managedSelectCore": "코어 선택",
+ "managedSaveHint": "저장 시 필요한 경우 공식 코어를 다운로드하고 검증한 다음, 설정을 확인하고 이 프록시를 활성화합니다. 입력만으로는 아무것도 설치되지 않습니다.",
+ "errorSelectManagedCore": "이 터널을 저장하기 전에 sing-box 또는 Xray를 선택하세요",
"levelGlobal": "글로벌",
"levelProvider": "공급자",
"levelCombo": "콤보",
diff --git a/src/i18n/messages/lt.json b/src/i18n/messages/lt.json
index 74a4df7e47ee..f2957efd19cc 100644
--- a/src/i18n/messages/lt.json
+++ b/src/i18n/messages/lt.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Atsarginis pakartojimo backendas"
},
"settings": {
+ "proxyManagedCoresTab": "Valdomi branduoliai",
"title": "Nustatymai",
"general": "Bendrieji",
"security": "Sauga",
@@ -11585,7 +11586,26 @@
"entries": "Įrašai",
"viewSwitcherAria": "Podėlio rodinys"
},
+ "managedProxy": {
+ "title": "Valdomi tarpinio serverio branduoliai",
+ "description": "Įklijuokite tunelio nuorodą į pasirinktinio tarpinio serverio pagrindinio kompiuterio lauką, kad ją išsaugotumėte ir priskirtumėte. Čia taip pat galite išsaugoti išeinančio ryšio aprašą branduolio savuoju JSON formatu nekeisdami jokio priskyrimo.",
+ "saveHint": "Išsaugant prireikus patikrinamas oficialaus branduolio autentiškumas, o prieš aktyvinimą patikrinama konfigūracija branduolio savuoju formatu. Šaltiniai turi būti užšifruoti. Peržiūros metu niekas nediegiama, automatinis paleidimas neatliekamas, o skaidriojo tarpinio serverio nustatymai nekeičiami.",
+ "saveActivate": "Išsaugoti ir aktyvinti",
+ "core": "Branduolys",
+ "selectCore": "Pasirinkite branduolį",
+ "name": "Pavadinimas",
+ "source": "Šaltinio nuoroda arba išeinantis ryšys branduolio savuoju JSON formatu",
+ "start": "Paleisti",
+ "stop": "Sustabdyti",
+ "loadError": "Nepavyko įkelti valdomų branduolių",
+ "operationError": "Valdomo branduolio operacija nepavyko",
+ "state": "{state, select, not_installed {Neįdiegtas} stopped {Sustabdytas} starting {Paleidžiamas} running {Veikia} stopping {Stabdomas} error {Klaida} other {Nežinoma}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Tarpinio serverio branduolys",
+ "managedSelectCore": "Pasirinkite branduolį",
+ "managedSaveHint": "Išsaugant prireikus atsisiunčiamas ir patikrinamas oficialus branduolys, patikrinama konfigūracija, o tada aktyvinamas šis tarpinis serveris. Teksto įvedimas nieko neįdiegia.",
+ "errorSelectManagedCore": "Prieš išsaugodami šį tunelį pasirinkite sing-box arba Xray",
"levelGlobal": "Visuotinis",
"levelProvider": "Teikėjo",
"levelCombo": "Derinio",
diff --git a/src/i18n/messages/lv.json b/src/i18n/messages/lv.json
index 10b982cefe86..95229aa51e19 100644
--- a/src/i18n/messages/lv.json
+++ b/src/i18n/messages/lv.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Rezerves atkārtota mēģinājuma aizmugure"
},
"settings": {
+ "proxyManagedCoresTab": "Pārvaldīti kodoli",
"title": "Iestatījumi",
"general": "Vispārīgi",
"security": "Drošība",
@@ -11585,7 +11586,26 @@
"entries": "Ieraksti",
"viewSwitcherAria": "Kešatmiņas skats"
},
+ "managedProxy": {
+ "title": "Pārvaldīti starpniekservera kodoli",
+ "description": "Ielīmējiet tuneļa saiti pielāgotā starpniekservera resursdatora laukā, lai to saglabātu un piešķirtu. Šeit varat arī saglabāt izejošā savienojuma definīciju kodola sākotnējā JSON formātā, nemainot nevienu piešķīrumu.",
+ "saveHint": "Saglabājot, ja nepieciešams, tiek pārbaudīts oficiālais kodols, un pirms aktivizēšanas tiek pārbaudīta konfigurācija kodola sākotnējā formātā. Avotiem jābūt šifrētiem. Priekšskatījuma laikā nekas netiek instalēts, automātiskā palaišana netiek veikta un caurspīdīgā starpniekservera iestatījumi netiek mainīti.",
+ "saveActivate": "Saglabāt un aktivizēt",
+ "core": "Kodols",
+ "selectCore": "Atlasiet kodolu",
+ "name": "Nosaukums",
+ "source": "Avota saite vai izejošais savienojums kodola sākotnējā JSON formātā",
+ "start": "Palaist",
+ "stop": "Apturēt",
+ "loadError": "Neizdevās ielādēt pārvaldītos kodolus",
+ "operationError": "Pārvaldītā kodola darbība neizdevās",
+ "state": "{state, select, not_installed {Nav instalēts} stopped {Apturēts} starting {Tiek palaists} running {Darbojas} stopping {Tiek apturēts} error {Kļūda} other {Nezināms}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Starpniekservera kodols",
+ "managedSelectCore": "Atlasiet kodolu",
+ "managedSaveHint": "Saglabājot, ja nepieciešams, tiek lejupielādēts un pārbaudīts oficiālais kodols, tiek pārbaudīta konfigurācija un pēc tam aktivizēts šis starpniekserveris. Teksta ievadīšana neko neinstalē.",
+ "errorSelectManagedCore": "Pirms šī tuneļa saglabāšanas atlasiet sing-box vai Xray",
"levelGlobal": "Globālais",
"levelProvider": "Pakalpojumu sniedzējs",
"levelCombo": "Kombinācija",
diff --git a/src/i18n/messages/ml.json b/src/i18n/messages/ml.json
index a1887b263dcd..efb03b4dfdae 100644
--- a/src/i18n/messages/ml.json
+++ b/src/i18n/messages/ml.json
@@ -1,4 +1,19 @@
{
+ "managedProxy": {
+ "title": "നിയന്ത്രിത പ്രോക്സി കോറുകൾ",
+ "description": "ടണൽ ലിങ്ക് സംരക്ഷിക്കാനും നിയോഗിക്കാനും കസ്റ്റം പ്രോക്സിയുടെ ഹോസ്റ്റ് ഫീൽഡിൽ അത് ഒട്ടിക്കുക. ഇവിടെ, ഒരു നിയോഗവും മാറ്റാതെ നേറ്റീവ് ഔട്ട്ബൗണ്ട് JSON നിർവചനവും സംരക്ഷിക്കാം.",
+ "saveHint": "സംരക്ഷിക്കുമ്പോൾ ആവശ്യമെങ്കിൽ ഔദ്യോഗിക കോർ പരിശോധിച്ചുറപ്പിക്കുകയും സജീവമാക്കുന്നതിനു മുമ്പ് നേറ്റീവ് കോൺഫിഗറേഷൻ പരിശോധിക്കുകയും ചെയ്യും. ഉറവിടങ്ങൾക്ക് എൻക്രിപ്ഷൻ ആവശ്യമാണ്. പ്രിവ്യൂ സമയത്ത് ഇൻസ്റ്റാളേഷൻ, സ്വയമേവ ആരംഭിക്കൽ, സുതാര്യ പ്രോക്സിയിലേക്കുള്ള മാറ്റങ്ങൾ എന്നിവ ഉണ്ടാകില്ല.",
+ "saveActivate": "സംരക്ഷിച്ച് സജീവമാക്കുക",
+ "core": "കോർ",
+ "selectCore": "ഒരു കോർ തിരഞ്ഞെടുക്കുക",
+ "name": "പേര്",
+ "source": "ഉറവിട ലിങ്ക് അല്ലെങ്കിൽ നേറ്റീവ് ഔട്ട്ബൗണ്ട് JSON",
+ "start": "ആരംഭിക്കുക",
+ "stop": "നിർത്തുക",
+ "loadError": "നിയന്ത്രിത കോറുകൾ ലോഡ് ചെയ്യാനായില്ല",
+ "operationError": "നിയന്ത്രിത കോറിന്റെ പ്രവർത്തനം പരാജയപ്പെട്ടു",
+ "state": "{state, select, not_installed {ഇൻസ്റ്റാൾ ചെയ്തിട്ടില്ല} stopped {നിർത്തി} starting {ആരംഭിക്കുന്നു} running {പ്രവർത്തിക്കുന്നു} stopping {നിർത്തുന്നു} error {പിശക്} other {അജ്ഞാതം}}"
+ },
"teamCosts": {
"title": "ടീം ചെലവുകൾ",
"subtitle": "പങ്കിട്ട സോഫ്റ്റ് ബജറ്റുകളും കാറ്റലോഗ് ചെലവ് കണക്കുകളും നിയന്ത്രിക്കുക.",
@@ -7116,6 +7131,7 @@
"fallbackRetryBackendTitle": "പരിഹാര റീട്രൈ ബാക്ക്എൻഡ്"
},
"settings": {
+ "proxyManagedCoresTab": "നിയന്ത്രിത കോറുകൾ",
"title": "ക്രമീകരണങ്ങൾ",
"general": "പൊതുവായത്",
"security": "സുരക്ഷ",
@@ -11663,6 +11679,10 @@
"viewSwitcherAria": "കാഷ് കാഴ്ച"
},
"proxyConfigModal": {
+ "managedCore": "പ്രോക്സി കോർ",
+ "managedSelectCore": "ഒരു കോർ തിരഞ്ഞെടുക്കുക",
+ "managedSaveHint": "സംരക്ഷിക്കുമ്പോൾ ആവശ്യമെങ്കിൽ ഔദ്യോഗിക കോർ ഡൗൺലോഡ് ചെയ്ത് പരിശോധിച്ചുറപ്പിക്കുകയും കോൺഫിഗറേഷൻ പരിശോധിക്കുകയും ചെയ്ത ശേഷം ഈ പ്രോക്സി സജീവമാക്കും. ടൈപ്പ് ചെയ്യുന്നതുകൊണ്ട് ഒന്നും ഇൻസ്റ്റാൾ ആകില്ല.",
+ "errorSelectManagedCore": "ഈ ടണൽ സംരക്ഷിക്കുന്നതിനു മുമ്പ് sing-box അല്ലെങ്കിൽ Xray തിരഞ്ഞെടുക്കുക",
"levelGlobal": "ആഗോളം",
"levelProvider": "ദാതാവ്",
"levelCombo": "സംയോജനം",
diff --git a/src/i18n/messages/mr.json b/src/i18n/messages/mr.json
index 772e76587a26..92f5f315dcff 100644
--- a/src/i18n/messages/mr.json
+++ b/src/i18n/messages/mr.json
@@ -1,4 +1,19 @@
{
+ "managedProxy": {
+ "title": "व्यवस्थापित प्रॉक्सी कोर",
+ "description": "टनेल लिंक जतन करण्यासाठी आणि नियुक्त करण्यासाठी ती सानुकूल प्रॉक्सीच्या होस्ट फील्डमध्ये पेस्ट करा. येथे तुम्ही कोणतीही नियुक्ती न बदलता नेटिव्ह आउटबाउंड JSON व्याख्याही जतन करू शकता.",
+ "saveHint": "जतन करताना गरज असल्यास अधिकृत कोरची पडताळणी होते आणि सक्रिय करण्यापूर्वी नेटिव्ह कॉन्फिगरेशन तपासले जाते. स्रोतांसाठी एन्क्रिप्शन आवश्यक आहे. पूर्वावलोकनादरम्यान इंस्टॉलेशन, स्वयंचलित प्रारंभ किंवा पारदर्शक प्रॉक्सीमध्ये बदल होत नाहीत.",
+ "saveActivate": "जतन करा आणि सक्रिय करा",
+ "core": "कोर",
+ "selectCore": "कोर निवडा",
+ "name": "नाव",
+ "source": "स्रोत लिंक किंवा नेटिव्ह आउटबाउंड JSON",
+ "start": "सुरू करा",
+ "stop": "थांबवा",
+ "loadError": "व्यवस्थापित कोर लोड करता आले नाहीत",
+ "operationError": "व्यवस्थापित कोरची क्रिया अयशस्वी झाली",
+ "state": "{state, select, not_installed {इंस्टॉल केलेले नाही} stopped {थांबले आहे} starting {सुरू होत आहे} running {चालू आहे} stopping {थांबत आहे} error {त्रुटी} other {अज्ञात}}"
+ },
"codexKeyServiceMode": {
"title": "या API कीसाठी Codex सेवा मोड",
"description": "कॉम्बोमधील Codex मॉडेल्ससह सर्व Codex विनंत्यांना लागू होते. सक्तीचे मोड क्लायंट, जागतिक सेटिंग्ज आणि कनेक्शनची डीफॉल्ट सेटिंग्ज अधिलिखित करतात. इतर प्रदाते अपरिवर्तित राहतात.",
@@ -7039,6 +7054,7 @@
"fallbackRetryBackendTitle": "फॉलबॅक रीट्राय बॅकएंड"
},
"settings": {
+ "proxyManagedCoresTab": "व्यवस्थापित कोर",
"title": "सेटिंग्ज",
"general": "सामान्य",
"security": "सुरक्षा",
@@ -11586,6 +11602,10 @@
"viewSwitcherAria": "कॅश दृश्य"
},
"proxyConfigModal": {
+ "managedCore": "प्रॉक्सी कोर",
+ "managedSelectCore": "कोर निवडा",
+ "managedSaveHint": "जतन करताना गरज असल्यास अधिकृत कोर डाउनलोड करून त्याची पडताळणी केली जाते, कॉन्फिगरेशन तपासले जाते आणि त्यानंतर हा प्रॉक्सी सक्रिय केला जातो. टाइप केल्याने काहीही इंस्टॉल होत नाही.",
+ "errorSelectManagedCore": "हा टनेल जतन करण्यापूर्वी sing-box किंवा Xray निवडा",
"levelGlobal": "ग्लोबल",
"levelProvider": "प्रदाता",
"levelCombo": "संयोजन",
diff --git a/src/i18n/messages/ms.json b/src/i18n/messages/ms.json
index eb1381f3ddd8..711e5dc0d6d3 100644
--- a/src/i18n/messages/ms.json
+++ b/src/i18n/messages/ms.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Backend percubaan semula semula jadi"
},
"settings": {
+ "proxyManagedCoresTab": "Teras terurus",
"title": "tetapan",
"general": "Umum",
"security": "Keselamatan",
@@ -11585,7 +11586,26 @@
"entries": "Entri",
"viewSwitcherAria": "Paparan cache"
},
+ "managedProxy": {
+ "title": "Teras proksi terurus",
+ "description": "Tampalkan pautan terowong dalam medan hos proksi tersuai untuk menyimpan dan menetapkannya. Di sini anda juga boleh menyimpan takrif JSON asli bagi sambungan keluar tanpa mengubah sebarang penetapan.",
+ "saveHint": "Semasa menyimpan, teras rasmi disahkan jika perlu dan konfigurasi asli diperiksa sebelum pengaktifan. Sumber memerlukan penyulitan. Tiada pemasangan semasa pratonton, mula automatik atau perubahan proksi telus.",
+ "saveActivate": "Simpan dan aktifkan",
+ "core": "Teras",
+ "selectCore": "Pilih teras",
+ "name": "Nama",
+ "source": "Pautan sumber atau JSON asli bagi sambungan keluar",
+ "start": "Mulakan",
+ "stop": "Hentikan",
+ "loadError": "Tidak dapat memuatkan teras terurus",
+ "operationError": "Operasi teras terurus gagal",
+ "state": "{state, select, not_installed {Belum dipasang} stopped {Dihentikan} starting {Sedang bermula} running {Sedang berjalan} stopping {Sedang berhenti} error {Ralat} other {Tidak diketahui}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Teras proksi",
+ "managedSelectCore": "Pilih teras",
+ "managedSaveHint": "Semasa menyimpan, teras rasmi dimuat turun dan disahkan jika perlu, konfigurasi diperiksa, kemudian proksi ini diaktifkan. Menaip tidak memasang apa-apa.",
+ "errorSelectManagedCore": "Pilih sing-box atau Xray sebelum menyimpan terowong ini",
"levelGlobal": "Global",
"levelProvider": "Pembekal",
"levelCombo": "Kombo",
diff --git a/src/i18n/messages/mt.json b/src/i18n/messages/mt.json
index f757ba2ab0c3..590ad977ac85 100644
--- a/src/i18n/messages/mt.json
+++ b/src/i18n/messages/mt.json
@@ -7116,6 +7116,7 @@
"fallbackRetryBackendTitle": "Backend ta' ritentattiv fallback"
},
"settings": {
+ "proxyManagedCoresTab": "Qlub ġestiti",
"title": "Issettjar",
"general": "Ġenerali",
"security": "Sigurtà",
@@ -11662,7 +11663,26 @@
"entries": "Entrati",
"viewSwitcherAria": "Dehra tal-cache"
},
+ "managedProxy": {
+ "title": "Qlub tal-proxy ġestiti",
+ "description": "Waħħal rabta tal-mina fil-qasam tal-host tal-proxy personalizzat biex tissejvjaha u tassenjaha. Hawn tista’ wkoll tissejvja definizzjoni ta’ konnessjoni ħierġa fil-format JSON nattiv mingħajr ma tibdel xi assenjazzjoni.",
+ "saveHint": "Meta tissejvja, il-qalba uffiċjali tiġi vverifikata jekk ikun meħtieġ u l-konfigurazzjoni nattiva tiġi ċċekkjata qabel l-attivazzjoni. Is-sorsi jeħtieġu kriptaġġ. Ma ssirx installazzjoni waqt il-previżjoni, bidu awtomatiku jew bidliet fil-proxy trasparenti.",
+ "saveActivate": "Ssejvja u attiva",
+ "core": "Qalba",
+ "selectCore": "Agħżel qalba",
+ "name": "Isem",
+ "source": "Rabta tas-sors jew konnessjoni ħierġa fil-format JSON nattiv",
+ "start": "Ibda",
+ "stop": "Waqqaf",
+ "loadError": "Ma setgħux jitgħabbew il-qlub ġestiti",
+ "operationError": "L-operazzjoni fuq il-qalba ġestita falliet",
+ "state": "{state, select, not_installed {Mhix installata} stopped {Imwaqqfa} starting {Qed tibda} running {Qed taħdem} stopping {Qed tieqaf} error {Żball} other {Mhux magħruf}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Qalba tal-proxy",
+ "managedSelectCore": "Agħżel qalba",
+ "managedSaveHint": "Meta tissejvja, il-qalba uffiċjali titniżżel u tiġi vverifikata jekk ikun meħtieġ, il-konfigurazzjoni tiġi ċċekkjata, u mbagħad dan il-proxy jiġi attivat. Ma jiġi installat xejn waqt li tittajpja.",
+ "errorSelectManagedCore": "Agħżel sing-box jew Xray qabel ma tissejvja din il-mina",
"levelGlobal": "Globali",
"levelProvider": "Fornitur",
"levelCombo": "Kombinazzjoni",
diff --git a/src/i18n/messages/my.json b/src/i18n/messages/my.json
index 4129bf149db3..5cd28a6f5624 100644
--- a/src/i18n/messages/my.json
+++ b/src/i18n/messages/my.json
@@ -1,4 +1,19 @@
{
+ "managedProxy": {
+ "title": "စီမံခန့်ခွဲထားသော ပရောက်စီအင်ဂျင်များ",
+ "description": "ဥမင်လင့်ခ်ကို သိမ်းဆည်းပြီး သတ်မှတ်အသုံးပြုရန် စိတ်ကြိုက်ပရောက်စီ၏ ဟို့စ်အကွက်တွင် ကူးထည့်ပါ။ ဤနေရာတွင် မည်သည့်အသုံးပြုမှုသတ်မှတ်ချက်ကိုမျှ မပြောင်းလဲဘဲ မူရင်းဖော်မတ်ဖြင့် အထွက်ချိတ်ဆက်မှု JSON သတ်မှတ်ချက်ကိုလည်း သိမ်းဆည်းနိုင်သည်။",
+ "saveHint": "သိမ်းဆည်းချိန်တွင် လိုအပ်ပါက တရားဝင်အင်ဂျင်ကို အတည်ပြုပြီး စတင်အသုံးပြုမီ မူရင်းဖော်မတ်ဖွဲ့စည်းမှုကို စစ်ဆေးသည်။ ရင်းမြစ်များအတွက် ကုဒ်ဝှက်စနစ် လိုအပ်သည်။ အစမ်းကြည့်ချိန်တွင် ထည့်သွင်းခြင်း၊ အလိုအလျောက်စတင်ခြင်း သို့မဟုတ် ဖောက်ထွင်းမြင်နိုင်သောပရောက်စီ၏ ဆက်တင်များကို ပြောင်းလဲခြင်း မပြုလုပ်ပါ။",
+ "saveActivate": "သိမ်းဆည်းပြီး စတင်အသုံးပြုရန်",
+ "core": "အင်ဂျင်",
+ "selectCore": "အင်ဂျင်တစ်ခု ရွေးပါ",
+ "name": "အမည်",
+ "source": "ရင်းမြစ်လင့်ခ် သို့မဟုတ် မူရင်းဖော်မတ်ဖြင့် အထွက်ချိတ်ဆက်မှု JSON",
+ "start": "စတင်ရန်",
+ "stop": "ရပ်ရန်",
+ "loadError": "စီမံခန့်ခွဲထားသော အင်ဂျင်များကို မတင်နိုင်ပါ",
+ "operationError": "စီမံခန့်ခွဲထားသော အင်ဂျင်၏ လုပ်ဆောင်ချက် မအောင်မြင်ပါ",
+ "state": "{state, select, not_installed {မထည့်သွင်းရသေးပါ} stopped {ရပ်ထားသည်} starting {စတင်နေသည်} running {လုပ်ဆောင်နေသည်} stopping {ရပ်တန့်နေသည်} error {အမှား} other {မသိပါ}}"
+ },
"teamCosts": {
"title": "အဖွဲ့ကုန်ကျစရိတ်များ",
"subtitle": "မျှဝေထားသော Soft ဘတ်ဂျက်များနှင့် ကတ်တလော့ဂ် ကုန်ကျစရိတ် ခန့်မှန်းချက်များကို စီမံပါ။",
@@ -7116,6 +7131,7 @@
"fallbackRetryBackendTitle": "အစမ်းပြန်လည်စက်"
},
"settings": {
+ "proxyManagedCoresTab": "စီမံခန့်ခွဲထားသော အင်ဂျင်များ",
"title": "ဆက်တင်များ",
"general": "အထွေထွေ",
"security": "လုံခြုံရေး",
@@ -11663,6 +11679,10 @@
"viewSwitcherAria": "ကက်ရှ်မြင်ကွင်း"
},
"proxyConfigModal": {
+ "managedCore": "ပရောက်စီအင်ဂျင်",
+ "managedSelectCore": "အင်ဂျင်တစ်ခု ရွေးပါ",
+ "managedSaveHint": "သိမ်းဆည်းချိန်တွင် လိုအပ်ပါက တရားဝင်အင်ဂျင်ကို ဒေါင်းလုဒ်ဆွဲ၍ အတည်ပြုပြီး ဖွဲ့စည်းမှုကို စစ်ဆေးကာ ဤပရောက်စီကို စတင်အသုံးပြုသည်။ စာရိုက်ထည့်ရုံဖြင့် မည်သည့်အရာကိုမျှ ထည့်သွင်းမည်မဟုတ်ပါ။",
+ "errorSelectManagedCore": "ဤဥမင်ကို မသိမ်းဆည်းမီ sing-box သို့မဟုတ် Xray ကို ရွေးပါ",
"levelGlobal": "စနစ်တစ်ခုလုံးဆိုင်ရာ",
"levelProvider": "ဝန်ဆောင်မှုပေးသူ",
"levelCombo": "ပေါင်းစပ်မှု",
diff --git a/src/i18n/messages/ne.json b/src/i18n/messages/ne.json
index 95f90cd3e65c..bacbad22a828 100644
--- a/src/i18n/messages/ne.json
+++ b/src/i18n/messages/ne.json
@@ -1,4 +1,19 @@
{
+ "managedProxy": {
+ "title": "व्यवस्थित प्रोक्सी कोरहरू",
+ "description": "टनेल लिङ्क सुरक्षित गर्न र तोक्न यसलाई अनुकूलित प्रोक्सीको होस्ट फिल्डमा टाँस्नुहोस्। यहाँ कुनै पनि तोकाइ परिवर्तन नगरी नेटिभ आउटबाउन्ड JSON परिभाषा पनि सुरक्षित गर्न सक्नुहुन्छ।",
+ "saveHint": "सुरक्षित गर्दा आवश्यक भए आधिकारिक कोर प्रमाणित गरिन्छ र सक्रिय गर्नुअघि नेटिभ कन्फिगरेसन जाँचिन्छ। स्रोतहरूका लागि इन्क्रिप्सन आवश्यक छ। पूर्वावलोकनका बेला स्थापना, स्वतः सुरुवात वा पारदर्शी प्रोक्सीमा परिवर्तन गरिँदैन।",
+ "saveActivate": "सुरक्षित गर्नुहोस् र सक्रिय गर्नुहोस्",
+ "core": "कोर",
+ "selectCore": "कोर छान्नुहोस्",
+ "name": "नाम",
+ "source": "स्रोत लिङ्क वा नेटिभ आउटबाउन्ड JSON",
+ "start": "सुरु गर्नुहोस्",
+ "stop": "रोक्नुहोस्",
+ "loadError": "व्यवस्थित कोरहरू लोड गर्न सकिएन",
+ "operationError": "व्यवस्थित कोरको कार्य असफल भयो",
+ "state": "{state, select, not_installed {स्थापना गरिएको छैन} stopped {रोकिएको} starting {सुरु हुँदै छ} running {चलिरहेको} stopping {रोकिँदै छ} error {त्रुटि} other {अज्ञात}}"
+ },
"codexKeyServiceMode": {
"title": "यो API कुञ्जीका लागि Codex सेवा मोड",
"description": "यो Codex अनुरोधहरूमा लागू हुन्छ, जसमा कम्बोभित्रका Codex मोडेलहरू पनि समावेश छन्। बाध्यकारी मोडहरूले क्लाइन्ट, विश्वव्यापी सेटिङहरू र जडानका पूर्वनिर्धारित मानहरूलाई अधिलेखन गर्छन्। अन्य प्रदायकहरू अपरिवर्तित रहन्छन्।",
@@ -7039,6 +7054,7 @@
"fallbackRetryBackendTitle": "फोल्ब्याक रिट्राइ ब्याकएण्ड"
},
"settings": {
+ "proxyManagedCoresTab": "व्यवस्थित कोरहरू",
"title": "सेटिङहरू",
"general": "सामान्य",
"security": "सुरक्षा",
@@ -11586,6 +11602,10 @@
"viewSwitcherAria": "क्यास दृश्य"
},
"proxyConfigModal": {
+ "managedCore": "प्रोक्सी कोर",
+ "managedSelectCore": "कोर छान्नुहोस्",
+ "managedSaveHint": "सुरक्षित गर्दा आवश्यक भए आधिकारिक कोर डाउनलोड गरी प्रमाणित गरिन्छ, कन्फिगरेसन जाँचिन्छ र त्यसपछि यो प्रोक्सी सक्रिय गरिन्छ। टाइप गर्दैमा केही पनि स्थापना हुँदैन।",
+ "errorSelectManagedCore": "यो टनेल सुरक्षित गर्नुअघि sing-box वा Xray छान्नुहोस्",
"levelGlobal": "विश्वव्यापी",
"levelProvider": "प्रदायक",
"levelCombo": "संयोजन",
diff --git a/src/i18n/messages/nl.json b/src/i18n/messages/nl.json
index 4032186106f3..2543dc8af3a3 100644
--- a/src/i18n/messages/nl.json
+++ b/src/i18n/messages/nl.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Fallback-back-end voor opnieuw proberen"
},
"settings": {
+ "proxyManagedCoresTab": "Beheerde kernen",
"title": "Instellingen",
"general": "Algemeen",
"security": "Beveiliging",
@@ -11585,7 +11586,26 @@
"entries": "Items",
"viewSwitcherAria": "Cacheweergave"
},
+ "managedProxy": {
+ "title": "Beheerde proxykernen",
+ "description": "Plak een tunnellink in het hostveld van de aangepaste proxy om deze op te slaan en toe te wijzen. Hier kunt u ook een definitie van een uitgaande verbinding in de eigen JSON-indeling van de kern opslaan zonder een toewijzing te wijzigen.",
+ "saveHint": "Bij het opslaan wordt zo nodig de officiële kern geverifieerd en wordt de configuratie in de eigen indeling van de kern vóór activering gecontroleerd. Bronnen vereisen versleuteling. Geen installatie tijdens het voorbeeld, geen automatische start en geen wijzigingen aan de transparante proxy.",
+ "saveActivate": "Opslaan en activeren",
+ "core": "Kern",
+ "selectCore": "Selecteer een kern",
+ "name": "Naam",
+ "source": "Bronlink of uitgaande verbinding in de eigen JSON-indeling van de kern",
+ "start": "Starten",
+ "stop": "Stoppen",
+ "loadError": "Beheerde kernen konden niet worden geladen",
+ "operationError": "Bewerking op de beheerde kern mislukt",
+ "state": "{state, select, not_installed {Niet geïnstalleerd} stopped {Gestopt} starting {Bezig met starten} running {Actief} stopping {Bezig met stoppen} error {Fout} other {Onbekend}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Proxykern",
+ "managedSelectCore": "Selecteer een kern",
+ "managedSaveHint": "Bij het opslaan wordt zo nodig de officiële kern gedownload en geverifieerd, wordt de configuratie gecontroleerd en wordt daarna deze proxy geactiveerd. Typen installeert niets.",
+ "errorSelectManagedCore": "Selecteer sing-box of Xray voordat u deze tunnel opslaat",
"levelGlobal": "Globaal",
"levelProvider": "Aanbieder",
"levelCombo": "Combinatie",
diff --git a/src/i18n/messages/no.json b/src/i18n/messages/no.json
index fef25d373476..7483a8133630 100644
--- a/src/i18n/messages/no.json
+++ b/src/i18n/messages/no.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Reservert gjenntaksbackend"
},
"settings": {
+ "proxyManagedCoresTab": "Administrerte kjerner",
"title": "Innstillinger",
"general": "Generelt",
"security": "Sikkerhet",
@@ -11585,7 +11586,26 @@
"entries": "Oppføringer",
"viewSwitcherAria": "Hurtigbuffervisning"
},
+ "managedProxy": {
+ "title": "Administrerte mellomtjenerkjerner",
+ "description": "Lim inn en tunnellenke i vertsfeltet for den egendefinerte mellomtjeneren for å lagre og tilordne den. Her kan du også lagre en definisjon av en utgående tilkobling i kjernens eget JSON-format uten å endre noen tilordning.",
+ "saveHint": "Ved lagring verifiseres den offisielle kjernen ved behov, og konfigurasjonen i kjernens eget format kontrolleres før aktivering. Kilder krever kryptering. Ingen installasjon under forhåndsvisning, automatisk oppstart eller endringer av den transparente mellomtjeneren.",
+ "saveActivate": "Lagre og aktiver",
+ "core": "Kjerne",
+ "selectCore": "Velg en kjerne",
+ "name": "Navn",
+ "source": "Kildelenke eller utgående tilkobling i kjernens eget JSON-format",
+ "start": "Start",
+ "stop": "Stopp",
+ "loadError": "Kunne ikke laste inn administrerte kjerner",
+ "operationError": "Operasjonen på den administrerte kjernen mislyktes",
+ "state": "{state, select, not_installed {Ikke installert} stopped {Stoppet} starting {Starter} running {Kjører} stopping {Stopper} error {Feil} other {Ukjent}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Mellomtjenerkjerne",
+ "managedSelectCore": "Velg en kjerne",
+ "managedSaveHint": "Ved lagring lastes den offisielle kjernen ned og verifiseres ved behov, konfigurasjonen kontrolleres, og deretter aktiveres denne mellomtjeneren. Inntasting installerer ingenting.",
+ "errorSelectManagedCore": "Velg sing-box eller Xray før du lagrer denne tunnelen",
"levelGlobal": "Globalt",
"levelProvider": "Leverandør",
"levelCombo": "Kombinasjon",
diff --git a/src/i18n/messages/or.json b/src/i18n/messages/or.json
index ba5656d6c52b..f85716c50d40 100644
--- a/src/i18n/messages/or.json
+++ b/src/i18n/messages/or.json
@@ -1,4 +1,19 @@
{
+ "managedProxy": {
+ "title": "ପରିଚାଳିତ ପ୍ରକ୍ସି କୋର୍",
+ "description": "ଟନେଲ୍ ଲିଙ୍କ୍ ସଂରକ୍ଷଣ ଓ ନିର୍ଦ୍ଦିଷ୍ଟ କରିବା ପାଇଁ ଏହାକୁ କଷ୍ଟମ୍ ପ୍ରକ୍ସିର ହୋଷ୍ଟ କ୍ଷେତ୍ରରେ ପେଷ୍ଟ କରନ୍ତୁ। ଏଠାରେ ଆପଣ କୌଣସି ନିଯୁକ୍ତି ପରିବର୍ତ୍ତନ ନକରି ନେଟିଭ୍ ଆଉଟବାଉଣ୍ଡ JSON ପରିଭାଷା ମଧ୍ୟ ସଂରକ୍ଷଣ କରିପାରିବେ।",
+ "saveHint": "ସଂରକ୍ଷଣ ସମୟରେ ଆବଶ୍ୟକ ହେଲେ ଅଧିକୃତ କୋର୍ ଯାଞ୍ଚ କରାଯାଏ ଏବଂ ସକ୍ରିୟ କରିବା ପୂର୍ବରୁ ନେଟିଭ୍ ବିନ୍ୟାସ ପରୀକ୍ଷା କରାଯାଏ। ଉତ୍ସଗୁଡ଼ିକ ପାଇଁ ଏନକ୍ରିପ୍ସନ୍ ଆବଶ୍ୟକ। ପୂର୍ବାବଲୋକନ ସମୟରେ ସ୍ଥାପନ, ସ୍ୱୟଂଚାଳିତ ଆରମ୍ଭ କିମ୍ବା ସ୍ୱଚ୍ଛ ପ୍ରକ୍ସିରେ ପରିବର୍ତ୍ତନ ହୁଏ ନାହିଁ।",
+ "saveActivate": "ସଂରକ୍ଷଣ କରି ସକ୍ରିୟ କରନ୍ତୁ",
+ "core": "କୋର୍",
+ "selectCore": "ଏକ କୋର୍ ବାଛନ୍ତୁ",
+ "name": "ନାମ",
+ "source": "ଉତ୍ସ ଲିଙ୍କ୍ କିମ୍ବା ନେଟିଭ୍ ଆଉଟବାଉଣ୍ଡ JSON",
+ "start": "ଆରମ୍ଭ କରନ୍ତୁ",
+ "stop": "ବନ୍ଦ କରନ୍ତୁ",
+ "loadError": "ପରିଚାଳିତ କୋର୍ ଲୋଡ୍ ହୋଇପାରିଲା ନାହିଁ",
+ "operationError": "ପରିଚାଳିତ କୋର୍ର କାର୍ଯ୍ୟ ବିଫଳ ହେଲା",
+ "state": "{state, select, not_installed {ସ୍ଥାପିତ ହୋଇନାହିଁ} stopped {ବନ୍ଦ ଅଛି} starting {ଆରମ୍ଭ ହେଉଛି} running {ଚାଲୁଅଛି} stopping {ବନ୍ଦ ହେଉଛି} error {ତ୍ରୁଟି} other {ଅଜ୍ଞାତ}}"
+ },
"codexKeyServiceMode": {
"title": "ଏହି API କୀ ପାଇଁ Codex ସେବା ମୋଡ୍",
"description": "କମ୍ବୋ ଭିତରେ ଥିବା Codex ମଡେଲ୍ଗୁଡ଼ିକ ସମେତ Codex ଅନୁରୋଧଗୁଡ଼ିକ ପାଇଁ ପ୍ରଯୁଜ୍ୟ। ବାଧ୍ୟତାମୂଳକ ମୋଡ୍ଗୁଡ଼ିକ କ୍ଲାଏଣ୍ଟ, ଗ୍ଲୋବାଲ୍ ସେଟିଂସ୍ ଏବଂ କନେକ୍ସନ୍ ଡିଫଲ୍ଟଗୁଡ଼ିକୁ ଅଗ୍ରାହ୍ୟ କରେ। ଅନ୍ୟ ପ୍ରଦାନକାରୀମାନେ ଅପରିବର୍ତ୍ତିତ ରହନ୍ତି।",
@@ -7039,6 +7054,7 @@
"fallbackRetryBackendTitle": "ଫଲବ୍ୟାକ୍ ପୁନଃଚେଷ୍ଟା backend"
},
"settings": {
+ "proxyManagedCoresTab": "ପରିଚାଳିତ କୋର୍",
"title": "ସେଟିଂସ୍",
"general": "ସାଧାରଣ",
"security": "ସୁରକ୍ଷା",
@@ -11586,6 +11602,10 @@
"viewSwitcherAria": "କ୍ୟାଶ୍ ଦୃଶ୍ୟ"
},
"proxyConfigModal": {
+ "managedCore": "ପ୍ରକ୍ସି କୋର୍",
+ "managedSelectCore": "ଏକ କୋର୍ ବାଛନ୍ତୁ",
+ "managedSaveHint": "ସଂରକ୍ଷଣ ସମୟରେ ଆବଶ୍ୟକ ହେଲେ ଅଧିକୃତ କୋର୍ ଡାଉନଲୋଡ୍ ଓ ଯାଞ୍ଚ କରାଯାଏ, ବିନ୍ୟାସ ପରୀକ୍ଷା କରାଯାଏ, ତାପରେ ଏହି ପ୍ରକ୍ସି ସକ୍ରିୟ ହୁଏ। ଟାଇପ୍ କଲେ କିଛି ସ୍ଥାପିତ ହୁଏ ନାହିଁ।",
+ "errorSelectManagedCore": "ଏହି ଟନେଲ୍ ସଂରକ୍ଷଣ କରିବା ପୂର୍ବରୁ sing-box କିମ୍ବା Xray ବାଛନ୍ତୁ",
"levelGlobal": "ଗ୍ଲୋବାଲ୍",
"levelProvider": "ପ୍ରଦାନକାରୀ",
"levelCombo": "କମ୍ବୋ",
diff --git a/src/i18n/messages/pa.json b/src/i18n/messages/pa.json
index 214159f90170..75060b53041c 100644
--- a/src/i18n/messages/pa.json
+++ b/src/i18n/messages/pa.json
@@ -1,4 +1,19 @@
{
+ "managedProxy": {
+ "title": "ਪ੍ਰਬੰਧਿਤ ਪ੍ਰੌਕਸੀ ਕੋਰ",
+ "description": "ਟਨਲ ਲਿੰਕ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰਨ ਅਤੇ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ ਇਸਨੂੰ ਕਸਟਮ ਪ੍ਰੌਕਸੀ ਦੇ ਹੋਸਟ ਖੇਤਰ ਵਿੱਚ ਪੇਸਟ ਕਰੋ। ਇੱਥੇ ਤੁਸੀਂ ਕਿਸੇ ਵੀ ਨਿਰਧਾਰਨ ਨੂੰ ਬਦਲੇ ਬਿਨਾਂ ਨੇਟਿਵ ਆਊਟਬਾਊਂਡ JSON ਪਰਿਭਾਸ਼ਾ ਵੀ ਸੁਰੱਖਿਅਤ ਕਰ ਸਕਦੇ ਹੋ।",
+ "saveHint": "ਸੁਰੱਖਿਅਤ ਕਰਦੇ ਸਮੇਂ ਲੋੜ ਪੈਣ 'ਤੇ ਅਧਿਕਾਰਤ ਕੋਰ ਦੀ ਪੁਸ਼ਟੀ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਅਤੇ ਸਰਗਰਮ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਨੇਟਿਵ ਸੰਰਚਨਾ ਦੀ ਜਾਂਚ ਹੁੰਦੀ ਹੈ। ਸਰੋਤਾਂ ਲਈ ਇਨਕ੍ਰਿਪਸ਼ਨ ਲੋੜੀਂਦੀ ਹੈ। ਪੂਰਵ-ਝਲਕ ਦੌਰਾਨ ਇੰਸਟਾਲੇਸ਼ਨ, ਆਪਣੇ ਆਪ ਸ਼ੁਰੂ ਹੋਣਾ ਜਾਂ ਪਾਰਦਰਸ਼ੀ ਪ੍ਰੌਕਸੀ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਨਹੀਂ ਹੁੰਦੀਆਂ।",
+ "saveActivate": "ਸੁਰੱਖਿਅਤ ਕਰੋ ਅਤੇ ਸਰਗਰਮ ਕਰੋ",
+ "core": "ਕੋਰ",
+ "selectCore": "ਕੋਰ ਚੁਣੋ",
+ "name": "ਨਾਮ",
+ "source": "ਸਰੋਤ ਲਿੰਕ ਜਾਂ ਨੇਟਿਵ ਆਊਟਬਾਊਂਡ JSON",
+ "start": "ਸ਼ੁਰੂ ਕਰੋ",
+ "stop": "ਰੋਕੋ",
+ "loadError": "ਪ੍ਰਬੰਧਿਤ ਕੋਰ ਲੋਡ ਨਹੀਂ ਹੋ ਸਕੇ",
+ "operationError": "ਪ੍ਰਬੰਧਿਤ ਕੋਰ ਦੀ ਕਾਰਵਾਈ ਅਸਫਲ ਹੋਈ",
+ "state": "{state, select, not_installed {ਇੰਸਟਾਲ ਨਹੀਂ ਹੈ} stopped {ਰੁਕਿਆ ਹੋਇਆ} starting {ਸ਼ੁਰੂ ਹੋ ਰਿਹਾ ਹੈ} running {ਚੱਲ ਰਿਹਾ ਹੈ} stopping {ਰੁਕ ਰਿਹਾ ਹੈ} error {ਗਲਤੀ} other {ਅਣਜਾਣ}}"
+ },
"teamCosts": {
"title": "ਟੀਮ ਲਾਗਤਾਂ",
"subtitle": "ਸਾਂਝੇ ਸਾਫਟ ਬਜਟ ਅਤੇ ਕੈਟਾਲਾਗ ਲਾਗਤ ਅਨੁਮਾਨਾਂ ਦਾ ਪ੍ਰਬੰਧ ਕਰੋ।",
@@ -7116,6 +7131,7 @@
"fallbackRetryBackendTitle": "ਫਾਲਬੈਕ ਰੀਟ੍ਰਾਈ ਬੈਕਏਂਡ"
},
"settings": {
+ "proxyManagedCoresTab": "ਪ੍ਰਬੰਧਿਤ ਕੋਰ",
"title": "ਸੈਟਿੰਗਾਂ",
"general": "ਆਮ",
"security": "ਸੁਰੱਖਿਆ",
@@ -11663,6 +11679,10 @@
"viewSwitcherAria": "ਕੈਸ਼ ਦ੍ਰਿਸ਼"
},
"proxyConfigModal": {
+ "managedCore": "ਪ੍ਰੌਕਸੀ ਕੋਰ",
+ "managedSelectCore": "ਕੋਰ ਚੁਣੋ",
+ "managedSaveHint": "ਸੁਰੱਖਿਅਤ ਕਰਦੇ ਸਮੇਂ ਲੋੜ ਪੈਣ 'ਤੇ ਅਧਿਕਾਰਤ ਕੋਰ ਡਾਊਨਲੋਡ ਕਰਕੇ ਉਸਦੀ ਪੁਸ਼ਟੀ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਸੰਰਚਨਾ ਦੀ ਜਾਂਚ ਹੁੰਦੀ ਹੈ ਅਤੇ ਫਿਰ ਇਹ ਪ੍ਰੌਕਸੀ ਸਰਗਰਮ ਹੁੰਦੀ ਹੈ। ਟਾਈਪ ਕਰਨ ਨਾਲ ਕੁਝ ਵੀ ਇੰਸਟਾਲ ਨਹੀਂ ਹੁੰਦਾ।",
+ "errorSelectManagedCore": "ਇਸ ਟਨਲ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ sing-box ਜਾਂ Xray ਚੁਣੋ",
"levelGlobal": "ਗਲੋਬਲ",
"levelProvider": "ਪ੍ਰਦਾਤਾ",
"levelCombo": "ਕੌਂਬੋ",
diff --git a/src/i18n/messages/phi.json b/src/i18n/messages/phi.json
index f27b5c57a226..feec125cc599 100644
--- a/src/i18n/messages/phi.json
+++ b/src/i18n/messages/phi.json
@@ -1,4 +1,19 @@
{
+ "managedProxy": {
+ "title": "Mga pinamamahalaang proxy core",
+ "description": "Mag-paste ng tunnel link sa field ng host ng pasadyang proxy upang i-save at italaga ito. Dito, maaari ka ring mag-save ng depinisyon ng outbound sa native na JSON format nang hindi binabago ang anumang pagtatalaga.",
+ "saveHint": "Kapag nag-save, bineberipika ang opisyal na core kung kinakailangan at sinusuri ang native na configuration bago i-activate. Kailangang naka-encrypt ang mga source. Walang pag-install habang nagpe-preview, awtomatikong pagsisimula, o pagbabago sa transparent proxy.",
+ "saveActivate": "I-save at i-activate",
+ "core": "Core",
+ "selectCore": "Pumili ng core",
+ "name": "Pangalan",
+ "source": "Link ng pinagmulan o outbound JSON sa native na format",
+ "start": "Simulan",
+ "stop": "Ihinto",
+ "loadError": "Hindi ma-load ang mga pinamamahalaang core",
+ "operationError": "Nabigo ang operasyon ng pinamamahalaang core",
+ "state": "{state, select, not_installed {Hindi naka-install} stopped {Nakahinto} starting {Nagsisimula} running {Gumagana} stopping {Humihinto} error {Error} other {Hindi alam}}"
+ },
"codexKeyServiceMode": {
"title": "Mode ng serbisyo ng Codex para sa API key na ito",
"description": "Nalalapat sa mga kahilingan sa Codex, kabilang ang mga modelo ng Codex sa loob ng mga combo. Ino-override ng mga sapilitang mode ang client, mga pandaigdigang setting, at mga default ng koneksyon. Hindi magbabago ang ibang provider.",
@@ -7039,6 +7054,7 @@
"fallbackRetryBackendTitle": "Fallback na backend ng pag-uulit"
},
"settings": {
+ "proxyManagedCoresTab": "Mga pinamamahalaang core",
"title": "Mga setting",
"general": "Heneral",
"security": "Seguridad",
@@ -11586,6 +11602,10 @@
"viewSwitcherAria": "View ng cache"
},
"proxyConfigModal": {
+ "managedCore": "Core ng proxy",
+ "managedSelectCore": "Pumili ng core",
+ "managedSaveHint": "Kapag nag-save, dina-download at bineberipika ang opisyal na core kung kinakailangan, sinusuri ang configuration, at saka ina-activate ang proxy na ito. Walang nai-install sa pagta-type lamang.",
+ "errorSelectManagedCore": "Piliin ang sing-box o Xray bago i-save ang tunnel na ito",
"levelGlobal": "Pangkalahatan",
"levelProvider": "Tagapagbigay",
"levelCombo": "Kombinasyon",
diff --git a/src/i18n/messages/pl.json b/src/i18n/messages/pl.json
index 2913c0da7cce..e09f618be601 100644
--- a/src/i18n/messages/pl.json
+++ b/src/i18n/messages/pl.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Alternatywny backend ponawiania"
},
"settings": {
+ "proxyManagedCoresTab": "Zarządzane rdzenie",
"title": "Ustawienia",
"general": "Ogólne",
"security": "Bezpieczeństwo",
@@ -11585,7 +11586,26 @@
"entries": "Wpisy",
"viewSwitcherAria": "Widok pamięci podręcznej"
},
+ "managedProxy": {
+ "title": "Zarządzane rdzenie proxy",
+ "description": "Wklej łącze tunelu w polu hosta niestandardowego proxy, aby je zapisać i przypisać. Tutaj możesz również zapisać definicję połączenia wychodzącego w natywnym formacie JSON bez zmiany żadnego przypisania.",
+ "saveHint": "Podczas zapisywania w razie potrzeby weryfikowany jest oficjalny rdzeń, a przed aktywacją sprawdzana jest natywna konfiguracja. Źródła wymagają szyfrowania. Brak instalacji podczas podglądu, automatycznego uruchamiania i zmian w przezroczystym proxy.",
+ "saveActivate": "Zapisz i aktywuj",
+ "core": "Rdzeń",
+ "selectCore": "Wybierz rdzeń",
+ "name": "Nazwa",
+ "source": "Łącze źródłowe lub połączenie wychodzące w natywnym formacie JSON",
+ "start": "Uruchom",
+ "stop": "Zatrzymaj",
+ "loadError": "Nie udało się wczytać zarządzanych rdzeni",
+ "operationError": "Operacja na zarządzanym rdzeniu nie powiodła się",
+ "state": "{state, select, not_installed {Niezainstalowany} stopped {Zatrzymany} starting {Uruchamianie} running {Uruchomiony} stopping {Zatrzymywanie} error {Błąd} other {Nieznany}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Rdzeń proxy",
+ "managedSelectCore": "Wybierz rdzeń",
+ "managedSaveHint": "Podczas zapisywania w razie potrzeby pobierany i weryfikowany jest oficjalny rdzeń, sprawdzana jest konfiguracja, a następnie aktywowane jest to proxy. Samo wpisywanie niczego nie instaluje.",
+ "errorSelectManagedCore": "Wybierz sing-box lub Xray przed zapisaniem tego tunelu",
"levelGlobal": "Globalny",
"levelProvider": "Dostawca",
"levelCombo": "Kombinacja",
diff --git a/src/i18n/messages/pt.json b/src/i18n/messages/pt.json
index 7ec202e940ff..11aef363b2c1 100644
--- a/src/i18n/messages/pt.json
+++ b/src/i18n/messages/pt.json
@@ -7116,6 +7116,7 @@
"fallbackRetryBackendTitle": "Back-end de nova tentativa de recurso"
},
"settings": {
+ "proxyManagedCoresTab": "Núcleos geridos",
"title": "Configurações",
"general": "Geral",
"security": "Segurança",
@@ -11662,7 +11663,26 @@
"entries": "Entradas",
"viewSwitcherAria": "Vista da cache"
},
+ "managedProxy": {
+ "title": "Núcleos de proxy geridos",
+ "description": "Cole uma ligação de túnel no campo do anfitrião do proxy personalizado para o guardar e atribuir. Aqui também pode guardar uma definição de ligação de saída no formato JSON nativo sem alterar qualquer atribuição.",
+ "saveHint": "Ao guardar, o núcleo oficial é verificado, se necessário, e a configuração nativa é validada antes da ativação. As fontes exigem encriptação. Não há instalação durante a pré-visualização, arranque automático nem alterações ao proxy transparente.",
+ "saveActivate": "Guardar e ativar",
+ "core": "Núcleo",
+ "selectCore": "Selecione um núcleo",
+ "name": "Nome",
+ "source": "Ligação de origem ou ligação de saída no formato JSON nativo",
+ "start": "Iniciar",
+ "stop": "Parar",
+ "loadError": "Não foi possível carregar os núcleos geridos",
+ "operationError": "Falha na operação do núcleo gerido",
+ "state": "{state, select, not_installed {Não instalado} stopped {Parado} starting {A iniciar} running {Em execução} stopping {A parar} error {Erro} other {Desconhecido}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Núcleo do proxy",
+ "managedSelectCore": "Selecione um núcleo",
+ "managedSaveHint": "Ao guardar, o núcleo oficial é descarregado e verificado, se necessário, a configuração é validada e o proxy é ativado. Escrever não instala nada.",
+ "errorSelectManagedCore": "Selecione sing-box ou Xray antes de guardar este túnel",
"levelGlobal": "Globais",
"levelProvider": "Provedor",
"levelCombo": "Combinação",
diff --git a/src/i18n/messages/ro.json b/src/i18n/messages/ro.json
index d0fe716c1780..7651d9f04844 100644
--- a/src/i18n/messages/ro.json
+++ b/src/i18n/messages/ro.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Backend de reîncercare pentru fallback"
},
"settings": {
+ "proxyManagedCoresTab": "Nuclee gestionate",
"title": "Setări",
"general": "general",
"security": "Securitate",
@@ -11585,7 +11586,26 @@
"entries": "Intrări",
"viewSwitcherAria": "Vizualizare cache"
},
+ "managedProxy": {
+ "title": "Nuclee proxy gestionate",
+ "description": "Lipiți un link de tunel în câmpul gazdei pentru proxy-ul personalizat pentru a-l salva și atribui. Aici puteți salva și o definiție a conexiunii de ieșire în format JSON nativ fără a modifica nicio atribuire.",
+ "saveHint": "La salvare se verifică nucleul oficial, dacă este necesar, și se controlează configurația nativă înainte de activare. Sursele necesită criptare. Nu se efectuează instalări în timpul previzualizării, porniri automate sau modificări ale proxy-ului transparent.",
+ "saveActivate": "Salvați și activați",
+ "core": "Nucleu",
+ "selectCore": "Selectați un nucleu",
+ "name": "Nume",
+ "source": "Link sursă sau conexiune de ieșire în format JSON nativ",
+ "start": "Porniți",
+ "stop": "Opriți",
+ "loadError": "Nu s-au putut încărca nucleele gestionate",
+ "operationError": "Operația asupra nucleului gestionat a eșuat",
+ "state": "{state, select, not_installed {Neinstalat} stopped {Oprit} starting {În curs de pornire} running {În execuție} stopping {În curs de oprire} error {Eroare} other {Necunoscut}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Nucleu proxy",
+ "managedSelectCore": "Selectați un nucleu",
+ "managedSaveHint": "La salvare se descarcă și se verifică nucleul oficial, dacă este necesar, se controlează configurația, apoi se activează acest proxy. Tastarea nu instalează nimic.",
+ "errorSelectManagedCore": "Selectați sing-box sau Xray înainte de a salva acest tunel",
"levelGlobal": "Global",
"levelProvider": "Furnizor",
"levelCombo": "Combinație",
diff --git a/src/i18n/messages/ru.json b/src/i18n/messages/ru.json
index 7acf6b71e18e..a073cb4a3491 100644
--- a/src/i18n/messages/ru.json
+++ b/src/i18n/messages/ru.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Запасной сервер повторов"
},
"settings": {
+ "proxyManagedCoresTab": "Управляемые ядра",
"title": "Настройки",
"general": "Общий",
"security": "Безопасность",
@@ -11585,7 +11586,26 @@
"entries": "Записи",
"viewSwitcherAria": "Просмотр кеша"
},
+ "managedProxy": {
+ "title": "Управляемые ядра прокси",
+ "description": "Вставьте ссылку на туннель в поле хоста пользовательского прокси, чтобы сохранить и назначить его. Здесь также можно сохранить нативное JSON-определение исходящего подключения, не меняя назначений.",
+ "saveHint": "При сохранении официальное ядро при необходимости проходит проверку, а нативная конфигурация проверяется до активации. Источники требуют шифрования. Установка при предварительном просмотре, автозапуск и изменения прозрачного прокси не выполняются.",
+ "saveActivate": "Сохранить и активировать",
+ "core": "Ядро",
+ "selectCore": "Выберите ядро",
+ "name": "Имя",
+ "source": "Ссылка на источник или нативный JSON исходящего подключения",
+ "start": "Запустить",
+ "stop": "Остановить",
+ "loadError": "Не удалось загрузить управляемые ядра",
+ "operationError": "Ошибка операции с управляемым ядром",
+ "state": "{state, select, not_installed {Не установлено} stopped {Остановлено} starting {Запускается} running {Работает} stopping {Останавливается} error {Ошибка} other {Неизвестно}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Ядро прокси",
+ "managedSelectCore": "Выберите ядро",
+ "managedSaveHint": "При сохранении официальное ядро при необходимости скачивается и проверяется, затем проверяется конфигурация и активируется этот прокси. Ввод текста ничего не устанавливает.",
+ "errorSelectManagedCore": "Выберите sing-box или Xray перед сохранением этого туннеля",
"levelGlobal": "Глобальный",
"levelProvider": "Поставщик",
"levelCombo": "Комбо",
diff --git a/src/i18n/messages/si.json b/src/i18n/messages/si.json
index 3a54a21b7e83..f528c401cb84 100644
--- a/src/i18n/messages/si.json
+++ b/src/i18n/messages/si.json
@@ -1,4 +1,19 @@
{
+ "managedProxy": {
+ "title": "කළමනාකරණය කරන ප්රොක්සි හරයන්",
+ "description": "උමං සබැඳිය සුරැකීමට සහ පැවරීමට, එය අභිරුචි ප්රොක්සියේ ධාරක ක්ෂේත්රයට අලවන්න. මෙහිදී කිසිදු පැවරීමක් වෙනස් නොකර ස්වදේශීය ආකෘතියේ පිටතට යන සම්බන්ධතා සඳහා JSON අර්ථ දැක්වීමක් ද සුරැකිය හැක.",
+ "saveHint": "සුරැකීමේදී අවශ්ය නම් නිල හරය සත්යාපනය කර, සක්රිය කිරීමට පෙර ස්වදේශීය වින්යාසය පරීක්ෂා කරයි. මූලාශ්ර සඳහා සංකේතනය අවශ්ය වේ. පෙරදසුන අතරතුර ස්ථාපනය කිරීම, ස්වයංක්රීයව ආරම්භ කිරීම හෝ විනිවිද පෙනෙන ප්රොක්සි වෙනස්කම් සිදු නොකෙරේ.",
+ "saveActivate": "සුරකින්න සහ සක්රිය කරන්න",
+ "core": "හරය",
+ "selectCore": "හරයක් තෝරන්න",
+ "name": "නම",
+ "source": "මූලාශ්ර සබැඳිය හෝ ස්වදේශීය ආකෘතියේ පිටතට යන සම්බන්ධතා සඳහා JSON",
+ "start": "ආරම්භ කරන්න",
+ "stop": "නවත්වන්න",
+ "loadError": "කළමනාකරණය කරන හරයන් පූරණය කළ නොහැකි විය",
+ "operationError": "කළමනාකරණය කරන හරයේ මෙහෙයුම අසාර්ථක විය",
+ "state": "{state, select, not_installed {ස්ථාපනය කර නැත} stopped {නවත්වා ඇත} starting {ආරම්භ වෙමින් පවතී} running {ක්රියාත්මක වේ} stopping {නවත්වමින් පවතී} error {දෝෂයකි} other {නොදනී}}"
+ },
"codexKeyServiceMode": {
"title": "මෙම API යතුර සඳහා Codex සේවා ප්රකාරය",
"description": "සංයෝජන තුළ ඇති Codex මාදිලි ඇතුළුව, Codex ඉල්ලීම් සඳහා අදාළ වේ. බලහත්කාරයෙන් යෙදූ ප්රකාර සේවාදායකයාගේ, ගෝලීය සැකසුම්වල සහ සම්බන්ධතා පෙරනිමිවල තේරීම් අභිබවා යයි. අනෙකුත් සැපයුම්කරුවන් නොවෙනස්ව පවතී.",
@@ -7039,6 +7054,7 @@
"fallbackRetryBackendTitle": "පසුබැසීම පෙරහන් මුල් පද්ධතිය"
},
"settings": {
+ "proxyManagedCoresTab": "කළමනාකරණය කරන හරයන්",
"title": "සැකසුම්",
"general": "සාමාන්ය",
"security": "ආරක්ෂාව",
@@ -11586,6 +11602,10 @@
"viewSwitcherAria": "හැඹිලි දසුන"
},
"proxyConfigModal": {
+ "managedCore": "ප්රොක්සි හරය",
+ "managedSelectCore": "හරයක් තෝරන්න",
+ "managedSaveHint": "සුරැකීමේදී අවශ්ය නම් නිල හරය බාගත කර සත්යාපනය කරයි, වින්යාසය පරීක්ෂා කරයි, ඉන්පසු මෙම ප්රොක්සිය සක්රිය කරයි. ටයිප් කිරීමෙන් කිසිවක් ස්ථාපනය නොවේ.",
+ "errorSelectManagedCore": "මෙම උමඟ සුරැකීමට පෙර sing-box හෝ Xray තෝරන්න",
"levelGlobal": "ගෝලීය",
"levelProvider": "සපයන්නා",
"levelCombo": "සංයෝජනය",
diff --git a/src/i18n/messages/sk.json b/src/i18n/messages/sk.json
index 22272397fafb..07b894fddfee 100644
--- a/src/i18n/messages/sk.json
+++ b/src/i18n/messages/sk.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Zálohové rozhranie pre opätovné pokusy"
},
"settings": {
+ "proxyManagedCoresTab": "Spravované jadrá",
"title": "Nastavenia",
"general": "generál",
"security": "Bezpečnosť",
@@ -11585,7 +11586,26 @@
"entries": "Záznamy",
"viewSwitcherAria": "Zobrazenie vyrovnávacej pamäte"
},
+ "managedProxy": {
+ "title": "Spravované jadrá proxy",
+ "description": "Ak chcete tunel uložiť a priradiť, vložte jeho odkaz do poľa hostiteľa vlastného proxy. Tu môžete uložiť aj natívnu definíciu odchádzajúceho pripojenia vo formáte JSON bez zmeny priradení.",
+ "saveHint": "Pri uložení sa podľa potreby overí oficiálne jadro a pred aktiváciou sa skontroluje natívna konfigurácia. Zdroje vyžadujú šifrovanie. Náhľad nič neinštaluje, nespúšťa automaticky ani nemení transparentné proxy.",
+ "saveActivate": "Uložiť a aktivovať",
+ "core": "Jadro",
+ "selectCore": "Vyberte jadro",
+ "name": "Názov",
+ "source": "Odkaz na zdroj alebo natívny JSON odchádzajúceho pripojenia",
+ "start": "Spustiť",
+ "stop": "Zastaviť",
+ "loadError": "Spravované jadrá sa nepodarilo načítať",
+ "operationError": "Operácia spravovaného jadra zlyhala",
+ "state": "{state, select, not_installed {Nenainštalované} stopped {Zastavené} starting {Spúšťa sa} running {Beží} stopping {Zastavuje sa} error {Chyba} other {Neznáme}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Jadro proxy",
+ "managedSelectCore": "Vyberte jadro",
+ "managedSaveHint": "Pri uložení sa podľa potreby stiahne a overí oficiálne jadro, skontroluje sa konfigurácia a potom sa toto proxy aktivuje. Samotné písanie nič neinštaluje.",
+ "errorSelectManagedCore": "Pred uložením tohto tunela vyberte sing-box alebo Xray",
"levelGlobal": "globálne",
"levelProvider": "Poskytovateľ",
"levelCombo": "Kombinácia",
diff --git a/src/i18n/messages/sl.json b/src/i18n/messages/sl.json
index 2df91364d3f4..7e524897cfe4 100644
--- a/src/i18n/messages/sl.json
+++ b/src/i18n/messages/sl.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Backend za ponovna poskuse ob neuspehu"
},
"settings": {
+ "proxyManagedCoresTab": "Upravljana jedra",
"title": "Nastavitve",
"general": "Splošno",
"security": "Varnost",
@@ -11585,7 +11586,26 @@
"entries": "Vnosi",
"viewSwitcherAria": "Prikaz predpomnilnika"
},
+ "managedProxy": {
+ "title": "Upravljana jedra posredniškega strežnika",
+ "description": "Za shranjevanje in dodelitev prilepite povezavo predora v polje gostitelja posredniškega strežnika po meri. Tukaj lahko shranite tudi izvorno definicijo odhodne povezave JSON, ne da bi spremenili katero koli dodelitev.",
+ "saveHint": "Pri shranjevanju se po potrebi preveri uradno jedro in pred aktiviranjem izvorna konfiguracija. Viri zahtevajo šifriranje. Predogled ne namešča, ne omogoča samodejnega zagona in ne spreminja prosojnega posredniškega strežnika.",
+ "saveActivate": "Shrani in aktiviraj",
+ "core": "Jedro",
+ "selectCore": "Izberite jedro",
+ "name": "Ime",
+ "source": "Povezava vira ali izvorni JSON odhodne povezave",
+ "start": "Zaženi",
+ "stop": "Ustavi",
+ "loadError": "Upravljanih jeder ni bilo mogoče naložiti",
+ "operationError": "Operacija upravljanega jedra ni uspela",
+ "state": "{state, select, not_installed {Ni nameščeno} stopped {Ustavljeno} starting {Se zaganja} running {Deluje} stopping {Se ustavlja} error {Napaka} other {Neznano}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Jedro posredniškega strežnika",
+ "managedSelectCore": "Izberite jedro",
+ "managedSaveHint": "Shranjevanje po potrebi prenese in preveri uradno jedro, preveri konfiguracijo in nato aktivira ta posredniški strežnik. Tipkanje ne namesti ničesar.",
+ "errorSelectManagedCore": "Pred shranjevanjem tega predora izberite sing-box ali Xray",
"levelGlobal": "Globalno",
"levelProvider": "Ponudnik",
"levelCombo": "Kombinacija",
diff --git a/src/i18n/messages/sr.json b/src/i18n/messages/sr.json
index adae14fbdfd7..f4b8a27b17df 100644
--- a/src/i18n/messages/sr.json
+++ b/src/i18n/messages/sr.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Задња резорна линија за поновни покушај"
},
"settings": {
+ "proxyManagedCoresTab": "Управљана језгра",
"title": "Подешавања",
"general": "Опште",
"security": "Безбедност",
@@ -11585,7 +11586,26 @@
"entries": "Уноси",
"viewSwitcherAria": "Приказ кеша"
},
+ "managedProxy": {
+ "title": "Управљана језгра проксија",
+ "description": "Налепите везу тунела у поље хоста прилагођеног проксија да бисте га сачували и доделили. Овде можете сачувати и изворну JSON дефиницију одлазне везе без промене додела.",
+ "saveHint": "При чувању се по потреби проверава званично језгро и пре активирања изворна конфигурација. Извори захтевају шифровање. Нема инсталације током прегледа, аутоматског покретања нити промена транспарентног проксија.",
+ "saveActivate": "Сачувај и активирај",
+ "core": "Језгро",
+ "selectCore": "Изаберите језгро",
+ "name": "Назив",
+ "source": "Веза извора или изворни JSON одлазне везе",
+ "start": "Покрени",
+ "stop": "Заустави",
+ "loadError": "Није могуће учитати управљана језгра",
+ "operationError": "Операција управљаног језгра није успела",
+ "state": "{state, select, not_installed {Није инсталирано} stopped {Заустављено} starting {Покреће се} running {Ради} stopping {Зауставља се} error {Грешка} other {Непознато}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Језгро проксија",
+ "managedSelectCore": "Изаберите језгро",
+ "managedSaveHint": "При чувању се по потреби преузима и проверава званично језгро, проверава конфигурација, а затим се овај прокси активира. Сам унос текста ништа не инсталира.",
+ "errorSelectManagedCore": "Изаберите sing-box или Xray пре чувања овог тунела",
"levelGlobal": "Глобално",
"levelProvider": "Провајдер",
"levelCombo": "Комбинација",
diff --git a/src/i18n/messages/sv.json b/src/i18n/messages/sv.json
index 3b4dfe724f72..d0aad4ae2817 100644
--- a/src/i18n/messages/sv.json
+++ b/src/i18n/messages/sv.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Reserverad återförsöksbackend"
},
"settings": {
+ "proxyManagedCoresTab": "Hanterade kärnor",
"title": "Inställningar",
"general": "Allmänt",
"security": "Säkerhet",
@@ -11585,7 +11586,26 @@
"entries": "Poster",
"viewSwitcherAria": "Cachevy"
},
+ "managedProxy": {
+ "title": "Hanterade proxykärnor",
+ "description": "Klistra in en tunnellänk i värdfältet för anpassad proxy för att spara och tilldela den. Här kan du också spara en inbyggd JSON-definition för utgående anslutning utan att ändra några tilldelningar.",
+ "saveHint": "När du sparar verifieras den officiella kärnan vid behov och den inbyggda konfigurationen kontrolleras före aktivering. Källor kräver kryptering. Ingen installation vid förhandsgranskning, autostart eller ändring av transparent proxy sker.",
+ "saveActivate": "Spara och aktivera",
+ "core": "Kärna",
+ "selectCore": "Välj en kärna",
+ "name": "Namn",
+ "source": "Källänk eller inbyggd JSON för utgående anslutning",
+ "start": "Starta",
+ "stop": "Stoppa",
+ "loadError": "Kunde inte läsa in hanterade kärnor",
+ "operationError": "Åtgärden för den hanterade kärnan misslyckades",
+ "state": "{state, select, not_installed {Inte installerad} stopped {Stoppad} starting {Startar} running {Körs} stopping {Stoppar} error {Fel} other {Okänd}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Proxykärna",
+ "managedSelectCore": "Välj en kärna",
+ "managedSaveHint": "När du sparar laddas den officiella kärnan ned och verifieras vid behov, konfigurationen kontrolleras och sedan aktiveras denna proxy. Att skriva installerar ingenting.",
+ "errorSelectManagedCore": "Välj sing-box eller Xray innan du sparar denna tunnel",
"levelGlobal": "Global",
"levelProvider": "Leverantör",
"levelCombo": "Kombination",
diff --git a/src/i18n/messages/sw.json b/src/i18n/messages/sw.json
index 5ee722521d81..a9db3fd3524d 100644
--- a/src/i18n/messages/sw.json
+++ b/src/i18n/messages/sw.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Backend ya jaribio la upandaji"
},
"settings": {
+ "proxyManagedCoresTab": "Viini vinavyosimamiwa",
"title": "Mipangilio",
"general": "Jumla",
"security": "Usalama",
@@ -11585,7 +11586,26 @@
"entries": "Maingizo",
"viewSwitcherAria": "Mwonekano wa kache"
},
+ "managedProxy": {
+ "title": "Viini vya proksi vinavyosimamiwa",
+ "description": "Bandika kiungo cha handaki katika sehemu ya seva ya proksi maalumu ili kukihifadhi na kukikabidhi. Hapa unaweza pia kuhifadhi ufafanuzi wa asili wa JSON wa muunganisho unaotoka bila kubadilisha ukabidhi wowote.",
+ "saveHint": "Wakati wa kuhifadhi, kiini rasmi kinathibitishwa ikihitajika na usanidi wa asili hukaguliwa kabla ya kuwezeshwa. Vyanzo vinahitaji usimbaji fiche. Hakuna usakinishaji wakati wa hakiki, kuanza kiotomatiki au mabadiliko ya proksi inayopitisha trafiki bila kuonekana.",
+ "saveActivate": "Hifadhi na uwezeshe",
+ "core": "Kiini",
+ "selectCore": "Chagua kiini",
+ "name": "Jina",
+ "source": "Kiungo cha chanzo au JSON ya asili ya muunganisho unaotoka",
+ "start": "Anzisha",
+ "stop": "Simamisha",
+ "loadError": "Imeshindikana kupakia viini vinavyosimamiwa",
+ "operationError": "Operesheni ya kiini kinachosimamiwa imeshindwa",
+ "state": "{state, select, not_installed {Hakijasakinishwa} stopped {Kimesimamishwa} starting {Kinaanza} running {Kinafanya kazi} stopping {Kinasimama} error {Hitilafu} other {Haijulikani}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Kiini cha proksi",
+ "managedSelectCore": "Chagua kiini",
+ "managedSaveHint": "Kuhifadhi hupakua na kuthibitisha kiini rasmi ikihitajika, hukagua usanidi, kisha huwezesha proksi hii. Kuandika hakusakinishi chochote.",
+ "errorSelectManagedCore": "Chagua sing-box au Xray kabla ya kuhifadhi handaki hili",
"levelGlobal": "Ya Jumla",
"levelProvider": "Mtoa Huduma",
"levelCombo": "Mchanganyiko",
diff --git a/src/i18n/messages/ta.json b/src/i18n/messages/ta.json
index 0e0c91f7e1a9..78db4faa69ec 100644
--- a/src/i18n/messages/ta.json
+++ b/src/i18n/messages/ta.json
@@ -1,4 +1,19 @@
{
+ "managedProxy": {
+ "title": "நிர்வகிக்கப்படும் ப்ராக்ஸி மையங்கள்",
+ "description": "டனல் இணைப்பைச் சேமித்து ஒதுக்க, தனிப்பயன் ப்ராக்ஸியின் ஹோஸ்ட் புலத்தில் அதை ஒட்டவும். இங்கே எந்த ஒதுக்கீட்டையும் மாற்றாமல் நேட்டிவ் வடிவிலான வெளிச்செல்லும் இணைப்பின் JSON வரையறையையும் சேமிக்கலாம்.",
+ "saveHint": "சேமிக்கும்போது தேவைப்பட்டால் அதிகாரப்பூர்வ மையம் சரிபார்க்கப்படும்; செயல்படுத்துவதற்கு முன் நேட்டிவ் உள்ளமைவு சோதிக்கப்படும். மூலங்களுக்குக் குறியாக்கம் தேவை. முன்னோட்டத்தின்போது நிறுவுதல், தானாகத் தொடங்குதல் அல்லது வெளிப்படையான ப்ராக்ஸி மாற்றங்கள் எதுவும் செய்யப்படாது.",
+ "saveActivate": "சேமித்துச் செயல்படுத்தவும்",
+ "core": "மையம்",
+ "selectCore": "மையத்தைத் தேர்ந்தெடுக்கவும்",
+ "name": "பெயர்",
+ "source": "மூல இணைப்பு அல்லது நேட்டிவ் வடிவிலான வெளிச்செல்லும் இணைப்பின் JSON",
+ "start": "தொடங்கவும்",
+ "stop": "நிறுத்தவும்",
+ "loadError": "நிர்வகிக்கப்படும் மையங்களை ஏற்ற முடியவில்லை",
+ "operationError": "நிர்வகிக்கப்படும் மையத்தின் செயல்பாடு தோல்வியடைந்தது",
+ "state": "{state, select, not_installed {நிறுவப்படவில்லை} stopped {நிறுத்தப்பட்டது} starting {தொடங்குகிறது} running {இயங்குகிறது} stopping {நிறுத்தப்படுகிறது} error {பிழை} other {தெரியவில்லை}}"
+ },
"codexKeyServiceMode": {
"title": "இந்த API விசைக்கான Codex சேவை முறை",
"description": "காம்போக்களில் உள்ள Codex மாதிரிகள் உட்பட, Codex கோரிக்கைகளுக்கு இது பொருந்தும். கட்டாய முறைகள் கிளையண்ட், உலகளாவிய அமைப்புகள் மற்றும் இணைப்பு இயல்புநிலைகளை மீறும். பிற வழங்குநர்கள் மாற்றமின்றி இருப்பார்கள்.",
@@ -7039,6 +7054,7 @@
"fallbackRetryBackendTitle": "கழித்தல் மீண்டும் முயற்சி பின்னணி"
},
"settings": {
+ "proxyManagedCoresTab": "நிர்வகிக்கப்படும் மையங்கள்",
"title": "அமைப்புகள்",
"general": "பொது",
"security": "பாதுகாப்பு",
@@ -11586,6 +11602,10 @@
"viewSwitcherAria": "தற்காலிகச் சேமிப்பகக் காட்சி"
},
"proxyConfigModal": {
+ "managedCore": "ப்ராக்ஸி மையம்",
+ "managedSelectCore": "மையத்தைத் தேர்ந்தெடுக்கவும்",
+ "managedSaveHint": "சேமிக்கும்போது தேவைப்பட்டால் அதிகாரப்பூர்வ மையம் பதிவிறக்கப்பட்டுச் சரிபார்க்கப்படும், உள்ளமைவு சோதிக்கப்படும், பின்னர் இந்த ப்ராக்ஸி செயல்படுத்தப்படும். தட்டச்சு செய்வதால் மட்டும் எதுவும் நிறுவப்படாது.",
+ "errorSelectManagedCore": "இந்த டனலைச் சேமிப்பதற்கு முன் sing-box அல்லது Xray என்பதைத் தேர்ந்தெடுக்கவும்",
"levelGlobal": "உலகளாவிய",
"levelProvider": "வழங்குநர்",
"levelCombo": "கூட்டு",
diff --git a/src/i18n/messages/te.json b/src/i18n/messages/te.json
index b82f145cf547..57e2f89b4be5 100644
--- a/src/i18n/messages/te.json
+++ b/src/i18n/messages/te.json
@@ -1,4 +1,19 @@
{
+ "managedProxy": {
+ "title": "నిర్వహించబడే ప్రాక్సీ కోర్లు",
+ "description": "టన్నెల్ లింక్ను సేవ్ చేసి కేటాయించడానికి, దాన్ని కస్టమ్ ప్రాక్సీ హోస్ట్ ఫీల్డ్లో పేస్ట్ చేయండి. ఇక్కడ మీరు ఏ కేటాయింపునూ మార్చకుండా స్థానిక ఆకృతిలోని అవుట్బౌండ్ JSON నిర్వచనాన్ని కూడా సేవ్ చేయవచ్చు.",
+ "saveHint": "సేవ్ చేసేటప్పుడు అవసరమైతే అధికారిక కోర్ ధృవీకరించబడుతుంది, సక్రియం చేయడానికి ముందు స్థానిక ఆకృతిలోని కాన్ఫిగరేషన్ తనిఖీ చేయబడుతుంది. మూలాలకు ఎన్క్రిప్షన్ అవసరం. ప్రివ్యూ సమయంలో ఇన్స్టాలేషన్, స్వయంచాలక ప్రారంభం లేదా పారదర్శక ప్రాక్సీ మార్పులు జరగవు.",
+ "saveActivate": "సేవ్ చేసి సక్రియం చేయండి",
+ "core": "కోర్",
+ "selectCore": "కోర్ను ఎంచుకోండి",
+ "name": "పేరు",
+ "source": "మూల లింక్ లేదా స్థానిక ఆకృతిలోని అవుట్బౌండ్ JSON",
+ "start": "ప్రారంభించండి",
+ "stop": "ఆపండి",
+ "loadError": "నిర్వహించబడే కోర్లను లోడ్ చేయలేకపోయాము",
+ "operationError": "నిర్వహించబడే కోర్ ఆపరేషన్ విఫలమైంది",
+ "state": "{state, select, not_installed {ఇన్స్టాల్ చేయబడలేదు} stopped {ఆపబడింది} starting {ప్రారంభమవుతోంది} running {నడుస్తోంది} stopping {ఆగుతోంది} error {లోపం} other {తెలియదు}}"
+ },
"codexKeyServiceMode": {
"title": "ఈ API కీ కోసం Codex సర్వీస్ మోడ్",
"description": "కాంబోలలోని Codex మోడళ్లతో సహా Codex అభ్యర్థనలకు వర్తిస్తుంది. బలవంతంగా అమలు చేసే మోడ్లు క్లయింట్, గ్లోబల్ సెట్టింగ్లు మరియు కనెక్షన్ డిఫాల్ట్లను అధిగమిస్తాయి. ఇతర ప్రొవైడర్లలో మార్పు ఉండదు.",
@@ -7039,6 +7054,7 @@
"fallbackRetryBackendTitle": "ఫాల్బ్యాక్ రీట్రై బ్యాక్ఎండ్"
},
"settings": {
+ "proxyManagedCoresTab": "నిర్వహించబడే కోర్లు",
"title": "సెట్టింగ్లు",
"general": "సాధారణం",
"security": "భద్రత",
@@ -11586,6 +11602,10 @@
"viewSwitcherAria": "క్యాష్ వీక్షణ"
},
"proxyConfigModal": {
+ "managedCore": "ప్రాక్సీ కోర్",
+ "managedSelectCore": "కోర్ను ఎంచుకోండి",
+ "managedSaveHint": "సేవ్ చేసేటప్పుడు అవసరమైతే అధికారిక కోర్ డౌన్లోడ్ చేయబడి ధృవీకరించబడుతుంది, కాన్ఫిగరేషన్ తనిఖీ చేయబడుతుంది, ఆ తర్వాత ఈ ప్రాక్సీ సక్రియం చేయబడుతుంది. టైప్ చేయడం వల్ల ఏదీ ఇన్స్టాల్ కాదు.",
+ "errorSelectManagedCore": "ఈ టన్నెల్ను సేవ్ చేయడానికి ముందు sing-box లేదా Xray ఎంచుకోండి",
"levelGlobal": "గ్లోబల్",
"levelProvider": "ప్రొవైడర్",
"levelCombo": "కాంబో",
diff --git a/src/i18n/messages/th.json b/src/i18n/messages/th.json
index bb1d99f4b48f..7011315c5701 100644
--- a/src/i18n/messages/th.json
+++ b/src/i18n/messages/th.json
@@ -1,4 +1,19 @@
{
+ "managedProxy": {
+ "title": "คอร์พร็อกซีที่จัดการ",
+ "description": "วางลิงก์อุโมงค์ในช่องโฮสต์ของพร็อกซีแบบกำหนดเองเพื่อบันทึกและกำหนดให้ใช้งาน คุณยังสามารถบันทึกนิยามการเชื่อมต่อขาออกในรูปแบบ JSON ดั้งเดิมได้ที่นี่โดยไม่เปลี่ยนการกำหนดใช้งานใด ๆ",
+ "saveHint": "เมื่อบันทึก ระบบจะตรวจสอบความถูกต้องของคอร์อย่างเป็นทางการหากจำเป็น และตรวจสอบการกำหนดค่ารูปแบบดั้งเดิมก่อนเปิดใช้งาน แหล่งที่มาต้องมีการเข้ารหัส ไม่มีการติดตั้งขณะดูตัวอย่าง การเริ่มต้นอัตโนมัติ หรือการเปลี่ยนแปลงพร็อกซีแบบโปร่งใส",
+ "saveActivate": "บันทึกและเปิดใช้งาน",
+ "core": "คอร์",
+ "selectCore": "เลือกคอร์",
+ "name": "ชื่อ",
+ "source": "ลิงก์แหล่งที่มาหรือ JSON ขาออกในรูปแบบดั้งเดิม",
+ "start": "เริ่ม",
+ "stop": "หยุด",
+ "loadError": "ไม่สามารถโหลดคอร์ที่จัดการได้",
+ "operationError": "การดำเนินการกับคอร์ที่จัดการล้มเหลว",
+ "state": "{state, select, not_installed {ยังไม่ได้ติดตั้ง} stopped {หยุดแล้ว} starting {กำลังเริ่ม} running {กำลังทำงาน} stopping {กำลังหยุด} error {ข้อผิดพลาด} other {ไม่ทราบ}}"
+ },
"codexKeyServiceMode": {
"title": "โหมดบริการ Codex สำหรับคีย์ API นี้",
"description": "มีผลกับคำขอ Codex รวมถึงโมเดล Codex ภายในคอมโบ โหมดที่บังคับใช้จะเขียนทับการตั้งค่าของไคลเอ็นต์ การตั้งค่าส่วนกลาง และค่าเริ่มต้นของการเชื่อมต่อ ส่วนผู้ให้บริการรายอื่นจะไม่มีการเปลี่ยนแปลง",
@@ -7039,6 +7054,7 @@
"fallbackRetryBackendTitle": "ระบบสำรองสำหรับทดลองใหม่"
},
"settings": {
+ "proxyManagedCoresTab": "คอร์ที่จัดการ",
"title": "การตั้งค่า",
"general": "ทั่วไป",
"security": "ความปลอดภัย",
@@ -11586,6 +11602,10 @@
"viewSwitcherAria": "มุมมองแคช"
},
"proxyConfigModal": {
+ "managedCore": "คอร์พร็อกซี",
+ "managedSelectCore": "เลือกคอร์",
+ "managedSaveHint": "เมื่อบันทึก ระบบจะดาวน์โหลดและตรวจสอบความถูกต้องของคอร์อย่างเป็นทางการหากจำเป็น ตรวจสอบการกำหนดค่า แล้วจึงเปิดใช้งานพร็อกซีนี้ การพิมพ์เพียงอย่างเดียวจะไม่ติดตั้งสิ่งใด",
+ "errorSelectManagedCore": "เลือก sing-box หรือ Xray ก่อนบันทึกอุโมงค์นี้",
"levelGlobal": "ทั่วโลก",
"levelProvider": "ผู้ให้บริการ",
"levelCombo": "คอมโบ",
diff --git a/src/i18n/messages/tr.json b/src/i18n/messages/tr.json
index b79a19b64a91..067442b07964 100644
--- a/src/i18n/messages/tr.json
+++ b/src/i18n/messages/tr.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Yedekleme yeniden deneme arka ucu"
},
"settings": {
+ "proxyManagedCoresTab": "Yönetilen çekirdekler",
"title": "Ayarlar",
"general": "Genel",
"security": "Güvenlik",
@@ -11585,7 +11586,26 @@
"entries": "Kayıtlar",
"viewSwitcherAria": "Önbellek görünümü"
},
+ "managedProxy": {
+ "title": "Yönetilen proxy çekirdekleri",
+ "description": "Kaydetmek ve atamak için tünel bağlantısını özel proxy ana bilgisayar alanına yapıştırın. Burada herhangi bir atamayı değiştirmeden yerel dışa bağlantı JSON tanımını da kaydedebilirsiniz.",
+ "saveHint": "Kaydetme işlemi gerektiğinde resmi çekirdeği doğrular ve etkinleştirmeden önce yerel yapılandırmayı denetler. Kaynaklar şifreleme gerektirir. Önizleme sırasında kurulum, otomatik başlatma veya şeffaf proxy değişikliği yapılmaz.",
+ "saveActivate": "Kaydet ve etkinleştir",
+ "core": "Çekirdek",
+ "selectCore": "Bir çekirdek seçin",
+ "name": "Ad",
+ "source": "Kaynak bağlantısı veya yerel dışa bağlantı JSON tanımı",
+ "start": "Başlat",
+ "stop": "Durdur",
+ "loadError": "Yönetilen çekirdekler yüklenemedi",
+ "operationError": "Yönetilen çekirdek işlemi başarısız oldu",
+ "state": "{state, select, not_installed {Kurulu değil} stopped {Durduruldu} starting {Başlatılıyor} running {Çalışıyor} stopping {Durduruluyor} error {Hata} other {Bilinmiyor}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Proxy çekirdeği",
+ "managedSelectCore": "Bir çekirdek seçin",
+ "managedSaveHint": "Kaydetme işlemi gerektiğinde resmi çekirdeği indirip doğrular, yapılandırmayı denetler ve ardından bu proxyyi etkinleştirir. Yazmak hiçbir şey kurmaz.",
+ "errorSelectManagedCore": "Bu tüneli kaydetmeden önce sing-box veya Xray seçin",
"levelGlobal": "Küresel",
"levelProvider": "sağlayıcı",
"levelCombo": "Kombinasyon",
diff --git a/src/i18n/messages/uk-UA.json b/src/i18n/messages/uk-UA.json
index e30e9c6ee733..c613deabcfdc 100644
--- a/src/i18n/messages/uk-UA.json
+++ b/src/i18n/messages/uk-UA.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Резервний бекенд повторної спроби"
},
"settings": {
+ "proxyManagedCoresTab": "Керовані ядра",
"title": "Налаштування",
"general": "Загальний",
"security": "Безпека",
@@ -11585,7 +11586,26 @@
"entries": "Записи",
"viewSwitcherAria": "Подання кешу"
},
+ "managedProxy": {
+ "title": "Керовані ядра проксі",
+ "description": "Вставте посилання на тунель у поле хоста власного проксі, щоб зберегти й призначити його. Тут також можна зберегти нативне JSON-визначення вихідного з’єднання, не змінюючи призначень.",
+ "saveHint": "Під час збереження офіційне ядро за потреби проходить перевірку, а нативна конфігурація перевіряється до активації. Джерела потребують шифрування. Встановлення під час попереднього перегляду, автозапуск і зміни прозорого проксі не виконуються.",
+ "saveActivate": "Зберегти й активувати",
+ "core": "Ядро",
+ "selectCore": "Виберіть ядро",
+ "name": "Назва",
+ "source": "Посилання на джерело або нативний JSON вихідного з’єднання",
+ "start": "Запустити",
+ "stop": "Зупинити",
+ "loadError": "Не вдалося завантажити керовані ядра",
+ "operationError": "Помилка операції з керованим ядром",
+ "state": "{state, select, not_installed {Не встановлено} stopped {Зупинено} starting {Запускається} running {Працює} stopping {Зупиняється} error {Помилка} other {Невідомо}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Ядро проксі",
+ "managedSelectCore": "Виберіть ядро",
+ "managedSaveHint": "Під час збереження офіційне ядро за потреби завантажується та перевіряється, потім перевіряється конфігурація й активується цей проксі. Введення тексту нічого не встановлює.",
+ "errorSelectManagedCore": "Виберіть sing-box або Xray перед збереженням цього тунелю",
"levelGlobal": "Глобальний",
"levelProvider": "Провайдер",
"levelCombo": "комбо",
diff --git a/src/i18n/messages/ur.json b/src/i18n/messages/ur.json
index 5853350f9252..ed6a7e63484c 100644
--- a/src/i18n/messages/ur.json
+++ b/src/i18n/messages/ur.json
@@ -1,4 +1,19 @@
{
+ "managedProxy": {
+ "title": "زیرِ انتظام پراکسی کور",
+ "description": "ٹنل لنک محفوظ کرنے اور تفویض کرنے کے لیے اسے حسبِ ضرورت پراکسی کے ہوسٹ خانے میں پیسٹ کریں۔ یہاں آپ کسی تفویض کو بدلے بغیر مقامی فارمیٹ میں آؤٹ باؤنڈ JSON تعریف بھی محفوظ کر سکتے ہیں۔",
+ "saveHint": "محفوظ کرتے وقت ضرورت پڑنے پر سرکاری کور کی تصدیق کی جاتی ہے اور فعال کرنے سے پہلے مقامی فارمیٹ کی ترتیب جانچی جاتی ہے۔ ذرائع کے لیے خفیہ کاری ضروری ہے۔ پیش منظر کے دوران تنصیب، خودکار آغاز یا شفاف پراکسی میں تبدیلیاں نہیں کی جاتیں۔",
+ "saveActivate": "محفوظ کریں اور فعال کریں",
+ "core": "کور",
+ "selectCore": "کور منتخب کریں",
+ "name": "نام",
+ "source": "ماخذ کا لنک یا مقامی فارمیٹ میں آؤٹ باؤنڈ JSON",
+ "start": "شروع کریں",
+ "stop": "روکیں",
+ "loadError": "زیرِ انتظام کور لوڈ نہیں ہو سکے",
+ "operationError": "زیرِ انتظام کور کی کارروائی ناکام ہو گئی",
+ "state": "{state, select, not_installed {نصب نہیں ہے} stopped {رکا ہوا} starting {شروع ہو رہا ہے} running {چل رہا ہے} stopping {رک رہا ہے} error {خرابی} other {نامعلوم}}"
+ },
"codexKeyServiceMode": {
"title": "اس API کلید کے لیے Codex سروس موڈ",
"description": "یہ Codex کی درخواستوں پر لاگو ہوتا ہے، بشمول کومبوز کے اندر موجود Codex ماڈلز۔ جبری موڈز کلائنٹ، عالمی ترتیبات اور کنکشن کے ڈیفالٹس کو اوور رائیڈ کرتے ہیں۔ دیگر فراہم کنندگان میں کوئی تبدیلی نہیں ہوتی۔",
@@ -7039,6 +7054,7 @@
"fallbackRetryBackendTitle": "متبادل دوبارہ کوشش بیک اینڈ"
},
"settings": {
+ "proxyManagedCoresTab": "زیرِ انتظام کور",
"title": "ترتیبات",
"general": "عمومی",
"security": "سیکیورٹی",
@@ -11586,6 +11602,10 @@
"viewSwitcherAria": "کیش ویو"
},
"proxyConfigModal": {
+ "managedCore": "پراکسی کور",
+ "managedSelectCore": "کور منتخب کریں",
+ "managedSaveHint": "محفوظ کرتے وقت ضرورت پڑنے پر سرکاری کور ڈاؤن لوڈ کرکے اس کی تصدیق کی جاتی ہے، ترتیب جانچی جاتی ہے، پھر یہ پراکسی فعال کی جاتی ہے۔ ٹائپ کرنے سے کچھ بھی نصب نہیں ہوتا۔",
+ "errorSelectManagedCore": "یہ ٹنل محفوظ کرنے سے پہلے sing-box یا Xray منتخب کریں",
"levelGlobal": "عالمی",
"levelProvider": "فراہم کنندہ",
"levelCombo": "امتزاج",
diff --git a/src/i18n/messages/uz.json b/src/i18n/messages/uz.json
index d633798ab359..e243f71f08ce 100644
--- a/src/i18n/messages/uz.json
+++ b/src/i18n/messages/uz.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Zaxira takrorlash orqali backend"
},
"settings": {
+ "proxyManagedCoresTab": "Boshqariladigan yadrolar",
"title": "Sozlamalar",
"general": "Umumiy",
"security": "Xavfsizlik",
@@ -11585,7 +11586,26 @@
"entries": "Yozuvlar",
"viewSwitcherAria": "Kesh koʻrinishi"
},
+ "managedProxy": {
+ "title": "Boshqariladigan proksi yadrolari",
+ "description": "Saqlash va tayinlash uchun tunnel havolasini maxsus proksining xost maydoniga joylashtiring. Bu yerda hech bir tayinlashni o‘zgartirmasdan chiqish ulanishining mahalliy JSON ta’rifini ham saqlashingiz mumkin.",
+ "saveHint": "Saqlash vaqtida kerak bo‘lsa rasmiy yadro tasdiqlanadi va faollashtirishdan oldin mahalliy konfiguratsiya tekshiriladi. Manbalar shifrlashni talab qiladi. Oldindan ko‘rishda o‘rnatish, avtomatik ishga tushirish yoki shaffof proksiga o‘zgartirish kiritish amalga oshirilmaydi.",
+ "saveActivate": "Saqlash va faollashtirish",
+ "core": "Yadro",
+ "selectCore": "Yadroni tanlang",
+ "name": "Nomi",
+ "source": "Manba havolasi yoki chiqish ulanishining mahalliy JSON ta’rifi",
+ "start": "Ishga tushirish",
+ "stop": "To‘xtatish",
+ "loadError": "Boshqariladigan yadrolarni yuklab bo‘lmadi",
+ "operationError": "Boshqariladigan yadro amali bajarilmadi",
+ "state": "{state, select, not_installed {O‘rnatilmagan} stopped {To‘xtatilgan} starting {Ishga tushmoqda} running {Ishlamoqda} stopping {To‘xtatilmoqda} error {Xato} other {Noma’lum}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Proksi yadrosi",
+ "managedSelectCore": "Yadroni tanlang",
+ "managedSaveHint": "Saqlash kerak bo‘lsa rasmiy yadroni yuklab olib tasdiqlaydi, konfiguratsiyani tekshiradi, so‘ng ushbu proksini faollashtiradi. Matn kiritish hech narsani o‘rnatmaydi.",
+ "errorSelectManagedCore": "Ushbu tunnelni saqlashdan oldin sing-box yoki Xray tanlang",
"levelGlobal": "Umumiy",
"levelProvider": "Provayder",
"levelCombo": "Kombinatsiya",
diff --git a/src/i18n/messages/yo.json b/src/i18n/messages/yo.json
index b6ad7f11fb9c..4a5840f8137c 100644
--- a/src/i18n/messages/yo.json
+++ b/src/i18n/messages/yo.json
@@ -7039,6 +7039,7 @@
"fallbackRetryBackendTitle": "Oníṣẹ́ àsọtẹ́lẹ́ ìṣọ̀ṣe"
},
"settings": {
+ "proxyManagedCoresTab": "Àwọn kókó tí a ń ṣàkóso",
"title": "Àwọn Ààtò",
"general": "Gbogbogbòò",
"security": "Ààbò",
@@ -11585,7 +11586,26 @@
"entries": "Àwọn Àkọsílẹ̀",
"viewSwitcherAria": "Ìwò cache"
},
+ "managedProxy": {
+ "title": "Àwọn kókó proksi tí a ń ṣàkóso",
+ "description": "Lẹ ìjápọ̀ ọ̀nà abẹ́ sí pápá olùgbàlejò proksi àdáni láti fi pamọ́ kí o sì yàn án. Níhìn-ín, o tún lè fi ìtumọ̀ JSON ìbílẹ̀ fún ìsopọ̀ tó ń jáde pamọ́ láì yí ìyànkankan padà.",
+ "saveHint": "Fífi pamọ́ máa ń jẹ́rìí kókó tí a fọwọ́ sí tí a bá nílò rẹ̀, ó sì ń ṣàyẹ̀wò ìṣètò ìbílẹ̀ ṣáájú mímú ṣiṣẹ́. Àwọn orísun nílò ìfipamọ́ àṣírí. Kò sí fífi sí ẹ̀rọ ní àwòtẹ́lẹ̀, ìbẹ̀rẹ̀ aládàáṣiṣẹ́ tàbí àyípadà proksi tí ń gba ìsopọ̀ kọjá láìfarahàn.",
+ "saveActivate": "Fi pamọ́ kí o sì mú ṣiṣẹ́",
+ "core": "Kókó",
+ "selectCore": "Yan kókó kan",
+ "name": "Orúkọ",
+ "source": "Ìjápọ̀ orísun tàbí JSON ìbílẹ̀ fún ìsopọ̀ tó ń jáde",
+ "start": "Bẹ̀rẹ̀",
+ "stop": "Dá dúró",
+ "loadError": "Kò ṣeé kó àwọn kókó tí a ń ṣàkóso wọlé",
+ "operationError": "Iṣẹ́ kókó tí a ń ṣàkóso kùnà",
+ "state": "{state, select, not_installed {A kò tíì fi sí ẹ̀rọ} stopped {Ti dúró} starting {Ń bẹ̀rẹ̀} running {Ń ṣiṣẹ́} stopping {Ń dúró} error {Àṣìṣe} other {Àìmọ̀}}"
+ },
"proxyConfigModal": {
+ "managedCore": "Kókó proksi",
+ "managedSelectCore": "Yan kókó kan",
+ "managedSaveHint": "Fífi pamọ́ máa ń gba kókó tí a fọwọ́ sí sílẹ̀, ó ń jẹ́rìí rẹ̀ tí a bá nílò rẹ̀, ó ṣàyẹ̀wò ìṣètò, lẹ́yìn náà ó mú proksi yìí ṣiṣẹ́. Títẹ̀ ọ̀rọ̀ kò fi ohunkóhun sí ẹ̀rọ.",
+ "errorSelectManagedCore": "Yan sing-box tàbí Xray ṣáájú fífi ọ̀nà abẹ́ yìí pamọ́",
"levelGlobal": "Gbogbogbo",
"levelProvider": "Olùpèsè",
"levelCombo": "Àpapọ̀",
diff --git a/src/i18n/messages/zh-CN.json b/src/i18n/messages/zh-CN.json
index 83e91ad40beb..93a0d0da33d1 100644
--- a/src/i18n/messages/zh-CN.json
+++ b/src/i18n/messages/zh-CN.json
@@ -1,4 +1,19 @@
{
+ "managedProxy": {
+ "title": "托管代理内核",
+ "description": "将隧道链接粘贴到自定义代理的主机字段中,即可保存并分配使用。您也可以在此保存原生出站 JSON 定义,而不更改任何分配。",
+ "saveHint": "保存时会根据需要验证官方内核,并在激活前检查原生配置。来源必须使用加密。预览时不会安装,也不会自动启动或更改透明代理设置。",
+ "saveActivate": "保存并激活",
+ "core": "内核",
+ "selectCore": "选择内核",
+ "name": "名称",
+ "source": "来源链接或原生出站 JSON",
+ "start": "启动",
+ "stop": "停止",
+ "loadError": "无法加载托管内核",
+ "operationError": "托管内核操作失败",
+ "state": "{state, select, not_installed {未安装} stopped {已停止} starting {正在启动} running {运行中} stopping {正在停止} error {错误} other {未知}}"
+ },
"teamCosts": {
"title": "团队费用",
"subtitle": "管理团队共享软预算,查看按目录价格估算的用量费用。",
@@ -7116,6 +7131,7 @@
"fallbackRetryBackendTitle": "回退重试后端"
},
"settings": {
+ "proxyManagedCoresTab": "托管内核",
"title": "设置",
"general": "常规",
"security": "安全",
@@ -11663,6 +11679,10 @@
"viewSwitcherAria": "缓存视图"
},
"proxyConfigModal": {
+ "managedCore": "代理内核",
+ "managedSelectCore": "选择内核",
+ "managedSaveHint": "保存时会根据需要下载并验证官方内核,检查配置,然后激活此代理。仅输入内容不会安装任何组件。",
+ "errorSelectManagedCore": "保存此隧道前请选择 sing-box 或 Xray",
"levelGlobal": "全局",
"levelProvider": "供应商",
"levelCombo": "组合",
diff --git a/src/i18n/messages/zh-TW.json b/src/i18n/messages/zh-TW.json
index 1c8a081369a3..6d75bbc5d36b 100644
--- a/src/i18n/messages/zh-TW.json
+++ b/src/i18n/messages/zh-TW.json
@@ -1,4 +1,19 @@
{
+ "managedProxy": {
+ "title": "受管理的代理核心",
+ "description": "將通道連結貼到自訂代理的主機欄位中,即可儲存並指派使用。您也可以在此儲存原生輸出連線的 JSON 定義,而不變更任何指派。",
+ "saveHint": "儲存時會視需要驗證官方核心,並在啟用前檢查原生設定。來源必須使用加密。預覽時不會安裝,也不會自動啟動或變更透明代理設定。",
+ "saveActivate": "儲存並啟用",
+ "core": "核心",
+ "selectCore": "選擇核心",
+ "name": "名稱",
+ "source": "來源連結或原生輸出連線 JSON",
+ "start": "啟動",
+ "stop": "停止",
+ "loadError": "無法載入受管理的核心",
+ "operationError": "受管理的核心操作失敗",
+ "state": "{state, select, not_installed {尚未安裝} stopped {已停止} starting {正在啟動} running {執行中} stopping {正在停止} error {錯誤} other {未知}}"
+ },
"codexKeyServiceMode": {
"title": "此 API 金鑰的 Codex 服務模式",
"description": "套用於 Codex 請求,包括組合中的 Codex 模型。強制模式會覆寫用戶端、全域設定和連線預設值。其他提供者不受影響。",
@@ -7039,6 +7054,7 @@
"fallbackRetryBackendTitle": "回退重試後端"
},
"settings": {
+ "proxyManagedCoresTab": "受管理的核心",
"title": "設定",
"general": "常規",
"security": "安全",
@@ -11586,6 +11602,10 @@
"viewSwitcherAria": "快取檢視"
},
"proxyConfigModal": {
+ "managedCore": "代理核心",
+ "managedSelectCore": "選擇核心",
+ "managedSaveHint": "儲存時會視需要下載並驗證官方核心,檢查設定,然後啟用此代理。僅輸入內容不會安裝任何元件。",
+ "errorSelectManagedCore": "儲存此通道前,請選擇 sing-box 或 Xray",
"levelGlobal": "全域性",
"levelProvider": "提供者",
"levelCombo": "組合",
diff --git a/src/i18n/routeNamespaces.generated.json b/src/i18n/routeNamespaces.generated.json
index 158fc43af8fc..4d09bde28bce 100644
--- a/src/i18n/routeNamespaces.generated.json
+++ b/src/i18n/routeNamespaces.generated.json
@@ -1627,6 +1627,7 @@
"health",
"kiroAuthModal",
"kiroSocialOAuthModal",
+ "managedProxy",
"noAuthProvider",
"oauthModal",
"providerStats",
@@ -1662,6 +1663,7 @@
"header",
"kiroAuthModal",
"kiroSocialOAuthModal",
+ "managedProxy",
"noAuthProvider",
"oauthModal",
"providers",
diff --git a/tests/integration/managed-proxy/managedProxyUi.test.tsx b/tests/integration/managed-proxy/managedProxyUi.test.tsx
index 2960eb446504..2a1f297c9df4 100644
--- a/tests/integration/managed-proxy/managedProxyUi.test.tsx
+++ b/tests/integration/managed-proxy/managedProxyUi.test.tsx
@@ -26,7 +26,11 @@ test("managed source form keeps native values and input on failed activation wit
const name = screen.getByLabelText("Name") as HTMLInputElement;
const input = screen.getByLabelText("Source link or native outbound JSON") as HTMLTextAreaElement;
const save = screen.getByRole("button", { name: "Save and activate" }) as HTMLButtonElement;
- expect(core.classList.contains("ci-select-native")).toBe(true);
+ expect(core.tagName).toBe("SELECT");
+ expect(core.classList.contains("ci-native-select__control")).toBe(true);
+ expect(core.closest('[data-slot="native-select"]')?.classList.contains("ci-native-select")).toBe(
+ true
+ );
expect(name.classList.contains("ci-input")).toBe(true);
expect(input.classList.contains("ci-textarea")).toBe(true);
expect(name.maxLength).toBe(120);
diff --git a/tests/unit/managed-proxy-kit-contract.test.tsx b/tests/unit/managed-proxy-kit-contract.test.tsx
new file mode 100644
index 000000000000..8cc9bb795cc7
--- /dev/null
+++ b/tests/unit/managed-proxy-kit-contract.test.tsx
@@ -0,0 +1,32 @@
+// @vitest-environment jsdom
+import React from "react";
+import fs from "node:fs";
+import { cleanup, fireEvent, render, screen } from "@testing-library/react";
+import { afterEach, expect, test, vi } from "vitest";
+import Select from "../../src/shared/components/Select";
+
+// Render only the shared control: no managed service, DB, fetch, child or hosted fixture.
+afterEach(cleanup);
+test("managed hosted fixture asserts the current native kit control and keeps real change values", () => {
+ const change = vi.fn();
+ render(
+
+ );
+ const core = screen.getByRole("combobox", { name: "Core" }) as HTMLSelectElement;
+ expect(core.tagName).toBe("SELECT");
+ expect(core.classList.contains("ci-native-select__control")).toBe(true);
+ expect(core.closest('[data-slot="native-select"]')?.classList.contains("ci-native-select")).toBe(
+ true
+ );
+ fireEvent.change(core, { target: { value: "xray" } });
+ expect(core.value).toBe("xray");
+ expect(change).toHaveBeenCalledTimes(1);
+ expect(change.mock.calls[0][0].target.value).toBe("xray");
+ const hosted = fs.readFileSync("tests/integration/managed-proxy/managedProxyUi.test.tsx", "utf8");
+ expect(hosted).toContain('core.classList.contains("ci-native-select__control")');
+ expect(hosted).toContain("assertManagedFixture()");
+});
diff --git a/tests/unit/managed-proxy-ui-i18n.test.ts b/tests/unit/managed-proxy-ui-i18n.test.ts
index 83fa6a6d2c4a..79c8f112b195 100644
--- a/tests/unit/managed-proxy-ui-i18n.test.ts
+++ b/tests/unit/managed-proxy-ui-i18n.test.ts
@@ -1,6 +1,7 @@
import test from "node:test";
import assert from "node:assert/strict";
import { readFileSync } from "node:fs";
+import { IntlMessageFormat } from "intl-messageformat";
// Source/catalog-only regression: never import the managed service, open a DB,
// download a core, spawn a listener, or issue network requests.
@@ -25,11 +26,15 @@ const managedKeys = [
"state",
];
const modalKeys = ["managedCore", "managedSelectCore", "managedSaveHint", "errorSelectManagedCore"];
+const config = JSON.parse(read("config/i18n.json"));
+const locales: string[] = [
+ ...new Set([
+ config.default,
+ ...config.locales.map((entry: { code: string }) => entry.code),
+ ]),
+];
const catalogs = Object.fromEntries(
- ["en", "pt-BR", "vi"].map((locale) => [
- locale,
- JSON.parse(read(`src/i18n/messages/${locale}.json`)),
- ])
+ locales.map((locale) => [locale, JSON.parse(read(`src/i18n/messages/${locale}.json`))])
);
test("managed proxy controls and errors use translated messages", () => {
@@ -45,7 +50,7 @@ test("managed proxy controls and errors use translated messages", () => {
}
});
-for (const locale of ["en", "pt-BR", "vi"]) {
+for (const locale of locales) {
test(`${locale} includes all managed proxy messages and lifecycle states`, () => {
for (const [namespace, keys] of [
["managedProxy", managedKeys],
@@ -55,11 +60,30 @@ for (const locale of ["en", "pt-BR", "vi"]) {
const value = catalogs[locale][namespace]?.[key];
assert.equal(typeof value, "string", `${namespace}.${key}`);
assert.ok(value.trim().length > 0, `${namespace}.${key}`);
- if (locale !== "en")
+ assert.ok(!value.startsWith("__MISSING__:"), `${namespace}.${key}`);
+ // Some short labels are legitimately identical (e.g. German "Name").
+ if (
+ locale !== "en" &&
+ (["pt-BR", "vi"].includes(locale) || !["core", "name", "start", "stop"].includes(key))
+ )
assert.notEqual(value, catalogs.en[namespace][key], `${namespace}.${key}`);
+ const message = new IntlMessageFormat(value, locale);
+ const placeholders = message
+ .getAst()
+ .filter((node) => node.type !== 0)
+ .map((node) => ("value" in node ? node.value : "#"));
+ assert.deepEqual(
+ placeholders,
+ key === "state" ? ["state"] : [],
+ `${namespace}.${key} ICU arguments`
+ );
}
}
- assert.equal(typeof catalogs[locale].settings.proxyManagedCoresTab, "string");
+ const tabLabel = catalogs[locale].settings.proxyManagedCoresTab;
+ assert.equal(typeof tabLabel, "string");
+ assert.ok(tabLabel.trim().length > 0);
+ assert.ok(!tabLabel.startsWith("__MISSING__:"));
+ assert.ok(new IntlMessageFormat(tabLabel, locale).getAst().every((node) => node.type === 0));
if (locale !== "en") {
assert.notEqual(
catalogs[locale].settings.proxyManagedCoresTab,
@@ -67,7 +91,13 @@ for (const locale of ["en", "pt-BR", "vi"]) {
);
}
const state = catalogs[locale].managedProxy.state;
- for (const name of [
+ const stateMessage = new IntlMessageFormat(state, locale);
+ const stateAst = stateMessage.getAst();
+ assert.equal(stateAst.length, 1);
+ const selector = stateAst[0];
+ assert.equal(selector.type, 5);
+ if (selector.type !== 5) throw new Error("Expected a state select expression");
+ const states = [
"not_installed",
"stopped",
"starting",
@@ -75,8 +105,23 @@ for (const locale of ["en", "pt-BR", "vi"]) {
"stopping",
"error",
"other",
- ]) {
+ ];
+ assert.deepEqual(Object.keys(selector.options).sort(), [...states].sort());
+ for (const option of Object.values(selector.options)) {
+ assert.ok(
+ option.value.every((node) => node.type === 0),
+ "State branches must be literal labels"
+ );
+ }
+ for (const name of states) {
assert.ok(state.includes(`${name} {`), `missing lifecycle state ${name}`);
+ const formatted = stateMessage.format({ state: name });
+ assert.equal(typeof formatted, "string");
+ assert.ok(String(formatted).trim().length > 0);
}
+ assert.equal(
+ stateMessage.format({ state: "unrecognized" }),
+ stateMessage.format({ state: "other" })
+ );
});
}
From bb81bef98e60d73c2529be953fb7e621b8bb0c38 Mon Sep 17 00:00:00 2001
From: Kiaro-Sama <106400900+KiaroSama@users.noreply.github.com>
Date: Fri, 6 Nov 2026 05:15:40 +0330
Subject: [PATCH 24/25] test(proxy): keep hosted HTTP fixture aligned with
authz imports
---
.github/workflows/managed-proxy-cores.yml | 1 +
tests/_setup/managedProxyHttpBundle.ts | 122 ++++++++++++++++++
.../managed-proxy/deletion-dispatch.test.ts | 105 +--------------
tests/unit/managed-proxy-http-bundle.test.ts | 48 +++++++
4 files changed, 175 insertions(+), 101 deletions(-)
create mode 100644 tests/_setup/managedProxyHttpBundle.ts
create mode 100644 tests/unit/managed-proxy-http-bundle.test.ts
diff --git a/.github/workflows/managed-proxy-cores.yml b/.github/workflows/managed-proxy-cores.yml
index b4c4da52d0ac..0b217f7bb41b 100644
--- a/.github/workflows/managed-proxy-cores.yml
+++ b/.github/workflows/managed-proxy-cores.yml
@@ -18,6 +18,7 @@ on:
- "tests/unit/managed-proxy-*.test.tsx"
- "vitest.managed-proxy.config.ts"
- "tests/_setup/managedProxyFixture.mjs"
+ - "tests/_setup/managedProxyHttpBundle.ts"
- "tests/fixtures/managedProxyChild.mjs"
- "scripts/test/*managed-proxy*.mjs"
- "scripts/test/check-managed-proxy-native.ts"
diff --git a/tests/_setup/managedProxyHttpBundle.ts b/tests/_setup/managedProxyHttpBundle.ts
new file mode 100644
index 000000000000..caf72f64db11
--- /dev/null
+++ b/tests/_setup/managedProxyHttpBundle.ts
@@ -0,0 +1,122 @@
+import assert from "node:assert/strict";
+import path from "node:path";
+import { build } from "esbuild";
+
+// Next routes the HTTP requests itself. Only state, credentials and native lifecycle are fake.
+const adapters: Record = {
+ // Match readCache's body-limit projection without loading any persisted settings.
+ "src/lib/db/readCache": `
+ export async function getCachedSettings(){return {};}
+ export async function getCachedBodySizeSettings(){
+ return {...(await getCachedSettings()),savedMaxBodySizeMb:null};
+ }`,
+ // Entra policy imports this eagerly even when SSO is disabled by the empty settings.
+ // Logging is outside the deletion contract: do not create Pino workers or real log files.
+ "src/sse/utils/logger": `
+ export function debug(){}
+ export function info(){}
+ export function warn(){}
+ export function error(){}
+ export function request(){}`,
+ "src/lib/gracefulShutdown": "export function isDraining(){return false;}",
+ "src/lib/config/runtimeSettings":
+ "export function getAuthzBypassSnapshot(){return {enabled:false,prefixes:[]};}",
+ "src/shared/utils/apiAuth": `
+ export async function isAuthRequired(){return true;}
+ export async function isDashboardSessionAuthenticated(){return false;}`,
+ "src/lib/machineToken": `
+ export function getMachineTokenSync(){return "synthetic-cli-token";}
+ export function getLegacyCliTokenSync(){return "";}`,
+ "src/shared/services/modelSyncScheduler":
+ "export function isModelSyncInternalRequest(){return false;}",
+ "src/lib/db/apiKeys": `
+ export async function getApiKeyMetadata(){return {id:"fixture",scopes:["manage"]};}
+ export async function validateApiKey(key){return key==="synthetic-management-key";}`,
+ "src/lib/db/ssoIdentities": `
+ export function getSsoShadowSecret(){throw new Error("Unexpected fixture SSO lookup");}
+ export function provisionSsoIdentity(){throw new Error("Unexpected fixture SSO provisioning");}`,
+ "src/lib/db/apiKeyGroups": `
+ export function filterExistingActiveKeyGroupIds(){throw new Error("Unexpected fixture SSO groups");}`,
+ "src/sse/services/auth": `
+ export function extractApiKey(request){return request.headers.get("authorization")?.slice(7)||null;}
+ export async function isValidApiKey(key){return key==="synthetic-management-key";}
+ export function readNonEmptyUrlToken(){return null;}`,
+ "src/lib/db/accessTokens": `
+ export function verifyAccessToken(token){return token==="oma_fixture_write"
+ ? {id:"fixture",name:"fixture",scope:"write"}:null;}`,
+ "src/lib/api/internalServiceAuth": `
+ export function isInternalServiceRequest(){return false;}
+ export function isTrustedLoopbackInternalServiceRequest(){return false;}`,
+ "src/lib/middleware/cliTokenAuth": "export async function isCliTokenAuthValid(){return false;}",
+ "open-sse/services/ipFilter": "export function checkRequestIP(){return {allowed:true};}",
+ // Auth-touch persistence is outside the deletion contract; keep its DB out of the bundle.
+ "src/lib/compliance/index": "export function recordApiKeyAuthTouch(){}",
+ "src/shared/utils/featureFlags": `
+ export function isRequireApiKeyEnabled(){return true;}
+ export function isFeatureFlagEnabled(){return false;}`,
+ "open-sse/utils/proxyDispatcher": "export function clearDispatcherCache(){}",
+ "src/lib/db/proxies": `
+ export async function getProxyById(id){return id==="missing"?null:{id,notes:
+ id.startsWith("managed")?JSON.stringify({managedProxyId:id,managedCore:"singbox"}):null};}
+ export async function deleteProxyById(id){return id!=="missing";}`,
+ "src/lib/services/managedProxy/remove": `
+ export async function removeManagedProxy(core,id,commit){
+ if(core!=="singbox"||!id.startsWith("managed"))throw new Error("Invalid fixture removal");
+ return commit();
+ }`,
+};
+
+/** Compile the exact hosted HTTP dependency graph without evaluating it or starting Next. */
+export async function buildManagedProxyHttpBundle(project: string, outfile: string) {
+ const result = await build({
+ write: false,
+ stdin: {
+ contents: `
+ export {runAuthzPipeline} from "./src/server/authz/pipeline";
+ export {DELETE,POST} from "./src/app/api/services/managed-proxy/registry-delete/route";
+ export {handleProxyDelete} from "./src/lib/api/proxyDeletionHandlers";
+ export {POST as batchDelete} from "./src/app/api/settings/proxies/batch-delete/route";`,
+ resolveDir: project,
+ },
+ outfile,
+ bundle: true,
+ metafile: true,
+ platform: "node",
+ format: "cjs",
+ packages: "external",
+ tsconfig: path.join(project, "tsconfig.json"),
+ plugins: [
+ {
+ name: "isolated-managed-state",
+ setup(builder) {
+ builder.onResolve({ filter: /.*/ }, (args) => {
+ let resolved: string | undefined;
+ if (args.path.startsWith("@/")) resolved = `src/${args.path.slice(2)}`;
+ else if (args.path.startsWith("@omniroute/open-sse/"))
+ resolved = `open-sse/${args.path.slice("@omniroute/open-sse/".length)}`;
+ else if (args.path.startsWith("."))
+ resolved = path
+ .relative(project, path.resolve(args.resolveDir, args.path))
+ .replaceAll("\\", "/");
+ const key = resolved?.replace(/\.(?:ts|tsx)$/, "");
+ if (key === "open-sse/utils/error")
+ return { path: path.join(project, "open-sse/utils/errorSanitization.ts") };
+ return key && key in adapters ? { path: key, namespace: "fixture" } : undefined;
+ });
+ builder.onLoad({ filter: /.*/, namespace: "fixture" }, (args) => ({
+ contents: adapters[args.path],
+ loader: "js",
+ }));
+ },
+ },
+ ],
+ });
+ assert.deepEqual(
+ Object.keys(result.metafile!.inputs).filter(
+ (file) => !file.startsWith("fixture:") && /(?:^|\/)src\/lib\/db\//.test(file)
+ ),
+ [],
+ "HTTP fixture must not bundle real database modules"
+ );
+ return result;
+}
diff --git a/tests/integration/managed-proxy/deletion-dispatch.test.ts b/tests/integration/managed-proxy/deletion-dispatch.test.ts
index 587ff3504f69..45d019f84582 100644
--- a/tests/integration/managed-proxy/deletion-dispatch.test.ts
+++ b/tests/integration/managed-proxy/deletion-dispatch.test.ts
@@ -5,63 +5,12 @@ import path from "node:path";
import { once } from "node:events";
import { pathToFileURL } from "node:url";
import test from "node:test";
-import { build } from "esbuild";
+import { buildManagedProxyHttpBundle } from "../../_setup/managedProxyHttpBundle";
import { assertManagedFixture } from "../../_setup/managedProxyFixture.mjs";
const sandbox = assertManagedFixture();
const project = process.cwd();
-// Next routes the HTTP requests itself. Only state, credentials and native lifecycle are fake.
-const adapters: Record = {
- "src/lib/db/readCache": "export async function getCachedSettings(){return {};}",
- "src/lib/gracefulShutdown": "export function isDraining(){return false;}",
- "src/lib/config/runtimeSettings":
- "export function getAuthzBypassSnapshot(){return {enabled:false,prefixes:[]};}",
- "src/shared/utils/apiAuth": `
- export async function isAuthRequired(){return true;}
- export async function isDashboardSessionAuthenticated(){return false;}`,
- "src/lib/machineToken": `
- export function getMachineTokenSync(){return "synthetic-cli-token";}
- export function getLegacyCliTokenSync(){return "";}`,
- "src/shared/services/modelSyncScheduler":
- "export function isModelSyncInternalRequest(){return false;}",
- "src/lib/db/apiKeys": `
- export async function getApiKeyMetadata(){return {id:"fixture",scopes:["manage"]};}
- export async function validateApiKey(key){return key==="synthetic-management-key";}`,
- "src/lib/db/ssoIdentities": `
- export function getSsoShadowSecret(){throw new Error("Unexpected fixture SSO lookup");}
- export function provisionSsoIdentity(){throw new Error("Unexpected fixture SSO provisioning");}`,
- "src/lib/db/apiKeyGroups": `
- export function filterExistingActiveKeyGroupIds(){throw new Error("Unexpected fixture SSO groups");}`,
- "src/sse/services/auth": `
- export function extractApiKey(request){return request.headers.get("authorization")?.slice(7)||null;}
- export async function isValidApiKey(key){return key==="synthetic-management-key";}
- export function readNonEmptyUrlToken(){return null;}`,
- "src/lib/db/accessTokens": `
- export function verifyAccessToken(token){return token==="oma_fixture_write"
- ? {id:"fixture",name:"fixture",scope:"write"}:null;}`,
- "src/lib/api/internalServiceAuth": `
- export function isInternalServiceRequest(){return false;}
- export function isTrustedLoopbackInternalServiceRequest(){return false;}`,
- "src/lib/middleware/cliTokenAuth": "export async function isCliTokenAuthValid(){return false;}",
- "open-sse/services/ipFilter": "export function checkRequestIP(){return {allowed:true};}",
- // Auth-touch persistence is outside the deletion contract; keep its DB out of the bundle.
- "src/lib/compliance/index": "export function recordApiKeyAuthTouch(){}",
- "src/shared/utils/featureFlags": `
- export function isRequireApiKeyEnabled(){return true;}
- export function isFeatureFlagEnabled(){return false;}`,
- "open-sse/utils/proxyDispatcher": "export function clearDispatcherCache(){}",
- "src/lib/db/proxies": `
- export async function getProxyById(id){return id==="missing"?null:{id,notes:
- id.startsWith("managed")?JSON.stringify({managedProxyId:id,managedCore:"singbox"}):null};}
- export async function deleteProxyById(id){return id!=="missing";}`,
- "src/lib/services/managedProxy/remove": `
- export async function removeManagedProxy(core,id,commit){
- if(core!=="singbox"||!id.startsWith("managed"))throw new Error("Invalid fixture removal");
- return commit();
- }`,
-};
-
for (const basePath of ["", "/omniroute"]) {
test(
`actual Next HTTP preserves deletion contracts with basePath '${basePath}'`,
@@ -72,55 +21,9 @@ for (const basePath of ["", "/omniroute"]) {
let child: ChildProcess | undefined;
let closed: Promise | undefined;
try {
- const result = await build({
- stdin: {
- contents: `
- export {runAuthzPipeline} from "./src/server/authz/pipeline";
- export {DELETE,POST} from "./src/app/api/services/managed-proxy/registry-delete/route";
- export {handleProxyDelete} from "./src/lib/api/proxyDeletionHandlers";
- export {POST as batchDelete} from "./src/app/api/settings/proxies/batch-delete/route";`,
- resolveDir: project,
- },
- outfile: bundle,
- bundle: true,
- metafile: true,
- platform: "node",
- format: "cjs",
- packages: "external",
- tsconfig: path.join(project, "tsconfig.json"),
- plugins: [
- {
- name: "isolated-managed-state",
- setup(builder) {
- builder.onResolve({ filter: /.*/ }, (args) => {
- let resolved: string | undefined;
- if (args.path.startsWith("@/")) resolved = `src/${args.path.slice(2)}`;
- else if (args.path.startsWith("@omniroute/open-sse/"))
- resolved = `open-sse/${args.path.slice("@omniroute/open-sse/".length)}`;
- else if (args.path.startsWith("."))
- resolved = path
- .relative(project, path.resolve(args.resolveDir, args.path))
- .replaceAll("\\", "/");
- const key = resolved?.replace(/\.(?:ts|tsx)$/, "");
- if (key === "open-sse/utils/error")
- return { path: path.join(project, "open-sse/utils/errorSanitization.ts") };
- return key && key in adapters ? { path: key, namespace: "fixture" } : undefined;
- });
- builder.onLoad({ filter: /.*/, namespace: "fixture" }, (args) => ({
- contents: adapters[args.path],
- loader: "js",
- }));
- },
- },
- ],
- });
- assert.deepEqual(
- Object.keys(result.metafile!.inputs).filter(
- (file) => !file.startsWith("fixture:") && /(?:^|\/)src\/lib\/db\//.test(file)
- ),
- [],
- "HTTP fixture must not bundle real database modules"
- );
+ const result = await buildManagedProxyHttpBundle(project, bundle);
+ assert.equal(result.outputFiles.length, 1);
+ fs.writeFileSync(bundle, result.outputFiles[0].contents);
const write = (name: string, text: string) => {
const target = path.join(root, name);
fs.mkdirSync(path.dirname(target), { recursive: true });
diff --git a/tests/unit/managed-proxy-http-bundle.test.ts b/tests/unit/managed-proxy-http-bundle.test.ts
new file mode 100644
index 000000000000..15441356f01b
--- /dev/null
+++ b/tests/unit/managed-proxy-http-bundle.test.ts
@@ -0,0 +1,48 @@
+import assert from "node:assert/strict";
+import fs from "node:fs";
+import os from "node:os";
+import path from "node:path";
+import test from "node:test";
+import { buildManagedProxyHttpBundle } from "../_setup/managedProxyHttpBundle.ts";
+
+test("hosted deletion fixture links all current authz imports without real database or lifecycle modules", async () => {
+ const directory = fs.mkdtempSync(path.join(os.tmpdir(), "managed-bundle-only-"));
+ try {
+ const outfile = path.join(directory, "never-executed.cjs");
+ const result = await buildManagedProxyHttpBundle(process.cwd(), outfile);
+ assert.equal(
+ fs.existsSync(outfile),
+ false,
+ "compile-only helper must never write or execute its output"
+ );
+ assert.equal(result.outputFiles.length, 1);
+ assert.ok(result.outputFiles[0].contents.length > 0);
+ const inputs = Object.keys(result.metafile.inputs);
+ assert.ok(inputs.includes("fixture:src/lib/db/readCache"));
+ assert.ok(inputs.includes("src/server/authz/pipeline.ts"));
+ assert.ok(inputs.includes("fixture:src/lib/services/managedProxy/remove"));
+ assert.deepEqual(
+ inputs.filter(
+ (file) =>
+ !file.startsWith("fixture:") &&
+ /(?:^|\/)src\/lib\/(?:db\/|services\/managedProxy\/(?:runtime|install|manager|remove)\.)/.test(
+ file
+ )
+ ),
+ []
+ );
+ assert.deepEqual(
+ inputs.filter((file) => /(?:src\/shared\/utils\/logger|src\/lib\/logRotation)/.test(file)),
+ [],
+ "HTTP fixture must not initialize real log files, timers or Pino workers"
+ );
+ const hosted = fs.readFileSync(
+ "tests/integration/managed-proxy/deletion-dispatch.test.ts",
+ "utf8"
+ );
+ assert.ok(hosted.includes("assertManagedFixture()"));
+ assert.ok(hosted.includes("await buildManagedProxyHttpBundle(project, bundle)"));
+ } finally {
+ fs.rmSync(directory, { recursive: true, force: true });
+ }
+});
From 795cfd7f63fff9b85f267463eb2b71ab509a7fb1 Mon Sep 17 00:00:00 2001
From: Kiaro-Sama <106400900+KiaroSama@users.noreply.github.com>
Date: Fri, 6 Nov 2026 05:47:20 +0330
Subject: [PATCH 25/25] test(i18n): parse Vietnamese placeholder parity
structurally
---
tests/unit/i18n-vi-completeness.test.ts | 54 +++++++++++++++++++++++--
1 file changed, 50 insertions(+), 4 deletions(-)
diff --git a/tests/unit/i18n-vi-completeness.test.ts b/tests/unit/i18n-vi-completeness.test.ts
index 837bf150468a..3ec929babaef 100644
--- a/tests/unit/i18n-vi-completeness.test.ts
+++ b/tests/unit/i18n-vi-completeness.test.ts
@@ -1,7 +1,7 @@
import assert from "node:assert/strict";
import { readFileSync } from "node:fs";
import test from "node:test";
-import { parse } from "@formatjs/icu-messageformat-parser";
+import { parse, TYPE, type MessageFormatElement } from "@formatjs/icu-messageformat-parser";
import en from "../../src/i18n/messages/en.json" with { type: "json" };
import vi from "../../src/i18n/messages/vi.json" with { type: "json" };
@@ -27,11 +27,57 @@ function flattenMessages(value: unknown, segments: Array = []):
}
function placeholderNames(value: string): string[] {
- return [...value.matchAll(/\{\s*([A-Za-z][A-Za-z0-9_]*)\s*(?=[,}])/g)]
- .map((match) => match[1])
- .sort();
+ const names: string[] = [];
+ function visit(elements: MessageFormatElement[]): void {
+ for (const element of elements) {
+ if (element.type === TYPE.literal || element.type === TYPE.pound) continue;
+ names.push(element.value);
+ if (element.type === TYPE.select || element.type === TYPE.plural) {
+ for (const option of Object.values(element.options)) visit(option.value);
+ } else if (element.type === TYPE.tag) {
+ visit(element.children);
+ }
+ }
+ }
+ visit(parse(value, { captureLocation: false, shouldParseSkeletons: true }));
+ return names.sort();
}
+test("ICU placeholder extraction ignores translated branch text and escaped syntax", () => {
+ assert.deepEqual(placeholderNames(en.managedProxy.state), ["state"]);
+ assert.deepEqual(placeholderNames(vi.managedProxy.state), ["state"]);
+ assert.deepEqual(placeholderNames("'{literal}' '' {actual}"), ["actual"]);
+});
+
+test("ICU placeholder extraction visits nested branches, formats, and rich text", () => {
+ const message =
+ "{kind, select, active {{count, plural, offset:1 =0 {None} one {{name}} other {# {amount, number, ::currency/USD} {day, date, short} {time, time, short}}}} other {{rank, selectordinal, one {First} other {{fallback}}}}}";
+ assert.deepEqual(placeholderNames(message), [
+ "amount",
+ "count",
+ "day",
+ "fallback",
+ "kind",
+ "name",
+ "rank",
+ "strong",
+ "time",
+ ]);
+});
+
+test("ICU placeholder extraction retains repeated arguments and detects lost or renamed values", () => {
+ const source = "{name} {name} {count, plural, one {{detail}} other {#}}";
+ assert.deepEqual(placeholderNames(source), ["count", "detail", "link", "name", "name"]);
+ for (const changed of [
+ source.replace("{detail}", "Detail"),
+ source.replace("{detail}", "{renamed}"),
+ source.replace("{name} {name}", "{name}"),
+ source.replaceAll("link", "strong"),
+ ])
+ assert.notDeepEqual(placeholderNames(source), placeholderNames(changed));
+ assert.throws(() => placeholderNames("{broken"));
+});
+
const englishMessages = flattenMessages(en);
const vietnameseMessages = flattenMessages(vi);
const vietnameseByKey = new Map(vietnameseMessages.map((entry) => [entry.key, entry.value]));