Files
OmniRoute/docs/i18n/ig/docs/ops/RELEASE_CHECKLIST.md
Diego Rodrigues de Sa e Souza b637350680 fix(docs): re-sync the 65 documentation mirror sets; section-level docs pipeline; drift gate blocking (#13940)
1,104 mirrors rewritten over five passes of run-translation on the 22-source core set: the 14 sources edited since their translation, the 322 mirrors that were still English copies, and the frontmatter the old extractor leaked into the newer locales' bodies. The pipeline now caches per-`## `-section hashes and retranslates only changed sections, never reuses a section that is still English, rebuilds English-copy / leaked mirrors even when the source is unchanged, merges the state on save (parallel runs), and the drift gate (scoped to the core set) is blocking. Final audit: 0 stale, 0 English copies, 0 leaked frontmatter across 1,430 core mirrors.

⚠️ base-red inherited: #12732
2026-09-17 02:55:31 -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


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

Debe queue/branch ka ọ bụrụ green netiti mwepụta: lee RELEASE_GREEN.md (ezinụlọ /green-prs + npm run check:release-green + /babysit + nke abalị kwa ụbọchị). Ịme nke a site noge ruo noge — ọkachasịkwa tupu ndepụta nyocha a — na-eme ka release PR malite dị 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).