| 281 | self._load() |
| 282 | |
| 283 | def record(self, rec: RouteRecord) -> None: |
| 284 | rec.tier = _normalize_tier_label(rec.tier) |
| 285 | rec.decision_tier = _normalize_tier_label(rec.decision_tier) if rec.decision_tier else "" |
| 286 | rec.served_quality = _normalize_served_quality(rec.served_quality) |
| 287 | rec.served_quality_target = _normalize_served_quality(rec.served_quality_target) |
| 288 | rec.served_quality_floor = _normalize_served_quality(rec.served_quality_floor) |
| 289 | rec.capability_lane = str(rec.capability_lane or "").strip().lower() |
| 290 | rec.feedback_from_tier = _normalize_tier_label(rec.feedback_from_tier) if rec.feedback_from_tier else "" |
| 291 | rec.feedback_to_tier = _normalize_tier_label(rec.feedback_to_tier) if rec.feedback_to_tier else "" |
| 292 | self._records.append(rec) |
| 293 | self._cleanup() |
| 294 | self._save() |
| 295 | |
| 296 | def record_feedback( |
| 297 | self, |