Critical UX fix для #114 — user-drag слайдеры в WeightProfilePanel теперь применяются immediately к scoring, без обязательного profile save. Backend (parcels.py + schemas/parcel.py + tests): - POST /analyze принимает optional AnalyzeRequest { weights: dict[str,float] | None } - Priority: inline → profile_id → user_default → system defaults - Validate against ALLOWED_CATEGORIES + [MIN_WEIGHT, MAX_WEIGHT] → 422 на violation - Partial override semantics - 5 mock tests Frontend (useSiteAnalysis.ts + page.tsx): - weights param в analyze mutation - handleAnalyze всегда передаёт currentWeights когда activeProfileId=null - handleWeightsChange re-trigger analyze immediately если parcel loaded Phase 2 (debounce) + Phase 3 (Edit/Delete UI) — follow-up. |
||
|---|---|---|
| .. | ||
| alembic | ||
| app | ||
| db/init | ||
| output | ||
| tests | ||
| .dockerignore | ||
| .env.example | ||
| .env.runtime.example | ||
| alembic.ini | ||
| debug.log | ||
| Dockerfile | ||
| pyproject.toml | ||
| uv.lock | ||