Files
grotti/docs/internal/Lauf-Identitaet.md
T

1.3 KiB
Raw Permalink Blame History

Lauf-Identität: ein physischer Druck = ein Lauf

Regel

Zusammengelegt wird nur mit Beweis, nicht nur wegen Zeit und Dateiname:

  1. Der neue Moonraker-Job hat print_duration ≥ Dauer des Vorgängers − 30 s, und die Lücke end→start ist höchstens 5 s (Anycubic setzt end_time erst beim Fortsetzen).
  2. Oder der Watcher hat paused → printing bei gleicher Datei gesehen (watcher_resume, printers.active_run_id).

Ein Neustart mit print_duration ≤ 60 s wird nie zusammengelegt.

Pfade

Pfad Datei
Beweis jobs.is_filament_resume
Fold jobs.fold_filament_resume
Abgleich jobs.sync_history (Advisory-Lock)
Job-Aliase run_jobs + history_job_retired
Leere Hülle übersprungen in _sync_one_job
Live-Abzug erst History; Fallback nach 10 min (LIVE_DEDUCT_FALLBACK_S)
Manuell POST /api/v1/laeufe/<id>/verbinden

Queue

In print_active heißt nur complete fertig. cancelled/standby werden entprellt (TERMINAL_CONFIRM_HITS). Echter Abbruch → Status cancelled, nicht „Fertig.“.

Reparatur

scripts/laeufe_reparieren.py (Probelauf standardmäßig, --apply nach Freigabe). Verwaiste live:-Läufe nur an offenen History-Jobs derselben Datei; adopt_live_run greift geschlossene Live-Läufe nur ≤ 2 h.