MailCopilot raccoglie una piccola quantita di dati anonimi diagnostici e d'uso quando attivi Invia diagnostica e dati d'uso anonimi in Impostazioni -> Informazioni. Questa pagina documenta esattamente cosa viene raccolto e -- altrettanto importante -- cosa non viene mai raccolto.
Cosa non raccogliamo mai
In nessuna circostanza MailCopilot trasmette:
- Il testo dei tuoi messaggi (oggetto, corpo, allegati, bozze)
- I tuoi indirizzi email o quelli dei tuoi contatti
- Nomi o percorsi delle cartelle sul tuo server IMAP
- Nomi dei file degli allegati
- Il testo delle tue ricerche
- Il contenuto delle conversazioni o della memoria dell'assistente IA
- Hostname dei server, porte o credenziali
Come vengono instradati i dati
Tutta la telemetria viene inviata a Sentry, la nostra piattaforma di monitoraggio errori e prestazioni. Quando disattivi l'interruttore in Impostazioni, la pipeline viene completamente bypassata: non viene inviato nulla. Se attivi il logging di debug, gli stessi eventi compaiono anche nel tuo main.log locale, cosi puoi ispezionare esattamente cosa verrebbe trasmesso.
Identificatore di installazione anonimo
Al primo avvio, MailCopilot genera un UUID casuale e lo memorizza nel file di configurazione locale. Questo UUID non lascia mai il tuo dispositivo. Cio che viene trasmesso al suo posto e un hash SHA-256, troncato a 16 caratteri esadecimali, che chiamiamo install_id_hash. Viene allegato a ogni evento di telemetria come Sentry user id, in modo da poter rispondere a domande come «quante installazioni distinte stanno usando la versione X» oppure «il crash Y interessa 1 utente o 100». L'hash e:
- Anonimo: non e derivato da, ne correlato a, un'email di account, un'impronta del dispositivo, un indirizzo IP o un identificatore hardware.
- Stabile tra le release: la stessa installazione mantiene lo stesso hash dopo un aggiornamento automatico, in modo che le metriche di retention sopravvivano ai cambi di versione.
- Non reversibile: dal nostro lato non esiste alcuna corrispondenza che riporti dall'hash all'UUID o al tuo dispositivo.
- Eliminato quando disattivi la telemetria: spostare l'interruttore di Impostazioni su off cancella immediatamente l'identificatore dal client Sentry e ferma ogni ulteriore trasmissione.
Usiamo questo identificatore come uno strumento di analytics web userebbe un visitor id anonimo: ci permette di contare installazioni distinte invece dei totale eventi. Questa differenza e proprio il motivo per cui la telemetria e utile: senza, una sola installazione molto attiva sembrerebbe uguale a cento installazioni tranquille.
Eventi
Ciclo di vita dell'app
| Evento | Tipo | Aggregato | Tag | Scopo |
|---|
app.session_started | event | no | version, platform, theme, lang, accounts_count, install_id_hash | Una volta all'avvio dell'app. Porta install_id_hash per DAU/MAU. |
app.session_ended | histogram | no | reason, install_id_hash | Una volta alla chiusura regolare. value_ms = durata della sessione. |
app.updated | event | no | from_version, to_version | Una volta dopo che un auto-update installa una nuova versione. |
app.startup_ms | histogram | no | accounts_count | Tempo da app.whenReady alla prima BrowserWindow visibile. |
Riepilogo d'uso
| Evento | Tipo | Aggregato | Tag | Scopo |
|---|
usage.session_summary | event | no | search_used, compose_used, snooze_used, read_later_used, ai_used, rules_used, templates_used, followup_used, install_id_hash | Bitmap a fine sessione: quali funzionalita sono state usate almeno una volta. |
Onboarding
| Evento | Tipo | Aggregato | Tag | Scopo |
|---|
onboarding.wizard_opened | event | no | first_run | L'utente ha aperto il flusso di aggiunta account. |
onboarding.method_selected | event | no | method | L'utente ha scelto OAuth o IMAP/SMTP manuale. |
onboarding.autoconfig_result | event | no | success, provider | Sondaggio di autoconfigurazione completato: i parametri IMAP/SMTP sono stati trovati? |
onboarding.connection_test_result | event | no | kind, success, failure_kind | Test di connettivita IMAP o SMTP completato. |
onboarding.google_oauth_result | event | no | success, failure_kind | Flusso Google OAuth2 completato. |
onboarding.account_saved | event | no | provider, auth_type | Le credenziali dell'account sono state scritte in keytar/electron-store. |
onboarding.first_headers_sync_completed | histogram | no | provider, folder_count_bucket | Tempo da account_saved alla prima sincronizzazione delle intestazioni completata (value_ms). |
onboarding.first_message_opened | event | no | time_since_sync_bucket | L'utente ha aperto il primo messaggio dopo l'accesso. |
Composizione
| Evento | Tipo | Aggregato | Tag | Scopo |
|---|
compose.opened | event | no | source, has_draft | Finestra di composizione aperta; traccia il punto di ingresso. |
Coda d'invio
| Evento | Tipo | Aggregato | Tag | Scopo |
|---|
send_queue.enqueued | event | no | scheduled, send_and_archive, has_attachments, body_size_bucket | Messaggio in uscita aggiunto a send_queue (immediato o pianificato). |
send_queue.sent | histogram | no | scheduled | Tempo dall'inserimento in coda alla consegna riuscita: SMTP per la maggior parte degli account, Microsoft Graph per Outlook (value_ms). |
send_queue.failed | event | no | failure_kind | Tentativo di invio fallito in modo permanente (la coda si arrende). Copre sia SMTP sia Microsoft Graph. |
send_queue.retried | event | no | attempt_number | Errore di invio transitorio: messaggio rischedulato. Copre sia SMTP sia Microsoft Graph. |
Avvisi di destinatario errato
| Evento | Tipo | Aggregato | Tag | Scopo |
|---|
misdirection.prompted | event | no | kind | La composizione ha mostrato il dialog di avviso. |
misdirection.outcome | event | no | outcome, kind | L'utente ha risposto all'avviso. |
Modelli
| Evento | Tipo | Aggregato | Tag | Scopo |
|---|
template.applied | event | no | var_count | L'utente ha inserito un modello nella composizione. |
Promemoria di follow-up
| Evento | Tipo | Aggregato | Tag | Scopo |
|---|
followup.created | event | no | duration_days_bucket | Un promemoria di follow-up e stato collegato a un messaggio in uscita. |
Ricerca