Skip to content

fix(team): restore team rendering + optimise PR #73 images - #76

Merged
wab merged 4 commits into
mainfrom
fix/team-display-assets
Jun 19, 2026
Merged

fix(team): restore team rendering + optimise PR #73 images#76
wab merged 4 commits into
mainfrom
fix/team-display-assets

Conversation

@wab

@wab wab commented Jun 19, 2026

Copy link
Copy Markdown
Collaborator

Contexte

PR #73 (Edmond, mergée aujourd'hui) a introduit deux régressions. Ce correctif les traite et ajoute les garde-fous pour empêcher la récurrence.

Problème 1 — la section équipe ne s'affiche plus (critique)

Les 4 nouveaux membres n'avaient pas de displayOrder. Le schéma du site (MemberFrontmatterSchema) le rend obligatoire et fetchMultiple fait du fail-fast : un seul fichier invalide fait tomber toute la liste d'équipe (régression identique à #59).

➡️ displayOrder: 13–16 ajouté à edmond / hugo / jeanne / thomas (ordre alpha par prénom, réordonnable).

Problème 2 — images non optimisées + avatar corrompu

optimize-assets est une étape locale du flux publish-content, pas la CI ; la PR #73 a poussé les images brutes (2–3 MB) directement sur Blob.

➡️ Ré-optimisées en place (10 MB → 605 KB) et ré-uploadées sur les mêmes chemins Blob (URLs frontmatter inchangées) :

Membre Avant Après
edmond 2.0 MB 253 KB
hugo 2.8 MB 59 KB
yoann 3.1 MB 53 KB
jeanne 1.8 MB 240 KB
thomas 359 KB (déjà sous le seuil)

➡️ Avatar de Jeanne : l'original était un XML d'erreur S3 (InvalidToken, fetch Notion échoué) — pas une image. Remplacé par la vraie photo.

Prévention (pour ne pas re-régresser)

Checks

  • pnpm validate
  • pnpm test ✅ (175/175, +1 nouveau)
  • Upload Blob vérifié (HEAD 4/4)

Encore hors scope

  • Les bio.en des 4 nouveaux membres sont en français (copie du fr) — à traduire séparément.

wab added 2 commits June 19, 2026 17:25
Website MemberFrontmatterSchema requires displayOrder; its absence makes
fetchMultiple fail-fast and wipes the entire team section (same failure
as #59). Edmond/Hugo/Jeanne/Thomas (PR #73) shipped without it.

Assigns 13-16 (alpha by first name, reorderable).
PR #73 pushed raw images straight to Blob (optimise-assets is a local
publish step, not CI). Re-optimised in place (10MB -> 605KB):
  edmond 2.0MB->253KB, hugo 2.8MB->59KB, yoann 3.1MB->53KB, jeanne 1.8MB->240KB
Jeanne's original was an S3 InvalidToken XML (failed Notion fetch), not
an image; replaced with the real photo. All re-uploaded to the same Blob
paths so frontmatter URLs are unchanged.
@github-actions

github-actions Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

🔍 Preview: https://website-llnw8k4l3-ocobo-22231b32.vercel.app

Built from website main with content from this PR's branch.

wab added 2 commits June 19, 2026 17:33
Mirror the website's MemberFrontmatterSchema so pnpm validate / CI catch a
missing displayOrder instead of silently passing while the live team
section breaks. Was the gap that let PRs #59 and #73 ship members that
wiped the whole roster.
displayOrder is now a mandatory non-skippable gate even when other fields
are prefilled from a source — the Notion Organigramme has no order column,
so it stays missing after prefill and was silently dropped (PR #73).

Image downloads now verify the file is actually an image (file --mime-type)
and use curl -f: an expired S3 URL returns a 200 XML error that curl saved
as the avatar, shipping a corrupt image for Jeanne in PR #73.
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.

1 participant