Le gate introduit en PR #13 détectait mal certaines routes frontend: les appels requestJson(...) à l'intérieur d'un Promise.all([...]) n'étaient pas pris en compte, car le parser regex attendait strictement une fin );.
Impact utilisateur
Le gate pouvait sous-estimer la couverture réelle des routes frontend et générer des faux positifs de routes backend "unused", avec risque de faux sentiment de sécurité sur la cohérence UI/API.
Root cause
Parsing frontend basé sur regex naïve (requestJson(...);) insuffisante pour les appels imbriqués/formatés différemment (requestJson(...),).
Correctif
Refactor parser frontend dans scripts/check_web_route_parity.py:
détection des appels requestJson(,
résolution robuste de la parenthèse fermante via compteur de profondeur + gestion des chaînes,
extraction du premier argument path /api/... puis méthode HTTP.
## Contexte
Le gate introduit en PR #13 détectait mal certaines routes frontend: les appels `requestJson(...)` à l'intérieur d'un `Promise.all([...])` n'étaient pas pris en compte, car le parser regex attendait strictement une fin `);`.
## Impact utilisateur
Le gate pouvait sous-estimer la couverture réelle des routes frontend et générer des faux positifs de routes backend "unused", avec risque de faux sentiment de sécurité sur la cohérence UI/API.
## Root cause
Parsing frontend basé sur regex naïve (`requestJson(...);`) insuffisante pour les appels imbriqués/formatés différemment (`requestJson(...),`).
## Correctif
- Refactor parser frontend dans `scripts/check_web_route_parity.py`:
- détection des appels `requestJson(`,
- résolution robuste de la parenthèse fermante via compteur de profondeur + gestion des chaînes,
- extraction du premier argument path `/api/...` puis méthode HTTP.
- Ajout de tests unitaires parser:
- `scripts/test_check_web_route_parity.py`
- cas direct GET/POST,
- cas `Promise.all(...)`,
- cas payload imbriqué avec `JSON.stringify(...)`.
- Intégration des tests parser:
- CI (`.github/workflows/ci.yml`)
- test local (`scripts/test_terminal.sh`).
## Validation
- `python3 -m py_compile scripts/check_web_route_parity.py scripts/test_check_web_route_parity.py` ✅
- `bash scripts/test_terminal.sh` ✅
- Sortie gate mise à jour: `backend routes: 29 | frontend routes: 21`
## Suivi
- Fixes #14
- Relates #10
Parser frontend renforcé pour les appels requestJson(...) imbriqués.
Cas de test couvrant direct call, Promise.all, payload POST imbriqué.
Vérifications locales + CI passées.
Findings bloquants: aucun.
Recommandation: merge.
Codex review (self-check):
- Parser frontend renforcé pour les appels `requestJson(...)` imbriqués.
- Cas de test couvrant direct call, Promise.all, payload POST imbriqué.
- Vérifications locales + CI passées.
- Findings bloquants: aucun.
Recommandation: merge.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Contexte
Le gate introduit en PR #13 détectait mal certaines routes frontend: les appels
requestJson(...)à l'intérieur d'unPromise.all([...])n'étaient pas pris en compte, car le parser regex attendait strictement une fin);.Impact utilisateur
Le gate pouvait sous-estimer la couverture réelle des routes frontend et générer des faux positifs de routes backend "unused", avec risque de faux sentiment de sécurité sur la cohérence UI/API.
Root cause
Parsing frontend basé sur regex naïve (
requestJson(...);) insuffisante pour les appels imbriqués/formatés différemment (requestJson(...),).Correctif
scripts/check_web_route_parity.py:requestJson(,/api/...puis méthode HTTP.scripts/test_check_web_route_parity.pyPromise.all(...),JSON.stringify(...)..github/workflows/ci.yml)scripts/test_terminal.sh).Validation
python3 -m py_compile scripts/check_web_route_parity.py scripts/test_check_web_route_parity.py✅bash scripts/test_terminal.sh✅backend routes: 29 | frontend routes: 21Suivi
Codex review (self-check):
requestJson(...)imbriqués.Recommandation: merge.