Skip to content

fix(i18n): complete Ukrainian (uk-UA) UI translation coverage - #2988

Merged
diegosouzapw merged 18 commits into
cheaper-inference:release/v3.8.8from
Lion-killer:i18n/uk-ua-followup
Jun 1, 2026
Merged

diegosouzapw merged 18 commits into
cheaper-inference:release/v3.8.8from
Lion-killer:i18n/uk-ua-followup

Conversation

@Lion-killer

Copy link
Copy Markdown
Contributor

Summary

Follow-up to #2981. Eliminates every remaining __MISSING__: marker from uk-UA.json and translates the high-traffic English fallbacks across the dashboard — ~620 keys, no English remains on the visible UI surfaces I audited.

After this PR the Ukrainian locale has full parity with en.json (6961 / 6961 keys, 0 missing / 0 extra, 0 __MISSING__: markers).

Scope by page / section

  • apiManager — filter chips (Status/Type), schedule (From/Until/Days/Timezone + day abbreviations Пн-Нд), search placeholder, visibility/auto-resolve settings. Plural endpointsRestricted uses full Ukrainian one/few/many/other ICU rules.
  • providers — page-section descriptions (Compatible / OAuth / Free tier / API key / Cloud Agent / Web Fetch), filter chips (No Auth / Upstream Proxy / Web Fetch), risk-notice modal (oauth / webCookie / deprecated variants), Antigravity client profile.
  • miniPlayground — the "Test" button next to every provider connection card + all field labels (Endpoint / API Key / Model / Voice / Speed / Input / Format / Duration / Query / etc.).
  • combos — wizard steps 1-4 (titles + descriptions), filters (All / Intelligent / Deterministic), usage-guide buttons (Hide / Don't show again), email visibility hints, builder labels.
  • usage (Provider Quota page) — stat cards (Total/Critical/Alert/Healthy), filters Type/Tier, purchase types (Subscription / OAuth Free / API Key), card labels (Updated / Refreshing / Resets in / Credits / Unlimited / Next reset UTC), evals strategy labels, history columns. Also fixes a pre-existing bad translation: editCutoffs was "Редагувати обрізки" ("scraps") → now "Редагувати порогові значення" ("threshold values").
  • analytics — full Usage Analytics dashboard: diversity scoring + Shannon entropy, chart axes/labels (Requests/Input/Output/Total/Cost/Share/Service Tier/Cache read), range presets (Today / Yesterday / Last 3 days / This week / Last 14 days / This month + custom), period buttons (1D/7D/30D/90D/YTD/All), Infrastructure / Performance / Highlights sections.
  • webhooks — full page: 3-step setup wizard, "How webhooks work" guide, HMAC verification recipes (Node.js / Python / Bash), deliveries log columns, integration kinds (Slack / Telegram / Discord / PagerDuty / Teams / Email / Custom), URL validator messages, per-integration form fields/placeholders/tutorials, retry/timeout notes.
  • skills — marketplace tab, install modal (paste-JSON / upload-JSON / from-marketplace), popular-skills list, ON/OFF/AUTO modes, search + pagination + error states.
  • health — Provider Health Matrix, lockout / cooldown / inferred / locked badges, model pill summaries, score / last request / last error.
  • mcpDashboard, a2aDashboard — transport mode descriptions (stdio / SSE / Streamable HTTP), disabled-state CTAs, step-by-step setup intros.
  • settings.routing — all DSL operations (drop paragraph contains / starts with / replace text / replace regex / drop block / prepend block / append block / inject billing header / obfuscate words) with full multi-paragraph hints, auto-routing variants (LKGP / Coding / Fast / Cheap / Offline / Smart), Antigravity signature modes (Enabled / Bypass / Bypass Strict), client cache_control preserve modes, vision bridge, payload-rules editor, request limits, Codex fast-tier toggle, Vercel relay deploy modal. ICU plural for op count.
  • settings.authz (new section, previously a blank __MISSING__ block) — 5-tier route classification (Local only / Always protected / Management / Client API / Public), manage-scope bypass policy, kill-switch, password-prompt modal, error catalog (PASSWORD_REQUIRED / PASSWORD_MISMATCH / INSUFFICIENT_SCOPE / BYPASS_PREFIX_NOT_ALLOWED / GENERIC).
  • cloudAgents, cache, proxyRegistry, logs, costs, endpoint, media, agents, contextRtk, contextCaveman, common — remaining filter chips, status badges, intro guides, table columns, time helpers (just now / minutes ago / hours ago / days ago).

gemini-code-assist feedback from #2981 (applied)

Suggestions 2 & 3 from #2981 review applied:

  • sidebar.whitelabeling: "Білий лейбл" → "Брендування" (Branding — natural product term).
  • sidebar.whitelabelingDesc: "Білий лейбл" → "Налаштування брендування".

Suggestion 1 (ICU plural for combos.daysAgo) is not in this PR — handled separately if you want; this PR is locale-fill rather than ICU-plural-cleanup.

Methodology

Keys are only overwritten when the existing UK value equals the EN original OR starts with __MISSING__:. No already-translated keys are touched (verified by skipped=0 on the patch run). Loanwords that identify products/protocols stay in Latin: OAuth, MITM, MCP, A2A, RTK, Caveman, FTS5, HMAC, ZWJ, IANA, SDK, CLI, ENV, DEF, Codex, Antigravity, Anthropic.

Related Issues

Validation

  • python3 -c "import json; json.load(open(...))" — file is valid JSON.
  • Key parity vs en.json: 6961 / 6961 (0 missing / 0 extra).
  • __MISSING__: markers in uk-UA.json: 0 (was 577 before patch).
  • Built locally with npm run build (Next.js 16.2.6, webpack) — successful.
  • Service comes up; visually verified the translations render on Providers / API Manager / Combos / Quota / Settings (incl. new Authz section) / Webhooks / MCP / A2A / Skills / Health.
  • npm run lint, npm run test:unit — not run locally; this is a translation-only change with no code/structural modifications.

Tests Added Or Updated

None. Translation-only PR; no production code changed.

Reviewer Notes

  • ICU plural forms (apiManager.endpointsRestricted, settings.routingOpSummaryCount) use Ukrainian one/few/many/other categories: 1 → one, 2-4 → few, 5+ → many.
  • Long routing-DSL descriptions (drop-paragraph / replace-text / inject-billing-header / obfuscate-words) preserve the embedded English example phrases verbatim ("github.com/anomalyco/opencode", "You are OpenCode", "Here is some useful information…") because those are literal trigger fingerprints the operations reference — translating them would break the docstring's accuracy.
  • HMAC code recipes (Node.js / Python / Bash) keep the code examples in Latin script; only surrounding prose was translated.
  • The locale fix on editCutoffs ("обрізки" → "порогові значення") is technically pre-existing string-cleanup unrelated to the __MISSING__: set, but it was visibly broken on the Quota page so I bundled it here.

branben and others added 15 commits May 30, 2026 21:17
… scopes to all dynamic tool definitions (cheaper-inference#2958)

Integrated into release/v3.8.8
…ombo target's providerId over model-inferred provider (cheaper-inference#2946)

Integrated into release/v3.8.8
Signed-off-by: Xiangzhe <xiangzhedev@gmail.com>
Translates ~267 previously-English or __MISSING__ entries in the
Ukrainian locale, focused on the most user-visible surfaces:

- sidebar: all menu items, section labels, page subtitles
- header: page titles and descriptions
- apiManager: 3 __MISSING__ endpoint-restriction keys
- common: high-traffic UI labels (buttons, statuses, common nouns)
- settings: 7 newly-added Home-page quota/topology keys

Key parity with en.json restored: 0 missing, 0 extra.
…-ui-menu

fix(i18n): translate Ukrainian (uk-UA) menu and UI strings
…w-cn-endpoint-selector

feat(providers): add SiliconFlow endpoint selector
Follow-up to cheaper-inference#2981. Translates all remaining __MISSING__ entries and
addresses the high-traffic English fallbacks across the dashboard so
no `__MISSING__:` markers remain visible in any locale UI.

Scope (642 +/ 642 −, ~620 keys touched):

- apiManager: filter chips (status/type), schedule, visibility, day
  abbreviations, search placeholder, plural counts (ICU one/few/many).
- providers: page-section descriptions (Compatible, OAuth, Free tier,
  API key, Cloud Agent), Web Fetch chip, miniPlayground.testLabel.
- combos: wizard steps 1-4 (titles + descs), filters
  (All/Intelligent/Deterministic), usage guide buttons (Hide/Don't
  show again), email visibility hints, builder/manual model labels.
- usage / quota dashboard: stat cards (Total/Critical/Alert/Healthy),
  filters Type/Tier, purchase types (Subscription/OAuth Free/API Key),
  card labels (Updated/Refreshing/Resets in/Credits/Unlimited),
  evals strategy labels, history columns. Also fixes a pre-existing
  bad translation: "Редагувати обрізки" → "Редагувати порогові
  значення" (editCutoffs).
- analytics: full dashboard — diversity scoring, chart axes/labels,
  range presets (Today/Yesterday/Last 3 days/etc.), period buttons,
  infrastructure/performance/highlights sections.
- webhooks: full page including wizard (3 steps), howItWorks guide,
  HMAC verification recipes, deliveries log columns, integration
  kinds (Slack/Telegram/Discord/PagerDuty/Teams/Email/Custom),
  URL validator messages, per-integration form fields/placeholders.
- skills: marketplace tab, install modal, popular skills, ON/OFF/AUTO
  modes, search/pagination, errors.
- health: provider health matrix, lockouts/cooldowns, model pill
  summaries, score/last request/last error.
- mcpDashboard / a2aDashboard: transport modes, disabled states,
  intros, step-by-step setup instructions.
- settings.routing: all DSL operations (drop paragraph/replace text/
  inject billing header/obfuscate words/etc.), auto-routing variants
  (LKGP / Coding / Fast / Cheap / Offline / Smart), Antigravity
  signature modes, client cache_control preserve modes, vision
  bridge, payload rules editor, request limits, Codex fast-tier,
  Vercel relay deploy modal, ICU plural for op count.
- settings.authz (new section): 5-tier route classification, bypass
  policy, kill-switch, password prompts, error messages.
- cloudAgents, cache, proxyRegistry, miniPlayground, logs, costs,
  endpoint, media, agents, contextRtk, contextCaveman: remaining
  high-traffic strings.
- sidebar: gemini-code-assist feedback applied — "Білий лейбл" is
  unnatural in Ukrainian product copy, switched to "Брендування" /
  "Налаштування брендування" for whitelabeling / whitelabelingDesc.

Methodology: keys are only overwritten when the existing Ukrainian
value equals the English original OR begins with `__MISSING__:`. No
already-translated keys were touched (verified by skipped=0 on the
patch run). For ICU plurals, full Ukrainian one/few/many/other rules
are used where the source defined plural categories. Loanwords kept
in Latin script when they identify a product or protocol (OAuth,
MITM, MCP, A2A, RTK, Caveman, FTS5, HMAC, ZWJ, IANA, SDK, CLI, ENV).

Validation:

- Key parity vs en.json restored: 6961/6961 (0 missing, 0 extra).
- Remaining `__MISSING__:` markers in uk-UA.json: 0.
- File is valid JSON; diff is purely value changes in
  src/i18n/messages/uk-UA.json — no structural changes.
- Built and tested locally; service comes up; dashboard pages render
  the expected Ukrainian on Providers / API Manager / Combos / Quota
  / Settings (incl. Authz) / Webhooks / MCP / A2A / Skills / Health.

Related: cheaper-inference#2981 (initial menu/header translation, merged).
@Lion-killer
Lion-killer requested a review from diegosouzapw as a code owner May 31, 2026 11:56
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Note

Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported.

@kilo-code-bot

kilo-code-bot Bot commented May 31, 2026

Copy link
Copy Markdown

Code Review Summary

Status: 13 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 13
SUGGESTION 0
Issue Details (click to expand)

WARNING

File Line Issue
src/i18n/messages/uk-UA.json 174 retry still shows English "Retry" instead of Ukrainian "Повторити"
src/i18n/messages/uk-UA.json 1137-1143 themesPage section shows English "Themes", "Description", "Popular colors", "Custom theme", etc. instead of Ukrainian translations
src/i18n/messages/uk-UA.json 5300-5302 contextRtk.title and contextRtk.description show English "RTK Engine" and "Command-aware compression..."
src/i18n/messages/uk-UA.json 5302-5348 Multiple contextRtk keys show English: enabled, intensity, intensityMinimal, intensityStandard, intensityAggressive, toolResults, assistantMessages, codeBlocks, filterCatalogDesc, guidedConfigDesc, maxLines, maxChars, deduplicateThreshold, customFilters, filterTesting, pasteOutput, presetHigh, presetLow, presetMaxChars, presetMaxLines, presetMedium, run, result, previewEmpty, detected, tokensFiltered, filtersActive, requests, avgSavings, simpleMode, advancedMode, searchFilters, tooltipDedup, tooltipMaxChars, tooltipMaxLines
src/i18n/messages/uk-UA.json 5351-5369 contextCombos section shows English: title, description, createCombo, editCombo, deleteCombo, deleteConfirm, pipeline, addStep, removeStep, name, descriptionField, languagePacks, outputMode, assignToRouting, noAssignments, default, setAsDefault, save, cancel
src/i18n/messages/uk-UA.json 174 Multiple untranslated keys in common section (e.g., retry, expirationBannerExpiringSoon, errorCount, backupReasonManual, safeSearchModerate, activeLimiters, etc.)
src/i18n/messages/uk-UA.json 1137 themesPage entire section untranslated (missing ~8 keys)
src/i18n/messages/uk-UA.json 5300 contextRtk section has ~40 untranslated keys
src/i18n/messages/uk-UA.json 5351 contextCombos section has ~20 untranslated keys
src/i18n/messages/uk-UA.json 174 Several keys in common that should be translated for UI consistency
src/i18n/messages/uk-UA.json 5339 tokensFiltered, filtersActive, requests, avgSavings show English instead of Ukrainian
src/i18n/messages/uk-UA.json 5343 simpleMode shows lowercase "просто" instead of proper Ukrainian form
src/i18n/messages/uk-UA.json 5282-5290 vercelRelay* keys partially translated - "Vercel Relay розгорнуто успішно" mixes English product name with Ukrainian; consider consistency
src/i18n/messages/uk-UA.json 5300 contextRtk.description shows English instead of Ukrainian
Other Observations (not in diff)

The PR successfully removes all __MISSING__: markers and translates the high-traffic UI strings. However, there are remaining untranslated strings in sections that were likely missed because they contain placeholder values or are in sections not covered by the review scope.</n
Notable observations:

  • The JSON is valid (verified with jq)
  • Key parity with en.json: 6961 / 6961 keys (correct count)
  • No __MISSING__: markers remain (verified)
  • Translation methodology documented in PR description is appropriate
Files Reviewed (1 file)
  • src/i18n/messages/uk-UA.json - 13 untranslated strings found

@kilo-code-bot

kilo-code-bot Bot commented May 31, 2026 •

Copy link
Copy Markdown

Code Review Summary

Status: No Issues Found | Recommendation: Merge

The PR successfully removes all __MISSING__: markers from the Ukrainian locale file and translates ~620 keys as described. All changed lines in this PR are properly translated.

Incremental Changes (since previous review)

This PR received 3 additional translation improvements:

  • presetLow: Fixed incomplete translation ("світло" → "Легкий")
  • presetMaxLines: Improved Ukrainian translation accuracy
  • tooltipMaxLines: Corrected wording and grammar
Files Reviewed (1 file)
  • src/i18n/messages/uk-UA.json — Translation-only changes
Other Observations (not in diff - pre-existing untranslated strings)

The following untranslated strings exist in the file but were not modified in this PR (shown as context, not + lines in the diff). These are pre-existing issues outside the scope of this PR:

  1. common.retry (line 174): English "Retry" — context key

These untranslated strings are in sections that were not within the PR's scope (as described: "high-traffic English fallbacks across the dashboard"). They could be addressed in a follow-up PR if full Ukrainian UI coverage is desired.


Reviewed by laguna-m.1-20260312:free · 220,291 tokens

…xtRtk, contextCombos

Follow-up commit addressing the 13 WARNING items kilo-code-bot flagged
on this PR. All were pre-existing English fallbacks in sections not
covered by the original commit.

Translated:

- common (6): retry, expirationBannerExpiringSoon, errorCount,
  backupReasonManual, safeSearchModerate, activeLimiters.
- themesPage (7): full section — title, description, presetColors,
  customTheme, customThemeDesc, createTheme, activePreset.
- contextRtk (22+): page chrome and engine config — title,
  description, enabled, intensity (Minimal/Standard/Aggressive),
  toolResults, assistantMessages, codeBlocks, maxLines, maxChars,
  filterTesting, pasteOutput placeholder, run, result, previewEmpty,
  detected, tokensFiltered, filtersActive, requests, avgSavings,
  advancedMode kept ("Просунутий" already present).
- contextRtk.simpleMode: forced overwrite from low-quality "просто"
  → "Простий режим" (proper noun-phrase form matching advancedMode).
- contextCombos (20): full compression-combos editor — title,
  description, createCombo, editCombo, deleteCombo, deleteConfirm,
  pipeline, addStep, removeStep, name, descriptionField,
  languagePacks, outputMode, assignToRouting, noAssignments,
  default, setAsDefault, save, cancel, enabled.

Not addressed:

- vercelRelay* (bot flagged "consistency"): kept as-is — "Vercel
  Relay" is a product proper noun, same handling as OmniRoute /
  GitHub / Slack elsewhere in this file.

Methodology unchanged from the parent commit: only overwrite keys
whose existing Ukrainian value equals English or starts with
`__MISSING__:`. One forced overwrite (`contextRtk.simpleMode`)
explicitly noted above.
Three quality fixes in contextRtk caught while reviewing the kilo-bot
feedback in detail:

- presetLow: "світло" → "Легкий". The English source is "Light",
  sibling of presetHigh ("Aggressive") and presetMedium ("Standard")
  — i.e. it labels a low-intensity preset, not the noun "light"
  (opposite of darkness). "Легкий" matches the lightweight-intensity
  meaning and reads naturally alongside "Стандартний" / "Агресивний".

- presetMaxLines: "Макс вихідних ліній" → "Макс. вихідних рядків".
  "Lines" here refers to rows of text. "Лінія" in Ukrainian means a
  geometric line; for text output the correct word is "рядок".

- tooltipMaxLines: previously rendered the inverse meaning of the
  source. EN: "Maximum lines to keep from command output. Excess is
  truncated." Previous UK: "Максимальна кількість рядків, які не
  потрібно виводити командою. Надлишки обрізаються." (says the
  opposite — "lines that should NOT be output"). New: "Максимальна
  кількість рядків виводу команди, які зберігаються. Надлишок
  обрізається."
@diegosouzapw

Copy link
Copy Markdown
Collaborator

Obrigado pela contribuição contínua com a tradução! Integramos manualmente a PR #2981 hoje mais cedo, mas isso gerou conflitos maciços no arquivo uk-UA.json para esta PR (#2988). Para podermos seguir, por favor atualize sua branch com a main e rode o script npm run i18n:run localmente para sincronizar as chaves com as alterações mais recentes.

@diegosouzapw
diegosouzapw changed the base branch from main to release/v3.8.8 June 1, 2026 10:37
…followup

# Conflicts:
#	.env.example
#	.source/browser.ts
#	.source/server.ts
#	docs/frameworks/MCP-SERVER.md
#	open-sse/handlers/chatCore.ts
#	open-sse/mcp-server/server.ts
#	src/app/(dashboard)/dashboard/api-manager/ApiManagerPageClient.tsx
#	src/i18n/messages/uk-UA.json
#	tests/unit/api-manager-page-static.test.ts
@diegosouzapw
diegosouzapw merged commit 8ef8a9b into cheaper-inference:release/v3.8.8 Jun 1, 2026
1 of 2 checks passed
@diegosouzapw

Copy link
Copy Markdown
Collaborator

Merged into release/v3.8.8 🇺🇦🎉 Thanks @Lion-killer! Your branch was behind the current release, so I merged release in and reconciled uk-UA.json: kept release's up-to-date key structure and overlaid your Ukrainian translations wherever the value was English-verbatim or __MISSING__ (709 keys improved). Ships next release.

diegosouzapw added a commit that referenced this pull request Jun 1, 2026
…env-doc fixes

- bump package.json / open-sse / electron / openapi / llm.txt to 3.8.8
- restructure CHANGELOG: Unreleased -> [3.8.8], dedup broken Notion/MCP block (was 12x)
- add every PR since v3.8.7 that was missing: Quota Share Engine (#2859/#3022/#3032),
  page redesigns (#2827/#2839/#2847/#2849/#2869/#2873), and fixes #2960/#2973/#2984/
  #3021/#3029/#3031/#3035/#3036/#3037/#3039/#3043/#3028; folded #2978/#2988/#3041
- insert [3.8.8] section into all 41 i18n CHANGELOGs + sync llm.txt mirrors
- document OMNIROUTE_PLUGINS_ALLOW_EXEC in .env.example + ENVIRONMENT.md (env-doc-sync gap)
@diegosouzapw diegosouzapw mentioned this pull request Jun 2, 2026
HouMinXi pushed a commit to HouMinXi/OmniRoute that referenced this pull request Aug 2, 2026
…r-inference#2988)

Integrated into release/v3.8.8. Applied your Ukrainian translations across the current uk-UA.json structure (709 keys improved from English/__MISSING__ to proper Ukrainian), preserving release's latest key set. Thanks @Lion-killer!
HouMinXi pushed a commit to HouMinXi/OmniRoute that referenced this pull request Aug 2, 2026
…env-doc fixes

- bump package.json / open-sse / electron / openapi / llm.txt to 3.8.8
- restructure CHANGELOG: Unreleased -> [3.8.8], dedup broken Notion/MCP block (was 12x)
- add every PR since v3.8.7 that was missing: Quota Share Engine (cheaper-inference#2859/cheaper-inference#3022/cheaper-inference#3032),
  page redesigns (cheaper-inference#2827/cheaper-inference#2839/cheaper-inference#2847/cheaper-inference#2849/cheaper-inference#2869/cheaper-inference#2873), and fixes cheaper-inference#2960/cheaper-inference#2973/cheaper-inference#2984/
  cheaper-inference#3021/cheaper-inference#3029/cheaper-inference#3031/cheaper-inference#3035/cheaper-inference#3036/cheaper-inference#3037/cheaper-inference#3039/cheaper-inference#3043/cheaper-inference#3028; folded cheaper-inference#2978/cheaper-inference#2988/cheaper-inference#3041
- insert [3.8.8] section into all 41 i18n CHANGELOGs + sync llm.txt mirrors
- document OMNIROUTE_PLUGINS_ALLOW_EXEC in .env.example + ENVIRONMENT.md (env-doc-sync gap)
Poid-ZA pushed a commit to Poid-ZA/OmniRoute that referenced this pull request Aug 5, 2026
…r-inference#2988)

Integrated into release/v3.8.8. Applied your Ukrainian translations across the current uk-UA.json structure (709 keys improved from English/__MISSING__ to proper Ukrainian), preserving release's latest key set. Thanks @Lion-killer!
Poid-ZA pushed a commit to Poid-ZA/OmniRoute that referenced this pull request Aug 5, 2026
…env-doc fixes

- bump package.json / open-sse / electron / openapi / llm.txt to 3.8.8
- restructure CHANGELOG: Unreleased -> [3.8.8], dedup broken Notion/MCP block (was 12x)
- add every PR since v3.8.7 that was missing: Quota Share Engine (cheaper-inference#2859/cheaper-inference#3022/cheaper-inference#3032),
  page redesigns (cheaper-inference#2827/cheaper-inference#2839/cheaper-inference#2847/cheaper-inference#2849/cheaper-inference#2869/cheaper-inference#2873), and fixes cheaper-inference#2960/cheaper-inference#2973/cheaper-inference#2984/
  cheaper-inference#3021/cheaper-inference#3029/cheaper-inference#3031/cheaper-inference#3035/cheaper-inference#3036/cheaper-inference#3037/cheaper-inference#3039/cheaper-inference#3043/cheaper-inference#3028; folded cheaper-inference#2978/cheaper-inference#2988/cheaper-inference#3041
- insert [3.8.8] section into all 41 i18n CHANGELOGs + sync llm.txt mirrors
- document OMNIROUTE_PLUGINS_ALLOW_EXEC in .env.example + ENVIRONMENT.md (env-doc-sync gap)
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…r-inference#2988)

Integrated into release/v3.8.8. Applied your Ukrainian translations across the current uk-UA.json structure (709 keys improved from English/__MISSING__ to proper Ukrainian), preserving release's latest key set. Thanks @Lion-killer!
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…env-doc fixes

- bump package.json / open-sse / electron / openapi / llm.txt to 3.8.8
- restructure CHANGELOG: Unreleased -> [3.8.8], dedup broken Notion/MCP block (was 12x)
- add every PR since v3.8.7 that was missing: Quota Share Engine (cheaper-inference#2859/cheaper-inference#3022/cheaper-inference#3032),
  page redesigns (cheaper-inference#2827/cheaper-inference#2839/cheaper-inference#2847/cheaper-inference#2849/cheaper-inference#2869/cheaper-inference#2873), and fixes cheaper-inference#2960/cheaper-inference#2973/cheaper-inference#2984/
  cheaper-inference#3021/cheaper-inference#3029/cheaper-inference#3031/cheaper-inference#3035/cheaper-inference#3036/cheaper-inference#3037/cheaper-inference#3039/cheaper-inference#3043/cheaper-inference#3028; folded cheaper-inference#2978/cheaper-inference#2988/cheaper-inference#3041
- insert [3.8.8] section into all 41 i18n CHANGELOGs + sync llm.txt mirrors
- document OMNIROUTE_PLUGINS_ALLOW_EXEC in .env.example + ENVIRONMENT.md (env-doc-sync gap)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.