swayfx-mosaic/docs/design/STEP20C_MINIMAL_PRIVATE_INTEGRATION_CORE.md

3.7 KiB
Raw Permalink Blame History

STEP20C — noyau privé minimal source-only

EXPERIMENTAL — édition du 2026-10-14. Ticket SWAYFX_MOSAIC_STEP20C_SAVED_LIFETIME_INPUT_EPOCH_AND_GPU_CAUSALITY_BATCH_V1. Revue finale indépendante du dossier complet : ACCEPTED / audit PASS pour la fidélité expérimentale ; publication PREPARED à cette édition, reçu final hors Git après push. STEP20A DONE ; STEP20B EXPERIMENTAL ; STEP20C NEXT ; STEP20D–G PLANNED ; production multi-output NOT YET SUPPORTED. Aucun contrat UX, package ou production adopté.

LAB désigne /home/fy59/swayfx-mosaic-saved-input-gpu-pz4z428f, laboratoire privé hors Git. Les chemins LAB sont des références locales, pas un kit distribué. Le dossier V2 fixe la provenance commune et les limites. Les rapports historiques restent immuables.

Provenance et portée

Candidat privé SOURCE_ONLY, hors dépôt et sans build/runtime. Parents : Mosaic cd550382b311efdbfe3ed892f4e1d281d852e754, SceneFX 37ccd723bef49e6891156ffafce8f549f01446cc. Huit patches historiques fonctionnels plus deux patches de commentaires sont reconstruits ; il ne s’agit pas de dix patches fonctionnels. Le noyau inclut clip natif/input, owner-derived root/nested popup, hidden-owner guard, retirement/standard layout et lifetime fonctionnelle. Aucune instrumentation PI/C3/OPT ni nouveau compteur de génération n’est ajoutée. Quatre statements de log intrinsèques restent ; leur neutralité n’est pas prouvée.

Corrections privées et revue bornée

Deux cycles resolver/revue ont corrigé les blockers : échec allocation→abort préservant ABI void ; translation arithmétique large ; suppression des clips sur tous les ancêtres fullscreen courants. Le second delta rejette l’intersection popup disjointe avant soustraction large, évitant l’overflow montré par le helper box historique sur INT_MIN face à800. Aucun wlroots système n’est modifié. Les helpers caméra préexistants convertissent scroll vers int64 avant casts concernés ; cela ne qualifie pas un pipeline NaN/Inf complet.

LAB/reviews/core-final-source-and-runtime-review.json est ACCEPTED pour les sources exactes et les cinq runs antérieurs réellement exécutés, sans les imputer au noyau : 417 fichiers Mosaic/85 SceneFX, 30 hashes source, 309 bindings et trois forward-apply checks PASS. Les tests numériques/source et rejets hors ligne ne remplacent pas un test C effectif. Build, runtime, UBSan et injection OOM C du core : NOT RUN ; zéro build core.

Artefact privé SHA256
Dossier final 794ef350bd82f6c8b633f8c17f3aeae47a2b5b9f3ba137d8d4306c85150fca92
Mosaic transaction e5066df7808a1633c635582c052ba89931c2856a54f6b471ff1009a4b455ef6c
Scene source 99992429f9a1d2754042989d89904fb6d705f963d74f4456d737fc9da3e0927d
Patch Mosaic final af680be7322a9257769cadc137c487b7f9f880a0b0d66df7701ae26b8baf1fe6
Patch SceneFX final 750337f75f9dc5ca655d3cd10f49bdd04169cca4dc53459d7f0d9eb8ad4db25a

Meson core ne contient pas static:true : sélection d’archive privée reste une étape future, pas un lien réalisé. SOURCE_REVIEW=ACCEPTED ne signifie pas BUILDABLE ou runtime FEASIBLE. Aucun patch core/C/client/GPU ni fork complet n’est publié avec la fixture Python commune.

Gates futures

Avant tout nouveau SHA : autorisation distincte du build privé, choix effectif archive, compilation C/UBSan/OOM, modèle/ELF/ABI/stage, contrôle pristine et matrice headless pertinente, requalification clipping/input/fullscreen/standard return/timeout/damage/lifetime. Les résultats A/G/C3/GPU ne se transfèrent pas au core. Contrats canoniques avant éventuelle production ; aucune intégration ni STEP20D autorisée ici.