fix: localize dashboard evidence, explain blocked vehicles, clarify pending odometers
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>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
3808bbe132
commit
4faac24b5a
+10
-10
@@ -7,12 +7,12 @@ MO-005,Bürstner,Lyseo,2024,2-MOB-005,Geel,available,22213,30000,true
|
||||
MO-006,Sunlight,Cliff,2025,2-MOB-006,Geel,cleaning,23163,30000,true
|
||||
MO-007,Adria,Matrix,2019,2-MOB-007,Geel,rented,23689,30000,true
|
||||
MO-008,Dethleffs,Trend,2020,2-MOB-008,Geel,available,23933,30000,true
|
||||
MO-009,Carado,T-Series,2021,2-MOB-009,Geel,blocked,25203,30000,true
|
||||
MO-009,Carado,T-Series,2021,2-MOB-009,,blocked,25203,30000,true
|
||||
MO-010,Hymer,Exsis,2022,2-MOB-010,Geel,available,25333,30000,true
|
||||
MO-011,Bürstner,Lyseo,2023,2-MOB-011,Geel,available,26160,30000,true
|
||||
MO-012,Sunlight,Cliff,2024,2-MOB-012,Geel,available,26859,30000,true
|
||||
MO-013,Adria,Matrix,2025,2-MOB-013,Geel,rented,27750,30000,true
|
||||
MO-014,Dethleffs,Trend,2019,2-MOB-014,Geel,rented,28428,30000,true
|
||||
MO-014,Dethleffs,Trend,2019,2-MOB-014,,rented,28428,30000,true
|
||||
MO-015,Carado,T-Series,2020,2-MOB-015,Geel,available,29661,30000,true
|
||||
MO-016,Hymer,Exsis,2021,2-MOB-016,Geel,available,30497,40000,true
|
||||
MO-017,Bürstner,Lyseo,2022,2-MOB-017,Geel,available,30596,40000,true
|
||||
@@ -23,10 +23,10 @@ MO-021,Carado,T-Series,2019,2-MOB-021,Geel,cleaning,34098,40000,true
|
||||
MO-022,Hymer,Exsis,2020,2-MOB-022,Geel,available,34410,40000,true
|
||||
MO-023,Bürstner,Lyseo,2021,2-MOB-023,Geel,rented,35624,40000,true
|
||||
MO-024,Sunlight,Cliff,2022,2-MOB-024,Geel,rented,54820,40000,true
|
||||
MO-025,Adria,Matrix,2023,2-MOB-025,Geel,blocked,36429,40000,true
|
||||
MO-026,Dethleffs,Trend,2024,2-MOB-026,Geel,blocked,37273,40000,true
|
||||
MO-025,Adria,Matrix,2023,2-MOB-025,,blocked,36429,40000,true
|
||||
MO-026,Dethleffs,Trend,2024,,Geel,blocked,37273,40000,true
|
||||
MO-027,Carado,T-Series,2025,2-MOB-027,Geel,available,38502,40000,true
|
||||
MO-028,Hymer,Exsis,2019,2-MOB-028,Geel,cleaning,38959,40000,true
|
||||
MO-028,Hymer,Exsis,2019,2-MOB-028,Geel,cleaning,38959,38000,true
|
||||
MO-029,Bürstner,Lyseo,2020,2-MOB-029,Geel,rented,39712,40000,true
|
||||
MO-030,Sunlight,Cliff,2021,2-MOB-030,Geel,maintenance,40213,50000,true
|
||||
MO-031,Adria,Matrix,2022,2-MOB-031,Geel,blocked,41149,50000,true
|
||||
@@ -34,18 +34,18 @@ MO-032,Dethleffs,Trend,2023,2-MOB-032,Geel,rented,41791,50000,true
|
||||
MO-033,Carado,T-Series,2024,2-MOB-033,Geel,available,42561,50000,true
|
||||
MO-034,Hymer,Exsis,2025,2-MOB-034,Geel,available,43057,50000,true
|
||||
MO-035,Bürstner,Lyseo,2019,2-MOB-035,Geel,rented,44034,50000,true
|
||||
MO-036,Sunlight,Cliff,2020,2-MOB-036,Geel,available,44660,50000,true
|
||||
MO-036,Sunlight,Cliff,2020,2-MOB-036,Geel,available,44660,44000,true
|
||||
MO-037,Adria,Matrix,2021,2-MOB-037,Geel,available,45654,50000,true
|
||||
MO-038,Dethleffs,Trend,2022,2-MOB-038,Geel,available,46630,50000,true
|
||||
MO-039,Carado,T-Series,2023,2-MOB-039,Geel,rented,46657,50000,true
|
||||
MO-040,Hymer,Exsis,2024,2-MOB-040,Geel,available,47909,50000,true
|
||||
MO-041,Bürstner,Lyseo,2025,2-MOB-041,Geel,blocked,48443,50000,true
|
||||
MO-041,Bürstner,Lyseo,2025,2-MOB-041,,blocked,48443,50000,true
|
||||
MO-042,Sunlight,Cliff,2019,2-MOB-042,Geel,available,49548,50000,true
|
||||
MO-043,Adria,Matrix,2020,2-MOB-043,Geel,available,49519,50000,true
|
||||
MO-043,Adria,Matrix,2020,2-MOB-043,,available,49519,50000,true
|
||||
MO-044,Dethleffs,Trend,2021,2-MOB-044,Geel,available,50611,60000,true
|
||||
MO-045,Carado,T-Series,2022,2-MOB-045,Geel,blocked,51260,60000,true
|
||||
MO-045,Carado,T-Series,2022,2-MOB-045,,blocked,51260,60000,true
|
||||
MO-046,Hymer,Exsis,2023,2-MOB-046,Geel,cleaning,51957,60000,true
|
||||
MO-047,Bürstner,Lyseo,2024,2-MOB-047,Geel,available,52452,60000,true
|
||||
MO-048,Sunlight,Cliff,2025,2-MOB-048,Geel,maintenance,53693,60000,true
|
||||
MO-049,Adria,Matrix,2019,2-MOB-049,Geel,blocked,53935,60000,true
|
||||
MO-049,Adria,Matrix,2019,2-MOB-049,,blocked,53935,60000,true
|
||||
MO-050,Dethleffs,Trend,2020,2-MOB-050,Geel,cleaning,54692,60000,true
|
||||
|
||||
|
Reference in New Issue
Block a user