Skip to content

fix: exclure du glob les originaux en casse mixte (.Raf) - #126

Merged
izo merged 1 commit into
mainfrom
claude/spec-coherence-repos-0obysg
Oct 20, 2026
Merged

izo merged 1 commit into
mainfrom
claude/spec-coherence-repos-0obysg

Conversation

@izo

@izo izo commented Oct 20, 2026

Copy link
Copy Markdown
Owner

Pourquoi

Le glob ?url des documents joints (src/helpers/index.ts) ne nommait que les graphies tout en minuscules et tout en majuscules de la liste fermée des originaux (§1.9). Vite compare les extensions à la casse près : un DSCF0002.Raf était écarté du rendu par isOriginal, mais émis au build. Closes #125.

Ce qui change

  • Glob : un seul motif négatif, une classe par lettre ([rR][aA][fF], 3[fF][rR]…), sidecars compris. Littéral écrit à la main, sans génération au build.
  • tests/unit/originals.test.ts : dérive la forme insensible à la casse d'ORIGINAL_EXTENSIONS et exige l'égalité exacte avec le motif, sans autre graphie figée à côté.
  • Démo : atelier-2026/media/DSCF0002.Raf, de plus de 4 Ko à dessein. Sous ce seuil, Vite l'inline dans le bundle serveur, que le build statique jette, et le test passerait sans rien prouver.
  • e2e : aucun fichier DSCF0002/.raf dans dist/, et pas de contenu base64 correspondant dans les html/js/css/json. Ce test échoue avant le correctif (fichier émis dans dist/) et passe après : c'est la preuve que Vite accepte les classes [..] dans le motif négatif.
  • Docs : 0.20.0 n'est pas publiée (npm : 0.19.0), donc pas de bump. Le correctif rejoint la section 0.20.0 du CHANGELOG. L'écart « graphie mixte » est retiré du README et du CHANGELOG, et CLAUDE.md décrit la forme du motif.

Vérifications

  • npm run typecheck : 0 erreur
  • npm run test:unit : 27 fichiers, 604 passés, 1 ignoré
  • npm run fixtures:check : 207 fichiers conformes (spec 51cbf73)
  • npm test : unit 604 passés / 1 ignoré ; e2e 64/64
  • npm run pack:dry : 131 fichiers, 170,6 kB

Generated by Claude Code

Le glob `?url` des documents joints (src/helpers/index.ts) ne nommait
que les graphies tout en minuscules et tout en majuscules de la liste
fermée des originaux (§1.9). Vite compare les extensions à la casse
près : un `DSCF0002.Raf` était écarté du rendu par `isOriginal`, mais
restait globbé, donc émis au build — copié dans `dist/_astro/`, ou
inliné en base64 sous 4 Ko. La liste est insensible à la casse ; le
glob doit l'être aussi.

Le motif porte désormais une classe par lettre (`[rR][aA][fF]`,
`3[fF][rR]`…), sidecars compris, en un seul groupe négatif. Il reste un
littéral écrit à la main (Vite n'accepte pas d'expression calculée) :
tests/unit/originals.test.ts dérive la forme attendue
d'`ORIGINAL_EXTENSIONS` et exige l'égalité exacte, sans autre graphie
figée à côté.

La série de démo `atelier-2026` reçoit `DSCF0002.Raf`, de plus de 4 Ko
à dessein : sous ce seuil, Vite l'inline dans le bundle serveur, que le
build statique jette, et le test passait sans rien prouver. Avant le
correctif, le nouvel e2e échoue (fichier présent dans `dist/`) ; après,
aucun fichier ni contenu base64 correspondant n'y figure.

0.20.0 n'étant pas publiée, pas de bump : le correctif rejoint la
section 0.20.0 du CHANGELOG, et l'écart « graphie mixte » sort du
README et du CHANGELOG.

Closes #125

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UUSDjd6BkMUR1HavjW3qsD
@izo
izo marked this pull request as ready for review October 20, 2026 13:58
@izo
izo merged commit d0bb6ac into main Oct 20, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Originaux : une extension en casse mixte (.Raf) reste copiée au build

2 participants