Files
OmniRoute/docs/i18n/ig/docs/ops/RELEASE_CHECKLIST.md
Diego Rodrigues de Sa e Souza 58f88a83e4 feat(i18n): 7 new locales — Hausa, Yoruba, Igbo, Amharic, Uzbek, Georgian, Armenian (66 locales) (#13727)
Batch 3 (last) of the locale-expansion plan: ha, yo, ig, am, uz, ka, hy on every surface — dashboard catalog, docs mirror (22-file core + llm.txt + CHANGELOG), CLI catalog, README flag block, locale tables and 🌐 language bars. Also closes the key gap the batch-1 (43 keys) and batch-2 (10 keys) catalogs carried since their base merges, fixes the Igbo "Model" copy and allowlists the Uzbek cognate. Translation-ratio baseline covers 65 locales.

⚠️ base-red inherited: #12732
2026-09-15 09:50:01 -03:00

30 KiB
Raw Blame History

RELEASE_CHECKLIST (Igbo)

🌐 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 · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 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



title: "Ndepụta Nlele Mwepụta" version: 3.8.51 lastUpdated: 2026-08-28

Ndepụta Nlele Mwepụta

Emelitere ikpeazụ: 2026-08-28 — v3.8.51 Usoro mwepụta e mere ka ọ dị mfe nke na-eji nkà Claude Code eme akpaaka.

Debe kwụ/branch ka ọ bụrụ green n'etiti mwepụta: lee RELEASE_GREEN.md (ezinụlọ /green-prs + npm run check:release-green + /babysit + nke abalị). Ịgba nke a site n'oge ruo n'oge — ọkachasịkwa tupu ndepụta nlele a — na-eme ka PR mwepụta malite na green.

TL;DR

# 1. Bulie ụdị + mepụta CHANGELOG (nkà)
/version-bump-cc patch    # ma ọ bụ minor/major

# 2. Gbaa ọnụ ụzọ nyocha ogo na mpaghara
npm run check              # lint + ule
npm run test:coverage      # ọnụ ụzọ mkpuchi zuru ezu (60/60/60/60)

# 3. Wuo ma mee ule smoke
npm run build
npm run test:e2e           # nhọrọ, mana a na-atụ aro ya

# 4. Mepụta mwepụta (nkà)
/generate-release-cc

# 5. Bugharịa gaa mmepụta (nkà)
/deploy-vps-both-cc        # ma ọ bụ akamai-cc / local-cc

# 6. Dekọọ ihe akaebe mwepụta (nkà)
/capture-release-evidences-cc

Mbipụta npm A Tụkwasịrị Obi (ndabara kemgbe v3.8.51) — nke a na-edobe n'ọkwa mgbe a rịọrọ ya, nke ozugbo dịka ụzọ ndabere

npm-publish.yml na-ebipụta site na npm Trusted Publishing (OIDC) na ndabara: ọrụ stage-npm (nke GitHub na-akwado) na-agbanwe id-token GitHub ka ọ bụrụ nzere npm nke na-adịru obere oge maka ọsọ ahụ — enweghị token npm na-adịte aka n'ime ihe nzuzo repository, enweghị arịrịọ 2FA, ma agbakwunyere provenance. Nke ahụ bụ ụzọ ịgafe ihe npm kwadoro ugbu a ka a na-akwụsị token ndị na-amafere 2FA; ọ na-eweghachi usoro akpaaka zuru ezu nke project ahụ nwere ruo v3.8.48 ma ka na-edobe nkwa WS1.3 (token agbapụtara enweghị ike ibipụta naanị ya — token adịghị).

Nhazi otu ugboro (onye nwe ya): npmjs.com → package omniroute → Settings → Trusted Publisher → GitHub: owner diegosouzapw, repo OmniRoute, workflow npm-publish.yml (environment: none). Ruo mgbe nke ahụ dị, nzọụkwụ akpaaka ahụ ga-ada na ENEEDAUTH: ziga ya ọzọ site na publish_mode=staged (n'okpuru) ma ọ bụ direct.

Mbipụta e debere n'ọkwa (mgbe a rịọrọ ya — publish_mode=staged)

Workflow npm-publish anaghịzi ebipụta ozugbo: ọ na-ebido tarball e kwakọrọ (check:pack-boot) ma mesịa gbaa npm stage publish — a na-edobe kpọmkwem bytes ahụ na registry, enweghị ike ịwụnye ha ruo mgbe onye nwe ya kwadoro. E bugharịla ọnụ ụzọ 2FA mmadụ gaa MGBE ihe akaebe gasịrị, ọ bụghị tupu ya.

Usoro onye nwe ya mgbe workflow ghọrọ green:

  1. npm stage list omniroute — chọta stage id (a na-ebipụtakwa ya na nchịkọta workflow).
  2. Nyochaa bytes e debere n'ọkwa (a na-atụ aro ya): npm stage download <id>, wee wụnye tarball ebudatara n'ime temp prefix ma malite ya (npm run check:pack-boot na-eme otu mkpebi pack→install→boot ahụ na-akpaghị aka na CI).
  3. npm stage approve <id> — arịrịọ 2FA BỤ mbipụta ahụ. npm stage reject <id> na-atụfu ya.
  4. Nchedo mgbe mbipụta gasịrị: onye nyocha mgbe mbipụta gasịrị (WS1.4 nke atụmatụ v3.8.49) na-etinye ụdị e bipụtara site na public registry n'ime container dị ọcha ma malite ya.

Ụzọ ndabere mberede: workflow_dispatch nwere publish_mode=direct na-eweghachi npm publish ozugbo nke usoro ochie (jiri naanị ma ọ bụrụ na staging n'onwe ya anaghị arụ ọrụ nke ọma; detuo ihe kpatara ya).

Ime ka o sie ike otu ugboro (onye nwe ya, npmjs.com): hazie Trusted Publisher maka omniroute na ọnọdụ stage-only ka token na-adịte aka agbapụtara ghara inwe ike ime npm publish ozugbo site n'ebe ọ bụla — CI nwere ike naanị idobe ya n'ọkwa; naanị 2FA onye nwe ya na-ewepụta ya.

Usoro maka artifact mebiri emebi (agbanwebeghị): npm deprecate omniroute@<bad> "<reason> — use <fixed>" dịka mmeghachi omume ndabara (n'ime nkeji, enwere ike iweghachi ya); jiri npm unpublish naanị n'ime windo awa 72/enweghị-dependents, ọ bụghịkwa dịka nzọụkwụ mbụ. Docker: edegharịla version tag mgbe ọ bụla — rollback bụ ịtụgharị latest ka ọ rụtụ aka na digest ikpeazụ dị mma.

Docker Hub latest (achọrọ na mbipụta SemVer stable ọ bụla): workflow docker-publish ga-etinyerịrị tag na ma X.Y.Z ma, mgbe should-promote-latest.sh kwetara na nke a bụ SemVer stable kachasị elu, :latest nwere otu digest ahụ. Mgbe ọrụ ahụ gasịrị: digest Hub latest ga-abụ otu ihe na digest SemVer ọhụrụ ahụ, last_updated agbanwekwala. Ahapụla :latest n'elu build ochie mgbe ndetu mwepụta na-ekwu maka ndozi ndị dị naanị na git. Compose quickstarts na-eji :latest; GitOps kwesịrị ịnọgide na-atụgide X.Y.Z. Lee Ọwa mwepụta Docker na #10317.

Ụzọ Ọsọ Hotfix (akara hotfix)

PR e nyere akara hotfix na-awụfe nnukwu matriks CI (E2E nwere shard 9, coverage ratchet, quality-gate, quality-extended) ma debe ụzọ nyocha ndị dị ọsọ ma na-enye akara doro anya: build, unit shards, integration, vitest, lint/typecheck, docs-sync, check:pack-artifact na nnwale boot-smoke nke tarball (check:pack-boot). Ebumnuche: ka ihe niile bụrụ green n'ime ≤15min kama ~33min.

Iwu mbata — a chọrọ ha anọ niile (e mere ya dịka ụzọ mberede Chromium/VS Code/Node):

  1. Ogo nsogbu: production emebiela — artifact e bipụtara na-adaba mgbe ọ na-amalite / mmezi nchekwa / nsogbu ahụ metụtara onye ọrụ ọ bụla nke release ahụ. "Dị mkpa" abụghị "emebiela".
  2. Ikike: naanị onye nwe repository na-etinye akara hotfix. Akara ahụ BỤ nkwado ahụ — emela ya n'onwe gị na PR campaign.
  3. Ihe akaebe: ahụ PR na-ejikọta run heavy gara aga nke zuru oke ma bụrụ green (suite nke ọrụ ndị a wụfere gaara enyocha ọzọ) tinyere nnwale nke mmezi ahụ nke dara na mbụ ma gafee emesịa.
  4. Oke: naanị cherry-pick — mmezi kacha nta, enweghị refactor, enweghị mgbanwe ndị ọzọ esonyere ya.

A na-enyocha ọzọ akụkụ coverage/ratchet a wụfere na full run na-esote na branch release (release-green na-aga n'ihu) — ụzọ a na-awụfe naanị ICHERE, ọ naghị awụfe validation. Diff ndị bụ naanị nnwale (faịlụ niile dị n'okpuru tests/, ọ dịghị nke dị n'okpuru tests/e2e/) na-awụfe matriks E2E na-akpaghị aka, na-enweghị akara ọ bụla.

Ndepụta Nlele Zuru Ezu

Tupu Release

  • Ejikọtala PR niile ezubere maka release a na release/vX.Y.0
  • Emechiela item Linear/issue niile ka meghere maka version a ma ọ bụ bugharịa ha na milestone na-esote
  • CI bụ green na branch release/vX.Y.0
  • Enweghị akara TODO(release) na code: grep -r "TODO(release)" src/ open-sse/
  • Docker base image bụ nke kachasị ọhụrụ (ugbu a node:24.15.0-trixie-slim)

Version & Changelog

  • Gbaa /version-bump-cc <patch|minor|major> (nkà Claude Code)
    • Na-ebuli version na package.json, electron/package.json
    • Na-emepụta CHANGELOG.md ọzọ site na commit git kemgbe tag ikpeazụ
    • Na-emelite badge README.md
  • Jiri aka nyochaa CHANGELOG.md ma hichaa ozi commit ma ọ bụrụ na ọ dị mkpa
  • Gbaa mbọ hụ na ngalaba semver kachasị ọhụrụ na CHANGELOG.md hà nhata version dị na package.json
  • Debe ## [Unreleased] dịka ngalaba changelog mbụ maka ọrụ ndị na-abịa
  • Melite docs/openapi.yamlinfo.version ga-aharịrị version dị na package.json

Ogo Code

  • npm run lint — njehie 0 (ịdọ aka ná ntị ndị ahụ dịbu adị)
  • npm run typecheck:core — dị ọcha
  • npm run typecheck:noimplicit:core — dị ọcha (strict)
  • npm run check:cycles — enweghị dependency okirikiri
  • npm run check:any-budget:t11 — nọ n'ime budget
  • npm run check:route-validation:t06 — dị ọcha
  • npm run check:node-runtime — e mezuru runtime floor a na-akwado (>=22.22.2 <23, >=24.0.0 <27, dịka SUPPORTED_NODE_RANGE dị na src/shared/utils/nodeRuntimeSupport.ts; dakọtara na engines nke package.json)

Nnwale

  • npm run test:unit — gafere
  • npm run test:vitest — gafere (server MCP, autoCombo, cache)
  • npm run test:coverage — e mezuru gate 60/60/60/60 (statements/lines/functions/branches)
  • npm run test:integration — gafere (ọ bụrụ na mgbanwe metụtara DB / handlers)
  • npm run test:combo:matrix — gafere (matriks atụmatụ combo: na-egosi n'ụzọ deterministic mkpebi nhọrọ nke atụmatụ routing ọha 19 niile; gbaa ya mgbe ị na-emetụ combo routing, strategy resolution, ma ọ bụ fallback logic)
  • RUN_COMBO_LIVE=1 npm run test:combo:livenhọrọ/jiri aka (nnwale smoke real-upstream nke gate na-achịkwa; na-enweta snapshot DB read-only site na VPS root@192.168.0.15; na-akpọ provider n'ezie, na-eri credit; ọ dịghị mgbe ọ na-agba na CI; ọ na-awụfe nke ọma mgbe gate adịghị)
  • npm run test:combo:live:vpsnhọrọ/jiri aka (nnwale smoke VPS live nke Phase-3: ọnọdụ HTTP 7 megide server .15 dị live site na Node ESM nkịtị; chọrọ ssh root@192.168.0.15; na-emepụta/na-ehichapụ naanị combo __live_test__*; na-akpọ provider n'ezie; ọ dịghị mgbe ọ na-agba na CI)
  • npm run test:e2e — gafere (mgbanwe UI)
  • npm run test:protocols:e2e — gafere (mgbanwe MCP/A2A)
  • npm run test:ecosystem — gafere

Hook (Husky kwadoro)

Hook Husky dị na .husky/ ma na-agba na-akpaghị aka mgbe a na-eme ọrụ git.

  • pre-commit: npx lint-staged + node scripts/check/check-docs-sync.mjs + npm run check:any-budget:t11
  • pre-push: gate deterministic ndị dị ọsọ — npm run check:any-budget:t11 && npm run check:tracked-artifacts (arụnyere ọrụ na 2026-06-13). A kpachapụrụ anya wepụ test:unit (ọ dị nwayọ; ọrụ CI test-unit na-ekpuchi ya).
    • Jiri aka gbaa npm run test:unit tupu ị push branch release.

Ọ bụrụ na hook ada: dozie nsogbu kpatara ya, ejila --no-verify gafere ya.

Conventional Commits

Commit niile ga-abanye na release ga-agbasorịrị usoro type(scope): subject.

Ụdị ndị ziri ezi: feat, fix, refactor, docs, test, chore, perf, style, ci

Scope ndị ziri ezi: db, sse, oauth, dashboard, api, cli, docker, ci, mcp, a2a, memory, skills, cloud-agent, guardrails, compression, auto-combo, resilience, providers, executors, translator, domain, authz

Mgbanwe na-emebi ndakọrịta: tinye footer BREAKING CHANGE: ma ọ bụ ! mgbe scope gasịrị (dịka feat(api)!: drop /v0).

Akwụkwọ Nkọwa

  • npm run check:docs-sync gafere (pre-commit na-agba ya na-akpaghị aka)
  • npm run check:docs-all gafere (nchịkọta: docs-sync + docs-counts + env-doc-sync + deprecated-versions + doc-links)
  • npm run check:env-doc-sync jiri 0 kwụsị — nkwekọrịta env dị netiti koodu ↔ .env.exampledocs/reference/ENVIRONMENT.md ka zuru oke
  • npm run check:doc-links jiri 0 kwụsị — enweghị ntụaka markdown dị nime nke mebiri mgbe a hazigharịrị ihe
  • A nyochala docs/architecture/ARCHITECTURE.md maka mgbanwe na-adabaghị netiti storage/runtime
  • A nyochala docs/guides/TROUBLESHOOTING.md maka mgbanwe env var na mgbanwe arụmọrụ
  • Ọ bụrụ na .env.example gbanwere: emelitela docs/reference/ENVIRONMENT.md
  • Ọ bụrụ na atụmatụ ọhụrụ nwere UI: docs/guides/USER_GUIDE.md kwuru maka ya
  • Ọ bụrụ na atụmatụ ọhụrụ nwere API: emelitela docs/reference/API_REFERENCE.md + docs/openapi.yaml
  • Ọ bụrụ na atụmatụ ọhụrụ bụ modul: faịlụ pụrụ iche docs/<MODULE>.md dị
  • Ọ bụrụ na ọ bụ mgbanwe na-emebi ndakọrịta: docs/guides/TROUBLESHOOTING.md nwere ndetu mb移ga

i18n

  • npm run i18n:check jiri 0 kwụsị — ọnọdụ ntụgharị (.i18n-state.json) kwekọrọ na dọkụmentị isi mmalite (enweghị isi mmalite gbanwere nọnọdụ strict; ịdọ aka ná ntị nọnọdụ warn dị mma maka obere mmezi dọkụmentị nke nkeji ikpeazụ, mana ọ kwesịrị ịbụ 0 tupu itinye tag)
  • npm run i18n:check-ui-coverage jiri 0 kwụsị — locale UI ọ bụla nọ na ma ọ bụ karịa oke mkpuchi 80%
  • npm run i18n:sync-ui:dry kọọ igodo efu 0 nime locale 42 niile
  • Ọ bụrụ na dọkụmentị Bekee nke isi mmalite gbanwere, gbaa npm run i18n:run (ọ chọrọ OMNIROUTE_TRANSLATION_API_KEY nime .env) tupu itinye tag
  • Enwere ike iyigharị onyinye ntụgharị ruo na release na-esote ma ọ bụrụ na ha pere mpe (dekọọ ya na CHANGELOG)

Mbugharị Database

  • Ọ bụrụ na src/lib/db/migrations/ nwere faịlụ ọhụrụ:
    • Mbugharị ọ bụla bụ idempotent (CREATE TABLE IF NOT EXISTS, wdg.)
    • E tinyere mbugharị nime transaction
    • E nyere ha nọmba nke ọma (enweghị oghere nusoro)
  • Nwalee na nrụnye ọhụrụ: hichapụ ~/.omniroute/omniroute.db ma gbaa npm run dev
  • Nwalee na nrụnye dị adị: mee backup DB, gbaa migration, ma nyochaa schema
  • A na-ejikwa faịlụ WAL (-wal, -shm) nke ọma ma ọ bụrụ na migration degharịrị table

Katalọgụ Provider (Zod-validated)

  • schema Zod nke src/shared/constants/providers.ts ziri ezi noge nbudata
    • Provider niile nwere field achọrọ (id, label, kind, wdg.)
    • E nyere freeNote maka provider efu ọhụrụ
    • Provider OAuth nwere oauthConfig e debanyere aha na src/lib/oauth/constants/oauth.ts
  • Ọ bụrụ na agbakwunyere provider ọhụrụ: executor kwekọrọ na ya dị na open-sse/executors/
  • Ọ bụrụ na format ahụ abụghị OpenAI: translator dị na open-sse/translator/
  • E debanyere model na open-sse/config/providerRegistry.ts
  • Unit test dị na tests/unit/ na-ekpuchi nhazi provider na routing

Desktop (Electron)

Ọ bụrụ na electron/ gbanwere:

  • npm run electron:smoke:packaged gafere
  • A nwalela build maka opekata mpe otu nime :win, :mac, :linux
  • Asambodo code signing agwụbeghị oge (ọ bụrụ na a na-eme signing)
  • Version dị na electron/package.json kwekọrọ na root package.json
  • Emelitela pointer nke channel auto-update ma ọ bụrụ na a na-ewepụta ya na stable

Nhazi Build

Repository a na-eji directory mmepụta atọ dị iche iche — agwakọtala ha:

Directory Ebumnuche A na-esochi ya?
src/ Isi mmalite application (TypeScript / TSX) Ee
.build/ Ihe etiti build — mmepụta next build (distDir) Mba (gitignored)
dist/ Nchịkọta npm a pụrụ ibupu — assembleStandalone haziri ya Mba (gitignored)

Ndetu onye ọrụ: directory image VPS dị anya ka bụ /usr/lib/node_modules/omniroute/app/. Naanị mmepụta build dị nime repository ka e bugharịrị (app/dist/). Skill deploy na-eji rsync ebuga ọdịnaya dist/ nime directory app/ dị anya — enweghị mgbanwe path VPS achọrọ.

Usoro otu build:

npm run build:release
  └─ rm -rf .build dist          (nhicha)
  └─ next build → .build/next/   (ihe etiti)
  └─ assembleStandalone          (na-edetuo standalone + static + public + natives → dist/)
  └─ writes dist/BUILD_SHA       (sentinel HEAD)

AGBALỊLA ịgba npm run build wee soro ya gbaa npm run build:cli iche maka deploy — jiri npm run build:release, nke na-eme rebuild dị ọcha + sentinel notu command.

Nnyocha Artifact

  • npm run build:release gara nke ọma ma dist/BUILD_SHA == git rev-parse --short HEAD
  • npm run check:pack-artifact dị ọcha — enweghị app.__qa_backup, scripts/scratch, package-lock.json, ma ọ bụ ihe fọdụrụ nime igwe mpaghara
  • dist/server.js dị mgbe build gasịrị

Itinye Tag & Release

  • Gbaa /generate-release-cc (skill Claude Code):
    • Na-emepụta tag vX.Y.Z
    • Na-ebuga tag na branch
    • Na-emepe GitHub Release nwere ọdịnaya changelog
    • Na-etinye installer Electron (ọ bụrụ na e wuru ha)
  • Ma ọ bụ jiri aka mee ya:
    git tag -a vX.Y.Z -m "Release vX.Y.Z"
    git push origin vX.Y.Z
    gh release create vX.Y.Z --notes-from-tag
    

Deploy

Skill deploy na-eji usoro rsync dị mfe — enweghị npm pack, enweghị npm i -g:

  • Jiri skill deploy kwekọrọ na target:
    • /deploy-vps-local-cc — VPS mpaghara (192.168.0.15)
    • /deploy-vps-akamai-cc — VPS Akamai (69.164.221.35)
    • /deploy-vps-both-cc — ha abụọ
  • Tupu deploy, gosi na dist/BUILD_SHA == git rev-parse --short HEAD
  • Build ga-agba ebe node_modules bụ nke ezigbo ya (main checkout ma ọ bụ worktree e ji npm ci kwadebe — Ọ BỤGHỊ worktree ejiri symlink)
  • Mee smoke test ninstance e deploypụtara:
    • Mepee /dashboard/health → lelee na version string kwekọrọ na release
    • Gbaa arịrịọ /v1/chat/completions megide provider a maara
    • Nyochaa na /api/monitoring/health weghachiri circuit breaker CLOSED
    • Gosi na transport MCP na-aza (/mcp HTTP, /mcp-sse SSE)

Mgbe release gasịrị

  • Gbaa /capture-release-evidences-cc (nkà Claude Code)
    • Na-esepụta nseta ihuenyo/ndekọ WebP nke atụmatụ ọhụrụ
    • Na-etinye ha na ndetu mwepụta / edemede blọọgụ
  • Jiri ọkwa mwepụta melite GitHub Discussions / Discord
  • Mepee milestone maka ụdị na-esote
  • Ọ bụrụ na ọ dị oke mkpa: kpọgide mkparịta ụka ahụ ma ọ bụ bipụta ya na news.json maka ọkọlọtọ dị n'ime ngwa

Ọnụ ụzọ mmalite ọha nke Radar

E ji ụma commit ọkwa Radar ahụ na active: false. Ime ka ọ rụọ ọrụ bụ mgbanwe dị iche nke a ga-eme naanị mgbe e gosipụtara ihe akaebe maka ihe niile dị n'okpuru:

  • Ejikọla Radar PR niile e dokọtara n'usoro, release-tip CI dịkwa ndụ ndụ
  • Deploy ma mee smoke test n'ụzọ gasị OSS Radar ebe RADAR_ENABLED ka bụ gbanyụọ na ndabara
  • Mee smoke test na GET /planos, /termos, /privacidade, na /reembolso n'elu host Radar a kpọrọ aha
  • Dekọọ njirimara/ozi kọntaktị/adreesị onye na-arụ ọrụ yana nyocha iwu nke onye nwe ya kwadoro n'ime ọrụ nzuzo
  • Nwalee Stripe Checkout na webhook e binyere aka na ya naanị n'ụdị nnwale
  • Nwalee otu nnyefe ozi-e azụmahịa ezoro ezo site na onye na-ezipụ/ngalaba a kwadoro
  • Gosipụta na iweghachi backup na-arụ ọrụ ma mee otu research run a na-elekọta nke nwere oke mmefu ego
  • Kwado iwu nyocha BRL/PIX tupu ịnakwere ihe akaebe onyinye
  • Mee ka Checkout ọha rụọ ọrụ naanị mgbe ọnụ ụzọ ndị bu ya ụzọ gafere, wee mee ka ID ọhụrụ dị na news.json rụọ ọrụ
  • Nyochaa na ọkọlọtọ Home na-eji ederede ahaziri maka asụsụ mpaghara nakwa na ID ọhụrụ na-apụta ọzọ mgbe e wepụrụ ID ochie

Ule smoke nke Ọrụ Agbakwunyere (v3.8.4+)

Tupu izipu mbipụta ọ bụla nwere mgbanwe nọrụ agbakwunyere, nyochaa ihe ndị a:

Mbido Fresh-DB (na-achọpụta esemokwu migration — agbakwunyere mgbe hotfix v3.8.4 gasịrị)

  • DATA_DIR=$(mktemp -d) npm start & — chere 10 s ka ọ malite
  • curl -s http://127.0.0.1:20128/api/services/9router/status | jq '.tool' na-eweghachi "9router" (Ọ BỤGHỊ 404, Ọ BỤGHỊ 500). Nke a na-egosi na etinyere migration 071_services.sql ma kụọkwa row.
  • sqlite3 $DATA_DIR/storage.sqlite "PRAGMA table_info(version_manager);" | grep -E "provider_expose|logs_buffer_path|last_sync_at" na-eweghachi row 3.
  • sqlite3 $DATA_DIR/storage.sqlite "PRAGMA table_info(webhooks);" | grep -E "kind|metadata_encrypted" na-eweghachi row 2 (na-akwado na etinyere 070_webhooks_kind_metadata.sql).
  • node --import tsx/esm --test tests/unit/db/no-migration-collisions.test.ts na-agafe — na-echebe megide esemokwu ga-eme nọdịnihu.

9Router

  • POST /api/services/9router/install na-eweghachi 200 ya na installedVersion nime ihe na-erughị nkeji 2
  • POST /api/services/9router/start na-eweghachi 200 na state: "running" nime ihe na-erughị 30 s
  • GET /api/services/9router/status na-akọ health: "healthy"
  • POST /v1/chat/completions ya na "model": "9router/auto/..." na-eweghachi 200 (routing site na 9Router site na mmalite ruo na njedebe)
  • GET /dashboard/providers/services/9router/embed/dashboard na-egosipụta UI izizi nke 9Router nime proxy (enweghị iframe 127.0.0.1:port kpọmkwem)
  • POST /api/services/9router/rotate-key na-eweghachi { keyRotated: true }, ọrụ ahụ amalitekwa ọzọ nenweghị nsogbu
  • POST /api/services/9router/stop na-eweghachi 200 na state: "stopped"
  • GET /api/services/9router/logs?tail=50 na-eweghachi iyi SSE nwere event snapshot nke nwere ahịrị ndị na-adịbeghị anya
  • Nwụnye nebe npm na-adịghị na PATH na-eweghachi 500 ya na ozi njehie dị mfe nghọta (na-abụghị stack trace)

CLIProxyAPI

  • POST /api/services/cliproxy/install na-eweghachi 200 nime ihe na-erughị nkeji 2
  • POST /api/services/cliproxy/start na-eweghachi 200 na state: "running" nime ihe na-erughị 30 s
  • GET /api/services/cliproxy/status na-akọ health: "healthy"
  • POST /api/services/cliproxy/stop na-eweghachi 200 na state: "stopped"
  • GET /api/services/cliproxy/logs?tail=50 na-eweghachi iyi SSE

Nnwale nlọghachi azụ nke nchekwa

  • curl -H "X-Forwarded-For: 1.2.3.4" http://localhost:20128/api/services/9router/start na-eweghachi 403 LOCAL_ONLY
  • curl -H "X-Forwarded-For: 1.2.3.4" http://localhost:20128/api/services/cliproxy/start na-eweghachi 403 LOCAL_ONLY
  • Nzaghachi njehie sitere na /api/services/* enweghị err.stack ma ọ bụ ụzọ faịlụ zuru ezu

Nnyocha v3.8.0+

Tupu izipu mbipụta v3.8.x ọ bụla, nyochaa ihe ndị ọzọ ndị a:

  • omniroute --tray na-amalite na macOS (etinyere systray2 nime ~/.omniroute/runtime/)
  • omniroute --tray na-amalite na Linux (chọrọ DISPLAY; njehie dị mfe nghọta ma ọ bụrụ na edoghị ya)
  • omniroute --tray na-amalite na Windows (PowerShell NotifyIcon, enweghị binary ndị ọzọ)
  • omniroute config tray enable na-emepụta ndenye autostart; disable na-ewepụ ya
  • npm install -g omniroute@<this-version> na-eme postinstall na-enweghị ịkwụsị nihi njehie dị njọ
  • Ụzọ mmelite na-edowe optional deps: omniroute update --apply na auto-updater na-eme npm install -g … --include=optional ka optionalDependencies (better-sqlite3, keytar, tls-client, na stack SLM llmlingua: @atjsh/llmlingua-2@2.0.5, js-tiktoken) ghara ịla niyi mgbe emelitere. Ọkwa SLM ultra modelPath chọkwara model tinybert, nke a na-ebudata na-akpaghị aka gaa ${DATA_DIR}/models/llmlingua mgbe mbụ e ji ya. Postinstall (scripts/build/colocateOptionals.mjs) na-etinyezi closure nhọrọ nke SLM notu ebe nime dist/node_modules ka worker nwee ike ịchọta naanị otu instance @huggingface/transformers ^4.2.0 — trace nke nọọrọ onwe ya na-etinye naanị transformers nime bundle, ọ naghị etinye optionals ndị e ji dynamic import webata, yabụ ma nke a adịghị, worker ga-ebunye llmlingua-2 megide transformers nke root, ọkwa SLM ahụ ga-adakwa na nzuzo ma hapụ usoro ahụ ka ọ gaa nihu.
  • omniroute status na-arụ ọrụ nenweghị .env (ụzọ token CLI, naanị loopback)
  • curl http://localhost:20128/api/shutdown na-eweghachi 401 (route a na-echebe mgbe niile)
  • curl -H "host: evil.com" http://localhost:20128/api/mcp/sse na-eweghachi 401 (nche loopback)
  • SQLite runtime na-ahọrọ bundled na mbido mbụ (binary e tinyere nime bundle dabara na platform)
  • SQLite runtime na-alaghachi na runtime mgbe ehichapụ node_modules/better-sqlite3
  • Smart MCP filter na-akpakọ output nezie nke playwright-mcp browser_snapshot (mbelata ≥50%)
  • Faịlụ skills/omniroute*/SKILL.md iri niile dị ka ọha nwee ike ibudata ha site na raw GitHub URL
  • Wizard onboarding na-egosi nzọụkwụ njem nlegharị anya nke ọkwa “Otu O Si Arụ Ọrụ” na nhazi ọhụrụ
  • Widget mkpuchi ọkwa dị na dashboard Home na-egosi ọnụọgụ ndị ahaziri/ndị na-arụ ọrụ

Nlaghachi

Ọ bụrụ na mbipụta nwere nsogbu dị oke njọ:

  1. gh release edit vX.Y.Z --prerelease (na-akara ya dị ka nke na-abụghị nke kachasị ọhụrụ)
  2. git tag -d vX.Y.Z && git push --delete origin vX.Y.Z (naanị ma ọ bụrụ na ndị ọrụ amalitebeghị iji ya)
  3. Ma ọ bụ: mee ndozi ngwa ngwa na release/vX.Y.0 → mbipụta ndozi vX.Y.(Z+1)
  4. Kpọsa ya ozugbo na GitHub Discussions na Discord

Iwu Ndị A Na-agaghị Agbanwe Agbanwe

  • Etinyekwala commit ozugbo na main
  • Ejikwala git push --force na main ma ọ bụ alaka release/*
  • Ahapụla Husky hooks (--no-verify)
  • Etinyekwala ihe nzuzo, ozi njirimara, ma ọ bụ faịlụ .env na commit
  • Mkpuchi ule ga-anọgide na ≥60/60/60/60 (nkwupụta/ahịrị/ọrụ/alaka)
  • Tinye ma ọ bụ melite ule mgbe niile mgbe ị na-agbanwe koodu mmepụta dị na src/, open-sse/, electron/, ma ọ bụ bin/

Nnyocha Mmekọrịta Akpaghị Aka

Gbaa ihe nche nke mmekọrịta dọkụmentị na kọmputa gị tupu imepe PR:

npm run check:docs-sync

CI na-agbakwa nnyocha a na .github/workflows/ci.yml (ọrụ lint).