* feat(docs): mirror every docs/ page in all 65 locales Extends the documentation mirrors from the 22-page core set (#13940) to every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors (6,208 new), language bars rewritten for the full locale list, state adopted so the blocking drift gate now covers all 152 pages. run-translation.mjs: an oversized block made only of table rows or list items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is cut at item boundaries and rejoined without a blank line — the single 16-40 KB request outlived the backend socket for verbose scripts. 48 older mirrors whose tables had lost rows were retranslated with --force. * docs(i18n): refresh mirrors for the sources the base changed since the branch cut Section-level retranslation of the 29 docs (and README.md) whose source or mirrors moved on release/v3.8.51 during the run, then state adoption; the drift gate is green again on the merged tree.
18 KiB
Homologation Suite (npm run homolog) (മലയാളം)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
ഹോമൊലോഗേഷൻ VPS-ൽ പ്രവർത്തിക്കുന്ന OmniRoute ഡിപ്ലോയ്മെന്റിന്റെ യഥാർത്ഥ-പരിസ്ഥിതി E2E സാധൂകരണം
(HOMOLOG_BASE_URL, ഉദാ. http://192.168.0.15:20128). മാനുവൽ റിലീസ്
STOP #2 ചെക്ക്ലിസ്റ്റിന് പകരമായി, ഒരൊറ്റ കമാൻഡ് സ്വയമേവ പ്രവർത്തിച്ച് തെളിവുകൾ സൃഷ്ടിക്കുന്നു.
ഇത് ഉൾക്കൊള്ളുന്നവ
| ലെയർ | ഇത് പരിശോധിക്കുന്നത് | നടപ്പാക്കൽ |
|---|---|---|
| L0 — ഹെൽത്ത്/പാരിറ്റി | /api/monitoring/health, status: "healthy"-ഉം പ്രതീക്ഷിക്കുന്ന പതിപ്പും സഹിതം 200 പ്രതികരണം നൽകുന്നു |
scripts/homolog/lib/parity.mjs |
| L1a — താൽക്കാലിക കീ | അഡ്മിൻ ലോഗിൻ → POST /api/keys, റണ്ണിനായി പരിമിതമായ സ്കോപ്പുള്ള API കീ സൃഷ്ടിക്കുന്നു; ഫലം എന്തായാലും finally ബ്ലോക്കിൽ അത് പിൻവലിക്കുന്നു (DELETE /api/keys/:id) |
scripts/homolog/lib/adminClient.mjs |
| L1b — API ഉപരിതലം | /v1/models കാറ്റലോഗ്, യഥാർത്ഥ നോൺ-സ്ട്രീമിംഗ് ചാറ്റ് കംപ്ലീഷൻ (ടയർ-നിർണായക മോഡൽ, max_tokens: 5), അസാധുവായ കീയ്ക്കുള്ള 401, പൊതുവായ /api/monitoring/health |
tests/homolog/api/core.http (httpYac) |
| L1c — SSE സ്ട്രീമിംഗ് | യഥാർത്ഥ സ്ട്രീമിംഗ് ചാറ്റ് കംപ്ലീഷൻ; text/event-stream, കുറഞ്ഞത് ഒരു ഉള്ളടക്ക ഡെൽറ്റ, ഒരു [DONE] ടെർമിനേറ്റർ എന്നിവ ഉറപ്പാക്കുന്നു |
scripts/homolog/lib/sseCheck.mjs |
| L2 — യഥാർത്ഥ പ്രൊവൈഡർമാർ | തത്സമയ /v1/models കാറ്റലോഗിലുള്ള ഓരോ നിർണായക പ്രൊവൈഡർക്കും കുറഞ്ഞ ചെലവിലുള്ള ഓരോ ചാറ്റ് അഭ്യർത്ഥന വീതം, promptfoo ഉപയോഗിച്ച് തത്സമയം സൃഷ്ടിക്കുന്നു |
scripts/homolog/gen-promptfoo.mjs + scripts/homolog/lib/providerTiers.mjs |
| L4a — UI ഓതന്റിക്കേഷൻ | യഥാർത്ഥ ലോഗിൻ ഫോം വഴി ഒരിക്കൽ ലോഗിൻ ചെയ്യുകയും UI ലെയറിലുടനീളം സെഷൻ (storageState) വീണ്ടും ഉപയോഗിക്കുകയും ചെയ്യുന്നു |
tests/homolog/ui/auth.setup.ts |
| L4b — UI റൂട്ടുകൾ | src/app/(dashboard)/dashboard-ന് കീഴിലുള്ള ഓരോ സ്റ്റാറ്റിക് page.tsx-ഉം (ഫയൽസിസ്റ്റത്തിൽ നിന്ന് കണ്ടെത്തുന്നു; ഡൈനാമിക് [param] റൂട്ടുകൾ ഒഴിവാക്കുന്നു) HTTP പിശകോ, പേജ് പിശകോ, Next.js എറർ ബൗണ്ടറിയോ ഇല്ലാതെ ലോഡ് ചെയ്യുന്നു |
tests/homolog/ui/routes.spec.ts |
| L4c — UI നിർണായക ഫ്ലോ | ഡാഷ്ബോർഡ് UI വഴി ഒരു API കീ സൃഷ്ടിക്കുകയും അത് വീണ്ടും പിൻവലിക്കുകയും ചെയ്യുന്നു (VPS-ൽ അവശിഷ്ടമൊന്നും വിടുന്നില്ല) | tests/homolog/ui/api-key-flow.spec.ts |
| L5 — ഏകീകൃത റിപ്പോർട്ട് | httpYac (junit-to-ctrf വഴി), promptfoo→CTRF അഡാപ്റ്റർ, Playwright CTRF റിപ്പോർട്ടർ എന്നിവയെ ഒരൊറ്റ homolog-ctrf.json ഫയലിലേക്കും മനുഷ്യർക്ക് വായിക്കാവുന്ന homolog-report/summary.md റിപ്പോർട്ടിലേക്കും ലയിപ്പിക്കുന്നു |
scripts/homolog/run.mjs |
റീപ്ലേയിൽ LLM ഇടപെടൽ ഒന്നുമില്ല — ഇത് നിർണായകമായി ആവർത്തിക്കാവുന്ന ഒരു റിഗ്രഷൻ പരിശോധനാസമുച്ചയമാണ്, ഒരു eval അല്ല. ഭാവിയിലെ പരിപാലന പ്രവർത്തനങ്ങളിൽ മാത്രമാണ് AI ഉൾപ്പെടുന്നത് (താഴെയുള്ള റോഡ്മാപ്പ് കാണുക).
മുൻവ്യവസ്ഥകൾ
.env.homolog.exampleഎന്നത്.env.homolog-ലേക്ക് പകർത്തി (gitignored — ഇത് ഒരിക്കലും commit ചെയ്യരുത്) ഇനിപ്പറയുന്നവ പൂരിപ്പിക്കുക:HOMOLOG_BASE_URL— ലക്ഷ്യ deploy, ഉദാ.http://192.168.0.15:20128.HOMOLOG_ADMIN_PASSWORD— ആ deploy-ന്റെ dashboard management password.HOMOLOG_CRITICAL_PROVIDERS— യഥാർഥ smoke chat request ലഭിക്കേണ്ട, കോമ ഉപയോഗിച്ച് വേർതിരിച്ച provider prefix-കൾ (ഉദാ.openai,anthropic,gemini,codex,grok,glm,deepseek,openrouter).HOMOLOG_API_KEY— സാധാരണ run-കളിൽ ഒഴിച്ചിടുക; suite സ്വന്തം താൽക്കാലിക key സൃഷ്ടിക്കുകയും revoke ചെയ്യുകയും ചെയ്യും. ഒറ്റ layer മാത്രമായി debug ചെയ്യാൻ ഇത് സജ്ജീകരിക്കുക.
- repo-യിൽ
npm installപ്രവർത്തിപ്പിക്കുക (suite-ന്റെ dependency-കൾ —httpyac,promptfoo,playwright-ctrf-json-reporter,junit-to-ctrf,ctrf— സാധാരണ devDependencies ആണ്). - browser binary-കൾ ഇതിനകം ലഭ്യമല്ലെങ്കിൽ
npx playwright installപ്രവർത്തിപ്പിക്കുക.
പ്രവർത്തിപ്പിക്കേണ്ട വിധം
npm run homolog
പ്രാദേശിക package.json-മായി version പൊരുത്തപ്പെടാത്ത ഒരു deploy-നെതിരെ സാധൂകരിക്കാൻ
(ഉദാ. ഇപ്പോഴും മുമ്പത്തെ patch release-ലുള്ള ഒരു homologation box), പ്രതീക്ഷിക്കുന്ന
version വ്യക്തമായി override ചെയ്യുക:
HOMOLOG_EXPECT_VERSION=3.8.47 npm run homolog
ഏതെങ്കിലും layer പരാജയപ്പെട്ടാൽ run non-zero നിലയിൽ അവസാനിക്കും; പരാജയം സംഭവിച്ചാലും,
അത് സൃഷ്ടിച്ച താൽക്കാലിക API key revoke ചെയ്യാൻ എപ്പോഴും ശ്രമിക്കും
(scripts/homolog/run.mjs-ലെ finally block).
റിപ്പോർട്ട് വായിക്കുന്നത്
എല്ലാ output-ഉം homolog-report/-ൽ ലഭിക്കും (gitignored):
summary.md— stdout-ൽ print ചെയ്യുന്ന അതേ table, ഓരോ layer-നും ഓരോ row (✅/❌ + വിശദാംശം).homolog-ctrf.json— ഏകീകൃത CTRF report (API/SSE, provider-smoke, UI result-ുകളുടെ merge) — release STOP #2 checklist-നൊപ്പം attach ചെയ്യേണ്ട artifact ഇതാണ്.httpyac-junit.xml,api-ctrf.json,providers-ctrf.json,ui-ctrf.json— ഓരോ layer-ന്റെയും അസംസ്കൃത/intermediate report-കൾ.promptfooconfig.yaml,provider-misses.json— നിലവിലെ run-നായി സൃഷ്ടിച്ച promptfoo config-ഉം live catalog-ൽ ഇല്ലാതിരുന്ന ഏതെങ്കിലും critical provider-കളും.
L0 പരാജയപ്പെട്ടാൽ ഉടൻതന്നെ നിർത്തും (താൽക്കാലിക key സൃഷ്ടിക്കില്ല), കാരണം version/health പൊരുത്തക്കേട് എന്നത് തുടർന്നുള്ള എല്ലാ layer-കളും തെറ്റായ deploy-നെ സാധൂകരിക്കും എന്നാണ്.
UI-യിൽ സാധുവായ മാറ്റങ്ങൾ വരുമ്പോൾ baseline പുനഃക്രമീകരിക്കുന്നത്
L4b (route smoke), L4c (API-key UI flow) എന്നിവ snapshot-ുകൾക്കു പകരം യഥാർഥ DOM locator-ുകളാണ് ഉപയോഗിക്കുന്നത്; അതിനാൽ സാധുവായ മിക്ക UI മാറ്റങ്ങൾക്കും suite update ആവശ്യമില്ല. ഒരു മാറ്റം locator-നെ തകരാറിലാക്കുമ്പോൾ (ഉദാ. പുനർനാമകരണം ചെയ്ത button label അല്ലെങ്കിൽ മറ്റൊരിടത്തേക്ക് മാറ്റിയ settings page):
- നിലവിലെ source-നെതിരെ locator വീണ്ടും സ്ഥിരീകരിക്കുക (ഓരോ locator-വും ഏത് file/line-നെതിരെ സ്ഥിരീകരിച്ചതാണെന്ന് spec-ുകളിൽ ഇതിനകം രേഖപ്പെടുത്തിയിട്ടുണ്ട് — അതേ രീതി പിന്തുടരുക, ഊഹിക്കരുത്).
tests/homolog/ui/-ലെ spec update ചെയ്യുക.- പരിഹാരം സ്ഥിരീകരിക്കാൻ VPS-നെതിരെ
npm run homolog(അല്ലെങ്കിൽ ബാധിച്ച Playwright spec മാത്രം) വീണ്ടും പ്രവർത്തിപ്പിക്കുക, തുടർന്ന് commit ചെയ്യുക.
ഈ suite-ൽ visual/pixel baseline ഇല്ല (F1) — അതിനായി Roadmap കാണുക.
Roadmap (F2 / F3)
രൂപകൽപ്പനയും ഘട്ടംഘട്ടമായ rollout-ഉം internal planning spec ആയ
_tasks/superpowers/specs/2026-07-13-homolog-e2e-suite-design.md-ലുണ്ട് (link ചെയ്തിട്ടില്ല — internal
_tasks/ artifact ആണ്, ഈ repo-യുടെ tracked docs-ന്റെ ഭാഗമല്ല). സംഗ്രഹം:
- F2 — പൂർണ്ണ walkthrough recording → Playwright Test Agents (
planner/generator) അതിനെ flow spec-ുകളാക്കി മാറ്റുന്നു (combo സൃഷ്ടിക്കുക, provider test ചെയ്യുക, settings edit ചെയ്യുക, MCP tool-ുകൾ) + dynamic data-യുടെ (metric-ുകൾ, timestamp-ുകൾ, log-ുകൾ) മുകളിൽ mask-ുകളുള്ള visual regression baseline (Lost Pixel) + ഓരോ release-നും ഒരുhealermaintenance routine. - F3 — resilience/contract/wiring coverage: devbox-ൽ toxiproxy + ഒരു വ്യാജ OpenAI-compatible provider, അതിലേക്ക് ചൂണ്ടുന്ന VPS-ലെ ഒരു
homolog-resiliencecombo (injected timeout →/api/monitoring/healthവഴി fallback + circuit breaker open/close സ്ഥിരീകരിക്കുക);docs/openapi.yaml-നെതിരെയുള്ള gated Schemathesis contract testing (കുറഞ്ഞ--max-examples, സ്ഥിരമായ seed-ുകൾ, non-LLM endpoint-ുകൾ മാത്രം); കൂടാതെnpm run homolog+ അതിന്റെsummary.mdഎന്നിവ/generate-releaseSTOP #2 ഘട്ടത്തിലേക്ക് wire ചെയ്യുക.