|
All checks were successful
deploy / deploy (push) Successful in 52s
Same pattern as the raw quotes fix (previous commit), now extended to all detail tables: swap_demand_events, trade_decisions, execute_trade_commands, trade_execution_results, quote_outcome_attributions. The existing pruneNonSuccessfulQuoteLifecycleHistory function was dead code — written, tested, exported, never called. Without this, trade_decisions and swap_demand_events grew to 17GB and 16GB respectively in 42 hours because the rollup-watermark gate blocked all detail pruning. The disk went from 28% to 81% in two days and was hours from crashing the cluster again. Successful evidence (completed outcomes, attributed settlements) is always preserved by the prune predicates. Only non-successful detail older than the retention window is pruned. Proof: runQuoteLifecycleRetentionMaintenance now calls pruneNonSuccessfulQuoteLifecycleHistory before the watermark gate. All 313 tests pass. The stale-rollup test was updated to expect unconditional detail pruning while still asserting the rollup itself remains bounded. Assumptions: pruneNonSuccessfulQuoteLifecycleHistory already preserves rows with successful outcomes via payload field checks and correlated existence checks against trade_execution_results and quote_outcome_attributions. Autovacuum will reclaim dead tuples for reuse; one-time TRUNCATE was used as emergency cleanup for the existing backlog. Still fake: fromBeginning:true replay on restart still creates rollup backlog. local-path PVC sizes are not enforced (platform issue). No disk monitoring (platform issue). Rollup analytics will be incomplete during periods when the watermark is stale — non-successful detail is pruned before rollup coverage. |
||
|---|---|---|
| .. | ||
| config.mjs | ||
| env.mjs | ||
| http.mjs | ||
| market-data.mjs | ||
| postgres.mjs | ||