feat(gui): câblage upload diagnostics en fin de run (E3)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -193,6 +193,7 @@ class AnonymisationApp(ctk.CTk):
|
||||
on_theme_change=self.set_theme,
|
||||
current_theme=self._theme_name,
|
||||
usage_reporter=self._report_usage,
|
||||
diag_reporter=self._report_diagnostics,
|
||||
)
|
||||
if key == "cfg":
|
||||
return ConfigTab(self._content, palette=p, state=self._config, config_path=self._user_config_path)
|
||||
@@ -243,6 +244,36 @@ class AnonymisationApp(ctk.CTk):
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
def _report_diagnostics(self, summary) -> None:
|
||||
"""Envoie les diagnostics en fin de run (non bloquant, best-effort).
|
||||
|
||||
N'envoie rien si aucune licence locale valide. Ne lève jamais.
|
||||
"""
|
||||
try:
|
||||
from gui_v6 import __version__ as gui_version
|
||||
from gui_v6 import diagnostics
|
||||
from gui_v6.logging_setup import log_file_path
|
||||
from gui_v6.machine_id import default_machine_id
|
||||
|
||||
session = self._usage_session()
|
||||
if session is None:
|
||||
return
|
||||
status = self._safe_local_status()
|
||||
base_url = getattr(self._license_client, "_base_url", "") or resolve_portal_url()
|
||||
spool = log_file_path().parent / "diagnostics_spool.jsonl"
|
||||
diagnostics.report_run_diagnostics(
|
||||
summary,
|
||||
base_url=base_url,
|
||||
license_ref=getattr(status, "license_ref", None),
|
||||
machine_id=default_machine_id(),
|
||||
session=session,
|
||||
app_name="gui_v6",
|
||||
app_version=gui_version,
|
||||
spool_path=spool,
|
||||
)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
def _show(self, key: str) -> None:
|
||||
self._active = key
|
||||
self._refresh_tabbar()
|
||||
|
||||
Reference in New Issue
Block a user