# DashCaddy Dead Code Report

> **Generated:** 2026-07-13  
> **Scope:** `123` source files, `55` exported names  

> **Total source LOC:** 36,231

## Summary

| Category | Count |
|---|---:|
| Dead exports (defined, never imported) | 11 |

| Unused files (no importer) | 7 |
| Large local dead functions (30+ lines, never called) | 0 |

## ⚠️ Caveats

This is a static analysis pass — every finding should be verified before deletion:
- **Entry points** (`server.js`, `src/app.js`, mounted route files) are exempted from 'unused file' check
- **Re-exports** via `module.exports = { X }` look like dead exports unless we track which file imports the whole module
- **Framework callbacks** (Express middleware, error handlers, lifecycle hooks) often look unused but aren't
- **Side-effect imports** (`require('./foo')` for side effects) aren't tracked here
- **Dynamic requires** (`require(variableName)`) won't be detected

Treat this as a TO-DO list, not a delete list. Each finding needs a human check.

## Confidence Classification

- **6 high-confidence** dead exports (no obvious dynamic load path)
- **5 medium-confidence** dead exports (might be loaded via registry / factory / dynamic require)

## 1. Dead Exports

Symbols that are defined (and exported) but never imported elsewhere in the codebase.

| Symbol | Defined in | Confidence |
|---|---|---|
| `BUNDLED_WORKFLOWS` | `src/recipes/bundled-workflows.js`:575 | high |
| `DEFAULT_LIMIT` | `src/utilities/pagination.js`:53 | high |
| `MAX_LIMIT` | `src/utilities/pagination.js`:53 | high |
| `RFC2136Provider` | `src/dns/dns-providers/rfc2136.js`:383 | high |
| `SelfUpdater` | `src/docker/self-updater.js`:790 | high |
| `readTextFile` | `src/utilities/fs-helpers.js`:65 | high |
| `CloudflareDNSProvider` | `src/dns/dns-providers/cloudflare.js`:269 | medium |
| `DEFAULT_POLICY` | `src/managers/auto-restart-manager.js`:503 | medium |
| `ManualDNSProvider` | `src/dns/dns-providers/manual.js`:93 | medium |
| `PREMIUM_FEATURES` | `src/managers/license-manager.js`:494 | medium |
| `TechnitiumDNSProvider` | `src/dns/dns-providers/technitium.js`:507 | medium |

## 2. Unused Files

Files not required by any other file in the source tree. Entry points and mounted route files are exempted.

| File | Size |
|---|---|
| `routes/context.js` | 4,940 bytes |
| `src/dns/dns-providers/cloudflare.js` | 9,816 bytes |
| `src/dns/dns-providers/manual.js` | 2,471 bytes |
| `src/dns/dns-providers/rfc2136.js` | 13,135 bytes |
| `src/dns/dns-providers/technitium.js` | 16,607 bytes |
| `src/managers/license-keygen.js` | 11,024 bytes |
| `src/utils/index.js` | 492 bytes |

## 3. Local Dead Functions (≥ 30 lines)

Top-level functions defined but never called within the file or from any other file. Smaller helpers are not flagged.

| Function | File | Lines |
|---|---|---:|
