18 Commits

Author SHA1 Message Date
2387a8d8ef Store usage database in ComfyUI user directory
Moves the SQLite database from the extension folder to
ComfyUI/user/nodes_stats/ so stats survive reinstalls.
Automatically migrates existing data on first load.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 13:51:28 +01:00
35560bceb0 Fix package name extraction for nested module paths
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 19:13:08 +01:00
b56687158d Improve summary badge click handling and accessibility
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 18:59:13 +01:00
c50a0a64d2 Set publisher ID and repository URL
Some checks failed
Publish to Comfy registry / Publish Custom Node to registry (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 14:35:13 +01:00
7c8d402311 Add GitHub Actions workflow for registry publishing
Automatically publishes to Comfy registry when pyproject.toml
is updated on master. Can also be triggered manually.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 14:32:25 +01:00
71fdcbdfd6 Make package exclusion case-insensitive
Directory names vary depending on how users clone or symlink
(e.g. ComfyUI-Manager vs comfyui-manager).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 14:15:02 +01:00
ca01871cf6 Exclude ComfyUI-Manager and node-stats from package list
These are management/meta tools, not workflow node packages.
Showing them in the stats would be confusing since they're
never used in actual workflows.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 14:14:08 +01:00
20b88e27b7 Use custom SVG icon directly in menu button
Replace ComfyButton (which rendered as text) with a plain
button using our custom SVG icon, inserted at the same
menu position via app.menu.settingsGroup.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 14:07:31 +01:00
371cbb2bed Remove redundant get_all_packages() call in get_package_stats
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>
2026-02-22 14:05:47 +01:00
161da60537 Defer DB initialization to first use
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>
2026-02-22 14:03:11 +01:00
43a4fdee16 Rewrite README with classification docs, logo, and status icons
Updated documentation to reflect the 4-tier classification system
and uninstalled detection. Added SVG logo and color-coded status
indicator dots. Added architecture diagram and collapsible API
response example.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 14:01:39 +01:00
ae2c786d3a Mark removed/disabled packages as uninstalled
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>
2026-02-22 14:00:05 +01:00
17a27ed5b2 Add 4-tier package classification by usage recency
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>
2026-02-22 13:58:12 +01:00
fcca25397c Move DB writes to background thread and add SVG icon
Record usage in a daemon thread to avoid blocking the event loop
with SQLite fsync on slow storage. Replace text button label with
a bar-chart-with-nodes SVG icon in the legacy menu fallback.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 13:50:11 +01:00
6d0e5d55ed Use new frontend ComfyButton API for menu button
Adds button via app.menu.settingsGroup using ComfyButton with
bar-chart-2 icon. Falls back to legacy .comfy-menu DOM for
older ComfyUI versions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 13:41:39 +01:00
6b76879345 Fix installation instructions to use git clone from GitHub
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 13:33:43 +01:00
b5b046dd07 Add README with installation, usage, and API docs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 13:31:13 +01:00
25f1729f23 Initial commit: ComfyUI node usage stats tracker
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>
2026-02-22 13:29:08 +01:00