Conversation
…ST, marquage endpoints deprecated, WebSocket natif uniquement
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
||||||||||||||||||||||||
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
|||||||||||||||||||||||||
PR Code Suggestions ✨Explore these optional code suggestions:
|
||||||||||||
🐛 BUGS CORRIGÉS: **Bug #1 - Double fees TP partiel**⚠️ MOYENNE Fichier: core/position/pnl_calculator.py:131-137 Problème: Fees calculés sur size totale même avec TP partiel - Fees entrée partie vendue payés 2× (TP partiel + clôture) - Fees sur-estimés, PnL net sous-estimé Fix: Calcul fees uniquement sur size_remaining si partial_tp_sold Impact: PnL net plus précis pour positions avec TP partiel **Bug #3 - Race condition config_updated** 🟡 MOYENNE Fichier: frontend/src/lib/components/VariablesPanel.svelte:534-540 Problème: Modifications user écrasées par backend pendant debounce - User édite → timer 2.5s démarre - Backend émet config_updated → timer annulé, valeurs écrasées - User perd ses modifications non sauvegardées Fix: Ignorer config_updated si hasUnsavedChanges && debounceTimer Impact: Modifications utilisateur protégées **Bug #5 - Comparaisons float == 0** 🟢 FAIBLE Fichier: core/callbacks/scanner_loop.py:257, 265, 287 Problème: Comparaisons exactes (== 0) sur floats peu robustes - Floats peuvent être 0.0000001 au lieu de exactement 0.0 - Spread/depth invalides non détectés Fix: Remplacé == 0 par <= 0 (plus robuste) Impact: Meilleure détection valeurs invalides **Bug #6 - Format durée > 24h** 🟢 FAIBLE Fichier: frontend/src/lib/components/PositionCard.svelte:34-47 Problème: Positions > 24h affichées "25h 30m 15s" (illisible) Fix: Ajout support jours → "1j 1h 30m" Impact: Meilleure lisibilité positions longues **Bug #7 - NaN formatters** ✅ DÉJÀ CORRIGÉ Fichier: frontend/src/lib/utils/format.js Statut: formatPercent/formatUSDT gèrent déjà isNaN() Aucune modification nécessaire 📊 RÉSUMÉ: - 4 bugs corrigés - 1 bug déjà géré - 4 fichiers modifiés - 0 régression introduite ✅ Tests recommandés: - Position avec TP partiel → vérifier fees corrects - Éditer variable pendant que backend update → vérifier pas écrasé - Position ouverte > 24h → vérifier format "Xj Yh Zm"
User description
…ST, marquage endpoints deprecated, WebSocket natif uniquement
PR Type
Enhancement, Refactoring
Description
Mark REST API endpoints as deprecated with WebSocket alternatives
Remove REST API fallbacks from frontend components
Enforce WebSocket-only communication throughout application
Simplify error handling by eliminating dual-path code logic
Diagram Walkthrough
File Walkthrough
main.py
Mark REST endpoints deprecated, WebSocket native onlymain.py
/api/state,/api/start,/api/stop,/api/scanner/start,/api/position/close,/api/log/config,/api/config/update)deprecated endpoint
add_log()function to use WebSocket native only instead ofdual SocketIO + WebSocket support
deprecated
BotControls.svelte
Remove REST fallbacks, enforce WebSocket commandsfrontend/src/lib/components/BotControls.svelte
startBot()andstopBot()functions
sendCommandViaWS()unavailable instead of silently falling back
PositionCard.svelte
Simplify position closing to WebSocket onlyfrontend/src/lib/components/PositionCard.svelte
closePosition()functionsendCommandViaWS()SettingsPanel.svelte
Remove REST fallbacks from settings synchronizationfrontend/src/lib/components/SettingsPanel.svelte
loadConfig()functionupdateSetting()functionVariablesPanel.svelte
Migrate variables panel to WebSocket-only communicationfrontend/src/lib/components/VariablesPanel.svelte
sendRequestViaWS()inloadConfig()functionsaveConfig()functionlogConfigChange()function+page.svelte
Enforce WebSocket-only state management in main pagefrontend/src/routes/+page.svelte
changeTpSlMode()functionloadInitialState()functionfalling back to REST