diff --git a/STATE.md b/STATE.md index bba5474..a236287 100644 --- a/STATE.md +++ b/STATE.md @@ -1,23 +1,25 @@ # STATE — simpl-liste -> Derniere MAJ : 2026-10-05 (par /analyse-vulnerabilite, PR #131 : #128, #129) +> Derniere MAJ : 2026-10-06 (par fix-issue #133, #134, #135 — PR #138) ## Position actuelle -Version 1.6.6 (versionCode 18). `npm audit` = 31 entrees au 2026-10-05 apres PR #131, -pour 3 advisories seulement (le reste est de la cascade de parents) : `braces` (high, -GHSA-vfj7, ~22 parents metro/jest/tailwind, tete publiee vulnerable -> #130), -`node-forge` (high, #123, bloquee upstream) et la chaine `expo-router` -> `query-string@7` --> `decode-uri-component` (3 moderate, risque accepte #120, re-teste dans #126). Toutes +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), et les 14 +`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` @@ -34,6 +36,7 @@ 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). @@ -43,10 +46,11 @@ Coolify malgre la spec). Procedure en memoire `simpl-liste-web-deploy`. - 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. -- 2026-07-27 : #68 merged (PR #101) — Feedback Hub integre (bouton Reglages > A propos, POST feedback.lacompagniemaximus.com app_id simpl-liste, opt-in contexte + identite Loi 25 ; client sans dependance teste via node:test). ## 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.