Skip to content

v0.3.1 — fix freeze UI dû au polling PZ synchrone#1

Merged
AutomaTeam merged 1 commit into
mainfrom
fix/poll-pz-freeze
May 22, 2026
Merged

v0.3.1 — fix freeze UI dû au polling PZ synchrone#1
AutomaTeam merged 1 commit into
mainfrom
fix/poll-pz-freeze

Conversation

@AutomaTeam
Copy link
Copy Markdown
Owner

Summary

  • _poll_pz() exécutait is_pz_running()subprocess.run(["tasklist", ...]) de manière synchrone sur le main thread tkinter. Sur certains PC (antivirus actif qui inspecte le call, beaucoup de process), tasklist peut prendre 5-30 secondes, ce qui bloquait l'UI à chaque tick (toutes les 15 s). Symptôme remonté en early testing : « l'app freeze à chaque clic ».
  • Le poll s'exécute maintenant dans un threading.Thread(daemon=True). Le résultat est marshalé sur le main thread via self.after(0, self._handle_pz_poll_result, running). Logique métier (transition running → stopped, prompt push, footer status) inchangée — juste déportée dans une méthode séparée.
  • Bump version 0.3.00.3.1. CHANGELOG + release notes ajoutés. Placeholder de version dans le bug report template mis à jour.

Fichiers modifiés

  • src/pzsavesync/gui.pyimport threading, refonte _poll_pz(), nouvelle méthode _handle_pz_poll_result(), bump APP_VERSION
  • CHANGELOG.md — entrée [0.3.1]
  • docs/release_notes_v0.3.1.md — nouveau fichier (utilisé par release.yml)
  • .github/ISSUE_TEMPLATE/bug_report.yml — placeholder version

Test plan

  • py_compile src/pzsavesync/gui.py → OK
  • pytest tests/45 passed en 1.40s
  • Test manuel : lancer l'app et cliquer/onglet-switch en continu pendant 30 s — vérifier qu'aucune interaction ne lag
  • Vérifier que le footer 🎮 PZ détecté s'affiche toujours quand PZ tourne
  • Vérifier que la transition running → stopped déclenche toujours le prompt "Push après session"
  • Build PyInstaller et test du .exe final

Notes pour le reviewer

  • Le tag v0.3.1 est créé en local mais pas encore pushé : à pousser après merge de cette PR pour déclencher release.yml proprement sur le commit de merge.
  • Aucune migration nécessaire pour les utilisateurs — drop-in replacement du .exe. Config / profils / historique préservés.

🤖 Generated with Claude Code

Le poll PZ (tasklist toutes les 15 s) tournait sur le main thread tkinter.
Sur les PC où tasklist est lent (antivirus, beaucoup de process), l'UI
freezait plusieurs secondes à chaque tick. is_pz_running() est maintenant
exécuté dans un thread daemon ; le résultat est marshalé sur le main
thread via self.after(0, ...).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@AutomaTeam AutomaTeam merged commit 6c91db7 into main May 22, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant