From d6dff9028893eedb57c2f1f59942d0274c99c4e2 Mon Sep 17 00:00:00 2001 From: mindesbunister Date: Sun, 27 Jul 2025 14:09:51 +0200 Subject: [PATCH] feat: enhance persistent learning data system with improved automation status detection - Updated persistent status API to check both automation singleton status and learning status - Enhanced automation detection to check isActive, isRunning, and learning system enabled states - Improved live status indicators for better real-time automation state tracking - Persistent data now correctly shows when automation is active vs historical data display - Maintains comprehensive trading statistics display even when automation is stopped --- app/api/learning/persistent-status/route.js | 5 +++-- prisma/prisma/dev.db | Bin 4009984 -> 4042752 bytes 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/api/learning/persistent-status/route.js b/app/api/learning/persistent-status/route.js index 861d0ad..9d0d7b1 100644 --- a/app/api/learning/persistent-status/route.js +++ b/app/api/learning/persistent-status/route.js @@ -64,6 +64,7 @@ export async function GET() { // Get current automation status if available let currentStatus = null; + let learningStatus = null; try { const { getAutomationInstance } = await import('../../../../lib/automation-singleton.js'); const automation = await getAutomationInstance(); @@ -72,7 +73,7 @@ export async function GET() { // If automation has learning status, get it too if (typeof automation.getLearningStatus === 'function') { - const learningStatus = await automation.getLearningStatus(); + learningStatus = await automation.getLearningStatus(); if (learningStatus && learningStatus.report) { // Update some data from current learning status persistentData.lastUpdated = new Date().toISOString(); @@ -88,7 +89,7 @@ export async function GET() { success: true, persistentData: { ...persistentData, - isLive: currentStatus?.isActive || false, + isLive: currentStatus?.isActive || currentStatus?.isRunning || learningStatus?.enabled || false, currentRunTime: currentStatus?.startTime || null, enhancedSummary: { totalDecisions: persistentData.learningDecisions, diff --git a/prisma/prisma/dev.db b/prisma/prisma/dev.db index a3357d72687b3620017ebf03dd8de2c1712cd979..2c7f048e491d97be607a156235faacf9e6fdd2e4 100644 GIT binary patch delta 7821 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 T3!&&Hyrw;{XfF%0MSK4TDw-f3 delta 1219 zcmX}qe{2&~902fpckkNXt-b3(*%-rZtP?xNV6aJ#yB0PefiMh{48F5}hK(KSl;5V&ac%iD(Q0Wo`-sr{8JfOFozHd-vY= z`^~$H^!-61eS;*HA)e+q;p#itbIIxLm7SHObziPa@o>0!PW@3mr~IlOP;1m>>U7nq zTvQG!FDWI8N14QYG4iPk%8p3|P!cC;P&m(^p!y8eMt{P?v8HOnM=^L6`bYHf&@-TG zqti0zK2n?pZ|(QH*@Zaa$;7oAUI}zmPE;R5H0CTxMWGQrN4!K;S1rIpfcwXN#L;@mjkDoNhZu_ zk;1I>5cz;G?D(uqUnepFcS5@5uy@!S$xc$mMiSCtar8_aE_Y~^(0(N)6_$2rxv;mH zJWVr&xjc05NJ+0xFbT;h1v!xmDM)1r=B~I)H}Nw$a3-|t!on0EOD41w0(&xw=lq+q z9&@5GXe{!eaVQm~q46jkO+XoFB6%wU#qv0 zIa8KFRKr>MhDn^g8 zqbFyrX`!pQuQ|v}>aqF*<$iXcTwnM8N-39nj_c(F#qpsd;&{?A%^}*qx1X`^wy(D9 zcGdQ??Y!+>+XmY_Te_GOzv8d+pYV+dX=E!QLm}({%UW(~uxD6Lhtvmp52*R3o2LWNeGmU@TRfn$1^0BFz;VNL!<+Z@MmYOoK!g25 zcpw@!#=wz5+-RH+sJz$!{o4$j+zhBNuoia!!$mq+C&Rm^FjSz z#W^s!8h70aVMBX=C{|(78%8a>az~#7t;6~ymi4FZ;bG*Co)5j-a8FqsK5o|;+J8ma zHLSBBY|MufwHVDG(&xjhW!UjAL%N?p-=H4YG5aHfglt%F74gCHknxOLOo$CML>JL) z;jYjtw1I4y6_jw?x3IXy%!Q^!!N-_cZM@8b`;?i4&%)SZB5d4%4Q-|mb`AT-vTtgP z_XHMcGh?=B#OR8cG@Gs@Te#6&t0Au>_*A2o?1B|7<~X*uG`LxU#NuEYOpg