Closes #ISSUE-027-REGIME-UI - Implement regime indicator badge and dynamic meta-learner threshold

This commit is contained in:
Antigravity Agent
2026-06-17 19:59:37 +02:00
parent dcb59c17f0
commit 1dc637aaf6
11 changed files with 103 additions and 26 deletions

View File

@@ -168,6 +168,7 @@ export default function CryptoDemo() {
const [trackers, setTrackers] = useState<TrackersMap>({});
const [ensemblePredictions, setEnsemblePredictions] = useState<any>(null);
const [loadingEnsemble, setLoadingEnsemble] = useState(false);
const [activeRegime, setActiveRegime] = useState<number | null>(null);
const [isShieldActive, setIsShieldActive] = useState(true);
const [coins, setCoins] = useState<Record<string, CoinData>>(defaultCoins);
const [feedbackFilterAsset, setFeedbackFilterAsset] = useState<'BTC' | 'ETH' | 'SOL'>('BTC');
@@ -235,6 +236,7 @@ export default function CryptoDemo() {
const data = await res.json();
setEnsemblePredictions(data.predictions || null);
setIsShieldActive(data.isShieldActive !== undefined ? data.isShieldActive : true);
setActiveRegime(data.activeRegime !== undefined ? data.activeRegime : null);
}
} catch (err) {
console.error("Failed to load ensemble predictions:", err);
@@ -947,6 +949,25 @@ export default function CryptoDemo() {
</button>
</div>
<div className="flex items-center gap-3">
{rightColTab === 'radar' && activeRegime !== null && (
<>
{activeRegime === 1 && (
<span className="flex items-center gap-1.5 px-3 py-1.5 rounded-lg bg-emerald-500/10 border border-emerald-500/20 backdrop-blur-md text-xs font-semibold text-emerald-400">
<span>🟢</span> REGIME: CALM (MICROSTRUCTURE MODE)
</span>
)}
{activeRegime === 2 && (
<span className="flex items-center gap-1.5 px-3 py-1.5 rounded-lg bg-rose-500/10 border border-rose-500/30 backdrop-blur-md text-xs font-semibold text-rose-450 animate-pulse">
<span className="animate-bounce">🚨</span> REGIME: TURBULENT (LIQUIDATION CASCADE)
</span>
)}
{activeRegime === 3 && (
<span className="flex items-center gap-1.5 px-3 py-1.5 rounded-lg bg-amber-500/10 border border-amber-500/20 backdrop-blur-md text-xs font-semibold text-amber-400">
<span>🟡</span> REGIME: MEAN-REVERTING CHURN
</span>
)}
</>
)}
{rightColTab === 'radar' && (
<button
onClick={() => setShowRadarExplanation(!showRadarExplanation)}