rmi-backend/app/_archive/legacy_2026_07
cryptorugmunch 628c1d2a10
Some checks failed
CI / build (push) Failing after 3s
refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3)
PHASE 2.3 (AUDIT-2026-Q3.md):

Task 1 — Wire-in Wave 3 (1 router mounted, 2 deferred):
  - app.routers.unified_scanner_router mounted at /api/v2/scanner/* (2 routes:
    POST /api/v2/scanner/token/scan, POST /api/v2/scanner/wallet/scan).
    Refactored prefix from /api/v2 -> /api/v2/scanner to avoid future conflicts
    with the v1 /api/v1/scanner/ stub.
  - app.routers.unified_wallet_scanner DEFERRED (no router APIRouter attribute;
    library module consumed by unified_scanner_router via get_wallet_scanner()).
  - app.routers.admin_extensions DEFERRED (DORMANT per audit; 25 routes at
    /api/v1/admin/* would shadow /api/v1/admin/alerts_webhook).

Task 2 — Archive 136 dead-code files to app/_archive/legacy_2026_07/:
  - 73 routers in app/routers/ (reach graph showed zero reach into mount.py).
  - 63 flat app/*.py (domain modules never imported by live code).
  - 1 file RESTORED post-archive: app/routers/x402_bridge_health.py (caught by
    tests/unit/test_bridge_health.py which directly imports it; reach graph
    considered tests/ only as transitive reach — to be patched in next cycle).

Forced-LIVE (NOT archived per user directive):
  - app/ai_pipeline_v3.py  (3 importers in audit window, importers themselves DEAD)
  - app/splade_bm25.py       (LIVE via app.rag_service)
  - app/wallet_manager_v2.py (LIVE via x402_enforcement, x402_tools, sweep_all, sweep_now)
  - app/crypto_embeddings.py (NOT in audit ARCHIVE list; heavy import graph)

Verification (forward-import closure from mount.py + main.py + factory.py + lifespan.py):
  - imports = 348 app.* modules
  - reached = 194 files reachable from roots
  - archive set = audit_dead (186) - reached - forced_live (4) - test_live (1) = 136
  - Net delta: 136 files moved, 44,932 LOC reduction, 293->295 active routes (+2 from Wave 3)

pyproject.toml updates:
  - setuptools.packages.find: added exclude for app._archive*
  - ruff.extend-exclude: added "app/_archive/"
  - mypy.exclude: added "app/_archive/"

Smoke test: pytest tests/ — 817 passed, 3 pre-existing failures unchanged
(0 new failures; 0 routes lost; all 4 forced-LIVE files still importable).

Restoration: git mv app/_archive/legacy_2026_07/<name>.py <original-path>
and add the import to app/mount.py ROUTER_MODULES.

Refs: AUDIT-2026-Q3.md /home/dev/pry/rmi-final-deadcode-2026-07-06.md
2026-07-06 20:52:31 +02:00
..
ab_testing.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
admin_backend.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
admin_control.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
admin_users_api.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
agent_system.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
agents.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
ai_pipeline.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
ai_pipeline2.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
ai_pipeline_v2.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
ai_risk_explainer.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
airdrop_scanner.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
alchemy_router.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
alert_pipeline.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
alerts.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
alibaba_connector.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
alibaba_dashscope_connector.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
all_connectors.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
analytics.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
analytics_storage.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
api_versioning.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
arbitrage.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
auth_extensions.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
auto_healing.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
billing.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
brand_marketing_generator.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
bulk_marketing_generator.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
bundler_detect.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
campaign_radar.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
cases_investigators_api.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
chain_feeder.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
circuit_breaker.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
community_badges.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
community_forensics.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
content_router.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
cross_token_router.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
darkroom_airdrop.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
darkroom_multichain.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
darkroom_tokens.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
databus_extras.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
databus_gateway.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
db_client.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
degen_scan_endpoint.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
dify_tools.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
discovery_router.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
email_router.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
embedding_router.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
entity_graph.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
etherscan_router.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
forensics_router.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
ghostunnel_manager.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
github_rag_feeder.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
human_catalog.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
intel_feed_pipeline.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
intel_pipeline.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
key_loader.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
liquidity_watchdog.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
mail_dashboard.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
marketing_templates.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
mbal_market.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
mcp_local_router.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
mcp_proxy.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
mcp_router.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
mcp_server.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
meme_intelligence.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
moderation.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
moralis_router.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
n8n_intelligence_workflows.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
news_intelligence.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
nft_detector.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
ollama_api.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
persistent_state.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
prediction_monitor.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
price_consensus.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
profile_router.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
protection.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
protection_api.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
protection_router.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
provider_health.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
rag_endpoints.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
rag_evaluation.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
rag_feedback.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
rag_firehose.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
rag_historical.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
rag_permanence.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
rag_tool.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
README.md refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
rebalance_bot.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
rmi_dashboard.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
rpc_cache.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
safe_imports.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
scam_classifier.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
scan_rate_limiter.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
security_defense.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
sentiment.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
smart_calls.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
social_seed.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
sosana_crm.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
subscription_pricing_api.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
supabase_auth_router.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
supabase_oauth_router.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
supabase_realtime.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
supabase_router.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
sweep_now.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
test_bundler_detect.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
test_clone_scanner.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
test_mev_protection.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
test_rug_pull_predictor.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
tiers.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
tool_changelog.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
tool_fingerprint.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
tools_integration.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
trufflehog_scanner.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
tx_simulator.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
velocity_risk.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
vision_analysis.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
vulnerability_mapper.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
wallet_behavior.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
wallet_factory_router.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
wallet_intel_loader.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
webhook_pipeline.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
webhooks_router.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
x402_alpha_revenue_tools.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
x402_alpha_tools.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
x402_analytics.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
x402_catalog.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
x402_contract_upgrade_monitor.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
x402_cross_chain_whale.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
x402_databus_fallback.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
x402_deployer_history.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
x402_dex_pool_manipulation.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
x402_forensic_tools.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
x402_insider_network.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
x402_institutional_tools.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
x402_launch_fairness.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
x402_premium_tools.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
x402_settle_api.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00
x402_token_watch.py refactor(rmi-backend,audit): mount Wave 3 + archive 136 dead-code files (P2.3) 2026-07-06 20:52:31 +02:00

app/_archive/legacy_2026_07

Archived 2026-07-06 as part of AUDIT-2026-Q3.md Phase 2.3 + P2.4.

This directory contains 136 .py files moved out of app/ and app/routers/ because they had zero reach into the running application at the time of the audit. Reach was verified across 5 surfaces via a forward-import closure from app/mount.py, app/main.py, app/factory.py, and app/core/lifespan.py:

  1. NOT in app/mount.py mount expressions
  2. NOT statically imported by any .py in app/, tests/, scripts/
  3. NOT dynamically loaded by app/core/lifespan.py
  4. NOT referenced as a string anywhere in *.yaml/*.yml/*.toml/*.json
  5. NOT in the lifecycle always-loaded set

Composition (137 files)

Bucket Count Notes
app/*.py (flat) 63 Domain-specific modules never imported
app/routers/*.py 73 Routers never mounted and not imported (1 restored, see below)
Total 137

Total LOC moved: 44,932 lines (reduces active tree by ~25%).

Reach-graph re-verification (over 4 surfaces)

imports      = 348 app.* modules statically imported
ref_files    = 51 files with string references
closure      = forward BFS from mount.py + main.py + factory.py + lifespan.py
reached      = 194 files reachable from roots
archive set  = audit_dead (186) - reached - forced_live (4 stale items) - test_live (1) = 136

Restored post-archive (test dependency surfaced by smoke test)

  • app/routers/x402_bridge_health.py — restored 2026-07-07. The reach graph showed it as DEAD, but tests/unit/test_bridge_health.py has 7 direct imports of it. The audit's reach graph considered tests/ only as a transitive reach, not as a source of LIVE. The smoke test caught the regression and we restored. Reach graph will be patched to include tests/*.py as roots in the next audit cycle.

Forced-LIVE (NOT archived per user directive)

The reach graph would have archived these, but the user listed them as LIVE and asked us to DEFER with a note:

  • app/ai_pipeline_v3.py — imported by app/unified_wallet_scanner.py and app/news_intelligence.py. The reach graph shows those importers are themselves DEAD, so ai_pipeline_v3 is also technically DEAD. But kept per user instruction (3 importers in the audit reach-graph window).
  • app/splade_bm25.py — imported by app/rag_service.py (LIVE).
  • app/wallet_manager_v2.py — imported by app/routers/wallet_manager_v2.py, app/routers/x402_enforcement.py, app/routers/x402_tools.py, app/sweep_all.py, app/sweep_now.py, scripts/setup_x402_rotation.py. Has a top-level NameError (Bip44Coins) but the import works because the failing line is in a function body only executed at runtime.
  • app/crypto_embeddings.py — NOT in the audit ARCHIVE list at all (the audit had a stale dead-list entry that was already KEEP). Heavy import graph: rag_service, bundle_cluster_rag, rag/embedder, supabase_vector, rugmaps_ai, scam_sources, intel_feed_pipeline, rag_agentic, ragas_eval, tests/manual/test_rag.py, scripts/ingest_sigmod_fast.py.

Wave 3 (newly mounted, NOT archived)

  • app/routers/unified_scanner_router.py — mounted 2026-07-07 at /api/v2/scanner/{token,wallet}/scan (2 routes). Reach graph would have archived it; the new mount entry in app/mount.py makes it LIVE.
  • app/routers/unified_wallet_scanner.py — DEFERRED (no router APIRouter attribute; library consumed by unified_scanner_router).
  • app/routers/admin_extensions.py — DORMANT per audit (darkroom-specific, 25 routes at /api/v1/admin/*); would shadow /api/v1/admin/alerts_webhook.

How to restore

These files are kept in git history under the path app/_archive/legacy_2026_07/. To restore any of them:

cd /srv/work/repos/rmi-backend
git mv app/_archive/legacy_2026_07/<name>.py app/routers/   # or app/
# Then add the import to app/mount.py ROUTER_MODULES
git commit -m "restore <name>.py from legacy archive"
git push origin main

git log --all --oneline -- app/_archive/ shows every move. We did NOT rewrite history (would break external mirrors at github.com, gitlab.com, huggingface.co).

Why archive, not delete

Git retains the full history. git log --all --oneline -- app/_archive/ shows every move. The archive path itself is excluded from:

  • pytest discoverypyproject.toml tool.pytest.ini_options testpaths = ["tests"] does not traverse app/.
  • ruff[tool.ruff] extend-exclude = [..., "app/_archive/"] (added 2026-07-07).
  • mypy[tool.mypy] exclude = [..., "app/_archive/"] (added 2026-07-07).
  • setuptools[tool.setuptools.packages.find] exclude = ["app._archive*"] (added 2026-07-07).

The audit doc at /home/dev/pry/rmi-final-deadcode-2026-07-06.md lists every file with the original path and recommendation.