Three content defects found by a live reviewer:
- Dashboard attention subtext was raw, untranslated evidence.summary text, and for
11 of 15 seeded issues that text was literally "Synthetic deterministic seed
issue". AttentionItem now exposes evidence_signals (stable code + params, same
shape as the issue detail page) instead of a detail string; the frontend renders
them through a shared describeEvidenceSignal() used by both the dashboard and the
issue detail page. Every previously-placeholder seed row now cites a real,
per-rule-type fact (a genuinely crossed service threshold, a genuinely blank
field, or a real pair of booking odometer readings) instead of invented prose.
- 5 of 7 blocked vehicles had no quality issue at all and one had only a resolved
one, so "needs attention" led nowhere. Each now has a real open
missing_required_field issue backed by a genuinely blank field (no schema change,
no migration -- reuses the existing data-quality pipeline).
- Booking odometer fields showing a bare "-" for 25 reserved + 1 active booking now
show a localized explanation ("trip hasn't started yet" / "not yet closed").
MO-024's rented-but-service-overdue contradiction was already caught by the
vehicle-status evaluator (DQ-SCAN, vehicle.manual_review_required) -- added a
regression test rather than new logic.
Also fixed a related bug the above exposed: the vehicle entity_snapshot omitted
registration_number entirely, so the "provide missing fields" form always showed
it blank regardless of the real value.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
3.4 KiB
3.4 KiB
| 1 | public_ref | make | model | model_year | registration_number | location | operational_status | odometer_km | next_service_km | active |
|---|---|---|---|---|---|---|---|---|---|---|
| 2 | MO-001 | Adria | Matrix | 2020 | 2-MOB-001 | Geel | maintenance | 19084 | 20000 | true |
| 3 | MO-002 | Dethleffs | Trend | 2021 | 2-MOB-002 | Geel | maintenance | 19963 | 20000 | true |
| 4 | MO-003 | Carado | T-Series | 2022 | 2-MOB-003 | Geel | rented | 21058 | 30000 | true |
| 5 | MO-004 | Hymer | Exsis | 2023 | 2-MOB-004 | Geel | cleaning | 21155 | 30000 | true |
| 6 | MO-005 | Bürstner | Lyseo | 2024 | 2-MOB-005 | Geel | available | 22213 | 30000 | true |
| 7 | MO-006 | Sunlight | Cliff | 2025 | 2-MOB-006 | Geel | cleaning | 23163 | 30000 | true |
| 8 | MO-007 | Adria | Matrix | 2019 | 2-MOB-007 | Geel | rented | 23689 | 30000 | true |
| 9 | MO-008 | Dethleffs | Trend | 2020 | 2-MOB-008 | Geel | available | 23933 | 30000 | true |
| 10 | MO-009 | Carado | T-Series | 2021 | 2-MOB-009 | blocked | 25203 | 30000 | true | |
| 11 | MO-010 | Hymer | Exsis | 2022 | 2-MOB-010 | Geel | available | 25333 | 30000 | true |
| 12 | MO-011 | Bürstner | Lyseo | 2023 | 2-MOB-011 | Geel | available | 26160 | 30000 | true |
| 13 | MO-012 | Sunlight | Cliff | 2024 | 2-MOB-012 | Geel | available | 26859 | 30000 | true |
| 14 | MO-013 | Adria | Matrix | 2025 | 2-MOB-013 | Geel | rented | 27750 | 30000 | true |
| 15 | MO-014 | Dethleffs | Trend | 2019 | 2-MOB-014 | rented | 28428 | 30000 | true | |
| 16 | MO-015 | Carado | T-Series | 2020 | 2-MOB-015 | Geel | available | 29661 | 30000 | true |
| 17 | MO-016 | Hymer | Exsis | 2021 | 2-MOB-016 | Geel | available | 30497 | 40000 | true |
| 18 | MO-017 | Bürstner | Lyseo | 2022 | 2-MOB-017 | Geel | available | 30596 | 40000 | true |
| 19 | MO-018 | Sunlight | Cliff | 2023 | 2-MOB-018 | Geel | maintenance | 31582 | 40000 | true |
| 20 | MO-019 | Adria | Matrix | 2024 | 2-MOB-019 | Geel | rented | 32246 | 40000 | true |
| 21 | MO-020 | Dethleffs | Trend | 2025 | 2-MOB-020 | Geel | available | 32616 | 40000 | true |
| 22 | MO-021 | Carado | T-Series | 2019 | 2-MOB-021 | Geel | cleaning | 34098 | 40000 | true |
| 23 | MO-022 | Hymer | Exsis | 2020 | 2-MOB-022 | Geel | available | 34410 | 40000 | true |
| 24 | MO-023 | Bürstner | Lyseo | 2021 | 2-MOB-023 | Geel | rented | 35624 | 40000 | true |
| 25 | MO-024 | Sunlight | Cliff | 2022 | 2-MOB-024 | Geel | rented | 54820 | 40000 | true |
| 26 | MO-025 | Adria | Matrix | 2023 | 2-MOB-025 | blocked | 36429 | 40000 | true | |
| 27 | MO-026 | Dethleffs | Trend | 2024 | Geel | blocked | 37273 | 40000 | true | |
| 28 | MO-027 | Carado | T-Series | 2025 | 2-MOB-027 | Geel | available | 38502 | 40000 | true |
| 29 | MO-028 | Hymer | Exsis | 2019 | 2-MOB-028 | Geel | cleaning | 38959 | 38000 | true |
| 30 | MO-029 | Bürstner | Lyseo | 2020 | 2-MOB-029 | Geel | rented | 39712 | 40000 | true |
| 31 | MO-030 | Sunlight | Cliff | 2021 | 2-MOB-030 | Geel | maintenance | 40213 | 50000 | true |
| 32 | MO-031 | Adria | Matrix | 2022 | 2-MOB-031 | Geel | blocked | 41149 | 50000 | true |
| 33 | MO-032 | Dethleffs | Trend | 2023 | 2-MOB-032 | Geel | rented | 41791 | 50000 | true |
| 34 | MO-033 | Carado | T-Series | 2024 | 2-MOB-033 | Geel | available | 42561 | 50000 | true |
| 35 | MO-034 | Hymer | Exsis | 2025 | 2-MOB-034 | Geel | available | 43057 | 50000 | true |
| 36 | MO-035 | Bürstner | Lyseo | 2019 | 2-MOB-035 | Geel | rented | 44034 | 50000 | true |
| 37 | MO-036 | Sunlight | Cliff | 2020 | 2-MOB-036 | Geel | available | 44660 | 44000 | true |
| 38 | MO-037 | Adria | Matrix | 2021 | 2-MOB-037 | Geel | available | 45654 | 50000 | true |
| 39 | MO-038 | Dethleffs | Trend | 2022 | 2-MOB-038 | Geel | available | 46630 | 50000 | true |
| 40 | MO-039 | Carado | T-Series | 2023 | 2-MOB-039 | Geel | rented | 46657 | 50000 | true |
| 41 | MO-040 | Hymer | Exsis | 2024 | 2-MOB-040 | Geel | available | 47909 | 50000 | true |
| 42 | MO-041 | Bürstner | Lyseo | 2025 | 2-MOB-041 | blocked | 48443 | 50000 | true | |
| 43 | MO-042 | Sunlight | Cliff | 2019 | 2-MOB-042 | Geel | available | 49548 | 50000 | true |
| 44 | MO-043 | Adria | Matrix | 2020 | 2-MOB-043 | available | 49519 | 50000 | true | |
| 45 | MO-044 | Dethleffs | Trend | 2021 | 2-MOB-044 | Geel | available | 50611 | 60000 | true |
| 46 | MO-045 | Carado | T-Series | 2022 | 2-MOB-045 | blocked | 51260 | 60000 | true | |
| 47 | MO-046 | Hymer | Exsis | 2023 | 2-MOB-046 | Geel | cleaning | 51957 | 60000 | true |
| 48 | MO-047 | Bürstner | Lyseo | 2024 | 2-MOB-047 | Geel | available | 52452 | 60000 | true |
| 49 | MO-048 | Sunlight | Cliff | 2025 | 2-MOB-048 | Geel | maintenance | 53693 | 60000 | true |
| 50 | MO-049 | Adria | Matrix | 2019 | 2-MOB-049 | blocked | 53935 | 60000 | true | |
| 51 | MO-050 | Dethleffs | Trend | 2020 | 2-MOB-050 | Geel | cleaning | 54692 | 60000 | true |