feat: Implement persistent caching, enhanced editor metrics, and passive scanning in Subscription Manager
This major update overhauls the Editor Subscription Manager's architecture, shifting from ephemeral scraping to a persistent, data-driven approach, significantly enhancing utility and reducing external request load.
Technical Enhancements:
- Persistent Data Layer: Introduced
localStorage caching for editor metadata (stats, status, profile details) with a configurable Time-To-Live (TTL), minimizing redundant API/page requests to MusicBrainz.
- Comprehensive Metric Collection: Expanded data scraping to include detailed editor performance metrics, specifically:
- Accepted and Rejected edit counts.
- Calculated Rejection Rate metric for identifying potential issues.
- Tracking of user name changes (
previousNames array) to maintain editor identity coherence.
- Advanced Status Resolution: Implemented logic to track and clearly flag various editor statuses decoupled from the immediate subscription list:
- Deleted Accounts (via 404 and profile content checks).
- Lost Subscriptions (accounts previously subscribed but missing from the current list).
- Visited Profiles (cached non-subscriptions).
- Passive Data Acquisition: Added functionality to scan and cache editor data upon visiting any user profile page (
/user/<name>), ensuring data remains fresh through normal browsing activity.
- Refined Management Interface: Consolidated all management functions into a single report view, featuring smart refresh modes (updating only stale/new entries) and new batch unsubscription options based on inactivity duration and rejection rate.