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
30 KiB
Release Checklist (Kiswahili)
🌐 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 · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
Ilisasishwa mwisho: 2026-08-28 — v3.8.51 Mtiririko wa utoaji uliorahisishwa unaotumia ujuzi wa Claude Code kwa uendeshaji otomatiki.
Dumisha foleni/tawi katika hali nzuri kati ya matoleo: tazama RELEASE_GREEN.md (familia ya
/green-prs+npm run check:release-green+/babysit+ utekelezaji wa kila usiku). Kuendesha hili mara kwa mara — na hasa kabla ya orodha hii hakikishi — hufanya PR ya toleo ianze ikiwa katika hali nzuri.
Kwa ufupi
# 1. Ongeza toleo + tengeneza CHANGELOG (ujuzi)
/version-bump-cc patch # au minor/major
# 2. Tekeleza ukaguzi wa ubora kwenye mazingira ya ndani
npm run check # lint + majaribio
npm run test:coverage # ukaguzi kamili wa ufunikaji (60/60/60/60)
# 3. Jenga na ufanye jaribio la msingi
npm run build
npm run test:e2e # si lazima lakini inapendekezwa
# 4. Tengeneza toleo (ujuzi)
/generate-release-cc
# 5. Peleka (ujuzi)
/deploy-vps-both-cc # au akamai-cc / local-cc
# 6. Nasa ushahidi wa toleo (ujuzi)
/capture-release-evidences-cc
Uchapishaji Unaoaminika wa npm (chaguo-msingi tangu v3.8.51) — uliowekwa kwenye hatua kwa ombi, wa moja kwa moja kama mbadala
npm-publish.yml huchapisha kupitia Uchapishaji Unaoaminika wa npm (OIDC) kwa chaguo-msingi: kazi ya
stage-npm (inayohifadhiwa na GitHub) hubadilishana id-token ya GitHub ili kupata kitambulisho cha muda mfupi cha npm
kwa utekelezaji huo — hakuna tokeni ya muda mrefu ya npm katika siri za hazina, hakuna kidokezo cha 2FA, na asili imeambatishwa.
Huo ndio ukwepaji ambao npm inaruhusu sasa kwa kuwa tokeni zinazoruka 2FA zinaondolewa;
unarejesha mtiririko otomatiki kikamilifu ambao mradi ulikuwa nao hadi v3.8.48 huku ukidumisha
hakikisho la WS1.3 (tokeni iliyovuja haiwezi kuchapisha peke yake — hakuna tokeni).
Usanidi wa mara moja (mmiliki): npmjs.com → kifurushi omniroute → Settings → Trusted
Publisher → GitHub: mmiliki diegosouzapw, hazina OmniRoute, mtiririko wa kazi npm-publish.yml
(mazingira: hakuna). Hadi hilo liwepo, hatua otomatiki hushindwa kwa ENEEDAUTH:
anzisha tena kwa publish_mode=staged (hapa chini) au direct.
Uchapishaji wa hatua kwa hatua (kwa ombi — publish_mode=staged)
Mtiririko wa kazi wa npm-publish hauchapishi tena moja kwa moja: huanzisha tarball iliyofungashwa
(check:pack-boot) kisha huendesha npm stage publish — baiti halisi huwekwa kwenye
rejesta, haziwezi kusakinishwa hadi mmiliki aidhinishe. Kizuizi cha kibinadamu cha 2FA kimehamishwa
BAADA ya uthibitisho, si kabla yake.
Mtiririko wa mmiliki baada ya mtiririko wa kazi kuwa katika hali nzuri:
npm stage list omniroute— tafuta kitambulisho cha hatua (pia huchapishwa katika muhtasari wa mtiririko wa kazi).- Thibitisha baiti zilizowekwa kwenye hatua (inapendekezwa):
npm stage download <id>, kisha sakinisha tarball iliyopakuliwa kwenye kiambishi awali cha muda na uiwashe (npm run check:pack-boothuendesha otomatiki uamuzi sawa wa kufungasha→kusakinisha→kuwasha katika CI). npm stage approve <id>— kidokezo cha 2FA NDICHO uchapishaji.npm stage reject <id>hutupa.- Kinga ya baada ya uchapishaji: kithibitishaji cha baada ya uchapishaji (WS1.4 ya mpango wa v3.8.49) husakinisha toleo lililochapishwa kutoka kwenye rejesta ya umma katika kontena safi na kuliwasha.
Mbadala wa dharura: workflow_dispatch pamoja na publish_mode=direct hurejesha
npm publish ya zamani ya papo hapo (tumia tu ikiwa uwekaji kwenye hatua wenyewe unatatizika; rekodi sababu).
Uimarishaji wa mara moja (mmiliki, npmjs.com): sanidi Trusted Publisher kwa
omniroute katika hali ya hatua pekee ili tokeni ya muda mrefu iliyovuja isiweze kutumia npm publish
moja kwa moja kutoka popote — CI inaweza kuweka kwenye hatua pekee; ni 2FA ya mmiliki tu inayotoa.
Mwongozo wa kushughulikia artefakti iliyoharibika (haujabadilika): npm deprecate omniroute@<bad> "<reason> — use <fixed>"
kama hatua ya kawaida ya kwanza (dakika chache, inaweza kutenduliwa); npm unpublish tu ndani ya kipindi cha saa 72/bila vitegemezi
na kamwe isiwe hatua ya kwanza. Docker: usiwahi kuandika upya lebo ya toleo — kurejesha nyuma ni
kuelekeza upya latest kwenye digest ya mwisho iliyo nzuri.
Docker Hub latest (inahitajika katika kila uchapishaji thabiti wa SemVer):
mtiririko wa kazi wa docker-publish lazima uweke lebo kwa zote mbili X.Y.Z na, wakati
should-promote-latest.sh inathibitisha kuwa hii ndiyo SemVer thabiti ya juu zaidi, :latest
kwa digest ileile. Baada ya kazi: digest ya latest kwenye Hub inalingana na digest mpya ya
SemVer na last_updated imesogea. Usiache :latest kwenye jengo la zamani
wakati maelezo ya toleo yanazungumzia marekebisho yaliyopo kwenye git pekee. Mianzisho ya haraka ya Compose
hutumia :latest; GitOps inapaswa kuendelea kubandika X.Y.Z. Tazama
Vituo vya matoleo ya Docker na #10317.
Njia ya Haraka ya Marekebisho ya Dharura (lebo hotfix)
PR yenye lebo hotfix huruka matriki nzito ya CI (E2E yenye sehemu 9, coverage ratchet,
quality-gate, quality-extended) na huhifadhi ukaguzi wa haraka wenye ishara thabiti: build,
sehemu za unit, integration, vitest, lint/typecheck, docs-sync, check:pack-artifact
na jaribio la kuwasha kutoka tarball (check:pack-boot). Lengo: kuwa kijani ndani ya ≤15min badala ya ~33min.
Sera ya kuingia — yote manne yanahitajika (imeundwa kwa kufuata njia za dharura za Chromium/VS Code/Node):
- Ukali: uzalishaji umeharibika — artifact iliyochapishwa huanguka wakati wa kuwaka / marekebisho ya usalama / kila mtumiaji wa toleo ameathirika. "Muhimu" si sawa na "imeharibika".
- Mamlaka: ni mmiliki wa hazina pekee anayeweka lebo
hotfix. Lebo NDIYO idhini — kamwe usijipe mwenyewe kwenye PR ya kampeni. - Ushahidi: maelezo ya PR yana kiungo cha utekelezaji mzito wa awali uliokuwa kijani kikamilifu (mkusanyiko ambao kazi zilizorukwa zingethibitisha upya) pamoja na jaribio la marekebisho lenyewe lililofeli kisha likafaulu.
- Upeo: cherry-pick pekee — marekebisho madogo kabisa, bila refactors, bila mabadiliko ya ziada.
Sehemu ya coverage/ratchet iliyorukwa inathibitishwa upya na utekelezaji kamili unaofuata kwenye
tawi la toleo (release-green endelevu) — njia hii huruka KUSUBIRI, kamwe si uthibitishaji.
Tofauti za majaribio pekee (faili zote chini ya tests/, hakuna chini ya tests/e2e/) huruka matriki ya E2E
kiotomatiki, bila lebo yoyote.
Orodha ya Kina ya Ukaguzi
Kabla ya Toleo
- PR zote zinazolengwa kwa toleo hili zimeunganishwa kwenye
release/vX.Y.0 - Vipengee vyote vilivyo wazi vya Linear/issue kwa toleo hili vimefungwa au kusogezwa kwenye hatua muhimu inayofuata
- CI ni kijani kwenye tawi la
release/vX.Y.0 - Hakuna viashiria vya
TODO(release)kwenye msimbo:grep -r "TODO(release)" src/ open-sse/ - Image msingi ya Docker imesasishwa (kwa sasa
node:24.15.0-trixie-slim)
Toleo na Kumbukumbu ya Mabadiliko
- Tekeleza
/version-bump-cc <patch|minor|major>(ujuzi wa Claude Code)- Husasisha
package.json,electron/package.json - Hutengeneza upya
CHANGELOG.mdkutoka kwenye commits za git tangu tag ya mwisho - Husasisha badges za README.md
- Husasisha
- Kagua CHANGELOG.md mwenyewe na usafishe ujumbe wa commits ikiwa inahitajika
- Hakikisha sehemu ya hivi karibuni ya semver katika
CHANGELOG.mdinalingana na toleo lapackage.json - Weka
## [Unreleased]kama sehemu ya kwanza ya kumbukumbu ya mabadiliko kwa kazi ijayo - Sasisha
docs/openapi.yaml→info.versionlazima ilingane na toleo lapackage.json
Ubora wa Msimbo
npm run lint— hitilafu 0 (maonyo yalikuwepo tayari)npm run typecheck:core— safinpm run typecheck:noimplicit:core— safi (kali)npm run check:cycles— hakuna vitegemezi vya mzungukonpm run check:any-budget:t11— ndani ya bajetinpm run check:route-validation:t06— safinpm run check:node-runtime— kiwango cha chini cha runtime inayotumika kimetimizwa (>=22.22.2 <23,>=24.0.0 <27, kulingana naSUPPORTED_NODE_RANGEkatikasrc/shared/utils/nodeRuntimeSupport.ts; kimeoanisha naenginesyapackage.json)
Majaribio
npm run test:unit— yafaulunpm run test:vitest— yafaulu (seva ya MCP, autoCombo, cache)npm run test:coverage— kigezo cha 60/60/60/60 kimetimizwa (statements/lines/functions/branches)npm run test:integration— yafaulu (ikiwa mabadiliko yanagusa DB / handlers)npm run test:combo:matrix— yafaulu (matriki ya mikakati ya combo: huthibitisha kwa njia thabiti maamuzi ya uteuzi ya mikakati yote 19 ya umma ya routing; tekeleza unapogusa combo routing, utatuzi wa mikakati, au mantiki ya fallback)RUN_COMBO_LIVE=1 npm run test:combo:live— hiari/ya mkono (jaribio la kuwasha dhidi ya upstream halisi linalodhibitiwa; huchukua snapshot ya DB ya kusoma pekee kutoka VPSroot@192.168.0.15; hugusa providers halisi, hugharimu credits; kamwe halitekelezwi katika CI; hurukwa kwa usafi bila kigezo)npm run test:combo:live:vps— hiari/ya mkono (jaribio la kuwasha la moja kwa moja la VPS la Awamu ya 3: hali 7 za HTTP dhidi ya seva hai ya.15kupitia Node ESM ya kawaida; linahitajissh root@192.168.0.15; huunda/hufuta combo za__live_test__*pekee; hugusa providers halisi; kamwe halitekelezwi katika CI)npm run test:e2e— yafaulu (mabadiliko ya UI)npm run test:protocols:e2e— yafaulu (mabadiliko ya MCP/A2A)npm run test:ecosystem— yafaulu
Hooks (Zimethibitishwa na Husky)
Hooks za Husky ziko katika .husky/ na hutekelezwa kiotomatiki wakati wa operesheni za git.
- pre-commit:
npx lint-staged + node scripts/check/check-docs-sync.mjs + npm run check:any-budget:t11 - pre-push: ukaguzi wa haraka na thabiti —
npm run check:any-budget:t11 && npm run check:tracked-artifacts(uliwashwa 2026-06-13). Kwa makusudi haujumuishitest:unit(ni wa polepole; unashughulikiwa na kazi ya CI yatest-unit).- Tekeleza
npm run test:unitmwenyewe kabla ya kusukuma matawi ya toleo.
- Tekeleza
Ikiwa hook itafeli: rekebisha tatizo la msingi, usiipite kwa kutumia --no-verify.
Conventional Commits
Commits zote zinazolengwa kwa toleo lazima zifuate muundo wa type(scope): subject.
Aina halali: feat, fix, refactor, docs, test, chore, perf, style, ci
Scopes halali: db, sse, oauth, dashboard, api, cli, docker, ci, mcp, a2a, memory, skills, cloud-agent, guardrails, compression, auto-combo, resilience, providers, executors, translator, domain, authz
Mabadiliko yanayovunja uoanifu: ongeza footer ya BREAKING CHANGE: au ! baada ya scope (kwa mfano feat(api)!: drop /v0).
Nyaraka
npm run check:docs-syncinafaulu (huendeshwa kiotomatiki na pre-commit)npm run check:docs-allinafaulu (jumla: docs-sync + docs-counts + env-doc-sync + deprecated-versions + doc-links)npm run check:env-doc-syncinatoka kwa msimbo 0 — mkataba wa env kati ya msimbo ↔.env.example↔docs/reference/ENVIRONMENT.mdhaujabadilikanpm run check:doc-linksinatoka kwa msimbo 0 — hakuna marejeleo ya ndani ya markdown yaliyovunjika baada ya kupanga upyadocs/architecture/ARCHITECTURE.mdimekaguliwa kwa tofauti za hifadhi/muda wa utekelezajidocs/guides/TROUBLESHOOTING.mdimekaguliwa kwa tofauti za vigezo vya mazingira na uendeshaji- Ikiwa
.env.exampleimebadilika:docs/reference/ENVIRONMENT.mdimesasishwa - Ikiwa kipengele kipya kina UI:
docs/guides/USER_GUIDE.mdinakitaja - Ikiwa kipengele kipya kina API:
docs/reference/API_REFERENCE.md+docs/openapi.yamlzimesasishwa - Ikiwa kipengele kipya ni moduli:
docs/<MODULE>.mdmaalum ipo - Ikiwa ni badiliko linalovunja uoanifu:
docs/guides/TROUBLESHOOTING.mdina dokezo la uhamishaji
i18n
npm run i18n:checkinatoka kwa msimbo 0 — hali ya tafsiri (.i18n-state.json) inalingana na hati chanzo (hakuna vyanzo vilivyopotoka katika hali kali; ushauri wa hali ya onyo unakubalika kwa marekebisho ya hati ya dakika za mwisho, lakini unapaswa kuwa 0 kabla ya kuweka tagi)npm run i18n:check-ui-coverageinatoka kwa msimbo 0 — kila lokali ya UI iko kwenye au juu ya kiwango cha chini cha ufunikaji cha 80%npm run i18n:sync-ui:dryinaripoti funguo 0 zinazokosekana katika lokali zote 42- Ikiwa hati chanzo za Kiingereza zimebadilika, endesha
npm run i18n:run(inahitajiOMNIROUTE_TRANSLATION_API_KEYkatika.env) kabla ya kuweka tagi - Michango ya tafsiri inaweza kuahirishwa hadi toleo linalofuata ikiwa ni midogo (ifuatilie katika CHANGELOG)
Uhamishaji wa Hifadhidata
- Ikiwa
src/lib/db/migrations/ina faili mpya:- Kila uhamishaji unaweza kutekelezwa mara nyingi bila kubadili matokeo (
CREATE TABLE IF NOT EXISTS, n.k.) - Uhamishaji umefungwa ndani ya miamala
- Umepewa nambari kwa usahihi (hakuna mapengo katika mfuatano)
- Kila uhamishaji unaweza kutekelezwa mara nyingi bila kubadili matokeo (
- Jaribu kwenye usakinishaji mpya: futa
~/.omniroute/omniroute.dbna uendeshenpm run dev - Jaribu kwenye usakinishaji uliopo: hifadhi nakala ya DB, endesha uhamishaji, thibitisha skima
- Faili za WAL (
-wal,-shm) zishughulikiwe kwa usahihi ikiwa uhamishaji unaandika upya majedwali
Katalogi ya Watoa Huduma (Iliyothibitishwa na Zod)
- Skima ya Zod ya
src/shared/constants/providers.tsni halali wakati wa upakiaji- Watoa huduma wote wana sehemu zinazohitajika (
id,label,kind, n.k.) freeNoteimetolewa kwa watoa huduma wapya wasiolipishwa- Watoa huduma wa OAuth wana
oauthConfigiliyosajiliwa katikasrc/lib/oauth/constants/oauth.ts
- Watoa huduma wote wana sehemu zinazohitajika (
- Ikiwa mtoa huduma mpya ameongezwa: kitekelezaji kinacholingana katika
open-sse/executors/ - Ikiwa umbizo si la OpenAI: kitafsiri katika
open-sse/translator/ - Modeli zimesajiliwa katika
open-sse/config/providerRegistry.ts - Majaribio ya kitengo katika
tests/unit/yanajumuisha uainishaji na uelekezaji wa watoa huduma
Kompyuta ya Mezani (Electron)
Ikiwa electron/ imebadilika:
npm run electron:smoke:packagedinafaulu- Miundo imejaribiwa kwa angalau mojawapo ya
:win,:mac,:linux - Vyeti vya kutia saini msimbo havijaisha muda (ikiwa unatilia saini)
- Toleo la
electron/package.jsonlinalingana napackage.jsonya msingi - Kielekezi cha kituo cha usasishaji kiotomatiki kimesasishwa ikiwa unatolea
stable
Mpangilio wa Muundo
Hazina hutumia saraka tatu tofauti za matokeo — usizichanganye kamwe:
| Saraka | Madhumuni | Inafuatiliwa? |
|---|---|---|
src/ |
Chanzo cha programu (TypeScript / TSX) | Ndiyo |
.build/ |
Vipengee vya kati vya uundaji — matokeo ya next build (distDir) |
Hapana (imepuuzwa na git) |
dist/ |
Kifurushi cha npm kinachoweza kusambazwa — huunganishwa na assembleStandalone |
Hapana (imepuuzwa na git) |
Dokezo kwa mwendeshaji: saraka ya picha ya VPS ya mbali inasalia
/usr/lib/node_modules/omniroute/app/. Ni matokeo ya uundaji ndani ya hazina pekee yaliyohamishwa (app/→dist/). Ujuzi wa upelekaji husawazisha maudhui yadist/kwa rsync hadi saraka ya mbali yaapp/— hakuna mabadiliko ya njia ya VPS yanayohitajika.
Mtiririko wa uundaji mmoja:
npm run build:release
└─ rm -rf .build dist (safisha)
└─ next build → .build/next/ (vipengee vya kati)
└─ assembleStandalone (hunakili standalone + static + public + natives → dist/)
└─ writes dist/BUILD_SHA (kiashirio cha HEAD)
USIENDESHE npm run build ikifuatiwa na npm run build:cli tofauti kwa ajili ya upelekaji — tumia
npm run build:release, ambayo hufanya uundaji upya safi + kiashirio katika amri moja.
Uthibitishaji wa Vizalia
npm run build:releaseinafaulu nadist/BUILD_SHA==git rev-parse --short HEADnpm run check:pack-artifactni safi — hakunaapp.__qa_backup,scripts/scratch,package-lock.json, au mabaki mengine ya ndanidist/server.jsipo baada ya uundaji
Uwekaji Tagi na Utoaji
- Endesha
/generate-release-cc(ujuzi wa Claude Code):- Huunda tagi
vX.Y.Z - Husukuma tagi na tawi
- Hufungua Toleo la GitHub lenye maudhui ya kumbukumbu ya mabadiliko
- Huambatisha visakinishaji vya Electron (ikiwa vimeundwa)
- Huunda tagi
- Au kwa mkono:
git tag -a vX.Y.Z -m "Toleo vX.Y.Z" git push origin vX.Y.Z gh release create vX.Y.Z --notes-from-tag
Upelekaji
Ujuzi wa upelekaji hutumia mtiririko mwepesi wa rsync — hakuna npm pack, hakuna npm i -g:
- Tumia ujuzi wa upelekaji unaolingana na lengo:
/deploy-vps-local-cc— VPS ya ndani (192.168.0.15)/deploy-vps-akamai-cc— VPS ya Akamai (69.164.221.35)/deploy-vps-both-cc— zote mbili
- Kabla ya kupeleka, thibitisha
dist/BUILD_SHA==git rev-parse --short HEAD - Uundaji lazima uendeshwe mahali ambapo
node_modulesni halisi (checkout kuu au worktree iliyotekelezewanpm ci— SI worktree iliyounganishwa kwa symlink) - Fanya jaribio la msingi kwa instansi iliyopelekwa:
- Fungua
/dashboard/health→ hakikisha msururu wa toleo unalingana na toleo lililotolewa - Endesha ombi la
/v1/chat/completionsdhidi ya mtoa huduma anayejulikana - Thibitisha
/api/monitoring/healthinarudisha vivunja mzunguko vyaCLOSED - Thibitisha visafirishaji vya MCP vinajibu (
/mcpHTTP,/mcp-sseSSE)
- Fungua
Baada ya Toleo
- Endesha
/capture-release-evidences-cc(ujuzi wa Claude Code)- Hunasa picha za skrini/rekodi za WebP za vipengele vipya
- Huambatisha kwenye maelezo ya toleo / chapisho la blogu
- Sasisha GitHub Discussions / Discord kwa tangazo la toleo
- Fungua milestone ya toleo linalofuata
- Ikiwa ni muhimu sana: bandika mjadala juu au uchapishe katika
news.jsonkwa ajili ya bango la ndani ya programu
Kigezo cha uzinduzi wa umma wa Radar
Tangazo la Radar limehifadhiwa kimakusudi likiwa na active: false. Uwezeshaji ni badiliko tofauti
baada ya ushahidi kutolewa kwa kila kipengee kilicho hapa chini:
- PR zote zilizopangwa kwa mfuatano za Radar zimeunganishwa na CI ya release-tip ni ya kijani
- Sambaza na ufanyie majaribio ya awali njia za OSS za Radar huku
RADAR_ENABLEDikiwa bado imezimwa kwa chaguo-msingi - Fanyia majaribio ya awali
GET /planos,/termos,/privacidade, na/reembolsokwenye host ya Radar iliyotajwa - Rekodi utambulisho/mawasiliano/anwani ya mwendeshaji na ukaguzi wa kisheria ulioidhinishwa na mmiliki katika huduma ya faragha
- Jaribu Stripe Checkout na webhook iliyotiwa saini katika hali ya majaribio pekee
- Jaribu utumaji mmoja wa barua pepe ya miamala iliyosimbwa kwa njia fiche kwa kutumia mtumaji/domain iliyoidhinishwa
- Thibitisha urejeshaji wa nakala rudufu na utekelezaji mmoja wa utafiti unaosimamiwa na wenye kikomo cha bajeti
- Idhinisha sera ya ukaguzi wa BRL/PIX kabla ya kukubali ushahidi wa mchango
- Wezesha Checkout ya umma baada tu ya kukamilisha vigezo vilivyotangulia, kisha washa ID mpya ya
news.json - Thibitisha kwamba bango la Home linatumia maandishi yaliyotafsiriwa na kwamba ID mpya inatokea tena baada ya ID ya zamani kufungwa
Jaribio la awali la Huduma Zilizopachikwa (v3.8.4+)
Kabla ya kutoa toleo lolote linalojumuisha mabadiliko ya huduma zilizopachikwa, thibitisha:
Uanzishaji wa DB mpya (hugundua migongano ya uhamishaji — iliongezwa baada ya hotfix ya v3.8.4)
DATA_DIR=$(mktemp -d) npm start &— subiri sekunde 10 ili iwakecurl -s http://127.0.0.1:20128/api/services/9router/status | jq '.tool'inarejesha"9router"(SI 404, SI 500). Inathibitisha kuwa uhamishaji071_services.sqlulitumika + safu ilianzishwa.sqlite3 $DATA_DIR/storage.sqlite "PRAGMA table_info(version_manager);" | grep -E "provider_expose|logs_buffer_path|last_sync_at"inarejesha safu 3.sqlite3 $DATA_DIR/storage.sqlite "PRAGMA table_info(webhooks);" | grep -E "kind|metadata_encrypted"inarejesha safu 2 (inathibitisha kuwa070_webhooks_kind_metadata.sqlulitumika).node --import tsx/esm --test tests/unit/db/no-migration-collisions.test.tsinafaulu — hulinda dhidi ya migongano ya baadaye.
9Router
POST /api/services/9router/installinarejesha 200 pamoja nainstalledVersionndani ya chini ya dakika 2POST /api/services/9router/startinarejesha 200 nastate: "running"ndani ya chini ya sekunde 30GET /api/services/9router/statusinaripotihealth: "healthy"POST /v1/chat/completionsyenye"model": "9router/auto/..."inarejesha 200 (uelekezaji wa mwanzo hadi mwisho kupitia 9Router)GET /dashboard/providers/services/9router/embed/dashboardinaonyesha UI asili ya 9Router ndani ya proksi (hakuna iframe ya moja kwa moja ya127.0.0.1:port)POST /api/services/9router/rotate-keyinarejesha{ keyRotated: true }na huduma inaanza upya bila hitilafuPOST /api/services/9router/stopinarejesha 200 nastate: "stopped"GET /api/services/9router/logs?tail=50inarejesha mtiririko wa SSE wenye tukio lasnapshotlinalojumuisha mistari ya hivi karibuni- Usakinishaji katika mazingira yasiyo na
npmkwenye PATH unarejesha 500 pamoja na ujumbe wa hitilafu unaoeleweka (usio na ufuatiliaji wa rundo)
CLIProxyAPI
POST /api/services/cliproxy/installinarejesha 200 ndani ya chini ya dakika 2POST /api/services/cliproxy/startinarejesha 200 nastate: "running"ndani ya chini ya sekunde 30GET /api/services/cliproxy/statusinaripotihealth: "healthy"POST /api/services/cliproxy/stopinarejesha 200 nastate: "stopped"GET /api/services/cliproxy/logs?tail=50inarejesha mtiririko wa SSE
Urejeaji nyuma wa kiusalama
curl -H "X-Forwarded-For: 1.2.3.4" http://localhost:20128/api/services/9router/startinarejesha403 LOCAL_ONLYcurl -H "X-Forwarded-For: 1.2.3.4" http://localhost:20128/api/services/cliproxy/startinarejesha403 LOCAL_ONLY- Majibu ya hitilafu kutoka
/api/services/*hayanaerr.stackwala njia kamili za faili
Ukaguzi wa v3.8.0+
Kabla ya kutoa toleo lolote la v3.8.x, thibitisha vipengele hivi vya ziada:
omniroute --trayinaanza kwenye macOS (systray2 imesakinishwa kwenye~/.omniroute/runtime/)omniroute --trayinaanza kwenye Linux (inahitaji DISPLAY; hitilafu inayoshughulikiwa vizuri ikiwa haijawekwa)omniroute --trayinaanza kwenye Windows (PowerShell NotifyIcon, hakuna faili za ziada za kutekelezwa)omniroute config tray enableinaunda ingizo la kuanza kiotomatiki; disable inalifutanpm install -g omniroute@<this-version>inaendesha postinstall bila kuondoka kwa hitilafu mbaya- Njia ya kusasisha huhifadhi vitegemezi vya hiari:
omniroute update --applyna kisasishaji kiotomatiki huendeshanpm install -g … --include=optionalilioptionalDependencies(better-sqlite3, keytar, tls-client, na mkusanyiko wa SLM wa llmlingua:@atjsh/llmlingua-2@2.0.5,js-tiktoken) viendelee kuwepo baada ya sasisho. Kiwango cha ultramodelPathSLM pia kinahitaji modeli ya tinybert, inayopakuliwa kiotomatiki kwenda${DATA_DIR}/models/llmlinguainapotumika kwa mara ya kwanza. Postinstall (scripts/build/colocateOptionals.mjs) kisha huweka pamoja mnyororo wa hiari wa SLM ndani yadist/node_modulesili worker itatue instansi MOJA ya@huggingface/transformers^4.2.0 — ufuatiliaji wa pekee hujumuisha transformers tu, si vipengele vya hiari vinavyoingizwa kwa njia ya kidinamikia, kwa hivyo bila hili worker ingepakia llmlingua-2 dhidi ya transformers ya mzizi na kiwango cha SLM kingeshindwa kimyakimya huku kikiruhusu uendelezaji. omniroute statusinafanya kazi bila.env(njia ya tokeni ya CLI, loopback pekee)curl http://localhost:20128/api/shutdowninarejesha 401 (njia inayolindwa kila wakati)curl -H "host: evil.com" http://localhost:20128/api/mcp/sseinarejesha 401 (ulinzi wa loopback)- Runtime ya SQLite inatatuliwa kuwa
bundledwakati wa uendeshaji wa kwanza (binary iliyojumuishwa ni halali kwa jukwaa) - Runtime ya SQLite inarudi kutumia
runtimewakatinode_modules/better-sqlite3inapofutwa - Kichujio mahiri cha MCP kinabana matokeo halisi ya
playwright-mcp browser_snapshot(upunguzaji wa ≥50%) - Faili zote 10 za
skills/omniroute*/SKILL.mdzinaweza kupakuliwa hadharani kupitia URL ghafi ya GitHub - Mchawi wa utambulisho anaonyesha hatua ya ziara ya viwango ya "Jinsi Inavyofanya Kazi" katika usanidi mpya
- Wijeti ya ufunikaji wa viwango kwenye dashibodi ya Nyumbani inaonyesha idadi iliyosanidiwa/inayotumika
Kurejesha Toleo la Awali
Ikiwa toleo lina tatizo kubwa:
gh release edit vX.Y.Z --prerelease(huweka alama kuwa si toleo la hivi karibuni)git tag -d vX.Y.Z && git push --delete origin vX.Y.Z(ikiwa tu halijaanza kutumiwa na watumiaji)- Au: hotfix kwenye
release/vX.Y.0→ toleo la kirakavX.Y.(Z+1) - Wasiliana mara moja kupitia GitHub Discussions na Discord
Kanuni Muhimu
- Kamwe usifanye commit moja kwa moja kwenye
main - Kamwe usitumie
git push --forcekwenye matawi yamainaurelease/* - Kamwe usiruke hooks za Husky (
--no-verify) - Kamwe usifanye commit ya siri, taarifa za uthibitishaji, au faili za
.env - Coverage lazima ibaki ≥60/60/60/60 (statements/lines/functions/branches)
- Daima jumuisha au sasisha majaribio unapobadilisha msimbo wa uzalishaji katika
src/,open-sse/,electron/, aubin/
Ukaguzi wa Ulandanishi wa Kiotomatiki
Tekeleza docs sync guard ndani ya mazingira yako kabla ya kufungua PR:
npm run check:docs-sync
CI pia hutekeleza ukaguzi huu katika .github/workflows/ci.yml (kazi ya lint).