Dom
7df51d2c79
snapshot: WIP 5j replay reliability (B1 watchdog + dialog handlers + grounding drift)
...
Snapshot avant correction du blocage relance Léa (3 incidents 24h: SSH refusé,
polls morts ×2). Point de rollback stable.
Contenu:
- agent_v1/core/executor.py: 5 patchs dialog handling (saveas drift, close_tab
hotkey fallback, confirm_save Unicode apostrophe, foreground dialog
recontextualization, runtime_dialog in-loop) + helpers normalize_window_hint,
requires_post_verify_window_transition
- agent_v1/core/grounding.py: garde drift template fix (fallback_x/y plumbed)
- server_v1/replay_watchdog.py (NEW): orphan watchdog B1, scan 10s timeout 30s
- server_v1/api_stream.py: dispatched_action plumbing, watchdog lifespan,
metrics endpoint
- server_v1/replay_engine.py: _schedule_retry préserve original_action +
dispatched_action
- stream_processor.py: gardes _infer_tab_switch_target (no false switch_tab
on save_as dialog open) + _attach_expected_window_before
- tests/integration: test_replay_watchdog.py (8 cas), test_stream_processor.py
- tests/unit: test_executor_verify_window_guard.py (start_button, close_tab,
runtime_dialog, post_verify, transition fallbacks)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 16:48:37 +02:00
Dom
4f61741420
feat: journée 17 avril — tests E2E validés, dashboard fleet+audit, VWB bridge, cleaner C2
...
security-audit / Bandit (scan statique) (push) Successful in 14s
security-audit / pip-audit (CVE dépendances) (push) Successful in 10s
security-audit / Scan secrets (grep) (push) Successful in 8s
tests / Lint (ruff + black) (push) Successful in 13s
tests / Tests unitaires (sans GPU) (push) Failing after 14s
tests / Tests sécurité (critique) (push) Has been skipped
Pipeline E2E complet validé :
Capture VM → streaming → serveur → cleaner → replay → audit trail
Mode apprentissage supervisé fonctionne (Léa échoue → humain → reprise)
Dashboard :
- Cleanup 14→10 onglets (RCE supprimée)
- Fleet : enregistrer/révoquer agents, tokens, ZIP pré-configuré téléchargeable
- Audit trail MVP (/audit) : filtres, tableau, export CSV, conformité AI Act/RGPD
- Formulaire Fleet simplifié (nom + email, machine_id auto)
VWB bridge Léa→VWB :
- Compound décomposés en N steps (saisie + raccourci visibles)
- Layout serpentin 3 colonnes (plus colonne verticale)
- Badge OS 🪟 /🐧 , filtre OS retiré (admin Linux voit Windows)
- Fix import SQLite readonly
Cleaner intelligent :
- Descriptions lisibles (UIA/C2) + détection doublons
- Logique C2 : UIElement identifié = jamais parasite
- Patterns parasites resserrés
- Message Léa : "Je n'y arrive pas, montrez-moi comment faire"
Config agent (INC-1 à INC-7) :
- SERVER_URL + SERVER_BASE unifiés
- RPA_OLLAMA_HOST séparé
- allow_redirects=False sur POST
- Middleware réécriture URL serveur
CI Gitea : fix token + Flask-SocketIO + ruff propre
Fleet endpoints : /agents/enroll|uninstall|fleet + agent_registry SQLite
Backup : script quotidien workflows.db + audit
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-17 17:46:40 +02:00
Dom
a9a99953dd
fix(agent): Lea.bat kill par PID + LeaServerClient URL
...
- Lea.bat ne tue plus TOUS les pythonw.exe du poste (Jupyter, Spyder)
Kill ciblé uniquement sur le PID lu dans lea_agent.lock
- LeaServerClient utilise RPA_SERVER_URL (HTTPS prod) au lieu de
hardcode http://:5005
- Normalisation du slash final de l'URL
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-14 16:48:09 +02:00
Dom
a92d04621a
refactor: nettoyage agent + fix SomEngine review (singleton partagé, cache, thread-safe)
...
Nettoyage Windows agent :
- Suppression lea_ui inutilisés (chat_widget, overlay, styles, etc. — -1991 lignes)
- Suppression window_info*.py dupliqués (racine + core/ — -494 lignes)
- build/ + dist/ supprimés (48 MB PyInstaller abandonné, gitignorés)
Fix SomEngine (review quality guardian) :
- Singleton GPU partagé via get_shared_engine() (1 instance au lieu de 2)
- Thread-safe avec threading.Lock (double-checked locking)
- Cache SomResult par screenshot_id (max 50, évite YOLO+OCR redondants)
- Fuite fichier temp docTR corrigée (finally block)
- Chemin YOLO configurable via SOM_YOLO_WEIGHTS env var
- Guard som_image None avant VLM
- Match texte partiel : len(label) >= 3
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-31 10:04:27 +02:00
Dom
647aa610fd
feat: popup VLM double-appel, auth Bearer partout, texte AZERTY corrigé
...
- Popup handling via double appel VLM (détection + localisation précise du bouton)
- Reconstruction texte depuis raw_keys (numpad /, @ AltGr fusionné)
- Clipboard paste pour texte riche, raw_keys pour commandes simples (Win+R)
- Skip des release orphelins dans raw_keys (fix menu Démarrer parasite)
- Auth Bearer sur toutes les requêtes agent → streaming server
- Endpoints /replay/next et /stream/image publics (agent Rust legacy)
- alt_gr ajouté dans _MODIFIER_ONLY_KEYS
- _key_combo_printable_char détecte ctrl+@ comme caractère imprimable
- start.bat tue les anciens process (python + rpa-agent) au démarrage
- Heartbeat avec token Bearer dans main.py et deploy/
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-30 16:45:09 +02:00
Dom
ae65be2555
chore: ajouter agent_v0/ au tracking git (était un repo embarqué)
...
Suppression du .git embarqué dans agent_v0/ — le code est maintenant
tracké normalement dans le repo principal.
Inclut : agent_v1 (client), server_v1 (streaming), lea_ui (chat client)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 11:12:23 +01:00