Frontmatter
| id | 9047 |
| title | Feat: DevRank Whitelist Synchronization & Protection |
| state | Closed |
| labels | enhancementai |
| assignees | tobiu |
| createdAt | Feb 7, 2026, 11:25 PM |
| updatedAt | Feb 7, 2026, 11:27 PM |
| githubUrl | https://github.com/neomjs/neo/issues/9047 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 8930 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 7, 2026, 11:27 PM |
Feat: DevRank Whitelist Synchronization & Protection
tobiu added parent issue #8930 on Feb 7, 2026, 11:26 PM
tobiu assigned to @tobiu on Feb 7, 2026, 11:26 PM

tobiu
Feb 7, 2026, 11:27 PM
Input from Gemini 3 Pro:
✦ Implemented Whitelist Synchronization and Protection in
Cleanup.mjs.Changes
- Resurrection: Before pruning, the service now iterates through
whitelist.json. Any user found in the whitelist but missing from the tracker is added back withlastUpdate: null. This ensures they are immediately scheduled for an update.- Protection: The tracker pruning filter now explicitly checks
whitelist.has(login). If a user is whitelisted (and not blacklisted), they are never removed from the tracker, even if they are missing fromusers.json(e.g., due to a failed update).Logic Hierarchy
- Blacklist: Highest priority. Removes from everywhere.
- Whitelist: Protects from pruning and forces inclusion in tracker.
- Threshold: Prunes from
users.jsonandtracker.jsonif failed.Code committed to
devbranch.
tobiu closed this issue on Feb 7, 2026, 11:27 PM
Ensure whitelisted users are always tracked and protected from pruning.
Gaps Identified:
whitelist.jsondoes nothing if they are not already intracker.json. They will never be scheduled for an update.Cleanuprelies onusers.jsonpresence. Explicitly checking the whitelist provides a stronger guarantee against accidental data loss.Rules:
whitelist.jsonbut missing fromtracker.json, they must be added totracker(withlastUpdate: null) to ensure immediate scanning.tracker.jsonby the Cleanup service, regardless of their status inusers.json.Changes in
apps/devrank/services/Cleanup.mjs:whitelist. If user not intrackerAND not inblacklist, add totracker.tracker, explicitly returntrue(keep) if user is whitelisted (and not blacklisted).