unrip/test
philipp 5e6555d0ae
All checks were successful
deploy / deploy (push) Successful in 1m43s
fix: prune raw quotes unconditionally when rollup watermark is stale
The raw_near_intents_quotes table (83GB on a 10Gi PVC) was never pruned
because the only pruning path in runQuoteLifecycleRetentionMaintenance
was gated behind the rollup-watermark check. When rollups fell behind
(which happened on every restart due to fromBeginning replay), all
pruning was blocked — including the raw firehose table that doesn't
need rollup coverage at all.

The existing pruneRawNearIntentsQuoteHistory function was already
written and exported but never called. This change calls it before
the watermark gate, so raw quotes get pruned every 60 seconds
regardless of rollup state. Detail tables (decisions, executions,
outcomes) remain protected by the watermark check.

Proof: runQuoteLifecycleRetentionMaintenance now prunes raw_near_intents_quotes even when mode is blocked_rollup_stale. All 313 tests pass. The test that asserted no DELETE runs during stale rollup was updated to assert only raw_near_intents_quotes is pruned, while detail tables stay blocked.

Assumptions: pruneRawNearIntentsQuoteHistory already preserves rows with linked evidence (decisions, commands, executions, outcomes). Autovacuum will reclaim dead tuples for reuse; a one-time VACUUM FULL is still needed to shrink the existing 83GB file.

