Batch 1 of the locale expansion: Greek, Croatian, Serbian, Lithuanian, Estonian, Latvian, Slovenian, Maltese and Irish across the dashboard catalog, docs mirrors, CLI catalog, README, locale index and the site. 42 → 51 locales. Also fixes the ICU literal escape the translation backend dropped around angle placeholders, four translations that invented or renamed a placeholder, the language bars that linked to mirrors that do not exist, and the migration count drift (171 → 172). ⚠️ base-red inherited: #12732 — the four unit shards and Fast Quality Gates fail identically on unrelated PRs cut from the same base.
25 KiB
Contributing to OmniRoute (Lietuvių)
🌐 Languages: 🇺🇸 English · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇮🇩 id · 🇮🇹 it · 🇯🇵 ja · 🇰🇷 ko · 🇱🇻 lv · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇳🇱 nl · 🇳🇴 no · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇻🇳 vi · 🇨🇳 zh-CN · 🇹🇼 zh-TW
Dėkojame, kad domitės galimybe prisidėti! Šiame vadove rasite viską, ko reikia norint pradėti.
Oficiali darbo eiga, taikoma kiekvienam pakeitimui, aprašyta Indėlio auksiniame kelyje. Jame tiekėjų, maršruto parinkimo, UI/UX, i18n, CLI, duomenų bazės ir kūrimo / diegimo pakeitimai susiejami su jų sutartimis, tiksliniais testais, CI aprėptimi ir suderinimo veiksmais.
Kūrimo aplinkos paruošimas
Būtinosios sąlygos
- Node.js
>=22.22.3 <23arba>=24.0.0 <27(rekomenduojama: 24 LTS) - npm 10+
npm v11+ naudotojams (Node 24+): Paleidę
npm install, patikrinkite, ar įdiegti savieji moduliai:node -e "require('better-sqlite3')". Jei komanda nepavyksta ir pateikiama klaidaMODULE_NOT_FOUND, paleiskitenpm approve-scripts better-sqlite3 && npm install. Žr. Trikčių diagnostiką.
- Git
Klonavimas ir diegimas
git clone https://github.com/diegosouzapw/OmniRoute.git
cd OmniRoute
npm install
Aplinkos kintamieji
# Sukurkite savo .env pagal šabloną
cp .env.example .env
# Sugeneruokite reikalingas slaptąsias reikšmes
echo "JWT_SECRET=$(openssl rand -base64 48)" >> .env
echo "API_KEY_SECRET=$(openssl rand -hex 32)" >> .env
Pagrindiniai kūrimui skirti kintamieji:
| Kintamasis | Numatytoji kūrimo reikšmė | Aprašymas |
|---|---|---|
PORT |
20128 |
Serverio prievadas |
NEXT_PUBLIC_BASE_URL |
http://localhost:20128 |
Kliento sąsajos bazinis URL |
JWT_SECRET |
(sugeneruokite pirmiau) | JWT pasirašymo paslaptis |
INITIAL_PASSWORD |
CHANGEME |
Pirmojo prisijungimo slaptažodis |
APP_LOG_LEVEL |
info |
Žurnalų išsamumo lygis |
Valdymo skydelio nustatymai
Valdymo skydelyje pateikiami funkcijų UI jungikliai, kuriuos taip pat galima konfigūruoti naudojant aplinkos kintamuosius:
| Nustatymo vieta | Jungiklis | Aprašymas |
|---|---|---|
| Nustatymai → Išplėstiniai | Derinimo režimas | Įjungti derinimo užklausų žurnalus (UI) |
| Nustatymai → Bendrieji | Šoninės juostos matomumas | Rodyti / slėpti šoninės juostos skiltis |
Šie nustatymai saugomi duomenų bazėje ir išlieka paleidus sistemą iš naujo, o juos nustačius pakeičiamos numatytosios aplinkos kintamųjų reikšmės.
Paleidimas vietoje
# Kūrimo režimas (automatinis perkrovimas)
npm run dev
# Produkcinis kūrimas
npm run build # next build → .build/next/, tada assembleStandalone → dist/
npm run start
# Spartus tik galinės sistemos / API kompiliavimas prisidedančiųjų pakeitimams
npm run build:contributor
# Leidimo kūrimas (švarus perkūrimas + HEAD kontrolinė reikšmė — būtina diegimui)
npm run build:release # rm -rf .build dist && build + įrašo dist/BUILD_SHA
# Įprasta prievado konfigūracija
PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev
Prisidedantiesiems skirtas kūrimas atlieka tik kompiliavimo patikrą: jis nesurenka autonominio platinamojo paketo ir nekuria pasirinktinių savųjų paketavimo išteklių. Kai reikia patikrinti platinti paruoštą paketą, naudokite įprastą produkcinį kūrimą.
Kūrimo išvesties struktūra
| Katalogas | Turinys | Sekamas |
|---|---|---|
src/ |
Programos pirminis kodas (TypeScript / TSX) | Taip |
.build/ |
Tarpiniai failai — next build išvestis (git ignoruojama, distDir = .build/next) |
Ne |
dist/ |
Platinti paruoštas paketas — surenkamas naudojant assembleStandalone (git ignoruojamas) |
Ne |
Kūrimo konvejeris vykdomas vienu etapu:
npm run build
└─ next build → .build/next/standalone (Next.js išvestis)
└─ assembleStandalone() (nukopijuoja autonominį paketą + statinius + viešuosius + savuosius išteklius)
└─ išvestis: dist/ (server.js, .next/static/, public/, node_modules/)
npm run build:release taip pat pirmiausia išvalo abu katalogus ir įrašo
dist/BUILD_SHA (= git rev-parse --short HEAD) kaip diegimo vientisumo kontrolinę reikšmę.
npm run build:contributor naudoja tik galinei sistemai skirtą kūrimo profilį. Kūrimo metu jis laikinai pakeičia
valdymo skydelio UI failus imitaciniais failais, išsaugo API maršrutų apdorojimo programas ir po kūrimo atkuria pradinius failus.
Pakeitimams, turintiems įtakos valdymo skydelio UI, arba visapusiškai leidimo patikrai naudokite npm run build;
prisidedantiesiems skirtas profilis nepakeičia leidimo kūrimo.
Pastaba dėl diegimo VPS: nuotolinis atvaizdo katalogas
/usr/lib/node_modules/omniroute/app/nepasikeitė. Diegimo priemonės sinchronizuojadist/turinį į jį naudodamos rsync. Pasikeitė tik saugyklos viduje esantis kūrimo išvesties kelias (app/→dist/).
Numatytieji URL:
- Valdymo skydelis:
http://localhost:20128/dashboard - API:
http://localhost:20128/v1
Git darbo eiga
⚠️ NIEKADA neįrašykite pakeitimų tiesiogiai į
main. Visada naudokite funkcionalumo šakas.PR bazė: pasirinkite aktyvią
release/vX.Y.Zšaką (nemain). Išleidimo šakų ir išleidimo metu kuriamų žymų modelis aprašytasdocs/ops/BRANCHING_MODEL.md.
# Sukurkite šaką nuo aktyvios leidimo šakos viršūnės (pavyzdys: release/v3.8.49)
git fetch origin
git checkout -b feat/your-feature-name origin/release/v3.8.49
# ... atlikite pakeitimus ...
git commit -m "feat: describe your change"
git push -u origin feat/your-feature-name
# Atidarykite Pull Request, kurio bazė = release/v3.8.49
Šakų pavadinimai
| Priešdėlis | Paskirtis |
|---|---|
feat/ |
Naujos funkcijos |
fix/ |
Klaidų taisymai |
refactor/ |
Kodo pertvarkymas |
docs/ |
Dokumentacijos pakeitimai |
test/ |
Testų papildymai ir pataisymai |
chore/ |
Įrankiai, CI, priklausomybės |
Įrašų pranešimai
Laikykitės „Conventional Commits“ standarto:
feat: add circuit breaker for provider calls
fix: resolve JWT secret validation edge case
docs: update SECURITY.md with PII protection
test: add observability unit tests
refactor(db): consolidate rate limit tables
Sritys (v3.8): db, sse, oauth, dashboard, api, cli, docker, ci, mcp, a2a, memory, skills, cloud-agent, guardrails, compression, auto-combo, resilience, providers, executors, translator, domain, authz.
Testų vykdymas
# Visi testai (modulių + vitest + ekosistemos + e2e)
npm run test:all
# Vienas testo failas (savasis Node.js testų vykdiklis — jį naudoja dauguma testų)
node --import tsx/esm --test tests/unit/your-file.test.ts
# Tik jūsų pakeitimo paveikti modulių testai (tas pats TIA parinkiklis kaip ir CI patikroje, #8084)
npm run test:scoped # paskutinio įrašo (arba darbinio medžio) pakeitimai
npm run test:scoped:staged # tik parengti pakeitimai — patogu naudoti prieš įrašant pakeitimus
npm run test:scoped:full # pirmiausia iš naujo sukurti importų grafo žemėlapį (pridėjus ar perkėlus failus)
# Exit 1 + „paleiskite visą rinkinį“ reiškia, kad pasikeitė centrinis failas (tsconfig, package.json, …) arba
# nesusietas pirminio kodo failas — parinkiklis saugiai nutraukia darbą ir niekada tyliai nepraleidžia testų.
# Vitest (MCP serveris, autoCombo, podėlis)
npm run test:vitest
# E2E testai (reikalingas Playwright)
npm run test:e2e
# Protokolų klientų E2E testai (MCP transportai, A2A)
npm run test:protocols:e2e
# Ekosistemos suderinamumo testai
npm run test:ecosystem
# Aprėpties riba: 60% sakinių / eilučių / funkcijų / šakų
npm run test:coverage
npm run coverage:report
# Lint ir formatavimo patikra
npm run lint
npm run check
# Sąlygine prieiga apsaugotas bazinis combo testas su tikrais išoriniais tiekėjais (reikalinga prieiga prie VPS ir tikrų tiekėjų kreditai)
# Kreipiamasi į TIKRUS tiekėjus — tai šiek tiek kainuoja. NIEKADA nevykdoma CI. Be prieigos sąlygos tvarkingai praleidžiama.
# Reikalinga: ssh root@192.168.0.15 prieiga (iš VPS gaunama tik skaitoma DB momentinė kopija).
RUN_COMBO_LIVE=1 npm run test:combo:live
# 3-iojo etapo bazinis testas veikiančiame VPS — paprasti Node ESM scenarijai, tiesiogiai pasiekiantys veikiantį .15 serverį.
# Reikalinga: ssh root@192.168.0.15 prieiga (combos sukuriami ir pašalinami per SSH sqlite).
# Kreipiamasi į TIKRUS tiekėjus (nedidelė kaina). Sukuriami ir pašalinami tik __live_test__* combos. NIEKADA nevykdoma CI.
# .15 serveryje REQUIRE_API_KEY=false, todėl API rakto nereikia, tačiau, jei nustatyti, naudojami COMBO_LIVE_BASE_URL / COMBO_LIVE_API_KEY.
npm run test:combo:live:vps # 7 HTTP scenarijai (prioritetas / ciklinis / svertinis / kaina / sujungimas / automatinis + būklė)
npm run test:combo:live:vps:failover # pridedamas tikras perjungimo tarp tiekėjų scenarijus (iš viso 8)
Aprėpties pastabos:
npm run test:coveragematuoja pagrindinio modulių testų rinkinio pirminio kodo aprėptį, neįtraukiatests/**ir įtraukiaopen-sse/**- Pull request turi išlaikyti 60%+ sakinių / eilučių / funkcijų / šakų aprėpties ribą
- Jei PR pakeičia produkcinį kodą kataloguose
src/,open-sse/,electron/arbabin/, tame pačiame PR turi būti pridėti arba atnaujinti automatiniai testai npm run coverage:reportišspausdina išsamią naujausio aprėpties vykdymo ataskaitą pagal failusnpm run test:coverage:legacyišsaugo senesnį rodiklį istoriniam palyginimui- Etapinis aprėpties gerinimo planas pateiktas
docs/ops/COVERAGE_PLAN.md
Pull Request reikalavimai
Prieš atidarydami PR, vadovaukitės rekomenduojama pakeitimų pateikimo seka, kad atliktumėte tikslinį pakeistos dalies patikrų ciklą. Už visą modulių testų rinkinį (4 CI dalys), Vitest, 60%+ aprėpties ribą ir produkcinį komponavimą atsakinga CI — vykdant juos vietoje negaunama jokios papildomos informacijos, kurios jau nepateiktų PR patikros, o mažesniuose kompiuteriuose gali būti išnaudoti visi pagrindinio kompiuterio ištekliai (#8084):
- Paleiskite jūsų pakeitimą tikrinančius testų failus:
node --import tsx/esm --test tests/unit/<file>.test.ts - Paleiskite
npm run lint - Pakeitę produkcinį kodą, tame pačiame PR pridėkite arba atnaujinkite automatinius testus
- Jei pasikeitė produkcinis kodas, PR apraše nurodykite pakeistus arba pridėtus testų failus
- Kai projekto slaptieji duomenys sukonfigūruoti CI, patikrinkite PR SonarQube rezultatą
Dabartinė testų būsena: 122 modulių testų failai, apimantys:
- Tiekėjų vertiklius ir formatų konvertavimą
- Užklausų dažnio ribojimą, grandinės pertraukiklį ir atsparumą
- Semantinį podėlį, idempotentiškumą ir eigos stebėjimą
- Duomenų bazės operacijas ir schemą (21 DB modulis)
- OAuth eigas ir autentifikavimą
- API galinių taškų tikrinimą (Zod v4)
- MCP serverio įrankius ir sričių apribojimų užtikrinimą
- Memory ir Skills sistemas
Kodo stilius
- ESLint — prieš patvirtindami pakeitimus paleiskite
npm run lint - Prettier — patvirtinant pakeitimus automatiškai formatuojama per
lint-staged(2 tarpai, kabliataškiai, dvigubos kabutės, 100 simbolių eilutės plotis, es5 baigiamieji kableliai) - TypeScript — visas
src/kodas naudoja.ts/.tsx;open-sse/naudoja.ts/.js; dokumentuokite naudodami TSDoc (@param,@returns,@throws) - Jokio
eval()— ESLint užtikrinano-eval,no-implied-eval,no-new-func - Zod validavimas — visų API įvesčių validavimui naudokite Zod v4 schemas
- Pavadinimai: failai = camelCase/kebab-case, komponentai = PascalCase, konstantos = UPPER_SNAKE
Klaidų apdorojimas / tušti catch blokai
Niekada nepalikite catch be paaiškinimo. Priskirkite jį vienai iš dviejų kategorijų (taip praktiškai
įgyvendinama griežta taisyklė „SSE srautuose niekada tyliai nepraleisti klaidų“):
-
Tyčinis (mūsų pačių neprivalomas valymas / telemetrija) — gedimas čia yra tikėtinas ir nekenksmingas; pridėkite vienos eilutės paaiškinamąjį komentarą, bet neregistruokite žurnale (registravimas kiekvienai užklausai sukeltų triukšmą, kurio šiuo susitarimu siekiama išvengti).
} catch {} // po kliento atsijungimo tikėtina, kad bus uždaromas jau uždarytas valdiklis -
Reikėtų registruoti žurnale (išorinis / kvietėjo pateiktas kodas arba klaidos praleidimas pakeičia valdymo eigą) — palikite catch bloką (niekada neleiskite jam nutraukti srauto), bet pateikite kontekstinį
console.debug/warn, kad gedimą būtų galima aptikti.} catch (e) { console.debug("[STREAM] onFailure callback klaida:", e); }
Pritaikymo pavyzdžių rasite open-sse/utils/stream.ts ir open-sse/utils/streamHandler.ts.
Projekto struktūra
src/ # TypeScript (.ts / .tsx)
├── app/ # Next.js 16 App Router
│ ├── (dashboard)/ # Valdymo skydelio puslapiai (23 skyriai)
│ ├── api/ # API maršrutai (51 katalogas)
│ └── login/ # Autentifikavimo puslapiai (.tsx)
├── domain/ # Politikų variklis (policyEngine, comboResolver, costRules ir kt.)
├── lib/ # Pagrindinė verslo logika (.ts)
│ ├── a2a/ # Agent-to-Agent v0.3 protokolo serveris
│ ├── acp/ # Agent Communication Protocol registras
│ ├── compliance/ # Atitikties politikų variklis
│ ├── db/ # SQLite domeno moduliai ir 130 migracijų
│ ├── memory/ # Išliekamoji pokalbių atmintis
│ ├── oauth/ # OAuth teikėjai, paslaugos ir pagalbinės priemonės
│ ├── skills/ # Išplečiama įgūdžių sistema
│ ├── usage/ # Naudojimo stebėjimas ir kainos skaičiavimas
│ └── localDb.ts # Tik reeksportavimo sluoksnis — niekada čia nepridėkite logikos
├── middleware/ # Užklausų tarpinė programinė įranga (promptInjectionGuard)
├── mitm/ # MITM tarpinis serveris (sertifikatai, DNS, paskirties maršruto parinkimas)
├── shared/
│ ├── components/ # React komponentai (.tsx)
│ ├── constants/ # Teikėjų apibrėžtys (329), MCP aprėptys, 19 maršruto parinkimo strategijų
│ ├── utils/ # Grandinės pertraukiklis, išvalymo priemonė, autentifikavimo pagalbinės priemonės
│ └── validation/ # Zod v4 schemos
└── sse/ # SSE tarpinio serverio konvejeris
open-sse/ # @omniroute/open-sse darbo sritis
├── executors/ # 89 vykdytojų realizavimo moduliai
├── handlers/ # 11 užklausų apdorojimo programų (pokalbiai, atsakymai, įterpiniai, vaizdai ir kt.)
├── mcp-server/ # MCP serveris (110 unikalių įrankių, 3 transportai, 33 aprėptys)
├── services/ # 178 aukščiausio lygio paslaugos (combo, autoCombo, rateLimitManager ir kt.)
├── translator/ # Formatų vertikliai (OpenAI ↔ Claude ↔ Gemini ↔ Responses ↔ Ollama)
├── transformer/ # Responses API transformavimo priemonė
└── utils/ # 22 pagalbiniai moduliai (srautai, TLS, tarpinis serveris, žurnalų registravimas)
electron/ # Electron darbalaukio programa (kelioms platformoms)
tests/
├── unit/ # Node.js testų vykdyklė (1 574 testų failai)
├── integration/ # Integraciniai testai
├── e2e/ # Playwright testai
├── security/ # Saugumo testai
├── translator/ # Vertikliui skirti testai
└── load/ # Apkrovos testai
docs/
├── adr/ # Architektūrinių sprendimų įrašai
├── architecture/ # Sistemos architektūra ir atsparumas
├── comparison/ # OmniRoute palyginimas su alternatyvomis
├── compression/ # Glaudinimo vadovai ir taisyklės
├── dev/ # Kūrimo vadovai
├── diagrams/ # Architektūros diagramos
├── frameworks/ # MCP, A2A, OpenCode, Memory, Skills
├── guides/ # Naudotojo vadovas, Docker, sąranka, trikčių šalinimas
├── i18n/ # Internacionalizuoti README vertimai
├── marketing/ # Rinkodaros medžiaga
├── ops/ # Diegimas, tarpinis serveris, aprėptis, leidimai
├── providers/ # Konkretiems teikėjams skirta dokumentacija
├── reference/ # API žinynas, aplinkos kintamieji, CLI įrankiai, nemokami planai
├── releases/ # Leidimų pastabos
├── routing/ # Automatinio derinių sudarymo variklis, samprotavimo atkūrimas
├── screenshots/ # Valdymo skydelio ekrano kopijos
├── security/ # Apsaugos priemonės, atitiktis, maskavimas, prieigos raktai
└── specs/ # Projektavimo specifikacijos
Naujo teikėjo pridėjimas
1 veiksmas: užregistruokite teikėjo konstantas
Pridėkite jas į src/shared/constants/providers.ts — įkeliant modulį jos patikrinamos naudojant Zod.
2 veiksmas: pridėkite vykdyklę (jei reikalinga pasirinktinė logika)
Sukurkite vykdyklę faile open-sse/executors/your-provider.ts, išplėsdami bazinę vykdyklę.
3 veiksmas: pridėkite transformatorių (jei naudojamas ne OpenAI formatas)
Sukurkite užklausų ir atsakymų transformatorius kataloge open-sse/translator/.
4 veiksmas: pridėkite OAuth konfigūraciją (jei naudojamas OAuth)
Pridėkite OAuth prisijungimo duomenis faile src/lib/oauth/constants/oauth.ts, o paslaugą — kataloge src/lib/oauth/services/.
Jei pirminis teikėjas platina viešą OAuth client_id / paslaptį arba Firebase Web API raktą savo viešame CLI / naršyklės pakete, neįterpkite jo kaip eilutės literalo. Naudokite resolvePublicCred() iš open-sse/utils/publicCreds.ts ir pridėkite užmaskuotų baitų įrašą į EMBEDDED_DEFAULTS. Visa privaloma darbo eiga aprašyta dokumente docs/security/PUBLIC_CREDS.md.
Apdorojimo funkcijose / vykdyklėse klientą pasiekiantys klaidų pranešimai turi būti apdorojami naudojant buildErrorBody() / sanitizeErrorMessage() iš open-sse/utils/error.ts — niekada nedėkite neapdoroto err.stack ar err.message į Response turinį. Žr. docs/security/ERROR_SANITIZATION.md.
5 veiksmas: užregistruokite modelius
Pridėkite modelių aprašus faile open-sse/config/providerRegistry.ts.
6 veiksmas: pridėkite testus
Parašykite vienetinius testus kataloge tests/unit/, kurie apimtų bent:
- Teikėjo registravimą
- Užklausų / atsakymų transformavimą
- Klaidų tvarkymą
Pull Request kontrolinis sąrašas
- Testai sėkmingi (
npm test) - Linting patikra sėkminga (
npm run lint) - Kompiliavimas sėkmingas (
npm run build) - Pridėti naujų viešųjų funkcijų ir sąsajų TypeScript tipai
- Nėra kode įrašytų paslapčių ar atsarginių reikšmių
- Vieši pirminio teikėjo prisijungimo duomenys įterpti naudojant
resolvePublicCred()(žr.docs/security/PUBLIC_CREDS.md), o ne kaip literalai - Klaidų atsakymai apdorojami naudojant
buildErrorBody()/sanitizeErrorMessage()— atsakymų turinyje nėra neapdorotų dėklo išklotinių (žr.docs/security/ERROR_SANITIZATION.md) - Apvalkalo komandos (
exec/spawn) vykdymo meto reikšmes perduoda perenv, o ne naudodamos eilučių interpoliaciją - Visos įvestys patikrintos naudojant Zod schemas
- Naudotojams matomiems pakeitimams pridėtas pakeitimų žurnalo fragmentas kataloge
changelog.d/{features|fixes|maintenance}/<PR>-<slug>.md(žr.changelog.d/README.md) — neredaguokiteCHANGELOG.mdtiesiogiai; fragmentai sujungiami leidimo metu ir niekada nesukelia konfliktų tarp PR - Dokumentacija atnaujinta (jei taikoma)
- Neatsirado naujų CodeQL / Secret-Scanning įspėjimų arba kiekvienas iš jų atmestas pateikus techninį pagrindimą su nuoroda į atitinkamą
docs/security/dokumentą - Maršrutai, paleidžiantys antrinius procesus (
/api/mcp/,/api/cli-tools/runtime/), failesrc/server/authz/routeGuard.tsklasifikuojami kaipisLocalOnlyPath()— žr. Griežtąją taisyklę Nr. 15 - Įvykdymo pranešimuose nėra
Co-Authored-Bygalinių eilučių — įvykdymai turi būti rodomi tik su saugyklos savininko Git tapatybe (Griežtoji taisyklė Nr. 16)
Leidimų publikavimas
Leidimai valdomi naudojant /generate-release darbo eigą. Sukūrus naują GitHub leidimą, paketas per GitHub Actions automatiškai publikuojamas npm.
Diegimams VPS aplinkoje naudokite npm run build:release (ne npm run build) — ši komanda atlieka švarų
perkompiliavimą, suformuoja paketą kataloge dist/ ir įrašo kontrolinį failą dist/BUILD_SHA.
Tada naudokite /deploy-vps-*-cc įgūdžius, kurie per rsync nukopijuoja dist/ į nuotolinį katalogą app/.
Pagalba
- Architektūra: žr.
docs/architecture/ARCHITECTURE.md - API dokumentacija: žr.
docs/reference/API_REFERENCE.md - Saugumo dokumentai:
docs/security/CLI_TOKEN.md,docs/security/ROUTE_GUARD_TIERS.md,docs/security/ERROR_SANITIZATION.md,docs/security/PUBLIC_CREDS.md - Eksploatavimo dokumentai:
docs/ops/SQLITE_RUNTIME.md - Problemos: github.com/diegosouzapw/OmniRoute/issues
- ADR: architektūrinių sprendimų įrašus rasite
docs/adr/