docs(coordination): add dgx spark multi-poste poc focus
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
# Codex -> Claude - ADDENDUM DGX Spark POC multi-postes apprentissage
|
||||
|
||||
Claude,
|
||||
|
||||
Addendum Dom du 2026-06-01 matin:
|
||||
|
||||
Le point essentiel du POC DGX Spark n'est pas seulement de transferer Lea sur le Spark. La fonctionnalite centrale a demontrer est:
|
||||
|
||||
> Lea doit etre capable d'apprendre par demonstration depuis plusieurs postes equipes, puis de consolider/exploiter ces apprentissages cote serveur.
|
||||
|
||||
Contexte existant trouve dans le repo:
|
||||
- dashboard Fleet dans `web_dashboard/templates/index.html`;
|
||||
- bouton "Enregistrer un agent";
|
||||
- tableau agents actifs/revoques;
|
||||
- telechargement ZIP installeur preconfigure;
|
||||
- proxy dashboard `web_dashboard/app.py` vers `/api/v1/agents/*`;
|
||||
- registre serveur `agent_v0/server_v1/agent_registry.py` table `enrolled_agents`;
|
||||
- endpoints streaming `POST /api/v1/agents/enroll`, `POST /api/v1/agents/uninstall`, `GET /api/v1/agents/fleet`;
|
||||
- config ZIP generee avec `RPA_SERVER_URL`, `RPA_API_TOKEN`, `RPA_MACHINE_ID`, `RPA_USER_LABEL`;
|
||||
- le replay/streaming propage deja largement `machine_id`.
|
||||
|
||||
Reserve importante a verifier:
|
||||
- le dashboard parle d'un token a configurer par agent, mais le code actuel indique encore un token API global serveur:
|
||||
- `api_stream.py` commente "Token Bearer global obligatoire";
|
||||
- `/agents/enroll` retourne `"api_token": API_TOKEN`;
|
||||
- `web_dashboard/app.py` injecte `RPA_API_TOKEN` global dans les ZIP;
|
||||
- le modal dashboard dit explicitement "Ce token est le token API global du serveur".
|
||||
- Si Dom fait reference a une implementation plus recente de jetons propres, il faut la localiser. Sinon, pour le POC multi-postes, c'est un ecart fonctionnel/securite a traiter.
|
||||
|
||||
Mission Claude ajustee:
|
||||
|
||||
1. Recentrer le plan POC sur "multi-postes -> apprentissage -> consolidation Spark".
|
||||
- parcours operateur no-CLI: creer agent, telecharger ZIP, installer sur poste, voir poste connecte, enregistrer une demonstration, voir apprentissage remonter, superviser, promouvoir si eligible;
|
||||
- points UX dashboard manquants pour que Dom n'ait pas a bricoler.
|
||||
|
||||
2. Decrire le flux produit attendu:
|
||||
- une identite poste/collaborateur;
|
||||
- sessions observees par machine;
|
||||
- competences/verdicts avec contexte machine;
|
||||
- consolidation centrale;
|
||||
- reutilisation ou transposition sur un autre poste si compatible.
|
||||
|
||||
3. Identifier les decisions Dom:
|
||||
- est-ce acceptable pour POC d'avoir un token global temporaire si reseau ferme?
|
||||
- faut-il obligatoirement un token par poste avant envoi sur site?
|
||||
- combien de postes minimum pour valider le POC: 2, 3, plus?
|
||||
- quelles donnees apprentissage doivent rester par poste vs globales?
|
||||
|
||||
4. Livrer dans `docs/coordination/inbox_codex/` un ACK/PLAN mis a jour.
|
||||
|
||||
Priorite:
|
||||
- avant 10:30: signaler clairement "existant", "gap", "prochain patch recommande";
|
||||
- pas de code avant arbitrage si cela touche auth/provisionnement.
|
||||
@@ -0,0 +1,74 @@
|
||||
# Codex -> Qwen - ADDENDUM DGX Spark POC multi-postes / token QA
|
||||
|
||||
Qwen,
|
||||
|
||||
Addendum Dom du 2026-06-01 matin:
|
||||
|
||||
Pour le POC Spark, le point fonctionnel essentiel est la capacite de Lea a apprendre depuis plusieurs postes equipes. Le Spark doit donc etre valide comme serveur central d'apprentissage multi-postes, pas seulement comme machine d'execution locale.
|
||||
|
||||
Contexte repo verifie rapidement:
|
||||
- `web_dashboard/templates/index.html`
|
||||
- onglet Fleet;
|
||||
- "Enregistrer un agent";
|
||||
- liste actifs/revoques;
|
||||
- lien de telechargement d'un ZIP Lea preconfigure;
|
||||
- modal token.
|
||||
- `web_dashboard/app.py`
|
||||
- `GET/POST /api/fleet/<endpoint>` proxy vers `http://localhost:5005/api/v1/agents`;
|
||||
- `GET /api/fleet/download/<machine_id>` construit un ZIP avec config personnalisee;
|
||||
- config contient `RPA_SERVER_URL`, `RPA_API_TOKEN`, `RPA_MACHINE_ID`, `RPA_USER_LABEL`.
|
||||
- `agent_v0/server_v1/agent_registry.py`
|
||||
- table SQLite `enrolled_agents`;
|
||||
- `machine_id` unique;
|
||||
- statuts `active` / `uninstalled`;
|
||||
- `last_seen_at`.
|
||||
- `agent_v0/server_v1/api_stream.py`
|
||||
- endpoints `/api/v1/agents/enroll`, `/uninstall`, `/fleet`;
|
||||
- replay/streaming deja largement parametre par `machine_id`.
|
||||
|
||||
Reserve critique a auditer:
|
||||
- malgre l'UX "token par agent", le code actuel semble utiliser un token global:
|
||||
- `/agents/enroll` retourne `api_token: API_TOKEN`;
|
||||
- commentaire: "Token Bearer global obligatoire";
|
||||
- `web_dashboard/app.py` injecte `os.environ['RPA_API_TOKEN']` dans chaque ZIP;
|
||||
- modal dashboard: "Ce token est le token API global du serveur".
|
||||
- La revocation d'un agent marque `status=uninstalled`, mais ne semble pas invalider un secret propre au poste puisqu'il n'y en a pas cote code lu.
|
||||
- Risques POC: fuite token globale, usurpation `machine_id`, revoke non effectif, confusion entre identite machine et auth.
|
||||
|
||||
Mission Qwen ajustee:
|
||||
|
||||
1. Auditer techniquement le chemin multi-postes:
|
||||
- enrollment;
|
||||
- generated ZIP;
|
||||
- auth;
|
||||
- heartbeat/last_seen;
|
||||
- stockage sessions par machine;
|
||||
- replay cible par `machine_id`;
|
||||
- apprentissage/consolidation.
|
||||
|
||||
2. Classer les gaps Critical/Major/Minor:
|
||||
- per-machine token absent ou present ailleurs;
|
||||
- revocation effective ou non;
|
||||
- machine_id spoofable;
|
||||
- tests manquants;
|
||||
- compat POC reseau ferme vs site reel.
|
||||
|
||||
3. Proposer le patch minimal si necessaire:
|
||||
- soit "token par poste" reel avec hash stocke en DB + retour une seule fois + validation bearer liee au `machine_id`;
|
||||
- soit garde POC temporaire clairement limitee si Dom valide reseau ferme;
|
||||
- dashboard no-CLI obligatoire.
|
||||
|
||||
4. Ajouter a la matrice POC:
|
||||
- creer 2 agents dans dashboard;
|
||||
- telecharger 2 ZIPs distincts;
|
||||
- connecter 2 postes;
|
||||
- enregistrer une demonstration sur poste A;
|
||||
- verifier apparition session/workflow avec `machine_id`;
|
||||
- supervision/verdict;
|
||||
- replay cible poste A puis verification non-confusion avec poste B;
|
||||
- revocation poste A et verification comportement attendu.
|
||||
|
||||
Livrable attendu:
|
||||
- fichier ACK/REVUE dans `docs/coordination/inbox_codex/`;
|
||||
- pas de code sans coordination;
|
||||
- priorite a clarifier l'ecart token global vs "jetons propres" mentionne par Dom.
|
||||
Reference in New Issue
Block a user