Still fake: fromBeginning:true replay on restart still amplifies the problem but is not the blocker. local-path PVC sizes are not enforced (platform issue). No disk monitoring (platform issue).
2026-06-20 14:17:44 +02:00
..
alert-engine.test.mjs Implement pair-native trade semantics 2026-05-18 18:52:18 +02:00
alert-notifier.test.mjs Implement runtime health sentinel and angry dashboard 2026-04-08 19:35:07 +02:00
armed-state-store.test.mjs Persist armed state across rollout 2026-04-03 20:08:10 +02:00
bootstrap_script_static_test.py Recreate topic bootstrap job during deploy 2026-05-18 21:09:02 +02:00
bridge-assets.test.mjs Use bridge deposit time for funding activity 2026-05-07 16:47:52 +02:00
config-assets.test.mjs Move trading config into Postgres 2026-05-12 21:34:58 +02:00
deploy-workflow-static.test.mjs Recreate topic bootstrap job during deploy 2026-05-18 21:09:02 +02:00
environment-status-history.test.mjs Persist NEAR status changes only 2026-04-17 14:34:10 +02:00
executor-command-expiry.test.mjs Restore live trading under quote pressure 2026-05-18 12:51:25 +02:00
executor-queue-delay.test.mjs Remove verifier salt refresh from executor hot path 2026-06-12 18:00:03 +02:00
executor-state-store.test.mjs Restore live trading under quote pressure 2026-05-18 12:51:25 +02:00
funding-observations.test.mjs Track nBTC reserve and legacy BTC asset 2026-05-07 16:06:26 +02:00
history-writer-refresh-config.test.mjs Move trading config into Postgres 2026-05-12 21:34:58 +02:00
history-writer-refresh-policy.test.mjs Use bridge deposit time for funding activity 2026-05-07 16:47:52 +02:00
history-writer-static.test.mjs Persist quote lifecycle statistics 2026-06-12 20:02:09 +02:00
intent-request-outcomes.test.mjs Implement pair-native trade semantics 2026-05-18 18:52:18 +02:00
intent-requests.test.mjs Fix pair-native runtime validation gaps 2026-05-18 19:44:54 +02:00
inventory-and-history.test.mjs Retain quote lifecycle statistics across pruning 2026-06-13 14:04:20 +02:00
inventory-sync-static.test.mjs Fix inventory refresh error logging 2026-05-13 13:22:31 +02:00
json-state-store.test.mjs Fix shared state persistence 2026-04-02 10:13:25 +02:00
kafka-topics.test.mjs Ensure Kafka topics before use 2026-04-17 14:39:14 +02:00
legacy-schema-compat.test.mjs Fix live ops regressions 2026-04-02 10:07:54 +02:00
liquidity-state.test.mjs Keep funding addresses refreshing without token list 2026-05-13 15:43:37 +02:00
liquidity-supported-tokens.test.mjs Keep funding addresses refreshing without token list 2026-05-13 15:43:37 +02:00
liquidity-withdrawals.test.mjs Track nBTC reserve and legacy BTC asset 2026-05-07 16:06:26 +02:00
maker-timing-competitiveness.test.mjs Expose maker edge competitiveness 2026-05-19 15:45:30 +02:00
market-data.test.mjs Add BTC USDC price route 2026-05-13 15:18:38 +02:00
near-intents-status.test.mjs Ignore scoped HOT bridge quoting incidents 2026-05-11 21:02:26 +02:00
near-intents-ws.test.mjs Guard quote ingest against node OOM 2026-05-13 18:25:54 +02:00
notification-client.test.mjs Notify on durable fund and trade outcomes 2026-04-16 14:23:29 +02:00
notification-layer.test.mjs Publish startup settlement ntfy notifications 2026-06-12 15:14:14 +02:00
ntfy_manifest_test.py Notify on durable fund and trade outcomes 2026-04-16 14:23:29 +02:00
operator-dashboard-api-client.test.mjs Fix dashboard auth JSON handling 2026-05-18 13:45:01 +02:00
operator-dashboard-app-static.test.mjs Persist quote lifecycle statistics 2026-06-12 20:02:09 +02:00
operator-dashboard-dev-script.test.mjs fix: scope inventory fetch by submission time window to prevent OOM 2026-06-16 17:17:19 +02:00
operator-dashboard-public-ingress-static.test.mjs Expose operator dashboard with basic auth 2026-05-13 18:08:27 +02:00
operator-dashboard-ui-static.test.mjs Make quote statistics refresh set based 2026-06-14 12:23:43 +02:00
operator-dashboard.test.mjs fix: backfill gross edge pct in outcomes and add fallback in UI 2026-06-17 14:22:57 +02:00
ops-sentinel-static.test.mjs Remove verifier salt refresh from executor hot path 2026-06-12 18:00:03 +02:00
portfolio-metrics.test.mjs Implement pair-native trade semantics 2026-05-18 18:52:18 +02:00
postgres-funding.test.mjs Use bridge deposit time for funding activity 2026-05-07 16:47:52 +02:00
postgres-intent-requests.test.mjs Fix late settlement ntfy notifications 2026-06-12 15:11:25 +02:00
postgres-quote-lifecycle-statistics.test.mjs Tolerate concurrent stats index creation 2026-06-14 21:00:28 +02:00
postgres-quote-outcomes-refresh.test.mjs fix: backfill gross edge pct in outcomes and add fallback in UI 2026-06-17 14:22:57 +02:00
price-route-runtime-static.test.mjs Implement pair-native trade semantics 2026-05-18 18:52:18 +02:00
quote-lifecycle-retention.test.mjs fix: prune raw quotes unconditionally when rollup watermark is stale 2026-06-20 14:17:44 +02:00
quote-lifecycle-statistics.test.mjs Fix quote statistics refresh collapse 2026-06-14 20:56:32 +02:00
quote-outcomes.test.mjs Implement pair-native trade semantics 2026-05-18 18:52:18 +02:00
recent-id-cache.test.mjs Restore live trading under quote pressure 2026-05-18 12:51:25 +02:00
render_release_manifest_test.py Wire push deployment for all services 2026-04-08 21:47:51 +02:00
repo_deployments_test.py Make repo deployment list authoritative 2026-04-08 22:33:59 +02:00
route-rates.test.mjs Implement pair-native trade semantics 2026-05-18 18:52:18 +02:00
runtime-health.test.mjs Remove verifier salt refresh from executor hot path 2026-06-12 18:00:03 +02:00
service-snapshot-summary.test.mjs Remove verifier salt refresh from executor hot path 2026-06-12 18:00:03 +02:00
signing.test.mjs Implement NEAR Intents request creation flow 2026-04-12 18:43:40 +02:00
solver-relay-ws.test.mjs Suppress duplicate relay websocket close errors 2026-04-16 14:36:18 +02:00
strategy-engine-static.test.mjs Enforce maker min notional 2026-05-19 17:06:20 +02:00
strategy-threshold-config.test.mjs Add quote lifecycle retention rollups 2026-06-06 15:50:29 +02:00
strategy.test.mjs Fix maker-side strategy edge semantics 2026-06-12 14:43:30 +02:00
submission-copy.test.mjs Stop calling submissions trades in dashboard 2026-04-09 01:13:14 +02:00
trade-executor-static.test.mjs Remove verifier salt refresh from executor hot path 2026-06-12 18:00:03 +02:00
trading-config.test.mjs Fix maker-side strategy edge semantics 2026-06-12 14:43:30 +02:00
unrip-resource-guardrails-static.test.mjs Restore live trading under quote pressure 2026-05-18 12:51:25 +02:00
verifier-salt-cache.test.mjs Remove verifier salt refresh from executor hot path 2026-06-12 18:00:03 +02:00