From fdde4d9e95eadf9aef22e74290edadb78c547694 Mon Sep 17 00:00:00 2001 From: philipp Date: Sat, 25 Jul 2026 13:32:47 +0200 Subject: [PATCH] Trim dashboard lifecycle detail payload Proof: Production response sampling showed pretty-printed strategy output exceeded the 1.5 MB budget by 23 KB after the prior bound; display-only successful trade details are now capped at 40 while counts and aggregates remain intact. Full npm test and dashboard build pass. Assumptions: The dashboard requires at most the recent successful detail rows for usability; durable candidate selection remains bounded at 50 before linked evidence reads. Still fake: Pod-local query activity and exact all-time submission totals remain unavailable; venue-native fill truth remains limited to retained durable evidence. --- src/core/operator-dashboard.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/operator-dashboard.mjs b/src/core/operator-dashboard.mjs index e1d1ace..a43d030 100644 --- a/src/core/operator-dashboard.mjs +++ b/src/core/operator-dashboard.mjs @@ -1983,7 +1983,7 @@ function buildTradeFunnelSummary(lifecycleRows = []) { no_trade_count: noTradeRows.length, // Keep the dashboard response bounded while retaining the full count and // aggregate estimate from the bounded lifecycle input. - successful_trades: successfulTrades.slice(0, 50), + successful_trades: successfulTrades.slice(0, 40), unresolved_submissions: unresolvedSubmissions.slice(0, 20), no_trade_rows: [], counts,