fix: ne pas couper le replay au début (taskbar = unknown_window)
Le premier clic (barre de recherche Windows) a un titre "unknown_window" qui déclenchait la coupure de fin de session. Ajout d'un guard : pas de coupure avant 3 actions significatives. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -365,16 +365,19 @@ def _extract_screen_resolution(events: list) -> tuple:
|
||||
def _should_cut_after_event(
|
||||
event_data: dict,
|
||||
saw_save_combo: bool = False,
|
||||
actions_count: int = 0,
|
||||
) -> bool:
|
||||
"""Retourne True si on doit couper le replay après cet événement.
|
||||
|
||||
Coupe quand :
|
||||
- Alt+F4 (fermeture par raccourci)
|
||||
- Clic dans le systray (fenêtres "unknown_window", "dépassement de capacité",
|
||||
"Fenêtre de dépassement") — c'est le "C'est terminé" de Léa
|
||||
- Clic dans le systray APRÈS des actions significatives (pas au début)
|
||||
- Après un Ctrl+S/Ctrl+Shift+S suivi d'un clic dans une fenêtre non-applicative
|
||||
(terminal, systray, agent python, etc.)
|
||||
"""
|
||||
# Ne pas couper au tout début (les premiers clics sont souvent
|
||||
# sur la taskbar/recherche pour ouvrir une application)
|
||||
if actions_count < 3:
|
||||
return False
|
||||
evt_type = event_data.get("type", "")
|
||||
|
||||
# Alt+F4
|
||||
@@ -1070,7 +1073,7 @@ def build_replay_from_raw_events(
|
||||
# Vérifier la coupure AVANT d'ajouter l'événement.
|
||||
# Pour les clics post-sauvegarde sur des fenêtres non-applicatives,
|
||||
# on ne veut PAS inclure le clic qui déclenche la coupure.
|
||||
if _should_cut_after_event(event_data, saw_save_combo=saw_save_combo):
|
||||
if _should_cut_after_event(event_data, saw_save_combo=saw_save_combo, actions_count=len(actionable_events)):
|
||||
# Alt+F4 est une action applicative → l'inclure
|
||||
is_alt_f4 = False
|
||||
if evt_type in ("key_combo", "key_press"):
|
||||
|
||||
Reference in New Issue
Block a user