Sari la conținutul principal

🧪 Ghidul ramurii de dezvoltare

Ramura dev conține cele mai noi îmbunătățiri și funcții experimentale înaintea lansării oficiale.

Software experimental

dev este experimental și poate conține erori, funcții neterminate sau breaking changes. Folosiți-l numai dacă acceptați instabilitatea și doriți să ajutați.

🎯 Ce este ramura dev?​

Funcțiile noi sunt testate în dev înainte de a fi combinate în ramura stabilă main: funcționalități, remedieri, experimente UI și optimizări.

🚀 Folosirea ramurii dev​

Docker (recomandat)​

Fișierele Compose de dezvoltare montează socket-ul Docker pentru ca Work să funcționeze. Pe Linux, setați mai întâi DOCKER_GID în .env.

Cu Ollama extern:

# Clone the repository
git clone https://github.com/libre-webui/libre-webui.git
cd libre-webui

# Switch to dev branch
git checkout dev

# Start the dev image with external Ollama
docker compose -f docker-compose.dev.external-ollama.yml up -d

Docker simplu:

# Use the dev branch image
docker run -d -p 3000:3001 -v libre-webui:/app/backend/data --name libre-webui-dev --restart always ghcr.io/libre-webui/libre-webui:dev

Din source​

# Clone and switch to dev branch
git clone https://github.com/libre-webui/libre-webui.git
cd libre-webui
git checkout dev

# Install dependencies
npm install

# Start development server
npm run dev

Vite poate fi gata înainte ca backend-ul să își încheie verificările de pornire. Pentru un backend local, proxy-ul de dezvoltare așteaptă până la 10 secunde apariția listener-ului înainte de a redirecționa o cerere API. Redirecționează fiecare cerere o singură dată, inclusiv scrierile; nu reia cererile eșuate. Dacă backend-ul rămâne indisponibil, proxy-ul returnează HTTP 503 cu o indicație de reîncercare. Fișierele statice ale interfeței rămân disponibile în timpul așteptării.

Chatul se reconectează după întreruperi trecătoare ale backend-ului, cu întârzieri limitate la 30 de secunde. O conexiune reușită resetează întârzierea, iar deconectarea anulează reîncercările în așteptare. Erorile de autentificare opresc reconectarea automată.

Testarea Work​

Porniți Docker, verificați docker info și docker ps ca utilizatorul backend-ului, rulați npm run dev, autentificați-vă ca administrator și selectați în Work un model cu instrumente.

npm run test:work

Testele verifică politica Docker, izolarea căilor, ciclul de viață, capacitatea și adaptoarele OpenAI, Anthropic și Gemini. Consultați Work.

🔄 Actualizare​

# Update your local dev branch
git pull origin dev

# Refresh the dev Compose stack
docker compose -f docker-compose.dev.external-ollama.yml pull
docker compose -f docker-compose.dev.external-ollama.yml up -d

# Or restart simple Docker
docker pull ghcr.io/libre-webui/libre-webui:dev
docker stop libre-webui-dev && docker rm libre-webui-dev
docker run -d -p 3000:3001 -v libre-webui:/app/backend/data --name libre-webui-dev --restart always ghcr.io/libre-webui/libre-webui:dev

🐛 Ați găsit o eroare?​

Înainte de raportare​

Căutați în GitHub Issues, testați ramura stabilă main și confirmați că problema se repetă.

Raportarea unei erori​

Deschideți 🐛 Report a Bug on GitHub și includeți:

**Environment:**

- Branch: dev
- Version: [git commit hash or date]
- OS: [Windows/macOS/Linux]
- Browser: [Chrome/Firefox/Safari version]
- Setup: [Docker/Source/etc.]
- Docker: [version and whether `docker info` succeeds, for Work issues]
- Work model/provider: [exact route, when applicable]

**Bug Description:**
Clear description of what went wrong

**Steps to Reproduce:**

1. Go to...
2. Click on...
3. See error...

**Expected Behavior:**
What should have happened

**Actual Behavior:**
What actually happened

**Screenshots/Logs:**
[If applicable, add screenshots or error logs]

**Work Activity:**
[Relevant tool call/result or preview output, with secrets removed]

Hash-ul commit-ului Git​

# Find your current dev branch commit
git rev-parse HEAD

# Or get a short version
git rev-parse --short HEAD

🏆 Contribuții și recunoaștere​

Recunoașterea contributorilor​

Contributorii sunt înregistrați în CONTRIBUTORS.md și menționați în notele de release și commit-uri.

Contributori actuali​

Printre ei se numără rob, jm și alții.

Doriți să contribuiți cu cod?​

Faceți fork, creați o ramură cu git checkout -b feature/amazing-feature dev, implementați schimbarea și trimiteți un PR către dev. Consultați instrucțiunile și Carta comunității.

