# tools/

Hilfsskripte für die Dev-Maschine. Brauchen `.claude/aria-vm.env` (aus
`.example` kopieren + lokale VM-IP eintragen).

## fetch-app-logs.sh

Holt App-Crash-Logs von der VM und speichert sie unter `.aria-debug/`
(gitignored). Die App schickt JS-Errors und ungefangene Promise-
Rejections via RVS an die Bridge — Bridge sammelt in
`/shared/logs/app.log`, Diagnostic-Server gibt sie via
`GET /api/app-log` raus.

```bash
tools/fetch-app-logs.sh                # 200 neueste Eintraege
tools/fetch-app-logs.sh --limit 50     # weniger
tools/fetch-app-logs.sh --watch        # alle 5s pollen, neue rausgeben
tools/fetch-app-logs.sh --clear        # nach Abholen Log auf VM leeren
```

Ausgabe enthaelt pro Eintrag: Uhrzeit, Level (error/warn/info), Scope
(z.B. `ChatScreen.InboxModal` oder `global-fatal`), Message, und die
ersten ~8 Stack-Frames. Die kompletten Daten liegen als JSON in
`.aria-debug/app-log-<timestamp>.json`.

Workflow nach einem Crash:

1. App rebuilden mit Crash-Reporting (passiert automatisch ab dem
   `21a315c`-Commit)
2. Crash in der App ausloesen
3. `tools/fetch-app-logs.sh` auf der Dev-Maschine
4. Stacktrace lesen / Claude geben
5. Fix bauen
6. `tools/fetch-app-logs.sh --clear` damit der Log wieder sauber ist
