Audit (main 7.84.4, tag v7.84.4 = 984e92b) — resultat contre-intuitif, verifie et non suppose : la route (app/routers/search.py:51), le gabarit (app/templates/recherche.html), le JS (static/js/recherche.js) et le CSS (static/css/recherche.css) contenaient DEJA la page a onglets des PR #33/#36. Verifications negatives : aucune route fantome (seul search.py definit /recherche ; agent.py /{agent_id} est sous prefixe /api/agent, notes.py sous /notes), bloc scripts present dans base.html:869, CSP script-src 'self' n'empechant pas le script externe, gabarit pre-#33 = exactement la page decrite par Bruno (sections, resultats Flowdeck, zero onglet) — donc la page deployee observee correspond a l'ancien comportement, pas a un autre gabarit de main.
Causes reelles corrigees ici :
Cache service worker : static/sw.js servait recherche.js/recherche.css en CACHE-FIRST sans aucune version (?v= absent dans recherche.html) sous un CACHE_NAME inchange depuis A20 ('flowdeck-v8'). Un navigateur ayant visite Flowdeck avant #33 gardait le recherche.js pre-#33 (514 lignes : sans onglets, sans compteurs, sans logique console, « Tout voir » naviguant ailleurs) et le CSS pre-#33 (sans .rp-tabs) — onglets inertes/non styles, page paraissant « non corrigee » malgre 7.84.3/7.84.4 (le repli networkFirst du HTML vers le cache couvre aussi le cas reseau lent). Correctif : liens versionnes ?v={{ asset_version }} (comme tous les autres assets de base.html) + CACHE_NAME flowdeck-v8 -> flowdeck-v9 (purge a l'activation du nouveau worker ; les futures evolutions deviennent de nouvelles cles de cache).
Base console implicite : Flowdeck etait le seul hote sans data-base-console (son propre commentaire l'admettait). Correctif : la route expose bases.agent (draco_urls.toutes() le contient deja) et le gabarit rend data-base-console="{{ bases.agent }}" ; recherche.js garde ses replis (derivation -dev, href d'onglet de barre) si l'attribut est vide.
Inchange et preserve : page Flowdeck propre — normalize() Flowdeck (pages + collections, liens /pages/ et /db/) et GET /api/search intouches ; onglets Tout, ObsiGate, Flowdeck, TikTak, Kanbante, Console Spark ; focus automatique (focus() explicite + rappels) ; « Tout voir » restant sur place (bascule d'onglet) ; compteurs = totaux ; etats chargement/erreur par application ; liens profonds -dev (resolveBases) ; onglet Console Spark sur GET /api/v1/recherche, limite 20 (alignement #36, deja dans recherche.js).
Tests (chiffres reels, sandbox) : node tests/recherche.test.js = 75 assertions OK (onglets, compteurs, liens Flowdeck -dev, console /api/v1/recherche) ; node --check recherche.js et sw.js OK ; python3 -m py_compile app/routers/search.py OK ; nouveau tests/test_recherche_onglets.py (stdlib seul) = 6/6 OK (ordre des 6 onglets, 5 sections, data-base-console, liens versionnes, route expose agent, CACHE_NAME v9, chemin console v1). Non executable en sandbox : suite pytest complete (pas de fastapi/pytest ici) — a lancer en CI. Aucun test deploie ni capture affirme : la validation deployee (onglets apres redeploiement + mise a jour du SW) reste a faire par Bruno.
Regles du programme : branche + PR uniquement, sans merge, sans publication, sans bump de version, sans changement d'etat d'issue.
Defaut 6 (Flowdeck).
Audit (main 7.84.4, tag v7.84.4 = 984e92b) — resultat contre-intuitif, verifie et non suppose : la route (app/routers/search.py:51), le gabarit (app/templates/recherche.html), le JS (static/js/recherche.js) et le CSS (static/css/recherche.css) contenaient DEJA la page a onglets des PR #33/#36. Verifications negatives : aucune route fantome (seul search.py definit /recherche ; agent.py /{agent_id} est sous prefixe /api/agent, notes.py sous /notes), bloc scripts present dans base.html:869, CSP script-src 'self' n'empechant pas le script externe, gabarit pre-#33 = exactement la page decrite par Bruno (sections, resultats Flowdeck, zero onglet) — donc la page deployee observee correspond a l'ancien comportement, pas a un autre gabarit de main.
Causes reelles corrigees ici :
1. Cache service worker : static/sw.js servait recherche.js/recherche.css en CACHE-FIRST sans aucune version (?v= absent dans recherche.html) sous un CACHE_NAME inchange depuis A20 ('flowdeck-v8'). Un navigateur ayant visite Flowdeck avant #33 gardait le recherche.js pre-#33 (514 lignes : sans onglets, sans compteurs, sans logique console, « Tout voir » naviguant ailleurs) et le CSS pre-#33 (sans .rp-tabs) — onglets inertes/non styles, page paraissant « non corrigee » malgre 7.84.3/7.84.4 (le repli networkFirst du HTML vers le cache couvre aussi le cas reseau lent). Correctif : liens versionnes ?v={{ asset_version }} (comme tous les autres assets de base.html) + CACHE_NAME flowdeck-v8 -> flowdeck-v9 (purge a l'activation du nouveau worker ; les futures evolutions deviennent de nouvelles cles de cache).
2. Base console implicite : Flowdeck etait le seul hote sans data-base-console (son propre commentaire l'admettait). Correctif : la route expose bases.agent (draco_urls.toutes() le contient deja) et le gabarit rend data-base-console="{{ bases.agent }}" ; recherche.js garde ses replis (derivation -dev, href d'onglet de barre) si l'attribut est vide.
Inchange et preserve : page Flowdeck propre — normalize() Flowdeck (pages + collections, liens /pages/<id> et /db/<id>) et GET /api/search intouches ; onglets Tout, ObsiGate, Flowdeck, TikTak, Kanbante, Console Spark ; focus automatique (focus() explicite + rappels) ; « Tout voir » restant sur place (bascule d'onglet) ; compteurs = totaux ; etats chargement/erreur par application ; liens profonds -dev (resolveBases) ; onglet Console Spark sur GET /api/v1/recherche, limite 20 (alignement #36, deja dans recherche.js).
Tests (chiffres reels, sandbox) : node tests/recherche.test.js = 75 assertions OK (onglets, compteurs, liens Flowdeck -dev, console /api/v1/recherche) ; node --check recherche.js et sw.js OK ; python3 -m py_compile app/routers/search.py OK ; nouveau tests/test_recherche_onglets.py (stdlib seul) = 6/6 OK (ordre des 6 onglets, 5 sections, data-base-console, liens versionnes, route expose agent, CACHE_NAME v9, chemin console v1). Non executable en sandbox : suite pytest complete (pas de fastapi/pytest ici) — a lancer en CI. Aucun test deploie ni capture affirme : la validation deployee (onglets apres redeploiement + mise a jour du SW) reste a faire par Bruno.
Regles du programme : branche + PR uniquement, sans merge, sans publication, sans bump de version, sans changement d'etat d'issue.
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.
Defaut 6 (Flowdeck).
Audit (main 7.84.4, tag v7.84.4 =
984e92b) — resultat contre-intuitif, verifie et non suppose : la route (app/routers/search.py:51), le gabarit (app/templates/recherche.html), le JS (static/js/recherche.js) et le CSS (static/css/recherche.css) contenaient DEJA la page a onglets des PR #33/#36. Verifications negatives : aucune route fantome (seul search.py definit /recherche ; agent.py /{agent_id} est sous prefixe /api/agent, notes.py sous /notes), bloc scripts present dans base.html:869, CSP script-src 'self' n'empechant pas le script externe, gabarit pre-#33 = exactement la page decrite par Bruno (sections, resultats Flowdeck, zero onglet) — donc la page deployee observee correspond a l'ancien comportement, pas a un autre gabarit de main.Causes reelles corrigees ici :
Inchange et preserve : page Flowdeck propre — normalize() Flowdeck (pages + collections, liens /pages/ et /db/) et GET /api/search intouches ; onglets Tout, ObsiGate, Flowdeck, TikTak, Kanbante, Console Spark ; focus automatique (focus() explicite + rappels) ; « Tout voir » restant sur place (bascule d'onglet) ; compteurs = totaux ; etats chargement/erreur par application ; liens profonds -dev (resolveBases) ; onglet Console Spark sur GET /api/v1/recherche, limite 20 (alignement #36, deja dans recherche.js).
Tests (chiffres reels, sandbox) : node tests/recherche.test.js = 75 assertions OK (onglets, compteurs, liens Flowdeck -dev, console /api/v1/recherche) ; node --check recherche.js et sw.js OK ; python3 -m py_compile app/routers/search.py OK ; nouveau tests/test_recherche_onglets.py (stdlib seul) = 6/6 OK (ordre des 6 onglets, 5 sections, data-base-console, liens versionnes, route expose agent, CACHE_NAME v9, chemin console v1). Non executable en sandbox : suite pytest complete (pas de fastapi/pytest ici) — a lancer en CI. Aucun test deploie ni capture affirme : la validation deployee (onglets apres redeploiement + mise a jour du SW) reste a faire par Bruno.
Regles du programme : branche + PR uniquement, sans merge, sans publication, sans bump de version, sans changement d'etat d'issue.