Verificările pull request-urilor​

Fiecare pull request, inclusiv un pull request suprapus către o ramură intermediară de funcționalitate sau de corecție, rulează workflow-ul Format & Lint. Joburile lui independente verifică formatarea, lintingul frontend și backend, tipurile TypeScript, testele de pachet și de regresie și suita de browser Playwright. Chromium rulează suita completă de browser. WebKit și Firefox rulează în plus fluxurile critice de autentificare, streaming, dialoguri, file, automatizări, stocare, Work și redare vocală. Fiecare motor rulează în propriul job CI, iar rulările eșuate încarcă rezultate de test separate.

Tarballul npm testat este instalat într-un director de consumator nou pe Linux, macOS și Windows, atât cu Node 22.22, cât și cu Node 24. Aceste verificări instalează dependențele reale de producție fără să împrumute node_modules din checkout, apoi verifică pornirea CLI, starea de pregătire, servirea frontendului și păstrarea datelor după o repornire. Rulați aceeași verificare local după npm run build, cu npm run test:package-install; transmiteți un tarball sau un director care conține un singur tarball pentru a testa un anumit artefact. O instalare curată are nevoie de acces la registry și de cerințele obișnuite ale platformei pentru compilarea modulelor native, atunci când o dependență precompilată nu este disponibilă.

Un job separat pentru Work Computer construiește imaginea GUI din baza fixată a runtime-ului și rulează testul real de regresie pentru interacțiune. TEST_WORK_COMPUTER=1 face ca lipsa daemonului Docker sau a imaginii să pice verificarea, în loc să o sară. Pentru a reproduce local, setați acest flag și WORK_COMPUTER_TEST_IMAGE la o imagine de test construită separat, apoi rulați npm run test:work-computer. Fără modul obligatoriu, rulările locale raportează în continuare o omitere când fixture-ul GUI opțional lipsește.

Această matrice adaugă verificări pentru suprafețele acceptate; nu activează combinații neacceptate. Datele de autentificare CLI locale ale nodului rămân indisponibile pentru workerii externi ai echipei.

CodeQL acoperă codul JavaScript/TypeScript, Python și de workflow la fiecare pull request. Serverele de furnizor Python executabile din examples/ sunt clasificate explicit drept cod în .gitattributes, astfel încât detectarea limbajelor de către GitHub le include. Configurarea gestionată separată Code Quality ar trebui să includă atât JavaScript/TypeScript, cât și Python. Dacă rezultate istorice rămân după o corecție, verificați revizia analizată și acoperirea limbajelor, apoi reîmprospătați analiza relevantă după publicarea modificării. Nu respingeți constatări valide și nu modificați un comportament asincron corect doar pentru a îmbunătăți un scor afișat.

Workflow-ul Electron Dev Build împachetează și artefacte pentru macOS, Windows și Linux. Buildurile macOS pentru pull request-uri păstrează semnătura ad hoc a proiectului, fără date de autentificare, pentru ca aplicația împachetată să poată fi verificată înainte de încărcare. Workflow-ul pentru pull request-uri nu primește date de autentificare Developer ID sau pentru notarizare.

Workflow-ul Docker Build Test and Push construiește imagini amd64 și arm64 pentru fiecare pull request, inclusiv pentru pull request-urile suprapuse către ramuri intermediare. Buildurile pentru pull request-uri nu se autentifică într-un registry de containere, nu publică digesturi de imagine și nu publică un manifest multiarhitectură.

Rulați local aceleași verificări la nivel de aplicație înainte de a deschide un pull request:

npm run format:check
npm run lint
npm run test:package
npm run test:e2e

⚠️ Observații importante​

Siguranța datelor​

  • Păstrați un backup înainte de a folosi dev.

  • Fișierele Work se află în volume separate libre-work-*.

  • Folosiți un volum separat:

    # Use different volume name for dev
    docker run -d -p 3000:3001 -v libre-webui-dev:/app/backend/data --name libre-webui-dev ghcr.io/libre-webui/libre-webui:dev

Probleme posibile​

Breaking changes pot necesita modificarea configurației, unele funcții pot fi incomplete, iar performanța și UI-ul se pot schimba.

Când să folosiți versiunea stabilă​

Reveniți la main când aveți nevoie de fiabilitate:

# Switch back to stable
git checkout main
docker compose -f docker-compose.external-ollama.yml pull
docker compose -f docker-compose.external-ollama.yml up -d

🌟 Participați la comunitate​


Sunteți gata să modelați viitorul Libre WebUI? 🚀

Testarea, feedback-ul și contribuțiile dumneavoastră îmbunătățesc experiența tuturor.