Context
packages/loopover-miner/lib/status.ts's storeIntegrityChecks (lines 361-375) and packages/loopover-miner/lib/migrate-cli.ts's STORES (lines 49-73) both carry an explicit "keep in sync" comment (status.ts: "Keep in sync with migrate-cli.js's STORES list (#6768)... every durable local SQLite store using resolveLocalStoreDbPath") and enumerate the package's local SQLite stores.
Two fully-formed stores with their own resolve*DbPath/init* exports and real CREATE TABLE schemas are absent from both lists: ranked-candidates.ts (resolveRankedCandidatesDbPath, table miner_ranked_candidates) and deny-hook-synthesis.ts (resolveDenyHookSynthesisDbPath, tables deny_rule_proposals/deny_rule_proposals_v2).
A corrupted file in either store is currently invisible to loopover-miner doctor's integrity check, and neither store gets its pending migrations proactively applied by loopover-miner migrate.
⚠️ Required pattern — read the existing entries in both status.ts's storeIntegrityChecks and migrate-cli.ts's STORES before starting. Add the two missing stores following the exact same shape every other entry already uses (same resolve*DbPath reference convention, same list structure) — do not invent a new registration mechanism.
Requirements
- Add
ranked-candidates.ts and deny-hook-synthesis.ts to status.ts's storeIntegrityChecks list, using resolveRankedCandidatesDbPath/resolveDenyHookSynthesisDbPath the same way every other entry references its own resolver.
- Add the same two stores to
migrate-cli.ts's STORES list, in the same shape as the existing 13-14 entries.
Deliverables
Test Coverage Requirements
packages/loopover-miner/** — 99%+ Codecov patch target. Add/update unit tests for status.ts and migrate-cli.ts confirming both new stores appear in the respective lists and are exercised by the existing test harness the same way other stores are.
Expected Outcome
doctor and migrate cover every durable local SQLite store this package ships, with no silent gap for ranked-candidates or deny-hook-synthesis.
Links & Resources
Context
packages/loopover-miner/lib/status.ts'sstoreIntegrityChecks(lines 361-375) andpackages/loopover-miner/lib/migrate-cli.ts'sSTORES(lines 49-73) both carry an explicit "keep in sync" comment (status.ts: "Keep in sync with migrate-cli.js's STORES list (#6768)... every durable local SQLite store using resolveLocalStoreDbPath") and enumerate the package's local SQLite stores.Two fully-formed stores with their own
resolve*DbPath/init*exports and realCREATE TABLEschemas are absent from both lists:ranked-candidates.ts(resolveRankedCandidatesDbPath, tableminer_ranked_candidates) anddeny-hook-synthesis.ts(resolveDenyHookSynthesisDbPath, tablesdeny_rule_proposals/deny_rule_proposals_v2).A corrupted file in either store is currently invisible to
loopover-miner doctor's integrity check, and neither store gets its pending migrations proactively applied byloopover-miner migrate.Requirements
ranked-candidates.tsanddeny-hook-synthesis.tstostatus.ts'sstoreIntegrityCheckslist, usingresolveRankedCandidatesDbPath/resolveDenyHookSynthesisDbPaththe same way every other entry references its own resolver.migrate-cli.ts'sSTORESlist, in the same shape as the existing 13-14 entries.Deliverables
status.ts'sstoreIntegrityChecksincludes bothranked-candidatesanddeny-hook-synthesisstores.migrate-cli.ts'sSTORESincludes both stores.loopover-miner doctorreports on both stores' integrity;loopover-miner migrateapplies pending migrations to both.Test Coverage Requirements
packages/loopover-miner/**— 99%+ Codecov patch target. Add/update unit tests forstatus.tsandmigrate-cli.tsconfirming both new stores appear in the respective lists and are exercised by the existing test harness the same way other stores are.Expected Outcome
doctorandmigratecover every durable local SQLite store this package ships, with no silent gap forranked-candidatesordeny-hook-synthesis.Links & Resources
packages/loopover-miner/lib/status.ts(storeIntegrityChecks, lines 361-375)packages/loopover-miner/lib/migrate-cli.ts(STORES, lines 49-73)packages/loopover-miner/lib/ranked-candidates.ts,packages/loopover-miner/lib/deny-hook-synthesis.ts(the two missing stores)