[{"data":1,"prerenderedAt":667},["ShallowReactive",2],{"docs-pages-it":3,"doc-it-changelog-sdk-python":310},[4,9,15,20,25,30,35,41,52,60,69,77,85,93,97,106,110,118,123,128,133,139,144,149,154,159,164,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,255,261,266,270,275,280,285,290,295,300,305],{"path":5,"title":6,"description":7,"order":8,"group":8,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fpermissions","Chi può fare cosa","[object Object]",null,{"path":10,"title":11,"description":12,"order":13,"group":14,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Finstallation","Installazione","Installa CloseYourIt sul tuo server con un solo comando.",1,"start",{"path":16,"title":17,"description":18,"order":19,"group":14,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fsettings","Impostazioni","Ogni impostazione del file .env, a cosa serve e quali non vanno mai cambiate.",2,{"path":21,"title":22,"description":23,"order":24,"group":14,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fdatabase","Database","Cos'è il database, cosa contiene, quanto restano i dati e quanto spazio occupa.",3,{"path":26,"title":27,"description":28,"order":29,"group":14,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fupdates-and-backups","Aggiornamenti e backup","Aggiorna a una versione nuova, fai e ripristina il backup del database, controlla l'installazione.",4,{"path":31,"title":32,"description":33,"order":34,"group":14,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Ftroubleshooting","Risolvere i problemi","Cosa controllare quando installazione, certificato, email o dati in arrivo non funzionano.",5,{"path":36,"title":37,"description":38,"order":39,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fconnect-your-apps","Collega le tue app","Tutti gli strumenti che mandano dati a CloseYourIt, e cosa raccoglie ognuno.",6,"connect",{"path":42,"title":43,"description":44,"order":45,"group":8,"parent":46,"package":47,"note":48,"collects":49,"status":8},"\u002Fdocs\u002Fsdk-ruby","Ruby \u002F Rails","La gemma closeyourit-ruby manda errori, log, query lente e metriche dei job da un'app Rails.",7,"connect-your-apps","closeyourit-ruby","Errori, log, query e metodi lenti, job in background.",{"errors":50,"logs":50,"performance":50,"visits":51,"servers":51},"full","none",{"path":53,"title":54,"description":55,"order":56,"group":8,"parent":46,"package":57,"note":58,"collects":59,"status":8},"\u002Fdocs\u002Fsdk-javascript","JavaScript","Il pacchetto @bussolabs\u002Fcloseyourit-js funziona nel browser e su Node 20.16 o più recente.",8,"@bussolabs\u002Fcloseyourit-js","Browser e Node, adattatori framework e query database dalla 0.13.0.",{"errors":50,"logs":50,"performance":50,"visits":50,"servers":51},{"path":61,"title":62,"description":63,"order":64,"group":8,"parent":46,"package":65,"note":66,"collects":67,"status":8},"\u002Fdocs\u002Fsdk-dart","Dart \u002F Flutter","Il pacchetto closeyourit cattura gli errori delle app Flutter, anche quando il telefono è senza rete.",9,"closeyourit","Errori, log e metriche pubblici dalla 0.9.3.",{"errors":50,"logs":68,"performance":68,"visits":51,"servers":51},"partial",{"path":70,"title":71,"description":72,"order":73,"group":8,"parent":46,"package":65,"note":74,"collects":75,"status":76},"\u002Fdocs\u002Fsdk-python","Python","Il pacchetto closeyourit manda errori, log e metriche da applicazioni Python lato server.",10,"Lato server. SQLAlchemy; query Django e FastAPI\u002FStarlette dalla 0.4.0.",{"errors":50,"logs":50,"performance":68,"visits":51,"servers":51},"pre_alpha",{"path":78,"title":79,"description":80,"order":81,"group":8,"parent":46,"package":82,"note":83,"collects":84,"status":8},"\u002Fdocs\u002Fsdk-sentry","SDK Sentry","Invia errori con un SDK Sentry compatibile; sessioni e crash hanno profili separati.",11,"Sentry SDK","Errori compatibili; sessioni e crash richiedono il profilo verificato.",{"errors":50,"logs":51,"performance":51,"visits":51,"servers":51},{"path":86,"title":87,"description":88,"order":89,"group":8,"parent":46,"package":90,"note":91,"collects":92,"status":8},"\u002Fdocs\u002Fagent-server","Agent per server","Un piccolo programma sul server che manda lo stato della macchina ogni 60 secondi.",12,"closeyourit-agent","CPU, memoria, dischi, rete, container e servizi.",{"errors":51,"logs":68,"performance":51,"visits":51,"servers":50},{"path":94,"title":95,"description":96,"order":89,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fnuxt","Vue e Nuxt","Collega gli errori del browser Nuxt e del server Nitro senza esporre un token segreto.",{"path":98,"title":99,"description":100,"order":101,"group":8,"parent":46,"package":102,"note":103,"collects":104,"status":105},"\u002Fdocs\u002Fagent-kubernetes","Kubernetes","Un osservatore in sola lettura del cluster: una copia sola per cluster.",13,"closeyourit-kube","Macchine, app ed eventi di errore del cluster.",{"errors":51,"logs":51,"performance":51,"visits":51,"servers":50},"coming",{"path":107,"title":108,"description":109,"order":101,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fopentelemetry","OpenTelemetry","Invia tracce, metriche e log dei server attraverso il ricevitore OTLP facoltativo.",{"path":111,"title":112,"description":113,"order":114,"group":8,"parent":46,"package":115,"note":116,"collects":117,"status":8},"\u002Fdocs\u002Fcli","CLI cyi","Il comando closeyourit, in breve cyi: gestisci progetti, errori e ticket dal terminale.",14,"@bussolabs\u002Fcloseyourit-cli","Non raccoglie dati: comanda CloseYourIt dal terminale.",{"errors":51,"logs":51,"performance":51,"visits":51,"servers":51},{"path":119,"title":120,"description":121,"order":122,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fhttp-api","API HTTP","Manda errori, log, metriche e visite con semplici richieste HTTP, senza un SDK.",15,{"path":124,"title":125,"description":126,"order":127,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fgithub-app","GitHub","Collega i repository GitHub a ticket e rilasci con una GitHub App tua.",16,{"path":129,"title":130,"description":131,"order":132,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fingest-gateway","Gateway di ingest","Tieni al sicuro errori, log e metriche in arrivo quando l'app è lenta o sta ripartendo.",17,{"path":134,"title":135,"description":136,"order":137,"group":138,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fai","AI","Accendi assistente, analisi, dettatura e ricerca intelligente con una chiave CloseYourIt AI o con il tuo provider.",18,"automation",{"path":140,"title":141,"description":142,"order":143,"group":138,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fautomator","Automator","Fai lavorare i ticket in automatico su una tua macchina Linux, con Claude Code, Codex o tutti e due.",19,{"path":145,"title":146,"description":147,"order":148,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fstack-coverage","Framework e copertura degli stack","Scegli un SDK pubblicato o verifica i limiti di un’integrazione provata localmente.",20,{"path":150,"title":151,"description":152,"order":153,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fmonitoring","Tracce, misure e sessioni","Esplora i nuovi segnali, confronta le versioni e ricostruisci le posizioni originali degli errori.",21,{"path":155,"title":156,"description":157,"order":158,"group":40,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fnode-database","Database Node","Monitora query lente e ripetute con pg, mysql2, Drizzle e Prisma PostgreSQL.",22,{"path":160,"title":161,"description":162,"order":163,"group":138,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fclaude-code","Claude Code","CloseYourIt dentro Claude Code, in una colonna accanto alla conversazione con produzione e i tuoi ticket aperti.",23,{"path":165,"title":166,"description":167,"order":168,"group":169,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Ftickets","Ticket e idee","Apri e segui i ticket sulla bacheca, raccoglili in milestone, fai domande e trasforma le idee votate in lavoro.",30,"use",{"path":171,"title":172,"description":173,"order":174,"group":169,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Ferrors","Errori","Come gli errori delle tue app diventano righe uniche, e come risolverli, ignorarli, fonderli o trasformarli in ticket.",31,{"path":176,"title":177,"description":178,"order":179,"group":169,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fperformance","Performance","Trova le query e i metodi lenti, leggi i problemi riconosciuti da soli e ricevi un avviso quando ne compare uno.",32,{"path":181,"title":182,"description":183,"order":184,"group":169,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Flogs","Log","Cerca i messaggi delle tue app, segui una richiesta dall'inizio alla fine e collega un messaggio a un errore o a un ticket.",33,{"path":186,"title":187,"description":188,"order":189,"group":169,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fsecrets","Segreti","Password, chiavi e file riservati in un posto solo, per progetto e ambiente, letti dall'app senza un .env sul disco.",34,{"path":191,"title":192,"description":193,"order":194,"group":169,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fservers","Server","Lo stato delle tue macchine in una pagina, con lo storico e gli avvisi quando qualcosa si rompe o si sta riempiendo.",35,{"path":196,"title":197,"description":198,"order":199,"group":169,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fuptime","Uptime","Controlla che i tuoi siti rispondano, tiene il conto dei guasti e li mostra ai clienti su una pagina di stato.",36,{"path":201,"title":202,"description":203,"order":204,"group":169,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fcrons","Lavori programmati","Accorgersi quando un lavoro che deve partire da solo smette di partire, o parte e finisce male.",37,{"path":206,"title":207,"description":208,"order":209,"group":169,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Falerts","Avvisi","Le regole che fanno nascere un avviso, il centro notifiche e dove ognuno sceglie di riceverli.",38,{"path":211,"title":212,"description":213,"order":214,"group":169,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fhelpdesk","Assistenza","Chi visita il sito di un progetto scrive al team con il bottone «Serve aiuto?», e la richiesta arriva nel progetto giusto.",39,{"path":216,"title":217,"description":218,"order":219,"group":169,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fanalytics","Statistiche del sito","Quante persone visitano il sito, cosa guardano e da dove arrivano, senza cookie.",40,{"path":221,"title":222,"description":223,"order":224,"group":169,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Freplays","Session replay","Registra la navigazione di chi usa il sito e la riguardi come un video, anche accanto a un errore.",41,{"path":226,"title":227,"description":228,"order":229,"group":169,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Freleases","Release","Le versioni che girano in ogni ambiente, legate ai tag di GitHub, e gli errori che tornano dopo una correzione.",42,{"path":231,"title":232,"description":233,"order":234,"group":169,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fvulnerabilities","Vulnerabilità","I problemi di sicurezza noti nelle librerie dei tuoi progetti e i linguaggi che non ricevono più correzioni.",43,{"path":236,"title":237,"description":238,"order":239,"group":169,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fseo","SEO","CloseYourIt visita i tuoi siti come un motore di ricerca e ti dice cosa impedisce alle pagine di essere trovate.",44,{"path":241,"title":242,"description":243,"order":244,"group":169,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fknowledge","Knowledge base","Scrivi note, decisioni e guide dei progetti, ritrovale per significato e fai domande con le fonti.",45,{"path":246,"title":247,"description":248,"order":249,"group":169,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fagents","Agenti AI","Quali ticket prendono gli agenti, cosa ti consegnano, dove decidi tu e come si misura ogni macchina.",46,{"path":251,"title":252,"description":253,"order":254,"group":14,"parent":8,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog","Versioni","Ogni sistema di CloseYourIt con la sua ultima versione, e le note di ogni rilascio.",50,{"path":256,"title":257,"description":258,"order":259,"group":8,"parent":260,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-app","App","Tutte le versioni stabili di App, dalla più recente.",51,"changelog",{"path":262,"title":263,"description":264,"order":265,"group":8,"parent":260,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-cli","Riga di comando (cyi)","Tutte le versioni stabili di Riga di comando (cyi), dalla più recente.",52,{"path":267,"title":141,"description":268,"order":269,"group":8,"parent":260,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-automator","Tutte le versioni stabili di Automator, dalla più recente.",53,{"path":271,"title":272,"description":273,"order":274,"group":8,"parent":260,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-agent-server","Agente per server","Tutte le versioni stabili di Agente per server, dalla più recente.",54,{"path":276,"title":277,"description":278,"order":279,"group":8,"parent":260,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-agent-kubernetes","Agente Kubernetes","Tutte le versioni stabili di Agente Kubernetes, dalla più recente.",55,{"path":281,"title":282,"description":283,"order":284,"group":8,"parent":260,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-sdk-javascript","SDK JavaScript","Tutte le versioni stabili di SDK JavaScript, dalla più recente.",56,{"path":286,"title":287,"description":288,"order":289,"group":8,"parent":260,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-sdk-ruby","SDK Ruby","Tutte le versioni stabili di SDK Ruby, dalla più recente.",57,{"path":291,"title":292,"description":293,"order":294,"group":8,"parent":260,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-sdk-python","SDK Python","Tutte le versioni stabili di SDK Python, dalla più recente.",58,{"path":296,"title":297,"description":298,"order":299,"group":8,"parent":260,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-sdk-dart","SDK Dart","Tutte le versioni stabili di SDK Dart, dalla più recente.",59,{"path":301,"title":302,"description":303,"order":304,"group":8,"parent":260,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-skills","Skill per assistenti AI","Tutte le versioni stabili di Skill per assistenti AI, dalla più recente.",60,{"path":306,"title":307,"description":308,"order":309,"group":8,"parent":260,"package":8,"note":8,"collects":8,"status":8},"\u002Fdocs\u002Fchangelog-site","Sito e documentazione","Tutte le versioni stabili di Sito e documentazione, dalla più recente.",61,{"id":311,"title":292,"body":312,"collects":8,"description":293,"extension":661,"group":8,"meta":662,"navigation":663,"note":8,"order":294,"package":8,"parent":260,"path":291,"seo":664,"status":8,"stem":665,"__hash__":666},"docs_it\u002Fdocs\u002Fchangelog-sdk-python.md",{"type":313,"value":314,"toc":648},"minimark",[315,320,327,359,363,368,392,396,410,414,419,427,431,435,443,447,451,463,467,471,491,495,507,511,515,520,524,528,533,537,541,577,581,598,602,606],[316,317,319],"h2",{"id":318},"_041-2026-10-07","0.4.1 · 2026-10-07",[321,322,323],"p",{},[324,325,326],"strong",{},"Corretto",[328,329,330,346],"ul",{},[331,332,333,336,337,341,342,345],"li",{},[324,334,335],{},"Contesti degli errori mascherati."," I dati passati a ",[338,339,340],"code",{},"capture_exception"," con ",[338,343,344],{},"contexts"," seguono lo stesso filtro delle chiavi sensibili del resto del payload, anche se annidati. (CYPY-16)",[331,347,348,351,352,355,356,358],{},[324,349,350],{},"Avviso per endpoint http remoto."," Fuori da production un endpoint ",[338,353,354],{},"http:\u002F\u002F"," su un host diverso da localhost produce un avviso sul logger ",[338,357,65],{},"; production continua a rifiutarlo. (CYPY-16)",[316,360,362],{"id":361},"_040-2026-10-04","0.4.0 · 2026-10-04",[321,364,365],{},[324,366,367],{},"Aggiunto",[328,369,370,376,382],{},[331,371,372,375],{},[324,373,374],{},"Query Django osservabili su richiesta."," Monitoraggio opt-in di query lente, N+1 e conteggi, con isolamento sync\u002Fasync, streaming e rimozione reversibile degli hook. (CYRA-970)",[331,377,378,381],{},[324,379,380],{},"Adapter FastAPI e Starlette."," Errori, metriche e template di rotta seguono streaming e background task, con scope isolato e installazione reversibile. Gli input degli errori di validazione non vengono inviati. (CYRA-971)",[331,383,384,387,388,391],{},[324,385,386],{},"Contesto dei tentativi Celery."," Il contesto job v1 separa durata, attesa e ritardo programmato. ",[338,389,390],{},"lifecycle_logs",", spento per default, registra gli esiti osservati senza argomenti o risultati. (CYRA-972)",[321,393,394],{},[324,395,326],{},[328,397,398,404],{},[331,399,400,403],{},[324,401,402],{},"Commenti SQL annidati protetti."," Il fingerprint elimina anche i commenti annidati prima di costruire la telemetria, evitando che i loro valori restino visibili.",[331,405,406,409],{},[324,407,408],{},"Licenza nel pacchetto."," Wheel e distribuzione sorgente includono la licenza MIT e i relativi metadati. (CYRA-915)",[316,411,413],{"id":412},"_033-2026-10-01","0.3.3 · 2026-10-01",[321,415,416],{},[324,417,418],{},"Modificato",[328,420,421],{},[331,422,423,426],{},[324,424,425],{},"Manutenzione interna."," Commenti e test sono in inglese e i controlli automatici girano senza cache condivisa. Per chi usa la libreria non cambia niente.",[316,428,430],{"id":429},"_032-2026-09-14","0.3.2 · 2026-09-14",[321,432,433],{},[324,434,326],{},[328,436,437],{},[331,438,439,442],{},[324,440,441],{},"I controlli automatici tornano a girare su ogni proposta di modifica."," Le verifiche erano ferme e le modifiche passavano senza prova. Ora ogni proposta viene controllata prima di essere unita. (CITM-8)",[316,444,446],{"id":445},"_031-2026-09-07","0.3.1 · 2026-09-07",[321,448,449],{},[324,450,326],{},[328,452,453],{},[331,454,455,458,459,462],{},[324,456,457],{},"La credenziale citata in un errore non parte più in chiaro"," (CYPY-15): quando un messaggio\nriporta un header di accesso, viene nascosto anche il valore dopo ",[338,460,461],{},"Bearer",", non solo il tipo di\nautenticazione. Il testo diagnostico attorno resta leggibile.",[316,464,466],{"id":465},"_030-2026-09-03","0.3.0 · 2026-09-03",[321,468,469],{},[324,470,367],{},[328,472,473],{},[331,474,475,478,479,482,483,486,487,490],{},[324,476,477],{},"Telemetria d'uso delle funzioni"," (CYPY-13): le applicazioni Python compaiono nella pagina d'uso e\nin ",[338,480,481],{},"cyi usage list",", con rotte e task registrati da soli e ",[338,484,485],{},"client.used(\"chiave\")"," per il resto.\nSpenta per default, si accende con ",[338,488,489],{},"CLOSEYOURIT_USAGE_ENABLED",".",[321,492,493],{},[324,494,418],{},[328,496,497],{},[331,498,499,502,503,506],{},[324,500,501],{},"La presentazione non promette più funzioni che non ci sono"," (CYPY-14): il README dice che i\nquattro client CloseYourIt non fanno le stesse cose e rimanda alla tabella di parità in\n",[338,504,505],{},"closeyourit-docs",", rilevazione datata di cosa c'è dove.",[316,508,510],{"id":509},"_022-2026-08-24","0.2.2 · 2026-08-24",[321,512,513],{},[324,514,326],{},[328,516,517],{},[331,518,519],{},"La pubblicazione sull'archivio pubblico non viene più rifiutata: il pacchetto dichiara i\nmetadati nella forma corrente e lo strumento che li controllava, dentro l'azione di pubblicazione,\nera fermo a una versione che non la conosceva. La 0.2.1 si era fermata lì e non è mai arrivata\nsull'archivio; questa versione la porta con sé.",[316,521,523],{"id":522},"_021-2026-08-24","0.2.1 · 2026-08-24",[321,525,526],{},[324,527,326],{},[328,529,530],{},[331,531,532],{},"Il flusso di pubblicazione non produce più un giro muto sul tag di prova (CYPY-12): qui un canale di\nprova non esiste, e la macchina che pubblica si svegliava lo stesso, non eseguiva niente e non\nfalliva — dall'esterno identico a un rilascio riuscito. Ora il giro finisce rosso e la riga dice\nquale tag ha ricevuto e che questo repository pubblica soltanto tag stabili.",[316,534,536],{"id":535},"_020-2026-08-01","0.2.0 · 2026-08-01",[321,538,539],{},[324,540,367],{},[328,542,543],{},[331,544,545,546,549,550,553,554,557,558,553,561,553,564,553,567,553,570,573,574,576],{},"Rilevamento automatico della release dalle variabili d'ambiente di deploy\u002FCI (CYPY-10): senza\n",[338,547,548],{},"CLOSEYOURIT_RELEASE"," impostata a mano le segnalazioni partivano senza release, e i casi già risolti\nriaprivano come regressione. Ora si preferisce il tag semver (",[338,551,552],{},"APP_GIT_TAG",", ",[338,555,556],{},"GIT_TAG","), poi lo short SHA\nda ",[338,559,560],{},"KAMAL_VERSION",[338,562,563],{},"GIT_SHA",[338,565,566],{},"GIT_REVISION",[338,568,569],{},"SOURCE_VERSION",[338,571,572],{},"HEROKU_SLUG_COMMIT",". Nessun subprocess\ngit. ",[338,575,548],{}," e il valore passato a mano mantengono la precedenza. Allineato a\nCloseYourIt-Ruby.",[321,578,579],{},[324,580,326],{},[328,582,583],{},[331,584,585,586,589,590,593,594,597],{},"L'SDK avvisa nei log quando si disattiva o perde eventi (CYPY-11): configurazione non valida, coda piena\ne spedizioni fallite venivano solo contate in ",[338,587,588],{},"TransportStats",", che nessun modulo legge — l'SDK diventava\nmuto e indistinguibile da \"nessun errore\". Ora c'è un logger diagnostico condiviso\n(",[338,591,592],{},"logging.getLogger(\"closeyourit\")",", lo stesso nome che ",[338,595,596],{},"CloseYourItHandler"," già filtra, quindi mai\nri-catturato) che emette un avviso una sola volta con il motivo della disattivazione.",[316,599,601],{"id":600},"_010-2026-07-13","0.1.0 · 2026-07-13",[321,603,604],{},[324,605,367],{},[328,607,608,611,614,617,620,623,626,629,636,639,642,645],{},[331,609,610],{},"Scaffold Python tipizzato con test, coverage, lint, type check e build del package.",[331,612,613],{},"Pipeline di pubblicazione PyPI tramite Trusted Publishing OIDC, senza token permanenti.",[331,615,616],{},"Configurazione immutabile e fail-safe con validazione delle credenziali server-side.",[331,618,619],{},"Scope isolato per task e thread, snapshot immutabili e scrubbing PII ricorsivo.",[331,621,622],{},"Builder tipizzati per errori, messaggi, log strutturati e metriche performance.",[331,624,625],{},"Client con sampling deterministico, breadcrumb limitati e protocollo di sink sostituibile.",[331,627,628],{},"Transport HTTP asincrono con coda limitata, retry, diagnostica, flush, shutdown e fork safety.",[331,630,631,632,635],{},"Handler ",[338,633,634],{},"logging"," e hook reversibili per errori non gestiti di sys, threading e asyncio.",[331,637,638],{},"Contratto golden ingest vendorizzato con schema, fixture, matrice HTTP, lock e checksum.",[331,640,641],{},"Middleware WSGI\u002FASGI e adapter Django\u002FFlask con scope isolato, streaming e privacy-by-default.",[331,643,644],{},"Integrazioni opzionali e reversibili per Requests, HTTPX sync\u002Fasync e SQLAlchemy, con URL e SQL\nprivati per default, slow\u002Frepeated HTTP, query lente, conteggio query e rilevazione N+1.",[331,646,647],{},"Extra Celery con signal reversibili, metriche task\u002Fcoda e capture fail-safe di failure, retry e\nrevoche senza acquisire argomenti o risultati.",{"title":649,"searchDepth":19,"depth":19,"links":650},"",[651,652,653,654,655,656,657,658,659,660],{"id":318,"depth":19,"text":319},{"id":361,"depth":19,"text":362},{"id":412,"depth":19,"text":413},{"id":429,"depth":19,"text":430},{"id":445,"depth":19,"text":446},{"id":465,"depth":19,"text":466},{"id":509,"depth":19,"text":510},{"id":522,"depth":19,"text":523},{"id":535,"depth":19,"text":536},{"id":600,"depth":19,"text":601},"md",{},true,{"title":292,"description":293},"docs\u002Fchangelog-sdk-python","fU2nGylNxaqPWwm0_cE_EXkwAQk5CefSaZyPAFElrjg",1791469655269]