[codex] fix route parity parser for promise-all webui calls #15

Merged
electron-rare merged 1 commits from codex/route-parity-parser-fix into audit/telephony-webserver 2026-02-20 23:26:23 +00:00
electron-rare commented 2026-02-20 23:23:32 +00:00 (Migrated from github.com)

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

## 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
electron-rare commented 2026-02-20 23:26:19 +00:00 (Migrated from github.com)

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.

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.
Sign in to join this conversation.