feat: smart systray Léa (plyer), preflight GPU, fix tests, support qwen3-vl

- Smart systray (pystray+plyer) remplace PyQt5 : notifications toast,
  menu dynamique avec workflows, chat "Que dois-je faire ?", icône colorée
- Preflight GPU : check_machine_ready() + @pytest.mark.gpu dans conftest
- Correction 63 tests cassés → 0 failed (1200 passed)
- Tests VWB obsolètes déplacés vers _a_trier/
- Support qwen3-vl:8b sur GPU (remplace qwen2.5vl:3b)
  - fix images < 32x32 (Ollama panic)
  - fix force_json=False (qwen3-vl incompatible)
  - fix temperature 0.1 (0.0 bloque avec images)
- Fix captor Windows : Key.esc, _get_key_name()
- Fix LeaServerClient : check_connection, list_workflows format
- deploy_windows.py : packaging propre client Windows
- VWB : edges visibles (#607d8b) + fitView automatique

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dom
2026-03-16 22:25:12 +01:00
parent cf495dd82f
commit ad15237fe0
36 changed files with 432 additions and 8103 deletions

View File

@@ -153,10 +153,15 @@ function App() {
targetHandle: 'top',
type: 'smoothstep',
animated: false,
style: { strokeWidth: 2 },
style: { stroke: '#607d8b', strokeWidth: 2 },
});
}
setEdges(newEdges);
// Ajuster la vue pour afficher tous les nœuds après le rendu
setTimeout(() => {
reactFlowInstance.fitView({ padding: 0.15, duration: 300 });
}, 50);
}
// Sinon : les edges existantes sont conservées (connexions manuelles préservées)
};
@@ -360,7 +365,7 @@ function App() {
...connection,
type: 'smoothstep',
animated: false,
style: { strokeWidth: 2 },
style: { stroke: '#607d8b', strokeWidth: 2 },
},
eds
)

View File

@@ -1097,7 +1097,7 @@ body {
}
.react-flow__edge-path {
stroke: var(--border);
stroke: #607d8b;
stroke-width: 2;
cursor: pointer;
}