perf(capture): reject bounded writes before loading embeddings - #492
Draft
cdeust wants to merge 1 commit into
Draft
perf(capture): reject bounded writes before loading embeddings#492cdeust wants to merge 1 commit into
cdeust wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Symptôme
W3-1a / F1 : une capture répétée chargeait le modèle d’embedding avant de déterminer qu’elle ne pouvait pas franchir la porte d’écriture.
Cause racine
Le calcul sémantique coûteux précédait un rejet déjà prouvable à partir des signaux légers. Le seuil et les observations doivent rester ceux de l’évaluation complète.
Changement
Calculer une borne supérieure de nouveauté avec les signaux habituation/surprise/structure et le maximum sémantique. Rejeter seulement lorsque cette borne est strictement sous le seuil existant ; sinon poursuivre le chemin complet avec la même observation, calculée une fois. Les contenus admis, inconnus et cas limites gardent leur évaluation complète.
Preuve
Avant
6ec76a0e0f9851893c39396a5f59ddaa329abfd5, après7a3575ea875fc0983cf8e04557dbfd67fb8b72b4. macOS ARM64, Python3.13.7, MiniLM en cache durable hors ligne, SQLite jetable ; quatre répétitions, première écartée.Le témoin habitué contient vingt présentations préparées : aucun chargement de modèle, aucun encode et aucune mutation du store après rejet. La capture admise conserve les1536octets de chaque vecteur et toutes les colonnes hors created_at/heat_base_set_at/last_accessed. Aucun gain n’est revendiqué sur la capture admise, ni sur l’énergie physique.
Commande du harnais exécuté, paramètres enregistrés dans son report.json :
Chaque commande enfant
/usr/bin/time -l … scripts/launcher.py mcp_server.hooks.post_tool_capture, ses entrées, sorties et paramètres d’environnement sont enregistrés dans/private/tmp/cortex-green-w3-1a-capture-final-v2/report.json. La preuve de relecture des lignes est/private/tmp/cortex-green-w3-final-capture-proof.json. Charge propre à cette phase :3,515→3,836 pour10cœurs. Fenêtre shell de la série :uptime03:00, charge3,15/3,16/3,53 →03:19,3,72/3,63/3,52 ;df -h /38Gi disponibles avant/après. Cette fenêtre englobe les trois phases et les courts contrôles suivants.Gates locaux ordonnés sur le SHA publié :
Résultat : verrou uv, Ruff/format, craftsmanship et Pyright verts ; couches5246passés/67ignorés/67sous-tests ; suite complète7715passés/221ignorés/415sous-tests en273,40s. Log
/private/tmp/cortex-green-w3-1a-final-ordered-gates.log.uptime07:41, charge4,97/6,47/6,64 sur10cœurs ;df -h /39Gi avant/après. PostgreSQL est volontairement inaccessible dans cette suite locale ; ses tests ignorés ne constituent pas une validation PG.La gate globale
benchmarks/reproduce.shreste ouverte. La référence6ec76a0e échoue déjà au floor MRR LongMemEval (0,904988 ; rappel0,978) et aux deux floors LoCoMo sur trois runs complets (moyennes0,779868/0,889506). Cette PR reste en brouillon tant que la qualité complète W3 n’est pas validée ; aucune dérogation aux floors n’est demandée.État CI du 2026-09-07 : tous les contrôles de
7a3575ea875fc0983cf8e04557dbfd67fb8b72b4sont réussis ou attendus ignorés. La première reproduction complète de la pile W3 sur 0b978d7 a terminé avec échec des floors existants ; les trois passes LoCoMo sont terminées, sans recul des moyennes MRR/R10 par rapport à la référence. La CI verte ne clôt pas cette gate.Reproduction complète commune à la pile W3 — trois passes LoCoMo terminées
Le vrai pilote
reproduce.sha terminé sur 0b978d7, après tous les contrôles W3 verts. Référence : 6ec76a0. Le tableau compare les premières passes complètes, valeurs arrondies ; il ne remplace pas la moyenne LoCoMo sur trois passes.Sortie du pilote : 1. Le floor MRR LongMemEval et les deux floors LoCoMo échouent ; ils échouaient déjà sur main. Aucun seuil n'est abaissé. Les deux répétitions LoCoMo prescrites par
reproduce.sh:338–350sont terminées sur la même tête. Moyenne MRR avant → après : 0,779867618 → 0,781210992 ; Recall@10 : 0,889505550 → 0,889505550. Aucun recul n'est observé sur ces deux moyennes LoCoMo ; cela ne démontre pas une amélioration statistique ni une garantie générale. Les seuils effectifs MRR 0,800 / Recall@10 0,910 restent manqués. BEAM n'a pas de seuil dans le pilote : ses minima ont été demandés au propriétaire, aucune réussite BEAM n'est inventée.Commande effective du pilote, dans chaque arbre figé et l'environnement fermé consigné par le lanceur :
Ce fichier temporaire est le pilote original avec une insertion de transport UNIX vers son propre conteneur ; protocoles, données, modèles et floors ne sont pas réécrits. Commande exacte de lancement W3 :
Python 3.12.11/macOS ARM64, Torch 2.13.0, sentence-transformers 5.6.1 et psycopg 3.3.5 ; mêmes versions et poids de modèles vérifiés dans les manifestes. MiniLM révision 1110a243, reranker L-12 actif. Sur 10 cœurs, charge 1 min référence 2,369→5,647 et W3 2,854→5,404. Espace libre enregistré dans les manifestes : référence 50 543 837 184 → 49 479 544 832 octets, W3 40 884 998 144 → 40 118 521 856 octets ;
uptimeinitial etdf -h /avant/après dans les logs. Un seul travail lourd local. Aucun gain d'énergie ou de latence globale n'est revendiqué.Preuves complètes : référence
/private/tmp/cortex-green-final-main/benchmarks/results/repro/20260907T015046Z/, W3benchmarks/results/repro/20260907T071015Z/, comparaison/private/tmp/cortex-green-final-w3-quality-comparison.json. Les trois résultats, MANIFEST et preuve de transport sont présents. Le conteneur 92770dee et son ancien socket ont été vérifiés absents après nettoyage :/private/tmp/cortex-green-final-w3-r1-cleanup-proof.json. Les deux répétitions supplémentaires sont terminées, avec nettoyage vérifié. La gate globale reste ouverte et cette PR reste en brouillon.Répétitions LoCoMo W3 — 1 982 questions chacune
20260907T071015Z20260907T082518Z20260907T085915ZLes passes 2 et 3 utilisent la même commande de lancement, avec les labels
final-w3-worker-fixed-r2etfinal-w3-worker-fixed-r3et l'option--only locomo. Chaque passe crée puis supprime ses propres ressources. Les trois conteneurs et anciens dossiers de sockets sont vérifiés absents dans/private/tmp/cortex-green-final-w3-r1-cleanup-proof.json,-r2-cleanup-proof.jsonet-r3-cleanup-proof.json. Valeurs intégrales et moyenne :/private/tmp/cortex-green-final-w3-locomo-three-runs.json.Conformité
Candidats issues
La référence complète ne satisfait plus les floors publiés. L’enquête compare les conditions de corpus/provenance avant toute correction ; ces seuils ne sont pas abaissés dans cette PR. Le coût du modèle froid pour une capture admise demeure et relève de W3-1c.
Runbook
Aucune migration ni purge. Conserver le mode de capture actuel ; cette PR n’ajoute pas d’option d’exploitation.