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
32 KiB
Release Checklist (Azərbaycan dili)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇧🇬 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 · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
Son yenilənmə: 2026-08-28 — v3.8.51 Avtomatlaşdırma üçün Claude Code bacarıqlarından istifadə edən sadələşdirilmiş buraxılış prosesi.
Buraxılışlar arasında növbəni/budağı işlək vəziyyətdə saxlayın: RELEASE_GREEN.md sənədinə baxın (
/green-prsailəsi +npm run check:release-green+/babysit+ gecəlik icra). Bunu vaxtaşırı — xüsusən də bu yoxlama siyahısından əvvəl — icra etmək buraxılış PR-ının işlək vəziyyətdə başlamasını təmin edir.
Qısa xülasə
# 1. Versiyanı artırın + CHANGELOG yaradın (bacarıq)
/version-bump-cc patch # və ya minor/major
# 2. Keyfiyyət yoxlamasını lokal olaraq icra edin
npm run check # lint yoxlaması + testlər
npm run test:coverage # tam əhatə yoxlaması (60/60/60/60)
# 3. Yığın və ilkin yoxlama aparın
npm run build
npm run test:e2e # istəyə bağlıdır, lakin tövsiyə olunur
# 4. Buraxılış yaradın (bacarıq)
/generate-release-cc
# 5. Yerləşdirin (bacarıq)
/deploy-vps-both-cc # və ya akamai-cc / local-cc
# 6. Buraxılış sübutlarını toplayın (bacarıq)
/capture-release-evidences-cc
npm Trusted Publishing (v3.8.51-dən etibarən standartdır) — sorğu əsasında mərhələli, ehtiyat variant kimi birbaşa
npm-publish.yml standart olaraq npm Trusted Publishing (OIDC) vasitəsilə dərc edir:
stage-npm işi (GitHub tərəfindən host edilir) həmin icra üçün GitHub-ın id-token-ini qısamüddətli npm
etimadnaməsi ilə dəyişir — repozitoriya sirlərində uzunmüddətli npm tokeni yoxdur, 2FA sorğusu yoxdur, mənşə məlumatı əlavə olunur.
2FA-dan yan keçən tokenlər istifadədən çıxarıldığı üçün npm-in hazırda təsdiqlədiyi yan keçmə üsulu budur;
bu, WS1.3 zəmanətini qoruyaraq layihənin v3.8.48-ə qədər malik olduğu tam avtomatik prosesi bərpa edir
(sızdırılmış token təkbaşına dərc edə bilməz — çünki token yoxdur).
Birdəfəlik quraşdırma (sahib): npmjs.com → omniroute paketi → Settings → Trusted
Publisher → GitHub: sahib diegosouzapw, repo OmniRoute, iş axını npm-publish.yml
(mühit: yoxdur). Bu mövcud olana qədər avtomatik addım ENEEDAUTH ilə uğursuz olur:
publish_mode=staged (aşağıda) və ya direct ilə yenidən başladın.
Mərhələli dərc (sorğu əsasında — publish_mode=staged)
npm-publish iş axını artıq birbaşa dərc etmir: paketlənmiş tarball faylını işə salır
(check:pack-boot) və sonra npm stage publish əmrini icra edir — dəqiq baytlar reyestrdə saxlanılır,
lakin sahib təsdiqləyənədək quraşdırıla bilməz. İnsan tərəfindən keçilən 2FA mərhələsi
sübutdan əvvəl deyil, SONRA yerinə yetirilir.
İş axını uğurla tamamlandıqdan sonra sahibin yerinə yetirəcəyi proses:
npm stage list omniroute— mərhələ identifikatorunu tapın (iş axını xülasəsində də göstərilir).- Mərhələlənmiş baytları yoxlayın (tövsiyə olunur):
npm stage download <id>, sonra endirilmiş tarball faylını müvəqqəti prefiksə quraşdırın və işə salın (npm run check:pack-bootCI daxilində eyni paketləmə→quraşdırma→işə salma nəticəsini avtomatlaşdırır). npm stage approve <id>— 2FA sorğusu ELƏ dərcin özüdür.npm stage reject <id>ləğv edir.- Dərcdən sonrakı qoruyucu yoxlama: dərcdən sonrakı yoxlayıcı (v3.8.49 planının WS1.4 hissəsi) dərc edilmiş versiyanı ictimai reyestrdən təmiz konteynerə quraşdırır və işə salır.
Fövqəladə ehtiyat variant: publish_mode=direct ilə workflow_dispatch köhnə dərhal
npm publish davranışını bərpa edir (yalnız mərhələləmənin özü düzgün işləmədikdə istifadə edin; səbəbini qeyd edin).
Birdəfəlik sərtləşdirmə (sahib, npmjs.com): omniroute üçün Trusted Publisher-i
yalnız mərhələləmə rejimində konfiqurasiya edin ki, sızdırılmış uzunmüddətli token heç bir yerdən birbaşa
npm publish edə bilməsin — CI yalnız mərhələləyə bilər; yalnız sahibin 2FA təsdiqi buraxılışı dərc edir.
Zədələnmiş artefakt üzrə fəaliyyət planı (dəyişməyib): standart ilk addım kimi
npm deprecate omniroute@<bad> "<reason> — use <fixed>" istifadə edin (dəqiqələr çəkir, geri qaytarıla bilər);
npm unpublish yalnız 72 saat/asılılığı olmayanlar pəncərəsi daxilində və heç vaxt ilk addım kimi istifadə edilməməlidir.
Docker: versiya teqini heç vaxt yenidən yazmayın — geri qaytarma latest teqini son işlək digest-ə yönləndirməkdir.
Docker Hub latest (hər stabil SemVer dərci üçün tələb olunur):
docker-publish iş axını həm X.Y.Z teqini, həm də
should-promote-latest.sh bunun ən yüksək stabil SemVer olduğunu təsdiqlədikdə :latest teqini
eyni digest ilə qeyd etməlidir. İşdən sonra: Hub-dakı latest digest-i yeni SemVer digest-inə bərabər olmalı
və last_updated yenilənməlidir. Buraxılış qeydlərində yalnız git-də mövcud olan düzəlişlərdən bəhs edilərkən
:latest teqini köhnə yığımda saxlamayın. Compose ilə sürətli başlama nümunələri :latest istifadə edir;
GitOps isə X.Y.Z versiyasına sabitlənməyə davam etməlidir. Docker buraxılış kanalları
və #10317-yə baxın.
Təcili Düzəliş üçün Sürətli Zolaq (hotfix etiketi)
hotfix etiketi verilmiş PR ağır CI matrisini (9 şardlı E2E, əhatə ratçeti,
quality-gate, quality-extended) ötürür və sürətli, yüksək siqnallı yoxlamaları saxlayır: build,
unit şardları, integration, vitest, lint/typecheck, docs-sync, check:pack-artifact
və tarball ilkin işəsalma tüstü testi (check:pack-boot). Hədəf: ~33 dəqiqə əvəzinə ≤15 dəqiqəyə yaşıl nəticə.
Giriş qaydası — dördünün də yerinə yetirilməsi tələb olunur (Chromium/VS Code/Node təcili zolaqları əsasında modelləşdirilib):
- Ciddilik: istehsal mühiti pozulub — dərc edilmiş artefakt ilkin işəsalma zamanı çökür / təhlükəsizlik düzəlişidir / buraxılışın hər bir istifadəçisinə təsir edir. «Vacib» olmaq «pozulmuş» olmaq demək deyil.
- Səlahiyyət:
hotfixetiketini yalnız repozitoriyanın sahibi tətbiq edir. Etiket təsdiqin ÖZÜDÜR — kampaniya PR-ında bunu heç vaxt özünüz tətbiq etməyin. - Sübut: PR təsvirində əvvəlki tam yaşıl ağır icraya (ötürülmüş işlərin yenidən yoxlayacağı dəst) və düzəlişin əvvəl uğursuz, sonra uğurlu olan öz testinə keçid verilir.
- Əhatə dairəsi: yalnız cherry-pick — minimal düzəliş; refaktorinq və əlavə dəyişikliklər yoxdur.
Ötürülmüş əhatə/ratçet sahəsi release budağındakı növbəti tam icra
(davamlı yaşıl buraxılış) tərəfindən yenidən yoxlanılır — zolaq yoxlamanı deyil, yalnız GÖZLƏMƏNİ ötürür.
Yalnız testlərdən ibarət fərqlər (bütün fayllar tests/ altındadır, heç biri tests/e2e/ altında deyil)
heç bir etiket olmadan E2E matrisini avtomatik ötürür.
Ətraflı Yoxlama Siyahısı
Buraxılışdan əvvəl
- Bu buraxılış üçün nəzərdə tutulan bütün PR-lar
release/vX.Y.0budağına birləşdirilib - Bu versiya üçün bütün açıq Linear/issue elementləri bağlanıb və ya növbəti mərhələyə keçirilib
release/vX.Y.0budağında CI yaşıl nəticə verir- Kodda
TODO(release)markerləri yoxdur:grep -r "TODO(release)" src/ open-sse/ - Docker baza obrazı yenilənib (hazırda
node:24.15.0-trixie-slim)
Versiya və Dəyişiklik Jurnalı
/version-bump-cc <patch|minor|major>əmrini icra edin (Claude Code bacarığı)package.json,electron/package.jsonversiyalarını artırır- Son teqdən bəri git commit-ləri əsasında
CHANGELOG.mdfaylını yenidən yaradır - README.md nişanlarını yeniləyir
- CHANGELOG.md faylını əl ilə nəzərdən keçirin və lazım olduqda commit mesajlarını təmizləyin
CHANGELOG.mddaxilindəki son semver bölməsininpackage.jsonversiyasına bərabər olduğuna əmin olun- Gələcək işlər üçün
## [Unreleased]bölməsini dəyişiklik jurnalının ilk bölməsi kimi saxlayın docs/openapi.yamlfaylını yeniləyin →info.versiondəyəripackage.jsonversiyasına bərabər olmalıdır
Kod Keyfiyyəti
npm run lint— 0 xəta (xəbərdarlıqlar əvvəlcədən mövcuddur)npm run typecheck:core— təmiznpm run typecheck:noimplicit:core— təmiz (sərt)npm run check:cycles— dövri asılılıq yoxdurnpm run check:any-budget:t11— büdcə daxilindədirnpm run check:route-validation:t06— təmiznpm run check:node-runtime— dəstəklənən minimal icra mühiti tələbi qarşılanır (>=22.22.2 <23,>=24.0.0 <27,src/shared/utils/nodeRuntimeSupport.tsdaxilindəkiSUPPORTED_NODE_RANGEəsasında;package.jsondaxilindəkienginesilə uyğunlaşdırılıb)
Test
npm run test:unit— uğurlunpm run test:vitest— uğurlu (MCP serveri, autoCombo, keş)npm run test:coverage— 60/60/60/60 həddi ödənilir (ifadələr/sətirlər/funksiyalar/budaqlar)npm run test:integration— uğurlu (dəyişikliklər DB-yə / emalçılara toxunursa)npm run test:combo:matrix— uğurlu (combo strategiyası matrisi: 19 ictimai marşrutlaşdırma strategiyasının hamısının seçim qərarlarını deterministik şəkildə sübut edir; combo marşrutlaşdırmasına, strategiya həllinə və ya ehtiyat məntiqinə toxunarkən icra edin)RUN_COMBO_LIVE=1 npm run test:combo:live— ixtiyari/əl ilə (şərtli real-yuxarı axın tüstü testi; VPS-dəkiroot@192.168.0.15ünvanından yalnız oxuna bilən DB ani görüntüsünü götürür; real provayderlərə sorğu göndərir və kredit sərf edir; CI-də heç vaxt icra edilmir; şərt olmadan problemsiz ötürülür)npm run test:combo:live:vps— ixtiyari/əl ilə (Mərhələ-3 VPS canlı tüstü testi: adi Node ESM vasitəsilə canlı.15serverinə qarşı 7 HTTP ssenarisi;ssh root@192.168.0.15tələb edir; yalnız__live_test__*kombolarını yaradır/silir; real provayderlərə sorğu göndərir; CI-də heç vaxt icra edilmir)npm run test:e2e— uğurlu (UI dəyişiklikləri)npm run test:protocols:e2e— uğurlu (MCP/A2A dəyişiklikləri)npm run test:ecosystem— uğurlu
Huklar (Husky tərəfindən yoxlanılıb)
Husky hukları .husky/ daxilində yerləşir və git əməliyyatları zamanı avtomatik icra olunur.
- pre-commit:
npx lint-staged + node scripts/check/check-docs-sync.mjs + npm run check:any-budget:t11 - pre-push: sürətli deterministik yoxlamalar —
npm run check:any-budget:t11 && npm run check:tracked-artifacts(2026-06-13 tarixində aktivləşdirilib).test:unitqəsdən daxil edilməyib (ləngdir; CItest-unitişi tərəfindən əhatə olunur).- Release budaqlarını göndərməzdən əvvəl
npm run test:unitəmrini əl ilə icra edin.
- Release budaqlarını göndərməzdən əvvəl
Huk uğursuz olarsa: əsas problemi düzəldin, --no-verify ilə yan keçməyin.
Conventional Commits
Buraxılışa daxil ediləcək bütün commit-lər type(scope): subject formatına uyğun olmalıdır.
Etibarlı növlər: feat, fix, refactor, docs, test, chore, perf, style, ci
Etibarlı əhatə dairələri: db, sse, oauth, dashboard, api, cli, docker, ci, mcp, a2a, memory, skills, cloud-agent, guardrails, compression, auto-combo, resilience, providers, executors, translator, domain, authz
Geriyə uyğunluğu pozan dəyişikliklər: BREAKING CHANGE: alt qeydini və ya əhatə dairəsindən sonra ! əlavə edin (məsələn, feat(api)!: drop /v0).
Sənədləşdirmə
npm run check:docs-syncuğurla tamamlanır (pre-commit tərəfindən avtomatik işə salınır)npm run check:docs-alluğurla tamamlanır (ümumi yoxlama: docs-sync + docs-counts + env-doc-sync + deprecated-versions + doc-links)npm run check:env-doc-sync0 kodu ilə tamamlanır — kod ↔.env.example↔docs/reference/ENVIRONMENT.mdmühit dəyişənləri müqaviləsi bütövdürnpm run check:doc-links0 kodu ilə tamamlanır — yenidən strukturlaşdırmadan sonra pozulmuş daxili markdown istinadları yoxdurdocs/architecture/ARCHITECTURE.mdsaxlama/runtime uyğunsuzluqları baxımından nəzərdən keçirilibdocs/guides/TROUBLESHOOTING.mdmühit dəyişənləri və əməliyyat uyğunsuzluqları baxımından nəzərdən keçirilib.env.exampledəyişibsə:docs/reference/ENVIRONMENT.mdyenilənib- Yeni funksiyanın UI-si varsa:
docs/guides/USER_GUIDE.mdbundan bəhs edir - Yeni funksiyanın API-si varsa:
docs/reference/API_REFERENCE.md+docs/openapi.yamlyenilənib - Yeni funksiya moduldursa: ayrıca
docs/<MODULE>.mdmövcuddur - Geriyə uyğunluğu pozan dəyişiklik varsa:
docs/guides/TROUBLESHOOTING.mdmiqrasiya qeydinə malikdir
i18n
npm run i18n:check0 kodu ilə tamamlanır — tərcümə vəziyyəti (.i18n-state.json) mənbə sənədləri ilə sinxronlaşdırılıb (ciddi rejimdə fərqlənən mənbələr yoxdur; son dəqiqə sənəd düzəlişləri üçün xəbərdarlıq rejiminin bildirişi məqbuldur, lakin teqləmədən əvvəl nəticə 0 olmalıdır)npm run i18n:check-ui-coverage0 kodu ilə tamamlanır — hər bir UI lokalı 80%-lik əhatə həddində və ya ondan yuxarıdırnpm run i18n:sync-ui:drybütün 42 lokal üzrə 0 çatışmayan açar bildirir- İngiliscə mənbə sənədləri dəyişibsə, teqləmədən əvvəl
npm run i18n:runəmrini işə salın (.envdaxilindəOMNIROUTE_TRANSLATION_API_KEYtələb olunur) - Kiçik həcmli tərcümə töhfələri növbəti buraxılışa təxirə salına bilər (CHANGELOG-da izləyin)
Verilənlər Bazası Miqrasiyaları
src/lib/db/migrations/daxilində yeni fayllar varsa:- Hər bir miqrasiya idempotentdir (
CREATE TABLE IF NOT EXISTSvə s.) - Miqrasiyalar tranzaksiyalarla əhatələnib
- Düzgün nömrələnib (ardıcıllıqda boşluq yoxdur)
- Hər bir miqrasiya idempotentdir (
- Təmiz quraşdırmada sınaqdan keçirin:
~/.omniroute/omniroute.dbfaylını silin vənpm run devəmrini işə salın - Mövcud quraşdırmada sınaqdan keçirin: verilənlər bazasının ehtiyat nüsxəsini yaradın, miqrasiyanı işə salın, sxemi yoxlayın
- Miqrasiya cədvəlləri yenidən yazırsa, WAL faylları (
-wal,-shm) düzgün idarə olunur
Provayder Kataloqu (Zod ilə doğrulanır)
src/shared/constants/providers.tsZod sxemi yüklənmə zamanı etibarlıdır- Bütün provayderlər tələb olunan sahələrə (
id,label,kindvə s.) malikdir - Yeni pulsuz provayderlər üçün
freeNotetəqdim olunub - OAuth provayderlərinin
oauthConfigkonfiqurasiyasısrc/lib/oauth/constants/oauth.tsdaxilində qeydiyyatdan keçirilib
- Bütün provayderlər tələb olunan sahələrə (
- Yeni provayder əlavə edilibsə:
open-sse/executors/daxilində müvafiq icraçı mövcuddur - Format OpenAI formatında deyilsə:
open-sse/translator/daxilində tərcüməçi mövcuddur - Modellər
open-sse/config/providerRegistry.tsdaxilində qeydiyyatdan keçirilib tests/unit/daxilindəki vahid testləri provayder təsnifatını və yönləndirməni əhatə edir
Masaüstü (Electron)
electron/ dəyişibsə:
npm run electron:smoke:packageduğurla tamamlanır- Yığımlar
:win,:mac,:linuxvariantlarından ən azı biri üçün sınaqdan keçirilib - Kod imzalama sertifikatlarının müddəti bitməyib (imzalama aparılırsa)
electron/package.jsonversiyası kökpackage.jsonversiyası ilə eynidirstablekanalına buraxılış edilirsə, avtomatik yeniləmə kanalının göstəricisi yenilənib
Yığım Strukturu
Repozitoriya üç fərqli çıxış kataloqundan istifadə edir — onları heç vaxt qarışdırmayın:
| Kataloq | Məqsəd | İzlənilir? |
|---|---|---|
src/ |
Tətbiqin mənbə kodu (TypeScript / TSX) | Bəli |
.build/ |
Yığımın aralıq faylları — next build çıxışı (distDir) |
Xeyr (gitignored) |
dist/ |
Paylanmağa hazır npm paketi — assembleStandalone ilə yığılır |
Xeyr (gitignored) |
Operator qeydi: uzaq VPS təsvirindəki kataloq
/usr/lib/node_modules/omniroute/app/olaraq qalır. Yalnız repozitoriya daxilindəki yığım çıxışı köçürülüb (app/→dist/). Deploy bacarıqlarıdist/məzmununu uzaqapp/kataloquna rsync edir — VPS yollarında dəyişiklik tələb olunmur.
Tək yığım axını:
npm run build:release
└─ rm -rf .build dist (təmizləmə)
└─ next build → .build/next/ (aralıq fayllar)
└─ assembleStandalone (standalone + static + public + natives fayllarını → dist/ kataloquna köçürür)
└─ dist/BUILD_SHA yazır (HEAD nəzarət göstəricisi)
Deploy üçün npm run build əmrindən sonra ayrıca npm run build:cli əmrini işə salmayın — bir əmrlə təmiz yenidən yığım və nəzarət göstəricisi yaradan
npm run build:release əmrindən istifadə edin.
Artefaktın Doğrulanması
npm run build:releaseuğurla tamamlanır vədist/BUILD_SHA==git rev-parse --short HEADnpm run check:pack-artifacttəmiz nəticə verir —app.__qa_backup,scripts/scratch,package-lock.jsonvə ya başqa lokal qalıqlar yoxdur- Yığımdan sonra
dist/server.jsmövcuddur
Teqləmə və Buraxılış
/generate-release-ccəmrini işə salın (Claude Code bacarığı):vX.Y.Zteqi yaradır- Teqi və budağı göndərir
- Dəyişiklik jurnalı mətni ilə GitHub Release açır
- Electron quraşdırıcılarını əlavə edir (yığılıbsa)
- Və ya əl ilə:
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
Yerləşdirmə
Deploy bacarıqları yüngül rsync axınından istifadə edir — npm pack və npm i -g istifadə olunmur:
- Hədəfə uyğun deploy bacarığından istifadə edin:
/deploy-vps-local-cc— lokal VPS (192.168.0.15)/deploy-vps-akamai-cc— Akamai VPS (69.164.221.35)/deploy-vps-both-cc— hər ikisi
- Yerləşdirmədən əvvəl
dist/BUILD_SHA==git rev-parse --short HEADolduğunu təsdiqləyin - Yığım
node_modulesqovluğunun real olduğu yerdə işlədilməlidir (əsas checkout və yanpm ciicra edilmiş worktree — simvolik keçidlə qoşulmuş worktree DEYİL) - Yerləşdirilmiş instansiyada smoke test aparın:
/dashboard/healthsəhifəsini açın → versiya sətrinin buraxılışla uyğun olduğunu yoxlayın- Məlum provayderə qarşı
/v1/chat/completionssorğusu göndərin /api/monitoring/healthcavabınınCLOSEDvəziyyətindəki circuit breaker-ləri qaytardığını yoxlayın- MCP nəqliyyatlarının cavab verdiyini təsdiqləyin (
/mcpHTTP,/mcp-sseSSE)
Buraxılışdan Sonra
/capture-release-evidences-ccəmrini işə salın (Claude Code bacarığı)- Yeni funksiyaların WebP ekran görüntülərini/yazılarını çəkir
- Buraxılış qeydlərinə / bloq yazısına əlavə edir
- GitHub Discussions / Discord platformalarını buraxılış elanı ilə yeniləyin
- Növbəti versiya üçün mərhələ açın
- Kritikdirsə: müzakirəni bərkidin və ya tətbiqdaxili banner üçün
news.jsonfaylında paylaşın
Radar-ın ictimai istifadəyə verilməsi üçün keçid şərtləri
Radar elanı qəsdən active: false ilə kommit edilib. Aktivləşdirmə aşağıdakı hər bir bənd üzrə sübut təqdim edildikdən sonra ayrıca dəyişiklik kimi həyata keçirilir:
- Üst-üstə yığılmış bütün Radar PR-ları birləşdirilib və buraxılışın son versiyası üçün CI uğurla tamamlanıb
RADAR_ENABLEDdefolt olaraq hələ də söndürülmüş vəziyyətdə OSS Radar marşrutlarını yerləşdirin və ilkin yoxlamadan keçirin- Göstərilən Radar hostunda
GET /planos,/termos,/privacidadevə/reembolsoüçün ilkin yoxlama aparın - Operatorun şəxsiyyətini/əlaqə məlumatlarını/ünvanını və sahib tərəfindən təsdiqlənmiş hüquqi yoxlamanı özəl xidmətdə qeydə alın
- Stripe Checkout-u və imzalanmış webhook-u yalnız test rejimində sınaqdan keçirin
- Təsdiqlənmiş göndərən/domendən bir şifrələnmiş tranzaksiya e-poçtunun çatdırılmasını sınaqdan keçirin
- Ehtiyat nüsxədən bərpanı və nəzarət altında, büdcəsi məhdudlaşdırılmış bir tədqiqat icrasını təsdiqləyin
- İanə sübutlarını qəbul etməzdən əvvəl BRL/PIX yoxlama siyasətini təsdiqləyin
- İctimai Checkout-u yalnız əvvəlki keçid şərtləri yerinə yetirildikdən sonra aktivləşdirin, ardınca yeni
news.jsonID-sini aktivləşdirin - Home bannerinin lokallaşdırılmış mətndən istifadə etdiyini və köhnə ID rədd edildikdən sonra yeni ID-nin yenidən göründüyünü yoxlayın
Daxili xidmətlərin tüstü testi (v3.8.4+)
Daxili xidmətlərlə bağlı dəyişiklikləri ehtiva edən hər hansı buraxılışı yayımlamazdan əvvəl yoxlayın:
Təzə verilənlər bazası ilə işə salma (miqrasiya toqquşmalarını aşkarlayır — v3.8.4 təcili düzəlişindən sonra əlavə edilib)
DATA_DIR=$(mktemp -d) npm start &— işə düşməsi üçün 10 saniyə gözləyincurl -s http://127.0.0.1:20128/api/services/9router/status | jq '.tool'əmri"9router"qaytarır (404 DEYİL, 500 DEYİL).071_services.sqlmiqrasiyasının tətbiq edildiyini və sətrin ilkin məlumatlarla yaradıldığını təsdiqləyir.sqlite3 $DATA_DIR/storage.sqlite "PRAGMA table_info(version_manager);" | grep -E "provider_expose|logs_buffer_path|last_sync_at"əmri 3 sətir qaytarır.sqlite3 $DATA_DIR/storage.sqlite "PRAGMA table_info(webhooks);" | grep -E "kind|metadata_encrypted"əmri 2 sətir qaytarır (070_webhooks_kind_metadata.sqlmiqrasiyasının tətbiq edildiyini təsdiqləyir).node --import tsx/esm --test tests/unit/db/no-migration-collisions.test.tsuğurla tamamlanır — gələcək toqquşmaların qarşısını alır.
9Router
POST /api/services/9router/install2 dəqiqədən az müddətdəinstalledVersionilə birlikdə 200 qaytarırPOST /api/services/9router/start30 saniyədən az müddətdə 200 vəstate: "running"qaytarırGET /api/services/9router/statushealth: "healthy"bildirir"model": "9router/auto/..."iləPOST /v1/chat/completions200 qaytarır (9Router vasitəsilə başdan sona marşrutlaşdırma)GET /dashboard/providers/services/9router/embed/dashboardproksi daxilində 9Router-in yerli istifadəçi interfeysini göstərir (birbaşa127.0.0.1:portiframe-i yoxdur)POST /api/services/9router/rotate-key{ keyRotated: true }qaytarır və xidmət problemsiz yenidən başlayırPOST /api/services/9router/stop200 vəstate: "stopped"qaytarırGET /api/services/9router/logs?tail=50son sətirləri ehtiva edənsnapshothadisəsi ilə SSE axını qaytarır- PATH daxilində
npmolmayan mühitdə quraşdırma anlaşılan (stək izi olmayan) xəta mesajı ilə 500 qaytarır
CLIProxyAPI
POST /api/services/cliproxy/install2 dəqiqədən az müddətdə 200 qaytarırPOST /api/services/cliproxy/start30 saniyədən az müddətdə 200 vəstate: "running"qaytarırGET /api/services/cliproxy/statushealth: "healthy"bildirirPOST /api/services/cliproxy/stop200 vəstate: "stopped"qaytarırGET /api/services/cliproxy/logs?tail=50SSE axını qaytarır
Təhlükəsizlik reqressiyası
curl -H "X-Forwarded-For: 1.2.3.4" http://localhost:20128/api/services/9router/start403 LOCAL_ONLYqaytarırcurl -H "X-Forwarded-For: 1.2.3.4" http://localhost:20128/api/services/cliproxy/start403 LOCAL_ONLYqaytarır/api/services/*tərəfindən qaytarılan xəta cavablarındaerr.stackvə ya mütləq fayl yolları yoxdur
v3.8.0+ yoxlamaları
Hər hansı v3.8.x buraxılışını yayımlamazdan əvvəl bu əlavə bəndləri yoxlayın:
omniroute --traymacOS-da işə düşür (systray2~/.omniroute/runtime/daxilində quraşdırılıb)omniroute --trayLinux-da işə düşür (DISPLAY tələb olunur; təyin edilməyibsə, idarəolunan xəta qaytarılır)omniroute --trayWindows-da işə düşür (PowerShell NotifyIcon, əlavə binar fayllar yoxdur)omniroute config tray enableavtomatik başlatma qeydi yaradır; söndürmə onu silirnpm install -g omniroute@<this-version>postinstall mərhələsini kritik xəta ilə çıxmadan icra edir- Yeniləmə yolu opsional asılılıqları qoruyur:
omniroute update --applyvə avtomatik yeniləyicinpm install -g … --include=optionaləmrini icra edir ki,optionalDependencies(better-sqlite3, keytar, tls-client və llmlingua SLM steki:@atjsh/llmlingua-2@2.0.5,js-tiktoken) yeniləmədən sonra qorunub saxlanılsın. UltramodelPathSLM səviyyəsi üçün həmçinin ilk istifadə zamanı avtomatik olaraq${DATA_DIR}/models/llmlinguaqovluğuna endirilən tinybert modeli tələb olunur. Bundan sonra postinstall (scripts/build/colocateOptionals.mjs) SLM-in opsional asılılıqlar zəncirinidist/node_modulesdaxilində birgə yerləşdirir ki, worker VAHİD@huggingface/transformers^4.2.0 instansını həll etsin — müstəqil trace yalnız transformers-i paketləyir, dinamik olaraq import edilən opsional asılılıqları deyil; buna görə də bu olmadan worker llmlingua-2-ni kök səviyyəsindəki transformers ilə yükləyər və SLM səviyyəsi nəzərə çarpmadan açıq rejimə keçər. omniroute status.envolmadan işləyir (CLI token yolu, yalnız loopback)curl http://localhost:20128/api/shutdown401 qaytarır (həmişə qorunan marşrut)curl -H "host: evil.com" http://localhost:20128/api/mcp/sse401 qaytarır (loopback qoruması)- SQLite icra mühiti ilk işə salınmada
bundledolaraq həll edilir (paketlənmiş binar fayl platforma üçün etibarlıdır) node_modules/better-sqlite3silindikdə SQLite icra mühitiruntimevariantına keçir- Ağıllı MCP filtri real
playwright-mcp browser_snapshotçıxışını sıxır (≥50% azalma) - Bütün 10
skills/omniroute*/SKILL.mdfaylı xam GitHub URL-i vasitəsilə açıq şəkildə əldə edilə bilir - İlkin quraşdırma köməkçisi təzə quraşdırmada "Necə işləyir" səviyyə icmalı addımını göstərir
- Əsas idarə panelindəki səviyyə əhatəsi vidceti konfiqurasiya edilmiş/aktiv saylarını göstərir
Geri qaytarma
Buraxılışda kritik problem varsa:
gh release edit vX.Y.Z --prerelease(ən son buraxılış kimi işarələnməsini ləğv edir)git tag -d vX.Y.Z && git push --delete origin vX.Y.Z(yalnız istifadəçilər tərəfindən hələ mənimsənilməyibsə)- Və ya:
release/vX.Y.0üzərində təcili düzəliş →vX.Y.(Z+1)yamaq buraxılışı - Dərhal GitHub Discussions və Discord-da məlumat verin
Qəti qaydalar
- Heç vaxt birbaşa
mainbudağına commit etməyin - Heç vaxt
mainvə yarelease/*budaqları üçüngit push --forceistifadə etməyin - Heç vaxt Husky hook-larını (
--no-verify) keçməyin - Heç vaxt məxfi məlumatları, giriş məlumatlarını və ya
.envfayllarını commit etməyin - Əhatə səviyyəsi ≥60/60/60/60 (ifadələr/sətirlər/funksiyalar/budaqlar) olaraq qalmalıdır
src/,open-sse/,electron/və yabin/daxilindəki istehsal kodunu dəyişdirərkən həmişə testlər əlavə edin və ya yeniləyin
Avtomatlaşdırılmış sinxronizasiya yoxlaması
PR açmazdan əvvəl sənədlərin sinxronizasiya qoruyucusunu lokal olaraq işə salın:
npm run check:docs-sync
CI də bu yoxlamanı .github/workflows/ci.yml daxilində (lint tapşırığında) işə salır.