Frontmatter
| id | 9045 |
| title | Feat: DevRank Active Pruning & Auto-Cleanup |
| state | Closed |
| labels | enhancementai |
| assignees | tobiu |
| createdAt | Feb 7, 2026, 11:04 PM |
| updatedAt | Feb 7, 2026, 11:06 PM |
| githubUrl | https://github.com/neomjs/neo/issues/9045 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 8930 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 7, 2026, 11:06 PM |
Feat: DevRank Active Pruning & Auto-Cleanup
tobiu added parent issue #8930 on Feb 7, 2026, 11:04 PM
tobiu assigned to @tobiu on Feb 7, 2026, 11:05 PM

tobiu
Feb 7, 2026, 11:06 PM
Input from Gemini 3 Pro:
✦ Implemented active pruning and auto-cleanup to optimize the DevRank data lifecycle.
Changes
- Pre-Run Cleanup:
Manager.mjsnow automatically runsCleanup.run()before executingspiderorupdatecommands. This ensures operations start with a hygienic state.- Active Pruning:
Updater.mjsnow signals the deletion of users who fail the threshold check by pushing{ login, delete: true }to the updates list.- Storage Support:
Storage.mjshas been updated to handledelete: trueinupdateTracker, physically removing the entry from the tracker map.Impact
tracker.jsonwill no longer bloat with low-value users.- Redundant re-scans of known low-value users are eliminated (after the first pass).
- The system self-maintains its index size.
Code committed to
devbranch.
tobiu closed this issue on Feb 7, 2026, 11:06 PM
Optimize the DevRank data lifecycle by actively pruning low-value users and enforcing hygiene before operations.
Problem:
Updater.mjscurrently keeps low-value users intracker.json(updating their timestamp). This causes the index to grow indefinitely with users who have already been rejected.Manager.mjsrunsupdateorspideroperations potentially on "dirty" data (e.g., users that should have been pruned), leading to wasted processing.Solution:
Manager.mjsto automatically runCleanup.run()before executingspiderorupdatecommands.Updater.mjsto remove users fromtracker.jsonimmediately if they fail the contribution threshold, rather than just updating their timestamp.Storage.mjsto support key removal inupdateTracker(e.g., by acceptingnullor a specific removal flag).Benefits:
tracker.jsonstays small and focused on high-value + pending users.updateruns never waste API calls on known low-value users (because they are pruned before the run or during the previous run).Tasks:
Storage.mjsto handle deletions inupdateTracker.Updater.mjsto request deletion for low-value users.Manager.mjsto injectCleanup.run().