1- // `loopover-miner purge` (#5564): an explicit, operator-invoked right-to-be-forgotten path across the local
2- // ledgers. Deletes every row for one repo from the four stores that have a real `repoColumn` (claim-ledger,
3- // event-ledger, governor-ledger, prediction-ledger), via each store's own `purgeByRepo` method (which reuses
4- // `store-maintenance.js`'s shared, identifier-guarded `purgeStoreByRepo`). `attempt-log.js` is deliberately
5- // reported as not-purgeable rather than silently skipped or approximated: its payload is a free-form
6- // `Record<string, unknown>` with no dedicated repo column, so a precise per-repo match isn't possible there
7- // without risking false matches -- see store-maintenance.js's own purge-spec doc comment.
1+ // `loopover-miner purge` (#5564, #6599 ): an explicit, operator-invoked right-to-be-forgotten path across the local
2+ // ledgers. Deletes every row for one repo from the six stores that have a real `repoColumn` (claim-ledger,
3+ // event-ledger, governor-ledger, prediction-ledger, portfolio-queue, run-state ), via each store's own
4+ // `purgeByRepo` method (which reuses ` store-maintenance.js`'s shared, identifier-guarded `purgeStoreByRepo`).
5+ // `attempt-log.js` is deliberately reported as not-purgeable rather than silently skipped or approximated: its
6+ // payload is a free-form `Record<string, unknown>` with no dedicated repo column, so a precise per-repo match
7+ // isn't possible there without risking false matches -- see store-maintenance.js's own purge-spec doc comment.
88//
99// Every purge is audit-observable by design (#5564's own acceptance criteria): the real (non-dry-run) path
1010// always prints a per-store summary, even under --json, so a purge can never be silent. A failure in one store
@@ -15,12 +15,16 @@ import { openClaimLedger, resolveClaimLedgerDbPath } from "./claim-ledger.js";
1515import { initEventLedger , resolveEventLedgerDbPath } from "./event-ledger.js" ;
1616import { initGovernorLedger , resolveGovernorLedgerDbPath } from "./governor-ledger.js" ;
1717import { initPredictionLedger , resolvePredictionLedgerDbPath } from "./prediction-ledger.js" ;
18+ import { initPortfolioQueueStore , resolvePortfolioQueueDbPath } from "./portfolio-queue.js" ;
19+ import { initRunStateStore , resolveRunStateDbPath } from "./run-state.js" ;
1820import { resolveAttemptLogDbPath } from "./attempt-log.js" ;
1921import {
2022 CLAIM_LEDGER_PURGE_SPEC ,
2123 EVENT_LEDGER_PURGE_SPEC ,
2224 GOVERNOR_LEDGER_PURGE_SPEC ,
2325 PREDICTION_LEDGER_PURGE_SPEC ,
26+ PORTFOLIO_QUEUE_PURGE_SPEC ,
27+ RUN_STATE_PURGE_SPEC ,
2428 countStoreByRepo ,
2529 describeError ,
2630} from "./store-maintenance.js" ;
@@ -36,6 +40,8 @@ const REAL_PURGE_TARGETS = [
3640 { name : "event-ledger" , optionKey : "initEventLedger" , opener : initEventLedger , resolveDbPath : resolveEventLedgerDbPath , spec : EVENT_LEDGER_PURGE_SPEC } ,
3741 { name : "governor-ledger" , optionKey : "initGovernorLedger" , opener : initGovernorLedger , resolveDbPath : resolveGovernorLedgerDbPath , spec : GOVERNOR_LEDGER_PURGE_SPEC } ,
3842 { name : "prediction-ledger" , optionKey : "initPredictionLedger" , opener : initPredictionLedger , resolveDbPath : resolvePredictionLedgerDbPath , spec : PREDICTION_LEDGER_PURGE_SPEC } ,
43+ { name : "portfolio-queue" , optionKey : "initPortfolioQueueStore" , opener : initPortfolioQueueStore , resolveDbPath : resolvePortfolioQueueDbPath , spec : PORTFOLIO_QUEUE_PURGE_SPEC } ,
44+ { name : "run-state" , optionKey : "initRunStateStore" , opener : initRunStateStore , resolveDbPath : resolveRunStateDbPath , spec : RUN_STATE_PURGE_SPEC } ,
3945] ;
4046
4147function parseRepoArg ( value , usage ) {
0 commit comments