feature/macro-capitules #24

Merged
Nora merged 36 commits from feature/macro-capitules into develop 2026-11-03 09:30:29 +00:00
Owner
No description provided.
Nora added 36 commits 2026-11-03 09:23:08 +00:00
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
RED : test/macro/species-registry.test.js en échec (macro/species/registry.js absent).
Bornes et défauts du tournesol sortis dans macro/species/tournesol.js (cycle d'import), réexportés par bounds.js.
Attendus de bounds.test.js et shot-macro.test.js : ajout de species, intention inchangée.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
RED : test/macro/species-gerbera.test.js en échec (macro/species/gerbera.js absent, pas d'espèce gerbera).
Palettes gerbera-* recopiées de RAYS et HEARTS.noir, LIGHT de la maquette (e2b1f1e2).
palettes.test.js : liste du registre portée à dix noms, chaque palette validée avec son espèce.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
RED : test/macro/gerbera-scene.test.js en échec (macro/species/gerbera-scene.js absent).
Instantané de la scène du tournesol pris au commit O603, revérifié.
ENV_BW du gerbera 0,0075 (décision d'atomisation, ENV_NB 560, rayon 4,2 ; maquette : 800 x 0,005).
Constantes communes sorties dans macro/species/scene-consts.js (cycle d'import), réexportées par scene.js.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
RED : test gerbera en échec (distance origine-cible 4,5 contre 10) ; test du tournesol vert d'emblée (non-régression, formule d'avant recalculée).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
RED : « chaque champ relu à son offset égale l op » en échec (ligShape, ligTeeth, floCrestQ, floCrestK, envBw absents du layout).
62 champs d'avant aux mêmes offsets (instantané pris au commit O605) ; cinq f32 à 576..592, tampon 576 -> 608 octets.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
RED : 3 échecs annoncés (len de crête non multiplié par 2,2 ; ligHalfWidth ignore shape ; creux des dents dans la ligule) ;
non-régressions (fleuron hors crête, tournesol inchangé) vertes d'emblée.
Port du diff WGSL de la maquette (git diff 7796f836~1 e2b1f1e2 -- macro/gpu/wgsl/).
Écart à la spec : à la dent, elemSD <= 0 (et non < 0) : dz = |a.z| vaut 0 sur l'arc, la distance y est nulle par construction.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Trois cas gerbera (défaut, graine 4294967295, graine 12345) verts d'emblée : 0 manqué, 0 dépassement de MAXC.
RED par mutation (jamais commitée, annulée) : macro/search.js, searchLig, nA = r - reach au lieu de r - reach - lmax :
61, 68 et 69 manqués sur les trois cas gerbera (802 et 1052 sur le tournesol).
Candidats max 2026-11-02 : gerbera 77, 76, 76 ; tournesol coin dense 234 (O488 notait 235).
Points de volume tirés jusqu'à 3,638 pour le gerbera, 1,95 gardé pour le tournesol.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Branche de crête (floCrestK, floCrestQ) dans makeElem, test build gerbera contre la référence JS. RED : e1.z écart 0,067 > 1e-4. Écart mesuré au plus 3,7e-6 relatif.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MACRO_PAINTER_VERSIONS (tournesol-v1-gpu.2, gerbera-v1-gpu.1) et
macroPainterVersion(species), RangeError field species si inconnue ;
MACRO_PAINTER_VERSION retiré. macroSource lit la version de l'espèce
(absente = tournesol).

RED : tests en échec à l'import (API absente). Raison annoncée prouvée
par mutation (macroSource écrit macroPainterVersion('tournesol') pour
toute espèce) : « source gerbera » en échec, tournesol-v1-gpu.2 au lieu
de gerbera-v1-gpu.1 ; mutation annulée, jamais commitée.

Index : statut d'O615 remis à « à jouer » (coché par erreur en O603).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ligule en ruban (params.ligShape) et dents (params.ligTeeth) dans sdf.js ; enveloppe à envBw paqueté (ENV_NB 560, gerbera 0,0075) ; envDilate lit params (liaison 1 ajoutée dans painter.js et scene-gpu.js) ; rayon de tirage du contrôle lu de params (1,95 pour le tournesol, 1 + ligL1 x ligLJit.y + 0,2 au gerbera) ; CAM_D inutilisée retirée de march.js. RED : test/gpu/macro/sdf.test.js, elemSD GPU contre JS, gerbera écart 0,146 avant (tournesol 6e-6), 8,7e-5 après. Le contrôle de recherche gerbera passait déjà avant (0 manqué, max 77 candidats, itérations 179), enveloppe 0,0075 suffisante.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
macroOut exempte species absente de la vérification des clés complètes
(ancien export = tournesol) ; settings_hash calculé sur settings tels que
reçus, sortie inchangée (LP ne reçoit pas l'espèce).

RED : « ancien source.json sans species » en échec, settings : species
manquant. Gerbera accepté, pire cas (1 051 octets) et density refusée
passent d'emblée (non-régressions).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Tests : aperçu gerbera (op avec LIG_SHAPE 1, N_FLO 1932), tir gerbera
(source.json gerbera-v1-gpu.1, settings.species gerbera), espèce inconnue
et gerbera avec density refusées avec field. Aucun code de production :
la chaîne passait d'emblée.

RED par mutation : macro/bounds.js, species forcée à 'tournesol' dans
checkMacroSettings ; en échec : aperçu gerbera (LIG_SHAPE 0), espèce
inconnue (200 au lieu de 422), tir gerbera (tournesol-v1-gpu.2). « gerbera
avec density » passe sous la mutation (density valide au tournesol).
Mutation annulée, jamais commitée.

Écart : la spec annonce 400 ; les routes répondent 422 avec field pour
tout réglage refusé (convention existante). Tests nommés et vérifiés en 422.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Branche e3.y > 0,5 dans surfOf (maquette e2b1f1e2). Test crest.test.js : ids de march pour séparer les fleurons de crête (q > 0,86) des autres, luminance ombrée. RED sans la branche : rapport 1,054. Avec : 1,841 (seuil 1,227 = mesure / 1,5).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bounds injectées = { species: MACRO_SPECIES, SHIFT_BOUNDS } ; initialPanel
part du tournesol avec species ; withSpecies (défauts de l'espèce, graine
et format gardés, inconnue = état inchangé) ; withSetting et withPalette
lisent l'espèce courante ; MACRO_GROUPS devient macroGroupsOf(species,
bounds) (gerbera sans capitule, ligules réduites à translucency, couleurs
avec les palettes de l'espèce). main.mjs et macro-panel-dom.mjs adaptés a
minima à la nouvelle forme (menu d'espèce : O617).

RED : fichier de test en échec à l'import (macroGroupsOf, withSpecies
absents). Bornage par espèce prouvé par mutation (withSetting borné par
bounds.species.tournesol) : « withSetting zoom 3,3 » en échec, 2 au lieu
de 3,3 ; mutation annulée, jamais commitée.

Écart : macroGroupsOf prend bounds en second argument (source des palettes).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Libellés species (Capitule), species.tournesol, species.gerbera et
palette.<nom> pour les dix palettes (les palettes n'avaient pas de
libellé : forme de clé choisie palette.<nom>). Aides species et par
espèce ; les huit aides de forme du tournesol commencent par
« Tournesol seulement. ». Textes en brouillon, à relire en O619.
Test des orphelins élargi aux nouvelles clés ; tiret demi-cadratin
aussi refusé.

RED : « species et ses valeurs » (libellé de species), « chaque palette
de chaque espèce » (libellé de palette.tournesol) et « les aides propres
au tournesol le disent » en échec.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Menu « Capitule » (Tournesol, Gerbera) en tête du panneau Macro : au
changement, withSpecies, reconstruction complète des groupes de l'espèce
(rafraîchisseurs remplacés), puis nouvel aperçu. Options de palette
libellées par palette.<nom>. Test : les imports de macro/species/ se
chargent (transitif), src/ exclu (import map de la page).

RED par mutation : import './inexistant-mutation.js' ajouté à
macro/species/registry.js ; fichier de test en échec (ERR_MODULE_NOT_FOUND
au chargement du serveur) ; mutation annulée, jamais commitée.
Vérifié dans Chromium sans GPU : menu présent, passage au gerbera
(palettes Rose à Jaune, sans Densité, 5 groupes) et retour au tournesol.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Gerbera, Quadro RTX 5000, Dawn. Défaut : aperçu 0,96 s, épreuve 2,3 s, print portrait 35,5 s, paysage 40 s. Gros plan : aperçu 3,9 s, épreuve 10,9 s, print portrait 165 s, paysage 163 à 170 s (0,47 à 0,53 µs par échantillon). Tournesol develop contre branche : 27 pixels sur 5,3 millions différents, écart max 3. Aucun Xid.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Onzième couleur de surface ligInner (noir pour les cinq palettes du tournesol, zone ligules), cœur vert commun aux palettes gerbera, gerbera-magenta en tête et défaut du gerbera, libellé Magenta. RED constaté : 9 tests en échec (ligInner absent, gerbera-magenta inconnue, défaut gerbera-rose) avant le code.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Scène du gerbera à huit couches (N_ALL 2600, N_FLO 650, N_BUD 468), constantes du cœur crêté, quatre champs neutres pour le tournesol (LIG_RUBAN_LEN, LIG_INNER_SPAN, LIG_RIM, FLO_CREST_A0), défauts exposure 0,75 et aperture 0,2. RED : gerbera-scene (N_ALL 2000 au lieu de 2600), species-gerbera (aperture 0,25 au lieu de 0,2). Tests voisins adaptés (routes, dents, crête, paquetage).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ligInnerSpan, ligRim, ligRubanLen (f32), floCrestA0 (vec2f), ligInner (vec4f) ajoutés après envBw ; aucun des 67 champs d'avant ne bouge (instantané des offsets étendu). RED : offsets absents (ligInnerSpan attendu à 596), champs introuvables. Tampon 608 -> 640 octets. Offsets : ligInnerSpan 596, ligRim 600, ligRubanLen 604, floCrestA0 608, ligInner 624. npm test 1497 verts, eslint 0. Test GPU painter non joué : la carte est tenue par node editor/server.mjs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ligHalfWidth(hw, t, shape, len, rubanLen) : ruban si rubanLen > 0 et len > rubanLen, sinon règle LIG_SHAPE (tournesol inchangé, LIG_RUBAN_LEN 0). Crête : a0 = mix(FLO_CREST_A0). RED : ligule longue non élargie (0,176 contre 0,572 attendu) et a0 = 1,48 hors [0,75, 1,15] ; verts ensuite.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Gerbera à huit couches (O622), rayon de tirage 3,252, 4000 points par cas : 0 manqué, 0 dépassement. Candidats max 221 (graine par défaut), 222 (4294967295), 221 (12345) ; itérations max 501 à 502 ; tournesol inchangé (234 au coin dense). Mesures du 2026-11-02 en commentaire. Les cas passaient d'emblée : RED prouvé par la mutation d'O608 (nA sans lmax dans searchLig), 655, 659 et 662 manqués sur les trois cas gerbera, annulée à la main, jamais commitée. macro/search.js inchangé.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
RED (WGSL d'avant) : sdf gerbera écart 0,0905 ; elements gerbera e1.z écart 0,0369 ; search gerbera passait d'emblée, prouvé par mutation de search.js (dernière couche ignorée : manqués), annulée. GREEN : écart sdf 8,8e-6 (seuil 1,3e-4), candidats max 223 (JS 221-222), 0 manqué, 0 violation, 0 débordement. crest.test.js échoue déjà avant O626 (couleurs, repris par O627).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
RED : couche 0 / couche 7 de ligules, luminance 58,6 / 60,6 (rapport 0,967) sans les deux blocs ; avec : 182,2 / 85,2 (2,138), seuil 1,425. Témoin tournesol (ligInner changé, mêmes octets) : échoue si le liseré n'est plus conditionné. Recalage de crest.test.js : le critère de clarté ne vaut plus avec le cœur vert ; deux rendus, floTip normal et [0, 0, 0,9] : écart de couleur crête 120 contre autres fleurons 30,3 (rapport 3,95, seuils 80 et 2,636) ; sans la branche e.e3.y > 0.5 de surfOf, écart de crête 12,5 (échec, mutation annulée). Le seuil de crête utilise désormais FLO_CREST_Q de la scène.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Gerbera cœur crêté, 16 éch. : défaut print 98 à 116 s (0,28 à 0,33 µs/éch), gros plan zoom 1,6 print 272 à 315 s (0,78 à 0,91 µs/éch), plus longue tuile 57 s. Environ 3 fois (vue entière) et 1,8 fois (gros plan) O618. Tournesol épreuve contre develop : 27 pixels différents, écart max 3. Aucun Xid.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
O620 — Documentation
All checks were successful
CI / OceanPrint - tests + lint JS (pull_request) Successful in 5m30s
9dbe1efac1
Mécanisme d'espèce et gerbera à cœur crêté absorbés dans .claude/rules/macro.md et CLAUDE.md ; plan réduit à C2 et C3 ; dossier de tâches supprimé ; backlog mis à jour.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Nora merged commit 8439b53eee into develop 2026-11-03 09:30:29 +00:00
Nora deleted branch feature/macro-capitules 2026-11-03 09:30:30 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Nora/OceanPrint!24
No description provided.