{"code":"var Component=(()=>{var p=Object.create;var r=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty;var f=(i,n)=>()=>(n||i((n={exports:{}}).exports,n),n.exports),q=(i,n)=>{for(var s in n)r(i,s,{get:n[s],enumerable:!0})},a=(i,n,s,l)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let t of m(n))!v.call(i,t)&&t!==s&&r(i,t,{get:()=>n[t],enumerable:!(l=h(n,t))||l.enumerable});return i};var b=(i,n,s)=>(s=i!=null?p(g(i)):{},a(n||!i||!i.__esModule?r(s,\"default\",{value:i,enumerable:!0}):s,i)),C=i=>a(r({},\"__esModule\",{value:!0}),i);var c=f((x,o)=>{o.exports=_jsx_runtime});var k={};q(k,{default:()=>u});var e=b(c());function d(i){let n={a:\"a\",blockquote:\"blockquote\",code:\"code\",em:\"em\",h2:\"h2\",h3:\"h3\",img:\"img\",li:\"li\",p:\"p\",pre:\"pre\",span:\"span\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",ul:\"ul\",...i.components};return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(n.p,{children:[\"Votre Mac chauffe sans rien faire. L'autonomie estim\\xE9e a \\xE9t\\xE9 divis\\xE9e par deux. Vous ouvrez le Moniteur d'activit\\xE9, triez par CPU, et en t\\xEAte de liste se trouve un processus dont vous n'avez jamais entendu parler \\u2014 \",(0,e.jsx)(n.code,{children:\"peopled\"}),\" \\u2014 bloqu\\xE9 \\xE0 70 ou 80 % et qui y reste. Ou bien c'est \",(0,e.jsx)(n.code,{children:\"contactsd\"}),\". Ou, sur les machines les plus touch\\xE9es, \",(0,e.jsx)(n.code,{children:\"accountsd\"}),\" \\xE0 180 % avec \",(0,e.jsx)(n.code,{children:\"contactsd\"}),\" et \",(0,e.jsx)(n.code,{children:\"itunescloudd\"}),\" juste derri\\xE8re. Le quitter ne sert \\xE0 rien, car vous ne pouvez pas le quitter. Red\\xE9marrer aide, mais seulement pendant une heure.\"]}),`\n`,(0,e.jsx)(n.p,{children:\"Cela arrive aux utilisateurs de Mac depuis macOS Tahoe 26.4 en mars, cela continue sur 26.5 et 26.6, Apple ne l'a pas reconnu, et la solution la plus fiable ne figure dans aucun des articles du type \\xAB red\\xE9marrez votre Mac / r\\xE9initialisez la NVRAM \\xBB qui se classent dans les r\\xE9sultats de recherche. Il s'agit de supprimer un widget.\"}),`\n`,(0,e.jsxs)(n.p,{children:[\"Ce guide explique ce qu'est \",(0,e.jsx)(n.code,{children:\"peopled\"}),\" (nous avons regard\\xE9 \\xE0 l'int\\xE9rieur), pourquoi un widget le fait entrer en boucle, pourquoi un indicateur de quarantaine sur un dossier dont vous ignoriez l'existence est l'autre d\\xE9clencheur, et l'ordre exact dans lequel essayer les correctifs.\"]}),`\n`,(0,e.jsx)(n.p,{children:(0,e.jsx)(n.img,{alt:\"peopled consommant du CPU sous macOS Tahoe dans le Moniteur d'activit\\xE9\",src:\"/images/blog/peopled-contactsd-high-cpu-macos-tahoe-contacts-widget-callhistorydb-fix-2026/hero.webp\",width:\"1024\",height:\"541\"})}),`\n`,(0,e.jsx)(n.h2,{id:\"points-cl\\xE9s\",children:\"Points cl\\xE9s\"}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsxs)(n.strong,{children:[(0,e.jsx)(n.code,{children:\"peopled\"}),\" est le daemon derri\\xE8re le widget Contacts.\"]}),\" Son propre binaire contient des classes nomm\\xE9es \",(0,e.jsx)(n.code,{children:\"WidgetSuggester\"}),\", \",(0,e.jsx)(n.code,{children:\"WidgetConfigurationReader\"}),\" et \",(0,e.jsx)(n.code,{children:\"CallHistoryFetcher\"}),\", et son profil sandbox lui donne acc\\xE8s \\xE0 la base de donn\\xE9es de votre historique d'appels. Cette combinaison est \\xE0 l'origine de la boucle.\"]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Solution 1 : supprimez tous les widgets Contacts\"}),\" \\u2014 bureau, Centre de notifications et Centre de contr\\xF4le \\u2014 puis red\\xE9marrez. Cela a r\\xE9solu la majorit\\xE9 des plus de 54 signalements confirm\\xE9s sur le forum communautaire d'Apple.\"]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsxs)(n.strong,{children:[\"Solution 2 : effacez l'indicateur de quarantaine sur \",(0,e.jsx)(n.code,{children:\"~/Library/Application Support/CallHistoryDB\"})]}),\" et forcez l'arr\\xEAt de \",(0,e.jsx)(n.code,{children:\"peopled\"}),\". C'est la solution quand il n'y a aucun widget \\xE0 supprimer ; elle n\\xE9cessite l'Acc\\xE8s complet au disque pour Terminal.\"]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Solution 3 : d\\xE9sactivez Contacts iCloud, puis r\\xE9activez-le.\"}),\" Fonctionne pour certains, pas pour tous, et vous prive de la synchronisation tant que c'est d\\xE9sactiv\\xE9.\"]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsxs)(n.strong,{children:[\"Les pics de \",(0,e.jsx)(n.code,{children:\"contactsd\"}),\" avec un compte Exchange ou Google sont un bug diff\\xE9rent, plus ancien,\"]}),\" avec le m\\xEAme sympt\\xF4me mais une solution diff\\xE9rente \\u2014 supprimer le compte ou utiliser un client tiers.\"]}),`\n`,(0,e.jsxs)(n.li,{children:[(0,e.jsx)(n.strong,{children:\"Apple n'a document\\xE9 aucun correctif.\"}),\" Rien dans les notes de version de 26.4.1, 26.5, 26.6 ou 26.6.x n'en fait mention, et les signalements continuent sur 26.5 et au-del\\xE0.\"]}),`\n`]}),`\n`,(0,e.jsx)(n.h2,{id:\"quel-processus-exactement\",children:\"Quel processus, exactement\"}),`\n`,(0,e.jsx)(n.p,{children:\"Trois daemons apparaissent dans ces signalements et ils ne sont pas interchangeables. Triez le Moniteur d'activit\\xE9 par % CPU et notez lequel vous concerne.\"}),`\n`,(0,e.jsxs)(n.table,{children:[(0,e.jsx)(n.thead,{children:(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.th,{children:\"Processus\"}),(0,e.jsx)(n.th,{children:\"\\xC0 quoi il appartient\"}),(0,e.jsx)(n.th,{children:\"Signalement typique\"}),(0,e.jsx)(n.th,{children:\"Cause la plus probable\"})]})}),(0,e.jsxs)(n.tbody,{children:[(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:(0,e.jsx)(n.code,{children:\"peopled\"})}),(0,e.jsx)(n.td,{children:\"Framework People \\u2014 suggestions de widgets, Famille, Temps d'\\xE9cran, statut\"}),(0,e.jsx)(n.td,{children:\"70\\u201380 % en continu depuis 26.4\"}),(0,e.jsx)(n.td,{children:\"Widget Contacts + CallHistoryDB illisible\"})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:(0,e.jsx)(n.code,{children:\"contactsd\"})}),(0,e.jsx)(n.td,{children:\"Framework Contacts \\u2014 la base de donn\\xE9es du carnet d'adresses et sa synchronisation\"}),(0,e.jsx)(n.td,{children:\"Pics \\xE0 80 % toutes les 60\\u201390 s, ou en continu\"}),(0,e.jsx)(n.td,{children:\"Boucle de synchronisation des contacts iCloud/Exchange/Google\"})]}),(0,e.jsxs)(n.tr,{children:[(0,e.jsx)(n.td,{children:(0,e.jsx)(n.code,{children:\"accountsd\"})}),(0,e.jsx)(n.td,{children:\"Framework Accounts \\u2014 tous les comptes connect\\xE9s\"}),(0,e.jsxs)(n.td,{children:[\"180 % avec \",(0,e.jsx)(n.code,{children:\"contactsd\"}),\" et \",(0,e.jsx)(n.code,{children:\"itunescloudd\"})]}),(0,e.jsx)(n.td,{children:\"Boucle d'authentification de compte ; la d\\xE9connexion \\xE9choue souvent\"})]})]})]}),`\n`,(0,e.jsxs)(n.p,{children:[\"S'il s'agit de \",(0,e.jsx)(n.code,{children:\"peopled\"}),\", commencez par la section sur le widget. S'il s'agit uniquement de \",(0,e.jsx)(n.code,{children:\"contactsd\"}),\", passez directement \\xE0 la section sur la synchronisation de compte. Si les trois sont concern\\xE9s avec \",(0,e.jsx)(n.code,{children:\"accountsd\"}),\" en t\\xEAte, vous \\xEAtes dans la variante la moins bien comprise, et la section qui en traite est honn\\xEAte sur le peu que l'on en sait.\"]}),`\n`,(0,e.jsxs)(n.h2,{id:\"ce-que-peopled-fait-r\\xE9ellement\",children:[\"Ce que \",(0,e.jsx)(n.code,{children:\"peopled\"}),\" fait r\\xE9ellement\"]}),`\n`,(0,e.jsx)(n.p,{children:\"Le nom \\xE9voque les contacts, et les rares guides qui le mentionnent le d\\xE9crivent comme \\xAB g\\xE8re les donn\\xE9es de contact \\xBB. C'est globalement vrai et pr\\xE9cis\\xE9ment faux, et cette nuance explique pourquoi la solution passe par un widget plut\\xF4t que par une r\\xE9paration du carnet d'adresses.\"}),`\n`,(0,e.jsxs)(n.p,{children:[\"Nous avons examin\\xE9 le daemon sur un Mac tournant sous 26.5.2. Il se trouve dans \",(0,e.jsx)(n.code,{children:\"/System/Library/PrivateFrameworks/People.framework/peopled\"}),\", et sa t\\xE2che launchd (\",(0,e.jsx)(n.code,{children:\"/System/Library/LaunchAgents/com.apple.peopled.plist\"}),\") indique ce qui le r\\xE9veille. Il n'est pas charg\\xE9 \\xE0 la connexion \\u2014 \",(0,e.jsx)(n.code,{children:\"RunAtLoad\"}),\" est \\xE0 false. Il est d\\xE9clench\\xE9 par des \\xE9v\\xE9nements :\"]}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsxs)(n.li,{children:[\"Les flux Biome pour \",(0,e.jsx)(n.code,{children:\"missedCall\"}),\", \",(0,e.jsx)(n.code,{children:\"unreadMessage\"}),\", \",(0,e.jsx)(n.code,{children:\"readMessage\"}),\", \",(0,e.jsx)(n.code,{children:\"location\"}),\", \",(0,e.jsx)(n.code,{children:\"dndAvailability\"}),\", \",(0,e.jsx)(n.code,{children:\"screenTimeRequest\"}),\", \",(0,e.jsx)(n.code,{children:\"askToBuyRequest\"}),\" et \",(0,e.jsx)(n.code,{children:\"childState\"})]}),`\n`,(0,e.jsxs)(n.li,{children:[\"Deux notifications syst\\xE8me : \",(0,e.jsx)(n.code,{children:\"__ABDataBaseChangedByOtherProcessNotification\"}),\" (le carnet d'adresses a chang\\xE9) et \",(0,e.jsx)(n.code,{children:\"_CalDatabaseChangedNotification\"}),\" (le calendrier a chang\\xE9)\"]}),`\n`]}),`\n`,(0,e.jsxs)(n.p,{children:[\"Ainsi, chaque appel manqu\\xE9, chaque message, chaque modification de contact et chaque changement de calendrier r\\xE9veille \",(0,e.jsx)(n.code,{children:\"peopled\"}),\". Et que fait-il une fois r\\xE9veill\\xE9 ? Les cha\\xEEnes de caract\\xE8res de son binaire r\\xE9pondent directement \\xE0 cette question. Parmi les noms de classes Swift :\"]}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,e.jsxs)(n.code,{children:[(0,e.jsx)(n.span,{className:\"line\",children:(0,e.jsx)(n.span,{children:\"_TtC7peopled15WidgetSuggester\"})}),`\n`,(0,e.jsx)(n.span,{className:\"line\",children:(0,e.jsx)(n.span,{children:\"_TtC7peopled18CallHistoryFetcher\"})}),`\n`,(0,e.jsx)(n.span,{className:\"line\",children:(0,e.jsx)(n.span,{children:\"_TtC7peopled25WidgetConfigurationReader\"})})]})})}),`\n`,(0,e.jsx)(n.p,{children:\"et parmi ses mod\\xE8les de message de journal :\"}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,e.jsxs)(n.code,{children:[(0,e.jsx)(n.span,{className:\"line\",children:(0,e.jsx)(n.span,{children:\"Event triggered widget refresh: %{private}s, %s\"})}),`\n`,(0,e.jsx)(n.span,{className:\"line\",children:(0,e.jsx)(n.span,{children:\"Last widget suggestion date is older 24 hours, suggest widgets\"})}),`\n`,(0,e.jsx)(n.span,{className:\"line\",children:(0,e.jsx)(n.span,{children:\"Last widget suggestion date is within 24 hours, do not suggest widgets\"})}),`\n`,(0,e.jsx)(n.span,{className:\"line\",children:(0,e.jsx)(n.span,{children:\"error reading widgets configurations: %s\"})}),`\n`,(0,e.jsx)(n.span,{className:\"line\",children:(0,e.jsx)(n.span,{children:\"Failed to suggest widgets with error: %s\"})})]})})}),`\n`,(0,e.jsx)(n.p,{children:\"Il est li\\xE9 au framework Contacts, au framework CallHistory et \\xE0 deux frameworks Biome. Sa mission, telle que son propre code la d\\xE9crit, est de d\\xE9cider quelles personnes mettre en avant dans le widget Contacts et dans les suggestions li\\xE9es aux personnes, en utilisant vos appels et messages r\\xE9cents comme signal.\"}),`\n`,(0,e.jsx)(n.p,{children:\"C'est ce qui rend le mode de d\\xE9faillance logique : un daemon r\\xE9veill\\xE9 par chaque appel et chaque message, dont le travail est de rafra\\xEEchir un widget, et qui a besoin de lire l'historique d'appels pour le faire.\"}),`\n`,(0,e.jsx)(n.p,{children:(0,e.jsx)(n.img,{alt:\"\\xC0 l'int\\xE9rieur du daemon peopled sous macOS Tahoe\",src:\"/images/blog/peopled-contactsd-high-cpu-macos-tahoe-contacts-widget-callhistorydb-fix-2026/content-1.webp\",width:\"1024\",height:\"572\"})}),`\n`,(0,e.jsx)(n.h2,{id:\"pourquoi-il-boucle\",children:\"Pourquoi il boucle\"}),`\n`,(0,e.jsx)(n.p,{children:\"Mettons les \\xE9l\\xE9ments du fil de discussion communautaire en regard de ce que dit le binaire.\"}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.code,{children:\"peopled\"}),\" s'ex\\xE9cute dans un bac \\xE0 sable (sandbox). Son profil, situ\\xE9 dans \",(0,e.jsx)(n.code,{children:\"/System/Library/Sandbox/Profiles/com.apple.peopled.sb\"}),\", commence par \",(0,e.jsx)(n.code,{children:\"(deny default)\"}),\" puis ouvre des acc\\xE8s sp\\xE9cifiques. En voici deux :\"]}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,e.jsxs)(n.code,{children:[(0,e.jsx)(n.span,{className:\"line\",children:(0,e.jsx)(n.span,{children:'(home-subpath \"/Library/CallHistoryDB/\")'})}),`\n`,(0,e.jsx)(n.span,{className:\"line\",children:(0,e.jsx)(n.span,{children:'(home-subpath \"/Library/Logs/CallHistory\")'})})]})})}),`\n`,(0,e.jsxs)(n.p,{children:[\"Il est ainsi autoris\\xE9 \\xE0 lire \",(0,e.jsx)(n.code,{children:\"~/Library/Application Support/CallHistoryDB/\"}),\", o\\xF9 macOS conserve la base de donn\\xE9es des appels pass\\xE9s et re\\xE7us via votre iPhone gr\\xE2ce \\xE0 Continuity. Ce dossier est \\xE9galement prot\\xE9g\\xE9 par TCC \\u2014 sur notre Mac, un \",(0,e.jsx)(n.code,{children:\"ls\"}),\" dessus depuis Terminal renvoie \",(0,e.jsx)(n.code,{children:\"Operation not permitted\"}),\" tant que Terminal n'a pas l'Acc\\xE8s complet au disque \\u2014 ce qui explique pourquoi les solutions ci-dessous n\\xE9cessitent cette autorisation.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[\"Passons aux signalements. Le 21 avril, un utilisateur sur \",(0,e.jsx)(n.a,{href:\"https://discussions.apple.com/thread/256271160\",children:\"le fil de discussion communautaire d'Apple\"}),\" a cit\\xE9 le message noyau trouv\\xE9 dans Console pendant que \",(0,e.jsx)(n.code,{children:\"peopled\"}),\" tournait en boucle :\"]}),`\n`,(0,e.jsxs)(n.blockquote,{children:[`\n`,(0,e.jsx)(n.p,{children:\"Sandbox: peopled \\u2026 deny(1) file-read-data ~/Library/Application Support/CallHistoryDB\"}),`\n`]}),`\n`,(0,e.jsx)(n.p,{children:\"Et le 20 mai, un autre a cit\\xE9 :\"}),`\n`,(0,e.jsxs)(n.blockquote,{children:[`\n`,(0,e.jsx)(n.p,{children:\"failed to open /Users/[user]/Library/Application Support/CallHistoryDB: 1 (Operation not permitted)\"}),`\n`]}),`\n`,(0,e.jsxs)(n.p,{children:[\"L'interpr\\xE9tation qui colle \\xE0 tout cela : un widget Contacts est install\\xE9, donc \",(0,e.jsx)(n.code,{children:\"peopled\"}),\" re\\xE7oit l'ordre de le rafra\\xEEchir ; rafra\\xEEchir signifie r\\xE9cup\\xE9rer l'historique d'appels ; la r\\xE9cup\\xE9ration est refus\\xE9e \\u2014 parce que le dossier a acquis un attribut \",(0,e.jsx)(n.code,{children:\"com.apple.quarantine\"}),\", ou pour une autre raison de permission que les signalements n'ont pas identifi\\xE9e pr\\xE9cis\\xE9ment \\u2014 le rafra\\xEEchissement \\xE9choue, et l'\\xE9v\\xE9nement suivant (ou la nouvelle tentative) le red\\xE9clenche. Un daemon cens\\xE9 tourner quelques millisecondes apr\\xE8s un appel manqu\\xE9 tourne alors en continu.\"]}),`\n`,(0,e.jsx)(n.p,{children:\"Nous tenons \\xE0 \\xEAtre pr\\xE9cis sur ce qui est \\xE9tabli ici et ce qui ne l'est pas. Les noms de classes, les r\\xE8gles du sandbox et les messages de journal sont directement observables ; nous les avons lus. Que la boucle soit \\xAB rafra\\xEEchissement du widget, lecture refus\\xE9e, nouvelle tentative \\xBB est une inf\\xE9rence qui correspond \\xE0 tous les signalements que nous avons vus et aux deux solutions qui fonctionnent. Apple n'a pas confirm\\xE9 ce m\\xE9canisme, et il pourrait exister un second d\\xE9clencheur \\u2014 un utilisateur signale que la boucle a d\\xE9marr\\xE9 apr\\xE8s une r\\xE9organisation du Centre de contr\\xF4le, sans qu'aucun widget Contacts ne soit pr\\xE9sent.\"}),`\n`,(0,e.jsx)(n.h2,{id:\"confirmez-avant-de-toucher-\\xE0-quoi-que-ce-soit\",children:\"Confirmez avant de toucher \\xE0 quoi que ce soit\"}),`\n`,(0,e.jsx)(n.p,{children:\"Deux minutes d'observation \\xE9vitent une heure de t\\xE2tonnement, et le profil d'utilisation du CPU vous indique quelle solution privil\\xE9gier.\"}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Observez la forme de la courbe.\"}),\" Dans le Moniteur d'activit\\xE9, s\\xE9lectionnez le processus et regardez l'historique du CPU en bas de la fen\\xEAtre, ou depuis Terminal :\"]}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,e.jsx)(n.code,{children:(0,e.jsx)(n.span,{className:\"line\",children:(0,e.jsx)(n.span,{children:\"top -stats pid,command,cpu,time -o cpu -n 5\"})})})})}),`\n`,(0,e.jsxs)(n.p,{children:[\"Un \",(0,e.jsx)(n.code,{children:\"peopled\"}),\" qui reste \\xE0 plat entre 70 et 80 % correspond \\xE0 la boucle du widget. Un \",(0,e.jsx)(n.code,{children:\"contactsd\"}),\" qui monte en pic, retombe \\xE0 z\\xE9ro, puis remonte une minute plus tard correspond \\xE0 la boucle de synchronisation. Un CPU soutenu sur les trois daemons \\xE0 la fois correspond \\xE0 la variante des comptes.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"V\\xE9rifiez depuis combien de temps il tourne.\"}),\" \",(0,e.jsx)(n.code,{children:\"peopled\"}),\" vit normalement quelques secondes. Sur notre Mac (sain), il est r\\xE9sident depuis 41 jours \\xE0 0,0 % de CPU \\u2014 r\\xE9sident mais inactif, c'est normal. Ce que vous recherchez, c'est r\\xE9sident \",(0,e.jsx)(n.em,{children:\"et\"}),\" actif :\"]}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,e.jsx)(n.code,{children:(0,e.jsx)(n.span,{className:\"line\",children:(0,e.jsx)(n.span,{children:'ps -axo pid,etime,pcpu,comm | grep -E \"peopled|contactsd|accountsd\"'})})})})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Cherchez le refus.\"}),\" C'est le test d\\xE9cisif. Ouvrez une seconde fen\\xEAtre Terminal et suivez en direct le journal du daemon pendant qu'il tourne en boucle :\"]}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,e.jsx)(n.code,{children:(0,e.jsx)(n.span,{className:\"line\",children:(0,e.jsx)(n.span,{children:`log stream --predicate 'process == \"peopled\"' --info`})})})})}),`\n`,(0,e.jsx)(n.p,{children:\"et, dans la premi\\xE8re fen\\xEAtre, cherchez dans les derni\\xE8res minutes la ligne du sandbox cit\\xE9e par les signalements de la communaut\\xE9 :\"}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,e.jsx)(n.code,{children:(0,e.jsx)(n.span,{className:\"line\",children:(0,e.jsx)(n.span,{children:`log show --last 10m --predicate 'eventMessage CONTAINS \"Sandbox: peopled\"'`})})})})}),`\n`,(0,e.jsxs)(n.p,{children:[\"Si vous voyez \",(0,e.jsx)(n.code,{children:\"deny(1) file-read-data\"}),\" face \\xE0 \",(0,e.jsx)(n.code,{children:\"CallHistoryDB\"}),\", vous \\xEAtes dans la variante CallHistoryDB et la Solution 2 est celle qui fonctionnera. Si vous voyez \",(0,e.jsx)(n.code,{children:\"Event triggered widget refresh\"}),\" se r\\xE9p\\xE9ter sans refus, commencez par la Solution 1. Si le journal est silencieux alors que le CPU est \\xE9lev\\xE9, la boucle se situe dans du code qui ne journalise pas au niveau par d\\xE9faut ; essayez quand m\\xEAme les solutions dans l'ordre.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Surveillez le syst\\xE8me de fichiers, si vous voulez en avoir le c\\u0153ur net.\"}),\" \",(0,e.jsx)(n.code,{children:\"fs_usage\"}),\" affiche chaque op\\xE9ration de fichier tent\\xE9e par un processus, y compris celles qui \\xE9chouent :\"]}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,e.jsx)(n.code,{children:(0,e.jsx)(n.span,{className:\"line\",children:(0,e.jsx)(n.span,{children:\"sudo fs_usage -w -f filesys peopled\"})})})})}),`\n`,(0,e.jsxs)(n.p,{children:[\"Un \\xE9cran rempli de tentatives sur \",(0,e.jsx)(n.code,{children:\"CallHistoryDB\"}),\" renvoyant des erreurs, c'est la boucle, visible en temps r\\xE9el.\"]}),`\n`,(0,e.jsx)(n.h2,{id:\"solution-1--supprimer-le-widget-contacts\",children:\"Solution 1 : supprimer le widget Contacts\"}),`\n`,(0,e.jsx)(n.p,{children:\"C'est la solution qui a re\\xE7u le plus de confirmations, et c'est celle \\xE0 essayer en premier car elle est r\\xE9versible et ne n\\xE9cessite pas Terminal.\"}),`\n`,(0,e.jsx)(n.p,{children:\"Le pi\\xE8ge, c'est qu'il existe trois endroits o\\xF9 un widget peut r\\xE9sider sur un Mac sous Tahoe, et qu'il doit dispara\\xEEtre des trois.\"}),`\n`,(0,e.jsx)(n.h3,{id:\"bureau\",children:\"Bureau\"}),`\n`,(0,e.jsxs)(n.p,{children:[\"Faites un clic secondaire (Control-clic) sur le fond d'\\xE9cran et choisissez \",(0,e.jsx)(n.strong,{children:\"Modifier les widgets\"}),\". Tout widget Contacts pr\\xE9sent sur le bureau affiche un bouton de suppression (le signe moins dans le coin) en mode \\xE9dition ; cliquez dessus. Vous pouvez aussi faire un Control-clic directement sur le widget et choisir \",(0,e.jsx)(n.strong,{children:\"Supprimer le widget\"}),\". Cliquez sur \",(0,e.jsx)(n.strong,{children:\"Termin\\xE9\"}),\".\"]}),`\n`,(0,e.jsx)(n.h3,{id:\"centre-de-notifications\",children:\"Centre de notifications\"}),`\n`,(0,e.jsxs)(n.p,{children:[\"Cliquez sur la date et l'heure dans la barre des menus pour ouvrir le Centre de notifications, faites d\\xE9filer jusqu'en bas, cliquez sur \",(0,e.jsx)(n.strong,{children:\"Modifier les widgets\"}),\". Supprimez-y tout widget Contacts de la m\\xEAme mani\\xE8re \\u2014 Control-clic puis \",(0,e.jsx)(n.strong,{children:\"Supprimer le widget\"}),\", ou Option-clic sur son bouton de suppression.\"]}),`\n`,(0,e.jsx)(n.h3,{id:\"centre-de-contr\\xF4le\",children:\"Centre de contr\\xF4le\"}),`\n`,(0,e.jsxs)(n.p,{children:[\"C'est celui que l'on oublie le plus souvent, car Tahoe a d\\xE9plac\\xE9 les widgets dans le Centre de contr\\xF4le et la personnalisation ne se trouve pas dans R\\xE9glages Syst\\xE8me. Cliquez sur l'ic\\xF4ne du Centre de contr\\xF4le dans la barre des menus, choisissez \",(0,e.jsx)(n.strong,{children:\"Modifier les commandes\"}),\", et faites glisser tout \\xE9l\\xE9ment Contacts hors du Centre de contr\\xF4le. Cliquez sur \",(0,e.jsx)(n.strong,{children:\"Termin\\xE9\"}),\".\"]}),`\n`,(0,e.jsxs)(n.p,{children:[\"Ensuite, \",(0,e.jsx)(n.strong,{children:\"red\\xE9marrez\"}),\" \\u2014 pas seulement une d\\xE9connexion. Plusieurs r\\xE9solutions confirm\\xE9es sur le fil de discussion notent que le CPU n'est retomb\\xE9 qu'apr\\xE8s un red\\xE9marrage complet.\"]}),`\n`,(0,e.jsx)(n.p,{children:\"Une mise en garde suppl\\xE9mentaire venant du m\\xEAme fil, signal\\xE9e le 31 juillet : pour certains utilisateurs, la boucle est revenue apr\\xE8s avoir simplement rouvert la galerie de widgets, m\\xEAme sans y ajouter le widget Contacts. Si vous avez rencontr\\xE9 ce probl\\xE8me, consid\\xE9rez l'\\xE9diteur de widgets comme quelque chose \\xE0 \\xE9viter jusqu'\\xE0 ce qu'Apple corrige le daemon.\"}),`\n`,(0,e.jsx)(n.h2,{id:\"solution-2--effacer-lindicateur-de-quarantaine-sur-callhistorydb\",children:\"Solution 2 : effacer l'indicateur de quarantaine sur CallHistoryDB\"}),`\n`,(0,e.jsx)(n.p,{children:\"Pour les Mac sans aucun widget Contacts, ou pour lesquels sa suppression n'a rien chang\\xE9, voici la solution \\xE0 laquelle est arriv\\xE9 le signalement le plus d\\xE9taill\\xE9 techniquement du fil, le 20 mai, et qu'au moins deux autres utilisateurs ont confirm\\xE9e (\\xAB le processus peopled est maintenant \\xE0 0 % de consommation CPU \\xBB, a \\xE9crit l'un d'eux le 26 juin).\"}),`\n`,(0,e.jsx)(n.h3,{id:\"\\xE9tape-1--accorder-lacc\\xE8s-complet-au-disque-\\xE0-terminal\",children:\"\\xC9tape 1 : accorder l'Acc\\xE8s complet au disque \\xE0 Terminal\"}),`\n`,(0,e.jsxs)(n.p,{children:[\"R\\xE9glages Syst\\xE8me > Confidentialit\\xE9 et s\\xE9curit\\xE9 > Acc\\xE8s complet au disque, ajoutez Terminal, et activez-le. Sans cela, chaque commande ci-dessous \\xE9chouera avec \\xAB Operation not permitted \\xBB \\u2014 ce qui, comme il se trouve, est exactement l'erreur que rencontre \",(0,e.jsx)(n.code,{children:\"peopled\"}),\". Red\\xE9marrez Terminal apr\\xE8s avoir accord\\xE9 l'acc\\xE8s.\"]}),`\n`,(0,e.jsx)(n.h3,{id:\"\\xE9tape-2--examiner-le-dossier\",children:\"\\xC9tape 2 : examiner le dossier\"}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,e.jsx)(n.code,{children:(0,e.jsx)(n.span,{className:\"line\",children:(0,e.jsx)(n.span,{children:'ls -lan@ \"$HOME/Library/Application Support/CallHistoryDB\"'})})})})}),`\n`,(0,e.jsxs)(n.p,{children:[\"L'option \",(0,e.jsx)(n.code,{children:\"@\"}),\" affiche les attributs \\xE9tendus. Ce que vous cherchez, c'est \",(0,e.jsx)(n.code,{children:\"com.apple.quarantine\"}),\" sur le dossier ou sur les fichiers \",(0,e.jsx)(n.code,{children:\"CallHistory.storedata\"}),\" qu'il contient. La quarantaine est l'indicateur que macOS appose sur les fichiers t\\xE9l\\xE9charg\\xE9s ; il n'a rien \\xE0 faire sur une base de donn\\xE9es syst\\xE8me, et comment il y arrive n'est pas connu \\u2014 une restauration depuis une sauvegarde et une migration depuis un autre Mac sont les deux pistes plausibles.\"]}),`\n`,(0,e.jsx)(n.h3,{id:\"\\xE9tape-3--le-supprimer\",children:\"\\xC9tape 3 : le supprimer\"}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,e.jsx)(n.code,{children:(0,e.jsx)(n.span,{className:\"line\",children:(0,e.jsx)(n.span,{children:'xattr -dr com.apple.quarantine \"$HOME/Library/Application Support/CallHistoryDB\"'})})})})}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.code,{children:\"-d\"}),\" supprime l'attribut, \",(0,e.jsx)(n.code,{children:\"-r\"}),\" s'applique r\\xE9cursivement au dossier.\"]}),`\n`,(0,e.jsx)(n.h3,{id:\"\\xE9tape-4--red\\xE9marrer-les-daemons\",children:\"\\xC9tape 4 : red\\xE9marrer les daemons\"}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,e.jsx)(n.code,{children:(0,e.jsx)(n.span,{className:\"line\",children:(0,e.jsx)(n.span,{children:\"sudo killall -9 peopled CallHistorySyncHelper\"})})})})}),`\n`,(0,e.jsx)(n.p,{children:\"Les deux seront relanc\\xE9s \\xE0 la demande. Surveillez le Moniteur d'activit\\xE9 pendant quelques minutes.\"}),`\n`,(0,e.jsx)(n.h3,{id:\"si-lindicateur-revient\",children:\"Si l'indicateur revient\"}),`\n`,(0,e.jsx)(n.p,{children:\"Un utilisateur du fil a signal\\xE9 le 17 juillet que la solution avait fonctionn\\xE9 mais que l'indicateur de quarantaine \\xE9tait \\xAB r\\xE9apparu \\xBB du jour au lendemain. Si cela vous arrive, quelque chose remet le dossier en quarantaine, et les suspects sont un outil de sauvegarde ou de synchronisation qui le traite comme une nouvelle donn\\xE9e. V\\xE9rifiez ce qui s'ex\\xE9cute la nuit. Autre approche, plus radicale, adopt\\xE9e par un autre utilisateur : supprimer la base de donn\\xE9es et laisser macOS la recr\\xE9er :\"}),`\n`,(0,e.jsx)(e.Fragment,{children:(0,e.jsx)(n.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,e.jsx)(n.code,{children:(0,e.jsx)(n.span,{className:\"line\",children:(0,e.jsx)(n.span,{children:\"rm -rf ~/Library/Application\\\\ Support/CallHistoryDB\"})})})})}),`\n`,(0,e.jsx)(n.p,{children:\"Vous perdez la copie locale de votre historique d'appels sur le Mac. Elle se repeuple ensuite depuis l'iPhone via Continuity. C'est une mesure plus radicale que la suppression d'un attribut, et nous vous conseillons d'essayer d'abord l'attribut.\"}),`\n`,(0,e.jsx)(n.h2,{id:\"solution-3--basculer-contacts-icloud\",children:\"Solution 3 : basculer Contacts iCloud\"}),`\n`,(0,e.jsx)(n.p,{children:\"R\\xE9glages Syst\\xE8me > [votre nom] > iCloud > Enregistr\\xE9 sur iCloud > Contacts, d\\xE9sactivez. Attendez une minute, observez le CPU. S'il retombe, r\\xE9activez le r\\xE9glage et voyez s'il reste bas.\"}),`\n`,(0,e.jsxs)(n.p,{children:[\"Cela fonctionne pour une partie des utilisateurs et c'est le conseil habituel donn\\xE9 dans les fils plus anciens sur le m\\xEAme sujet, remontant \\xE0 plusieurs ann\\xE9es. Cela a aussi un mode d'\\xE9chec rencontr\\xE9 par un utilisateur le 11 mai : le r\\xE9glage refusait tout simplement de se d\\xE9sactiver. Si cela vous arrive, d\\xE9connectez-vous enti\\xE8rement d'iCloud (en conservant une copie des donn\\xE9es quand on vous le demande), red\\xE9marrez, reconnectez-vous. Notez que l'auteur du signalement sur V2EX avec la variante \",(0,e.jsx)(n.code,{children:\"accountsd\"}),\" a essay\\xE9 exactement cela, et le CPU est remont\\xE9 imm\\xE9diatement apr\\xE8s la reconnexion.\"]}),`\n`,(0,e.jsx)(n.p,{children:(0,e.jsx)(n.img,{alt:\"Suppression du widget Contacts et effacement de la quarantaine de CallHistoryDB sous macOS Tahoe\",src:\"/images/blog/peopled-contactsd-high-cpu-macos-tahoe-contacts-widget-callhistorydb-fix-2026/content-2.webp\",width:\"1024\",height:\"572\"})}),`\n`,(0,e.jsxs)(n.h2,{id:\"si-cest-contactsd-et-que-vous-avez-un-compte-exchange-ou-google\",children:[\"Si c'est \",(0,e.jsx)(n.code,{children:\"contactsd\"}),\" et que vous avez un compte Exchange ou Google\"]}),`\n`,(0,e.jsx)(n.p,{children:\"Celui-ci est ant\\xE9rieur \\xE0 Tahoe et son m\\xE9canisme est plus clair.\"}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.code,{children:\"contactsd\"}),\" est le daemon du framework Contacts : il poss\\xE8de la base de donn\\xE9es du carnet d'adresses et la r\\xE9concilie avec chaque compte qui synchronise des contacts. Il effectue aussi une maintenance planifi\\xE9e \\u2014 sa t\\xE2che launchd enregistre une t\\xE2che quotidienne \",(0,e.jsx)(n.code,{children:\"validate-cache\"}),\" qui ne s'ex\\xE9cute que sur alimentation secteur lorsque vous \\xEAtes inactif, ainsi qu'une activit\\xE9 r\\xE9currente \",(0,e.jsx)(n.code,{children:\"accounts.cleanup\"}),\". Un CPU bref et occasionnel de \",(0,e.jsx)(n.code,{children:\"contactsd\"}),\" est normal.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[\"Ce qui n'est pas normal, c'est un pic environ toutes les minutes. Un d\\xE9veloppeur \",(0,e.jsx)(n.a,{href:\"https://developer.apple.com/forums/thread/809986\",children:\"a document\\xE9 exactement ce cas\"}),\" sur les Apple Developer Forums en d\\xE9cembre 2025 : sur un M1 Max sous Tahoe 26.1, un compte Office 365 avec les Contacts activ\\xE9s faisait grimper \",(0,e.jsx)(n.code,{children:\"AddressBookManager\"}),\" \\xE0 81 % et \",(0,e.jsx)(n.code,{children:\"contactsd\"}),\" \\xE0 22\\u201359 % selon un motif r\\xE9p\\xE9titif toutes les 60 \\xE0 90 secondes \\u2014 m\\xEAme avec le dossier de contacts Exchange vid\\xE9 c\\xF4t\\xE9 serveur, et reproductible sur une installation propre. Le m\\xEAme compte et les m\\xEAmes donn\\xE9es ne provoquaient pas cela sur un Mac M4 ni sur iOS. Personne chez Apple n'a r\\xE9pondu.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[\"Sa solution de contournement est celle qui fonctionne : supprimer le compte Exchange depuis R\\xE9glages Syst\\xE8me > Comptes Internet, et si vous en avez besoin, utiliser Outlook, qui ne passe pas par le framework Contacts. Un signalement de f\\xE9vrier sur le forum communautaire concernant \",(0,e.jsx)(n.code,{children:\"contactsd\"}),\" sur un MacBook Pro 2024 sous 26.3 a re\\xE7u le m\\xEAme conseil \\u2014 arr\\xEAter de synchroniser les contacts depuis Exchange et Google, puis tester \\u2014 et si vous avez \\xE0 la fois iCloud et un compte Google qui synchronisent des contacts, essayez d'abord de retirer Google.\"]}),`\n`,(0,e.jsxs)(n.h2,{id:\"la-variante-accountsd\",children:[\"La variante \",(0,e.jsx)(n.code,{children:\"accountsd\"})]}),`\n`,(0,e.jsxs)(n.p,{children:[\"Les signalements les plus s\\xE9v\\xE8res \\u2014 \",(0,e.jsx)(n.code,{children:\"accountsd\"}),\" \\xE0 180 % avec \",(0,e.jsx)(n.code,{children:\"contactsd\"}),\" et \",(0,e.jsx)(n.code,{children:\"itunescloudd\"}),\" dans son sillage, sur un MacBook Air M5 sous 26.5.2, \",(0,e.jsx)(n.a,{href:\"https://www.v2ex.com/t/1226043\",children:\"d\\xE9crit sur V2EX en juillet\"}),\" \\u2014 n'ont pas de solution confirm\\xE9e. L'auteur du signalement a not\\xE9 que le probl\\xE8me d\\xE9marrait \\xE0 la m\\xEAme heure chaque matin, ce qui pointe vers une t\\xE2che planifi\\xE9e plut\\xF4t qu'un \\xE9v\\xE9nement li\\xE9 \\xE0 un widget. Se d\\xE9connecter puis se reconnecter n'a pas aid\\xE9.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[\"Ce que nous pouvons ajouter : \",(0,e.jsx)(n.code,{children:\"accountsd\"}),\" est le daemon du framework Accounts, invoqu\\xE9 chaque fois que quelque chose a besoin d'un identifiant pour un compte connect\\xE9, et \",(0,e.jsx)(n.code,{children:\"itunescloudd\"}),\" est le daemon de la biblioth\\xE8que iTunes Cloud (Apple Music / Store). Les trois \\xE0 la fois signifient que quelque chose demande de fa\\xE7on r\\xE9p\\xE9t\\xE9e des identifiants de compte et \\xE9choue. Si vous \\xEAtes dans cette variante, les solutions ci-dessus valent quand m\\xEAme la peine d'\\xEAtre essay\\xE9es dans l'ordre, et si aucune ne fonctionne, il vaut la peine de v\\xE9rifier si un compte en particulier \\u2014 une ancienne connexion Google ou Exchange, un mot de passe d'application expir\\xE9 \\u2014 \\xE9choue \\xE0 l'authentification dans R\\xE9glages Syst\\xE8me > Comptes Internet. Supprimez tout ce qui affiche un badge d'avertissement.\"]}),`\n`,(0,e.jsx)(n.h2,{id:\"pourquoi-tahoe-et-pourquoi-un-widget\",children:\"Pourquoi Tahoe, et pourquoi un widget\"}),`\n`,(0,e.jsx)(n.p,{children:\"Les widgets existent sur Mac depuis des ann\\xE9es, il est donc l\\xE9gitime de se demander pourquoi cela a commenc\\xE9 avec 26.4. Deux choses ont chang\\xE9 en m\\xEAme temps.\"}),`\n`,(0,e.jsx)(n.p,{children:\"La premi\\xE8re, c'est l'endroit o\\xF9 r\\xE9sident les widgets. Tahoe a introduit les widgets dans le Centre de contr\\xF4le, en plus du bureau et du Centre de notifications, et un widget Contacts dans le Centre de contr\\xF4le est rafra\\xEEchi selon une cadence diff\\xE9rente de celui pos\\xE9 sur le bureau \\u2014 les propres mod\\xE8les de journal du daemon distinguent une passe quotidienne de \\xAB suggestion de widgets \\xBB (\\xAB Last widget suggestion date is older 24 hours \\xBB) des rafra\\xEEchissements d\\xE9clench\\xE9s par \\xE9v\\xE9nement (\\xAB Event triggered widget refresh \\xBB). Plus de surfaces, plus de demandes de rafra\\xEEchissement, plus d'occasions pour qu'un \\xE9chec soit retent\\xE9.\"}),`\n`,(0,e.jsx)(n.p,{children:\"La seconde, c'est que la gestion des erreurs du daemon semble retenter plut\\xF4t que temporiser. C'est une inf\\xE9rence que nous tirons du comportement observ\\xE9, pas quelque chose que l'on peut lire dans le binaire, et c'est le v\\xE9ritable bug : une lecture refus\\xE9e devrait \\xEAtre journalis\\xE9e une fois et le rafra\\xEEchissement abandonn\\xE9 jusqu'au prochain \\xE9v\\xE9nement r\\xE9el. Au lieu de cela, une nouvelle tentative est faite, et les \\xE9v\\xE9nements continuent d'arriver.\"}),`\n`,(0,e.jsx)(n.p,{children:\"Aucun de ces deux points n'est quelque chose que vous pouvez modifier. Ce que vous pouvez changer, c'est si le widget existe et si la lecture est refus\\xE9e, ce qui est pr\\xE9cis\\xE9ment l'objet des trois solutions.\"}),`\n`,(0,e.jsx)(n.h2,{id:\"une-fois-le-probl\\xE8me-r\\xE9gl\\xE9\",children:\"Une fois le probl\\xE8me r\\xE9gl\\xE9\"}),`\n`,(0,e.jsx)(n.p,{children:\"Quelques pr\\xE9cautions permettent de conserver le r\\xE9sultat.\"}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Laissez l'Acc\\xE8s complet au disque de Terminal en place\"}),\" si vous avez utilis\\xE9 la Solution 2, ou r\\xE9voquez-le d\\xE9lib\\xE9r\\xE9ment \\u2014 les deux sont acceptables, mais sachez ce que vous avez choisi, car l'Acc\\xE8s complet au disque pour Terminal est une autorisation tr\\xE8s large.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"\\xC9vitez la galerie de widgets\"}),\" pendant un certain temps. Le signalement du 31 juillet sur le fil est pr\\xE9cis : c'est le simple fait de l'ouvrir \\u2014 sans rien ajouter \\u2014 qui a relanc\\xE9 la boucle. Si vous voulez ajouter d'autres widgets, faites-le, puis v\\xE9rifiez ensuite le Moniteur d'activit\\xE9.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Apr\\xE8s la prochaine mise \\xE0 jour de macOS, rev\\xE9rifiez.\"}),\" Les mises \\xE0 jour mineures ont r\\xE9ajout\\xE9 des \\xE9l\\xE9ments par d\\xE9faut du Centre de contr\\xF4le pour certains utilisateurs, et le retour discret d'un widget Contacts est la raison la plus probable d'une r\\xE9apparition du probl\\xE8me.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Envoyez le signalement.\"}),\" Feedback Assistant, cat\\xE9gorie macOS, joignez un sysdiagnose pris pendant que le CPU est \\xE9lev\\xE9 (\",(0,e.jsx)(n.code,{children:\"sudo sysdiagnose\"}),\" depuis Terminal, ou Maj-Control-Option-Commande-Point), et collez la ligne de refus du sandbox. Cinq mois de fils de discussion n'ont rien fait bouger ; quelques centaines de signalements Feedback avec la m\\xEAme ligne de journal pourraient y parvenir.\"]}),`\n`,(0,e.jsx)(n.h2,{id:\"est-ce-corrig\\xE9-\\xE0-ce-jour-\",children:\"Est-ce corrig\\xE9, \\xE0 ce jour ?\"}),`\n`,(0,e.jsxs)(n.p,{children:[\"Non, autant qu'on puisse en juger. Nous avons v\\xE9rifi\\xE9 les \",(0,e.jsx)(n.a,{href:\"https://support.apple.com/en-us/122868\",children:\"notes de mise \\xE0 jour d'Apple pour Tahoe\"}),\" : 26.4.1 \\xAB apporte des corrections de bugs \\xBB, 26.5 \\xAB inclut des am\\xE9liorations, des corrections de bugs et des mises \\xE0 jour de s\\xE9curit\\xE9 \\xBB, 26.6 optimise l'index Spotlight, et 26.6.1 ainsi que 26.6.2 sont des versions de s\\xE9curit\\xE9. Aucune ne mentionne les Contacts, les widgets ou le CPU. Sur le fil communautaire, les signalements se poursuivent sur 26.5 (\\xAB Le probl\\xE8me existe toujours sur Tahoe 26.5. Apple doit corriger cela au plus vite \\xBB, le 15 mai) et jusqu'en juillet. Nous n'avons vu aucun signalement, dans un sens ou dans l'autre, pour la 26.6.2, sortie le 17 ao\\xFBt.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[\"Si vous \\xEAtes sur la b\\xEAta de macOS 27 et que vous avez, ou non, constat\\xE9 ce probl\\xE8me, notre \",(0,e.jsx)(n.a,{href:\"/blog/should-you-install-macos-27-golden-gate-developer-beta-known-issues-2026\",children:\"r\\xE9capitulatif des probl\\xE8mes connus de la b\\xEAta\"}),\" est l'endroit o\\xF9 nous en assurons le suivi.\"]}),`\n`,(0,e.jsx)(n.h2,{id:\"ce-qui-ne-sert-\\xE0-rien-dessayer\",children:\"Ce qui ne sert \\xE0 rien d'essayer\"}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"R\\xE9initialiser la NVRAM ou le SMC.\"}),\" Ni l'un ni l'autre n'a de lien avec les permissions de fichiers d'un daemon en espace utilisateur. \\xC0 ignorer.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsxs)(n.strong,{children:[(0,e.jsx)(n.code,{children:\"tccutil reset All\"}),\".\"]}),\" Un utilisateur l'a essay\\xE9 ; cela n'a rien chang\\xE9, et cela retire toutes les autorisations de confidentialit\\xE9 de toutes les applications du Mac, qu'il faut ensuite passer un apr\\xE8s-midi \\xE0 raccorder. Rien n'indique que TCC soit la couche fautive \\u2014 le refus dans les journaux vient du sandbox, pas de TCC.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.strong,{children:\"Le mode sans \\xE9chec.\"}),\" D\\xE9marrer en mode sans \\xE9chec puis revenir en mode normal vide certains caches et a apport\\xE9 un soulagement temporaire \\xE0 quelques utilisateurs. C'est un red\\xE9marrage avec des \\xE9tapes suppl\\xE9mentaires, qui ne traite pas la cause.\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsxs)(n.strong,{children:[\"D\\xE9sactiver \",(0,e.jsx)(n.code,{children:\"peopled\"}),\" avec \",(0,e.jsx)(n.code,{children:\"launchctl\"}),\".\"]}),\" Vous pouvez faire un \",(0,e.jsx)(n.code,{children:\"launchctl disable\"}),\" sur l'agent, et il cessera de consommer du CPU puisqu'il cessera de s'ex\\xE9cuter. Cela arr\\xEAtera aussi le widget Contacts, les suggestions de personnes, la m\\xE9canique \\xAB ask to buy \\xBB de Temps d'\\xE9cran et tout ce qui en d\\xE9pend, et sur un Mac prot\\xE9g\\xE9 par l'int\\xE9grit\\xE9 du syst\\xE8me, le changement pourrait ne pas survivre \\xE0 une mise \\xE0 jour. Non recommand\\xE9, sauf comme diagnostic de dernier recours.\"]}),`\n`,(0,e.jsx)(n.h2,{id:\"d\\xE9pannage-des-probl\\xE8mes-courants\",children:\"D\\xE9pannage des probl\\xE8mes courants\"}),`\n`,(0,e.jsxs)(n.h3,{id:\"le-moniteur-dactivit\\xE9-affiche-vingt-copies-de-contactsd\",children:[\"Le Moniteur d'activit\\xE9 affiche vingt copies de \",(0,e.jsx)(n.code,{children:\"contactsd\"})]}),`\n`,(0,e.jsxs)(n.p,{children:[\"Nous avons constat\\xE9 cela nous-m\\xEAmes en \\xE9crivant cet article : une salve de vingt processus \",(0,e.jsx)(n.code,{children:\"contactsd\"}),\" avec des PID cons\\xE9cutifs, tous enfants de launchd, tous \\xE0 0 % de CPU, disparus en moins d'une minute. C'est launchd qui cr\\xE9e des instances par client \\xE0 la demande, et ce n'est pas le bug. Le bug, c'est un seul processus \\xE0 CPU \\xE9lev\\xE9 qui persiste.\"]}),`\n`,(0,e.jsxs)(n.h3,{id:\"le-widget-contacts-a-disparu-mais-peopled-reste-\\xE0-80-\",children:[\"Le widget Contacts a disparu mais \",(0,e.jsx)(n.code,{children:\"peopled\"}),\" reste \\xE0 80 %\"]}),`\n`,(0,e.jsx)(n.p,{children:\"V\\xE9rifiez les trois emplacements \\u2014 bureau, Centre de notifications, Centre de contr\\xF4le \\u2014 puis passez \\xE0 la Solution 2. Si vous n'avez jamais eu de widget Contacts, passez directement \\xE0 la Solution 2.\"}),`\n`,(0,e.jsxs)(n.h3,{id:\"xattr-indique--no-such-xattr-comapplequarantine-\",children:[(0,e.jsx)(n.code,{children:\"xattr\"}),\" indique \\xAB No such xattr: com.apple.quarantine \\xBB\"]}),`\n`,(0,e.jsx)(n.p,{children:\"Le dossier n'est pas en quarantaine, ce n'est donc pas votre d\\xE9clencheur. Essayez la Solution 3, et v\\xE9rifiez si vous avez un compte Exchange ou Google qui synchronise des contacts.\"}),`\n`,(0,e.jsxs)(n.h3,{id:\"ls-sur-callhistorydb-indique--operation-not-permitted--m\\xEAme-avec-sudo\",children:[(0,e.jsx)(n.code,{children:\"ls\"}),\" sur CallHistoryDB indique \\xAB Operation not permitted \\xBB m\\xEAme avec sudo\"]}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.code,{children:\"sudo\"}),\" ne contourne pas TCC. Terminal lui-m\\xEAme a besoin de l'Acc\\xE8s complet au disque, accord\\xE9 dans R\\xE9glages Syst\\xE8me, puis doit \\xEAtre relanc\\xE9.\"]}),`\n`,(0,e.jsx)(n.h3,{id:\"le-probl\\xE8me-est-revenu-apr\\xE8s-une-mise-\\xE0-jour-de-macos\",children:\"Le probl\\xE8me est revenu apr\\xE8s une mise \\xE0 jour de macOS\"}),`\n`,(0,e.jsx)(n.p,{children:\"Les mises \\xE0 jour peuvent r\\xE9ajouter le widget \\xE0 la disposition par d\\xE9faut du Centre de contr\\xF4le. Rev\\xE9rifiez les trois emplacements.\"}),`\n`,(0,e.jsx)(n.h2,{id:\"faq\",children:\"FAQ\"}),`\n`,(0,e.jsxs)(n.h3,{id:\"peopled-est-il-un-malware-\",children:[(0,e.jsx)(n.code,{children:\"peopled\"}),\" est-il un malware ?\"]}),`\n`,(0,e.jsxs)(n.p,{children:[\"Non. C'est un daemon Apple sign\\xE9, situ\\xE9 dans \",(0,e.jsx)(n.code,{children:\"/System/Library/PrivateFrameworks/People.framework/peopled\"}),\" sur le volume syst\\xE8me scell\\xE9. Un processus portant ce nom mais s'ex\\xE9cutant depuis un autre emplacement m\\xE9riterait d'\\xEAtre examin\\xE9 ; celui-ci appartient bien \\xE0 Apple.\"]}),`\n`,(0,e.jsx)(n.h3,{id:\"puis-je-simplement-le-tuer-\",children:\"Puis-je simplement le tuer ?\"}),`\n`,(0,e.jsxs)(n.p,{children:[(0,e.jsx)(n.code,{children:\"sudo killall peopled\"}),\" l'arr\\xEAte jusqu'\\xE0 ce que le prochain \\xE9v\\xE9nement le r\\xE9veille, ce qui sur un Mac actif se compte en secondes. C'est utile comme diagnostic \\u2014 si le CPU reste bas apr\\xE8s l'arr\\xEAt forc\\xE9, c'est que le d\\xE9clencheur a disparu \\u2014 mais pas comme solution.\"]}),`\n`,(0,e.jsx)(n.h3,{id:\"supprimer-le-widget-fait-il-perdre-quelque-chose-\",children:\"Supprimer le widget fait-il perdre quelque chose ?\"}),`\n`,(0,e.jsxs)(n.p,{children:[\"Seulement le widget. Les Contacts, l'historique d'appels et les suggestions dans Spotlight et Messages continuent tous de fonctionner ; \",(0,e.jsx)(n.code,{children:\"peopled\"}),\" continue de s'ex\\xE9cuter en cas de besoin. Il cesse simplement de recevoir l'ordre de rafra\\xEEchir quelque chose qu'il ne peut pas rafra\\xEEchir.\"]}),`\n`,(0,e.jsx)(n.h3,{id:\"pourquoi-le-dossier-callhistorydb-n\\xE9cessite-t-il-lacc\\xE8s-complet-au-disque-pour-\\xEAtre-lu-\",children:\"Pourquoi le dossier CallHistoryDB n\\xE9cessite-t-il l'Acc\\xE8s complet au disque pour \\xEAtre lu ?\"}),`\n`,(0,e.jsx)(n.p,{children:\"Il contient votre journal d'appels, que macOS traite comme une donn\\xE9e personnelle sensible et prot\\xE8ge avec TCC, au m\\xEAme titre que Messages et Mail. Cette protection explique pourquoi Terminal a besoin de l'autorisation, et c'est aussi pourquoi un indicateur de quarantaine inattendu y est si perturbateur : le daemon dispose d'un seul chemin \\xE9troit et confin\\xE9 (sandbox\\xE9) vers les donn\\xE9es, et tout ce qui bloque ce chemin le bloque enti\\xE8rement.\"}),`\n`,(0,e.jsx)(n.h3,{id:\"macos-27-corrigera-t-il-ce-probl\\xE8me-\",children:\"macOS 27 corrigera-t-il ce probl\\xE8me ?\"}),`\n`,(0,e.jsx)(n.p,{children:\"Inconnu. Apple n'a pas reconnu le probl\\xE8me, et les notes de version de la b\\xEAta n'en disent rien. Si le m\\xE9canisme correspond \\xE0 ce que sugg\\xE8rent les preuves, le correctif est mineur \\u2014 \\xE9chouer une fois et arr\\xEAter de r\\xE9essayer \\u2014 et il pourrait arriver dans n'importe quelle mise \\xE0 jour mineure sans \\xEAtre mentionn\\xE9.\"}),`\n`,(0,e.jsx)(n.h2,{id:\"conclusion\",children:\"Conclusion\"}),`\n`,(0,e.jsx)(n.p,{children:\"Un Mac qui chauffe sans rien faire a presque toujours un processus bloqu\\xE9 en boucle, et cette boucle a presque toujours une cause banale. Ici, il s'agit d'un daemon dont le travail est de garder un widget \\xE0 jour, r\\xE9veill\\xE9 par chaque appel et chaque message, et qui ne peut pas lire l'unique base de donn\\xE9es dont il a besoin. Supprimez le widget et les demandes cessent ; corrigez les permissions du dossier et les lectures r\\xE9ussissent. L'une ou l'autre solution brise la boucle.\"}),`\n`,(0,e.jsxs)(n.p,{children:[\"Si vous trouvez \",(0,e.jsx)(n.code,{children:\"peopled\"}),\" en t\\xEAte du Moniteur d'activit\\xE9, parcourez les trois solutions dans l'ordre en red\\xE9marrant entre chacune. S'il s'agit de \",(0,e.jsx)(n.code,{children:\"contactsd\"}),\" avec un compte Exchange ou Google, supprimez le compte. Et si les trois processus sont concern\\xE9s avec \",(0,e.jsx)(n.code,{children:\"accountsd\"}),\" en t\\xEAte, essayez tout ce qui pr\\xE9c\\xE8de, supprimez tout compte affichant un avertissement, et \\u2014 puisqu'Apple garde le silence sur ce sujet depuis cinq mois \\u2014 envoyez le signalement Feedback, avec la ligne de journal du sandbox, qui pourrait enfin permettre de le corriger.\"]}),`\n`,(0,e.jsx)(n.p,{children:(0,e.jsxs)(n.em,{children:[\"Lecture compl\\xE9mentaire : \",(0,e.jsx)(n.a,{href:\"/blog/mac-hot-battery-drain-after-macos-26-6-spotlight-siri-index-rebuild-fix-2026\",children:\"Mac chaud et batterie qui se vide apr\\xE8s macOS 26.6\"}),\", \",(0,e.jsx)(n.a,{href:\"/blog/windowserver-high-cpu-macos-tahoe-26-5-liquid-glass-multi-display-fix-2026\",children:\"CPU de WindowServer sur 26.5 avec Liquid Glass\"}),\", \",(0,e.jsx)(n.a,{href:\"/blog/contacts-app-not-working-macos-tahoe-ghost-numbers-crashes-wont-save-fix-2026\",children:\"l'application Contacts qui ne fonctionne pas sous Tahoe\"}),\", \",(0,e.jsx)(n.a,{href:\"/blog/mac-activity-monitor-complete-guide-2025\",children:\"le Moniteur d'activit\\xE9 de A \\xE0 Z\"}),\", et \",(0,e.jsx)(n.a,{href:\"/blog/macos-tahoe-widgets-customization-complete-guide-2025\",children:\"personnaliser les widgets sous Tahoe\"}),\".\"]})})]})}function u(i={}){let{wrapper:n}=i.components||{};return n?(0,e.jsx)(n,{...i,children:(0,e.jsx)(d,{...i})}):d(i)}return C(k);})();\n;return Component;","toc":[{"title":"Points clés","url":"#points-clés","depth":2},{"title":"Quel processus, exactement","url":"#quel-processus-exactement","depth":2},{"title":"Ce que peopled fait réellement","url":"#ce-que-peopled-fait-réellement","depth":2},{"title":"Pourquoi il boucle","url":"#pourquoi-il-boucle","depth":2},{"title":"Confirmez avant de toucher à quoi que ce soit","url":"#confirmez-avant-de-toucher-à-quoi-que-ce-soit","depth":2},{"title":"Solution 1 : supprimer le widget Contacts","url":"#solution-1--supprimer-le-widget-contacts","depth":2},{"title":"Bureau","url":"#bureau","depth":3},{"title":"Centre de notifications","url":"#centre-de-notifications","depth":3},{"title":"Centre de contrôle","url":"#centre-de-contrôle","depth":3},{"title":"Solution 2 : effacer l'indicateur de quarantaine sur CallHistoryDB","url":"#solution-2--effacer-lindicateur-de-quarantaine-sur-callhistorydb","depth":2},{"title":"Étape 1 : accorder l'Accès complet au disque à Terminal","url":"#étape-1--accorder-laccès-complet-au-disque-à-terminal","depth":3},{"title":"Étape 2 : examiner le dossier","url":"#étape-2--examiner-le-dossier","depth":3},{"title":"Étape 3 : le supprimer","url":"#étape-3--le-supprimer","depth":3},{"title":"Étape 4 : redémarrer les daemons","url":"#étape-4--redémarrer-les-daemons","depth":3},{"title":"Si l'indicateur revient","url":"#si-lindicateur-revient","depth":3},{"title":"Solution 3 : basculer Contacts iCloud","url":"#solution-3--basculer-contacts-icloud","depth":2},{"title":"Si c'est contactsd et que vous avez un compte Exchange ou Google","url":"#si-cest-contactsd-et-que-vous-avez-un-compte-exchange-ou-google","depth":2},{"title":"La variante accountsd","url":"#la-variante-accountsd","depth":2},{"title":"Pourquoi Tahoe, et pourquoi un widget","url":"#pourquoi-tahoe-et-pourquoi-un-widget","depth":2},{"title":"Une fois le problème réglé","url":"#une-fois-le-problème-réglé","depth":2},{"title":"Est-ce corrigé, à ce jour ?","url":"#est-ce-corrigé-à-ce-jour-","depth":2},{"title":"Ce qui ne sert à rien d'essayer","url":"#ce-qui-ne-sert-à-rien-dessayer","depth":2},{"title":"Dépannage des problèmes courants","url":"#dépannage-des-problèmes-courants","depth":2},{"title":"Le Moniteur d'activité affiche vingt copies de contactsd","url":"#le-moniteur-dactivité-affiche-vingt-copies-de-contactsd","depth":3},{"title":"Le widget Contacts a disparu mais peopled reste à 80 %","url":"#le-widget-contacts-a-disparu-mais-peopled-reste-à-80-","depth":3},{"title":"xattr indique « No such xattr: com.apple.quarantine »","url":"#xattr-indique--no-such-xattr-comapplequarantine-","depth":3},{"title":"ls sur CallHistoryDB indique « Operation not permitted » même avec sudo","url":"#ls-sur-callhistorydb-indique--operation-not-permitted--même-avec-sudo","depth":3},{"title":"Le problème est revenu après une mise à jour de macOS","url":"#le-problème-est-revenu-après-une-mise-à-jour-de-macos","depth":3},{"title":"FAQ","url":"#faq","depth":2},{"title":"peopled est-il un malware ?","url":"#peopled-est-il-un-malware-","depth":3},{"title":"Puis-je simplement le tuer ?","url":"#puis-je-simplement-le-tuer-","depth":3},{"title":"Supprimer le widget fait-il perdre quelque chose ?","url":"#supprimer-le-widget-fait-il-perdre-quelque-chose-","depth":3},{"title":"Pourquoi le dossier CallHistoryDB nécessite-t-il l'Accès complet au disque pour être lu ?","url":"#pourquoi-le-dossier-callhistorydb-nécessite-t-il-laccès-complet-au-disque-pour-être-lu-","depth":3},{"title":"macOS 27 corrigera-t-il ce problème ?","url":"#macos-27-corrigera-t-il-ce-problème-","depth":3},{"title":"Conclusion","url":"#conclusion","depth":2}],"estimatedTime":23}