batchCooking/apps/admin-web
Nicolas 74b1657590
Some checks failed
CI / test (push) Failing after 5s
CI / lint (push) Successful in 3m7s
CI / build (push) Successful in 4m47s
CI / e2e (push) Successful in 15m51s
CI / intent-service-test (push) Successful in 20m13s
feat(admin): tri des corrections + declenchement du gate F1/backfill
PR 5 (derniere) du chantier admin. Remplace le duo CLI
list-pending-training-suggestions.ts / retrain-tech-steps.ts par une UI.

API (admin-tech-steps.service.ts, routes /admin/tech-steps/*, requireAdmin) :
- GET /suggestions : TechStepTrainingSuggestion filtrees, groupees par
  technique, enrichies du contexte de la correction source.
- GET /corrections : corrections brutes filtrables, incluant les
  suppressions correctedTechStepId:null invisibles ailleurs.
- PATCH /suggestions/:id : edite synonymes/phrases et/ou status.
- GET /training-data-snippet : bloc training_data.py a coller (lecture
  seule).
- POST /retrain : runTechStepEvalSuite() (gate F1 vs MIN_OVERALL_F1) puis
  si passe backfillTechSteps() + marquage applied/rejected. Verrou memoire
  -> 409 RETRAIN_ALREADY_RUNNING. Gate echoue -> 200 gatePassed:false.
  N'edite pas le .py ni ne redemarre l'intent-service (manuel).

Shared : nouveau ErrorCode RETRAIN_ALREADY_RUNNING (4023, + cle i18n
apps/web), schemas (list*/update*/retrain*/snippet), types
(TrainingSuggestion*/Correction*/RetrainResultView...).

Front : CorrectionsPage (onglets Suggestions / Corrections brutes,
bandeau caveat permanent, cartes editables + Appliquer/Rejeter, panneau
snippet, panneau gate F1). Logique pure corrections.ts. i18n
admin.corrections.*. AdminApiClient : 5 methodes.

Tests : Mocha admin-tech-steps.test.ts (401 partout, groupement+filtre,
PATCH 400/404/ok, corrections incluant removals, snippet, retrain shape +
409 concurrent) ; Cypress corrections.cy.ts (4 verts). Admin-web Cypress
13/13. specs/backend-architecture.md : section tri + retrain.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-28 22:57:43 +02:00
..
cypress feat(admin): tri des corrections + declenchement du gate F1/backfill 2026-08-28 22:57:43 +02:00
src feat(admin): tri des corrections + declenchement du gate F1/backfill 2026-08-28 22:57:43 +02:00
.env.example feat(admin): scaffold de l'application d'administration apps/admin-web 2026-08-28 22:57:02 +02:00
cypress.config.ts feat(admin): scaffold de l'application d'administration apps/admin-web 2026-08-28 22:57:02 +02:00
Dockerfile feat(admin): scaffold de l'application d'administration apps/admin-web 2026-08-28 22:57:02 +02:00
index.html feat(admin): scaffold de l'application d'administration apps/admin-web 2026-08-28 22:57:02 +02:00
nginx.conf feat(admin): scaffold de l'application d'administration apps/admin-web 2026-08-28 22:57:02 +02:00
package.json feat(admin): scaffold de l'application d'administration apps/admin-web 2026-08-28 22:57:02 +02:00
tsconfig.app.json feat(admin): scaffold de l'application d'administration apps/admin-web 2026-08-28 22:57:02 +02:00
tsconfig.json feat(admin): scaffold de l'application d'administration apps/admin-web 2026-08-28 22:57:02 +02:00
tsconfig.node.json feat(admin): scaffold de l'application d'administration apps/admin-web 2026-08-28 22:57:02 +02:00
vite.config.ts feat(admin): scaffold de l'application d'administration apps/admin-web 2026-08-28 22:57:02 +02:00