# Konfiguracja środowiska deweloperskiego

Kod Speedwave obejmuje Rust, Angular, Node.js i Swift. Zobacz stronę [stos technologiczny](/pl/docs/contributing/tech-stack/), żeby dowiedzieć się, jak te elementy się ze sobą łączą. GNU Make spina to wszystko w całość, więc konfiguracja maszyny sprowadza się głównie do zainstalowania wymagań wstępnych, a resztę zrobi za ciebie `make setup-dev`.

## Wymagania wstępne

- **Rust**, stabilny toolchain, przez `rustup`
- **Node.js**, wersja LTS (v20+), z npm
- **Narzędzia platformowe**: Xcode command-line tools na macOS, Visual Studio Build Tools na Windows

Uruchom `make setup-dev`, żeby to sprawdzić i automatycznie zainstalować brakujące zależności.

## Budowanie i testowanie

Do każdego budowania, testowania i sprawdzania kodu używaj `Makefile`, a nie `cargo` czy `npm` bezpośrednio: to on ustawia katalogi robocze i flagi, których potrzebuje każdy stos technologiczny.

Główne cele:

```bash
make setup-dev      # pierwsze uruchomienie: sprawdza wymagania wstępne + instaluje wszystkie zależności
make test           # uruchamia wszystkie testy (Rust + Angular + MCP + entrypoint + desktop)
make check          # lint + clippy + sprawdzanie typów + formatowanie
make check-all       # pełna bramka jakości: check + test + coverage + audit
make coverage-html   # generuje raporty pokrycia kodu w HTML i otwiera je w przeglądarce
make audit           # sprawdza zależności pod kątem znanych podatności
make dev             # uruchamia desktop w trybie dev (Tauri + Angular hot reload)
make build           # buduje wszystko
make fmt             # formatuje cały kod
make status          # szybkie sprawdzenie stanu
```

Dla każdego stosu istnieją też bardziej szczegółowe cele: `test-rust`, `test-angular`, `test-mcp`, `test-swift`, `build-cli`, `build-desktop`, `build-angular`. Zobacz [testowanie](/pl/docs/contributing/testing/), żeby dowiedzieć się, jak rozkładają się narzędzia do uruchamiania testów i progi pokrycia kodu.

Jeśli pracujesz nad binarką CLI, liczą się dwa cele. `make build-cli` buduje binarkę **debug** w `target/debug/speedwave`, z której korzysta `make dev`. `make build-cli-release` buduje binarkę **release**: dołączone CLI musi być wersją release, bo obejście weryfikacji podpisu, dostępne tylko w wersji debug, jest usuwane z kompilacji w buildach wysyłanych do użytkowników.

## Uruchamianie w trybie dev

`make dev` najpierw buduje CLI i kopiuje je do `desktop/src-tauri/cli/`, zanim uruchomi tryb dev Tauri, dzięki czemu funkcja „Open Terminal” aplikacji desktopowej działa podczas prac deweloperskich.
**Note:** `desktop/src/angular.json` celowo wyłącza telemetrię Angular CLI. Bez tego przy pierwszym `ng serve`, `ng test` czy `ng build` na świeżej maszynie pojawia się interaktywne pytanie o telemetrię, a to pytanie czeka na stdin w nieskończoność, blokując `make dev` i zestaw testów Angulara.

Na Windows trzeba obsłużyć kilka niuansów związanych z tym zestawem narzędzi, zanim `make dev` zadziała natywnie: zobacz [konfigurację Windows](/pl/docs/contributing/windows-setup/).