batchCooking/apps/api/src
Nicolas fcaecb4e07
Some checks failed
CI / lint (push) Successful in 1m58s
CI / build (push) Successful in 2m35s
CI / e2e (push) Failing after 5m24s
CI / intent-service-test (push) Successful in 22m51s
CI / test (push) Failing after 23m21s
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 23:36:31 +02:00
..
config feat(admin): fondation auth de l'application d'administration 2026-08-28 23:36:29 +02:00
db feat(recipes): associe ingredients, quantites et ustensiles aux techniques detectees (#75) 2026-08-26 19:50:52 +02:00
lib feat(admin): metriques d'utilisation (derive DB + AnalyticsEvent) 2026-08-28 23:36:31 +02:00
middlewares feat(admin): fondation auth de l'application d'administration 2026-08-28 23:36:29 +02:00
modules feat(admin): tri des corrections + declenchement du gate F1/backfill 2026-08-28 23:36:31 +02:00
scripts feat(admin): fondation auth de l'application d'administration 2026-08-28 23:36:29 +02:00
sources fix(recipes): corrige la liste vide de sevenFiftyGAdapter quand le filtre est vide (#68) 2026-08-22 20:08:28 +02:00
app.ts feat(admin): fondation auth de l'application d'administration 2026-08-28 23:36:29 +02:00
server.ts feat(recipes): migre la detection des tech steps de node-nlp vers un microservice Python spaCy 2026-08-26 09:03:52 +02:00