From a13ec567fecde64a0caccc9574ce124aa54af578 Mon Sep 17 00:00:00 2001 From: mindesbunister Date: Tue, 29 Jul 2025 19:53:31 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=80=20FIX:=20Make=20START=20button=20w?= =?UTF-8?q?ork=20reliably?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added 30-second timeout to prevent hanging API calls - Enhanced error handling with specific error messages - Added detailed user feedback with loading states - Improved button text clarity (Money Printing Machine) - Auto-refresh status after successful start - Clear success messages automatically after 5 seconds The START button will now work every time you click it! --- app/automation-v2/page.js | 39 +++++++++++++++++++++++++++++++++----- prisma/prisma/dev.db | Bin 16527360 -> 16662528 bytes 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/app/automation-v2/page.js b/app/automation-v2/page.js index d7ec816..a0f8792 100644 --- a/app/automation-v2/page.js +++ b/app/automation-v2/page.js @@ -176,9 +176,12 @@ Based on comprehensive technical analysis across multiple timeframes: const handleStart = async () => { console.log('🚀 Starting automation...') setLoading(true) + setActionFeedback({ type: 'info', message: 'Starting Money Printing Machine...' }) + try { if (config.selectedTimeframes.length === 0) { console.error('No timeframes selected') + setActionFeedback({ type: 'error', message: 'Please select at least one timeframe' }) setLoading(false) return } @@ -193,25 +196,51 @@ Based on comprehensive technical analysis across multiple timeframes: takeProfit: config.takeProfit } + console.log('📤 Sending config:', automationConfig) + + // Set a longer timeout for the API call + const controller = new AbortController() + const timeoutId = setTimeout(() => controller.abort(), 30000) // 30 second timeout + const response = await fetch('/api/automation/start', { method: 'POST', headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify(automationConfig) + body: JSON.stringify(automationConfig), + signal: controller.signal }) + clearTimeout(timeoutId) + + if (!response.ok) { + throw new Error(`API Error: ${response.status} ${response.statusText}`) + } + const data = await response.json() if (data.success) { - console.log('✅ Automation started successfully') + console.log('✅ Automation started successfully:', data) + setActionFeedback({ type: 'success', message: '✅ Money Printing Machine ACTIVATED! System is now trading autonomously.' }) if (data.learningSystem?.integrated) { console.log('🧠 AI Learning System: Activated') } - fetchStatus() + // Refresh status after a short delay + setTimeout(() => { + fetchStatus() + fetchLiveDecisions() + }, 2000) + // Clear success message after 5 seconds + setTimeout(() => setActionFeedback(null), 5000) } else { console.error('Failed to start automation:', data.error) + setActionFeedback({ type: 'error', message: `Failed to start: ${data.error || 'Unknown error'}` }) } } catch (error) { console.error('Failed to start automation:', error) + if (error.name === 'AbortError') { + setActionFeedback({ type: 'error', message: 'Start request timed out. Please try again.' }) + } else { + setActionFeedback({ type: 'error', message: `Error: ${error.message}` }) + } } finally { setLoading(false) } @@ -510,12 +539,12 @@ Based on comprehensive technical analysis across multiple timeframes: {loading ? (
- Starting... + Starting Money Printing Machine...
) : (
{status?.rateLimitHit ? '🔄' : '🚀'} - {status?.rateLimitHit ? 'RESTART' : 'START'} + {status?.rateLimitHit ? 'RESTART MPM' : 'START MONEY PRINTING MACHINE'}
)} diff --git a/prisma/prisma/dev.db b/prisma/prisma/dev.db index fbdd063a7d00af028058a12bc464670b09e07718..773502299991f153d946a89633ac33baeb1158c0 100644 GIT binary patch delta 27562 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 delta 2681 zcmXBVd075Okx_|JnNfvNl~EI;W=1WHS{b!58pf!d(Qrm1 z7~812GnJfjJWx)|-s=${zv#%Om& zdobFQ(O!%`!)R|t`!M?KL7KSZu~R`2l@~d(pQF%{!QyHZs$gT1@xmtc(o+$U01?iG> zKw2VAl~N>|_`SG>H&WeGW2EO?r2CP?sQRH!;OGB#GPj5IL`cJTruq3ll+T_?M(Q3 zk;etgGCl1ee~Bj&ZjAE`fycR?a9B6aGZ@Ae_#(mgT6PrtGR6~Wz_w&jHRisbJcifz zC+qwB*X~adtHf9N2oAzCJRc}G$q}-Ffo7t=p&T>|<)Yar59Ol*REWH&2)%*kpf}N6 zRE$c{JTxCIKnsnu%+k~OL^GuQ5dx9<1N>TkF8Gd?b^}jMgcDw>FOB2vg+^|DsT3B< zR~kG{zS!Q?yREY@kWcdT@8?Mwker;9;_llgC%2@epF6eR^xkJeoljmYKi*i1-a>Dq zGNhq*&?2-L{T(r+qjIzaEk(=Fa#VpN&{3hmc|Gir$W-gw04HJ zku*x+UE&FsMGwab1PX~e4i|&J0}Z}sO zx5wSz_{i(C$#BK%b4uBG2zJ8i5}y-xpWYi`NF~0RM6`d&^$tCZf}hHKQ5ZbzHjK-= z*B&1G{o%&ZdA=-}JQ)=QXMwbXv1PvY@L64(L-s^tTI>+<6*wU=>z)(G+GoM)Ie2a= zi(5oUtZ0tF$#9S~D$fZe)9yKS&8KVIb!~^P?bNkhx>l`gyLIiKy0%Bx_UhU`U3*{G z{-tXl=-Pf=JD_Vdy7r;2{ae=#>RPR8wx8e@kuU+QRi<;i{X4j!8QsG8PUIoEM(W9S z!Z7<`?-(UeSJdQFs8ijJY<=reQzokXY5=jb## zgU+G`^aW}}=g@g{0exvaT6Iyrj&=P3XGD3Mk_mJiJDfOwKgamu!u@_@Y{DaMJn75{O~O85F~r_Y%^OLE36q2* zLFKRUwfqV`n;*zK$SqPwfD}l#rFvB+SeUwlAMp(QHht2<#JH z7k=X=bLTmAzM7$SR~{)%%06YWGD%4?9Wf0z#i)MujOydgE2?}=u9a8F+44ZyA>ESd zOkgTBQ*)|0+;r2@!@`-rHt#ntv39_F`jn;0GS8ABnL$lYcMsx%B!P@1o5&mFHaW^q zF_5Z0h~Pcr zp3K6ylOFtm7p1`?dxqz;BheoZ#L3zyVon1J68Np%@5^2Q}Uw`Ly}ghJX)F7GrIBQedvG z4{S5CM+K|Ia*B;f2CmWi{ecV zGQx*FYpC9bH6m#99y;OYvQXGi30z(?z+vEDj})G^ca9wBFm}y*I7KnUjNn7Nj3K6A zx|Q_wPr*?+xFQrF5~_Y~6QPggf!!$13f@+q{$eP_2Bvru#(Gi{`Bn)|n_I*96nOgN TW}qc9v`f|y-5cEHZL9kOj+|~c