Files
HartOMat/.claude/commands/check.md
T
Hartmut ee6eb34b4c feat: GPU rendering + material matching + perf improvements
- GPU: fix Cycles device activation order — set compute_device_type
  BEFORE engine init, re-set AFTER open_mainfile wipes preferences
- GPU: remove _mark_sharp_and_seams edit-mode loop (redundant with
  Blender 5.0 shade_smooth_by_angle), saves ~200s/render on 175 parts
- Material: fix _AFN suffix mismatch — build AF-stripped mat_map keys
  and add prefix fallback in _apply_material_library (blender_render.py)
- Material: production GLB now uses get_material_library_path() which
  checks active AssetLibrary instead of empty legacy system setting
- Admin: RenderTemplateTable multi-select output types (M2M frontend)
- Admin: MaterialLibraryPanel replaced with link to Asset Libraries
- UX: move Toaster to top-left to avoid dispatch button overlap
- SQLAlchemy: add .unique() to all RenderTemplate M2M collection queries
- Logging: flush=True on all Blender progress prints, stdout reconfigure

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 19:05:03 +01:00

82 lines
2.8 KiB
Markdown

Führe alle Quality Gates aus und berichte das Ergebnis:
## Frontend Quality Gates
1. **TypeScript-Check** (wichtigster Gate!):
```bash
docker compose exec frontend npx tsc --noEmit 2>&1
```
Prüft auf fehlende Imports, Typfehler, undefinierte Variablen.
→ Fehler hier = Blank Page im Browser. Immer als erstes prüfen.
2. **Vite Build** (optional, langsamer):
```bash
docker compose exec frontend npm run build 2>&1 | tail -20
```
3. **Tests**:
```bash
docker compose exec frontend npm test 2>&1 | tail -20
```
Hinweis: `npm run lint` existiert nicht — TypeScript-Check ersetzt es.
## Backend Quality Gates
4. **Python Import-Check**:
```bash
docker compose exec backend python -c "from app.main import app; print('OK')" 2>&1
```
Prüft ob alle Python-Imports auflösbar sind.
5. **Backend Startup-Logs**:
```bash
docker compose logs backend 2>&1 | tail -20
```
Auf `Application startup complete` prüfen, keine Exceptions.
## Daten-Integrität Gates
7. **Keine absoluten storage_key-Pfade in media_assets**:
```bash
docker compose exec backend python -c "
import asyncio
from sqlalchemy import text
from app.database import AsyncSessionLocal
async def main():
async with AsyncSessionLocal() as db:
r = await db.execute(text(\"SELECT COUNT(*) FROM media_assets WHERE storage_key LIKE '/%' AND is_archived=false\"))
n = r.scalar()
print(f'Absolute storage_keys: {n}')
if n > 0:
print('WARNUNG: Absolute Pfade brechen bei Volume-Umzug / Infrastruktur-Änderung!')
print('Fix: UPDATE media_assets SET storage_key = replace(storage_key, ...) WHERE ...')
asyncio.run(main())
"
```
→ Erwartet: `Absolute storage_keys: 0`
8. **Config-Attribute prüfen** (nach config.py-Änderungen):
```bash
docker compose exec backend python -c "from app.config import settings; print('upload_dir:', settings.upload_dir)"
```
## Übersicht
9. **Geänderte Dateien**:
```bash
git diff --stat
```
## Ergebnis
Wenn alle Gates grün: committe mit passendem Conventional-Commit-Message.
Wenn ein Gate rot: Problem zuerst beheben, dann erneut prüfen.
## Warum diese Gates?
- `tsc --noEmit` fängt fehlende React-Imports (`useEffect`, `useCallback` etc.) ab, die zur Laufzeit zu einer Blank Page führen — das wichtigste Gate.
- `npm run lint` existiert in diesem Projekt nicht (kein ESLint konfiguriert).
- `npm test` prüft nur Test-Dateien, nicht Production-Komponenten auf Importfehler.
- Backend-Import-Check fängt Python `ImportError` ab bevor sie in Produktion auftauchen.
- Absolute storage_key-Pfade brechen bei jedem Volume-Umzug oder Infrastruktur-Änderung (Flamenco-Entfernung hat 396 Blender-Renders unzugänglich gemacht).