node_counts already contains all packages from both mapper.mapping
and get_all_packages(), so the second call for installed_packages
was unnecessary duplicate work.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move SQLite schema creation from import time to the first
actual DB operation, which happens in a background thread.
Avoids blocking ComfyUI startup on slow storage.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Packages that only exist in the DB but are no longer in
NODE_CLASS_MAPPINGS or LOADED_MODULE_DIRS get status
"uninstalled" and appear in a separate greyed-out section
at the bottom of the dialog.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Packages are now classified as:
- Used: actively used
- Recently Unused (<1 month): too early to judge
- Consider Removing (1-2 months unused): deletion suggestion
- Safe to Remove (2+ months unused): confident removal candidate
Never-used packages are classified based on how long tracking
has been active. Summary bar and sections are color-coded.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Tracks every node used in every prompt submission via SQLite,
maps class_types to source packages, and exposes API endpoints
and a frontend dialog for viewing per-package usage stats.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>