simpl-liste/STATE.md
le king fu 085b8e7d75 state: sync after #133, #134, #135 (PR #138)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 19:13:13 -04:00

6.8 KiB

STATE — simpl-liste

Derniere MAJ : 2026-10-06 (par fix-issue #133, #134, #135 — PR #138)

Position actuelle

Version 1.6.6 (versionCode 18). npm audit = 40 entrees (0 critical) au 2026-10-06 apres PR #138, pour 5 advisories sans correctif publie (le reste est de la cascade de parents) : braces (high, #130), node-forge (high, #123), postcss-selector-parser GHSA-rj75 (moderate, #136, sortie = tailwind 4), sprintf-js (moderate, #137) et la chaine expo-router -> query-string@7 -> decode-uri-component (risque accepte #120). Toutes sont de l'outillage de build/dev : rien dans l'APK.

La remediation passe par des overrides de plancher dans package.json : esbuild, @xmldom/xmldom@^0.8.15, uuid, postcss, js-yaml (3.15.2 / 4.3.2), brace-expansion (1.1.21 / 2.1.7 / 5.0.12), @babel/core, browserslist@^4.28.7, @react-navigation/core@^7.22.1, http-cache-semantics@^4 (4.3.0), postcss-selector-parser@^6 (6.1.3), source-map-js@^1 (1.2.2), react-devtools-core > shell-quote (^1.11.0), @expo/cli > compression (^1.8.2), et les 14 paquets metro@^0.83.8. Le smoke test verrouille la chaine de build (presets Expo hoistes a la racine, un seul SDK Expo, metro 0.83.x partout) et les planchers brace-expansion / undici / http-cache-semantics / postcss-selector-parser / shell-quote / compression / source-map-js (plancher + appel de l'API consommee) / comportement de minimatch (majeurs 3, 9, 10).

Caveat sur l'override metro (releve par la review de PR #114) : 0.83.3 -> 0.83.8 n'est pas un bump de patch pur cote API privee. Trois shims de @expo/metro@54.2.0, ecrit contre 0.83.3, ne resolvent plus — metro-resolver/utils/toPosixPath et metro/node-haste/Package supprimes, metro-file-map/lib/dependencyExtractor deplace. Ils leveraient MODULE_NOT_FOUND, mais aucun paquet de l'arbre ne les requiert (203 des 206 imports profonds metro*/private/... resolvent). Inerte aujourd'hui ; a re-verifier au prochain bump du SDK Expo ou de @expo/metro.

Companion web liste.lacompagniemaximus.com : deploye manuellement (docker-compose standalone /data/simpl-liste-web sur le VPS, build depuis source/ rsync — PAS une app Coolify malgre la spec). Procedure en memoire simpl-liste-web-deploy.

Decisions recentes

  • 2026-10-06 : #133, #134, #135 fermees (PR #138 merged) — shell-quote ^1.11.0 (CRITICAL GHSA-pqg4, releve le plancher de #95), @expo/cli > compression ^1.8.2 (HIGH), source-map-js@^1.0.0 ^1.2.2 (HIGH, pipeline CSS). npm audit 43 -> 40, critical 0. Export identique octet pour octet (44 fichiers), serveur de dev sert le bundle en gzip. Ouvertes le meme jour en plancher : #136 (postcss-selector-parser GHSA-rj75, aucun correctif 6.x) et #137 (sprintf-js, tete publiee vulnerable). /analyse-vulnerabilite cherche desormais les antecedents fermes avant de proposer.
  • 2026-10-05 : #128 et #129 fermees (PR #131 merged) — planchers version-scoped http-cache-semantics@^4.0.0 -> ^4.3.0 (GHSA-ch52 high : l'advisory ne liste aucun patch, mais 4.3.0 sort de la borne <=4.2.0 ; tunnel @expo/ngrok seulement) et postcss-selector-parser@^6.0.0 -> ^6.1.3 (low, pipeline tailwind). npm audit 33 -> 31. Preuve du livrable : bundle JS (expo export --no-bytecode --clear) identique octet pour octet. Le hash .hbc n'est pas une preuve : Hermes n'est pas deterministe ici (deux exports du meme arbre different).
  • 2026-10-05 : #126 fermee, acceptation de #120 maintenue — decode-uri-component@0.5.0 est ESM pur, query-string@7 le require(). Declencheur de sortie : expo-router@58.0.13 (SDK 58) retire query-string, pas encore backporte sur sdk-54..57. #130 ouverte : braces plancher (3.0.3 = tete publiee, vulnerable).
  • 2026-10-02 : #124 et #125 fermees (PR #127 merged) — planchers brace-expansion ^1.1.21 / ^2.1.7 / ^5.0.12 (9 advisories DoS neuves, toujours version-scoped) et @expo/cli > undici ^6.28.1 (resolu 6.29.0). Outillage de build seulement. Trois gardes au smoke test, dont le test minimatch qui manquait depuis #103. npm audit 12 -> 10. Ouvertes le meme jour : #123 (node-forge, tete publiee 1.4.0 vulnerable) et #126 (decode-uri-component@0.5.0 publiee).
  • 2026-09-27 : #120 fermee en risque accepte (rectification du cadrage « attend un bump de SDK »). Aucune version d'expo-router (jusqu'a 58.0.8 / sdk-57) ne quitte query-string@7. expo-router n'appelle que queryString.stringify(), qui ne touche jamais decode-uri-component (le seul parse() du fork est commente) : code vulnerable inatteignable. A re-verifier a chaque bump d'expo-router.
  • 2026-09-25 : #121 fermee (PR #122 merged) — planchers @xmldom/xmldom@^0.8.15 et js-yaml ^3.15.2 / ^4.3.2 (advisories HIGH du 2026-09-08, outillage de build seulement, hash du bundle Hermes inchange). Le Defenseur ne les avait pas signalees : hypothese de dedup par paquet contre issues fermees -> agent-defenseurs#139.
  • 2026-09-25 : #117 fermee (PR #119 merged) — override @react-navigation/core@^7.22.1, qui ne depend plus de query-string (GHSA-vcc3-ghjq-m6fr). Lock : 2 entrees. PR #118 du Defenseur fermee : son npm audit fix global desinstallait babel-preset-expo/@expo/metro-config de la racine et nichait un Expo 57 (build casse, tests verts). Gardes de toolchain ajoutees au smoke test. Residu expo-router -> #120.
  • 2026-09-04 : #115 ouverte + PR #116 — browserslist@^4.28.7 (2 advisories HIGH publiees le 2026-09-01, first_patched_version = 4.28.7). Resout en 4.28.9, derniere HIGH de l'arbre. Bundle Hermes au hash identique avant/apres : cibles de compilation inchangees.
  • 2026-09-04 : #112 fermee doublon de #108 ; PR #113 fermee sans merge (son diff ne contenait aucune occurrence d'image-size — 633/584 de churn de lockfile sans rapport).
  • 2026-09-04 : #108 fermee (PR #114 merged) — image-size retiree de l'arbre via overrides metro@^0.83.8. Le blocage upstream tient toujours (first_patched_version = None, 2.0.2 reste la derniere publiee) ; c'est metro qui a supprime la dependance et vendore un parseur reduit sans les formats ICNS/JXL/HEIF vises. Backport sur la ligne 0.83.x le 2026-08-19 — pas besoin du bump de SDK Expo anticipe. 9 HIGH -> 1 HIGH.

Blockers actifs

  • Essai sur appareil a faire avant le prochain APK : core 7.22.1 tourne avec native/native-stack/bottom-tabs publies contre 7.14 (deep link vers une tache, onglets, pile).
  • #130 : braces <=3.0.3 sans version corrigee. Surveiller braces > 3.0.3 ou micromatch qui la largue.
  • #123 : node-forge <=1.4.0 sans version corrigee. Surveiller node-forge > 1.4.0 ou le retrait de la dependance par @expo/code-signing-certificates / @expo/cli.
  • #136 : postcss-selector-parser GHSA-rj75 sans correctif 6.x. Surveiller un backport 6.x ou la migration NativeWind 5 / tailwind 4.
  • #137 : sprintf-js <=1.1.3 sans version corrigee. Surveiller une version hors borne ou une @istanbuljs/load-nyc-config 2.x.