GeoLeaf Core API - v3.0.0
    Preparing search index...

    Detail payload for geoleaf:cache:evicted — a cache made room for itself.

    🛑 IL Y A DEUX PRODUCTEURS, ET C'EST DÉLIBÉRÉ. Le patron que B-155 recommande — un point d'émission unique gardé par un test, précédent editor-events.ts — n'est pas atteignable ici : les deux magasins évincent depuis des contextes différents, et aucun code ne peut être partagé entre eux.

    Producteur Magasin Ce qui déclenche
    capabilities/offline/cache/cache-manager.ts (_enforceCacheQuota) IndexedDB fin de téléchargement de profil, budget maxCacheBytes dépassé
    kernel/storage/sw-core.js → kernel/storage/sw-register.ts Cache API pression du quota d'origine, ou refus d'écriture pour quota

    Le second passe par un postMessage : un Service Worker n'a pas de document, et il est copié tel quel dans les variantes de déploiement — il ne peut importer ni ce contrat ni le bus. sw-register.ts est le seul endroit qui rétablit le signal sur document.

    ⚠️ freedBytes est absent côté Cache API, et ce n'est pas un oubli : la Cache API n'expose la taille d'aucune entrée. offline-ui omet déjà la taille quand elle manque — fabriquer un nombre serait pire que se taire.

    interface GeoLeafCacheEvictedDetail {
        evicted: number;
        freedBytes?: number;
        totalBefore?: number;
        totalAfter?: number;
        store?: "indexeddb" | "cache-api";
        reason?: "pressure" | "quota";
    }
    Index

    Properties

    evicted: number

    Nombre d'enregistrements RÉELLEMENT retirés.

    freedBytes?: number

    Octets récupérés — connu du seul côté IndexedDB.

    totalBefore?: number

    Taille du magasin avant éviction (octets côté IndexedDB, entrées côté Cache API).

    totalAfter?: number

    Taille du magasin après éviction, même unité que totalBefore.

    store?: "indexeddb" | "cache-api"

    Quel magasin a évincé. Absent = IndexedDB, la forme historique.

    reason?: "pressure" | "quota"

    Pourquoi. pressure = le quota d'ORIGINE est proche de la saturation ; quota = une écriture a été refusée. Le trim de routine du worker n'émet pas — il tourne à chaque panoramique, et un toast par déplacement de carte apprend à ne plus les lire.