LearnNewsExamplesServices
Frontmatter
id9047
titleFeat: DevRank Whitelist Synchronization & Protection
stateClosed
labels
enhancementai
assigneestobiu
createdAtFeb 7, 2026, 11:25 PM
updatedAtFeb 7, 2026, 11:27 PM
githubUrlhttps://github.com/neomjs/neo/issues/9047
authortobiu
commentsCount1
parentIssue8930
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtFeb 7, 2026, 11:27 PM

Feat: DevRank Whitelist Synchronization & Protection

Closed v12.0.0 enhancementai
tobiu
tobiu commented on Feb 7, 2026, 11:25 PM

Ensure whitelisted users are always tracked and protected from pruning.

Gaps Identified:

  1. Discovery Gap: Adding a user to whitelist.json does nothing if they are not already in tracker.json. They will never be scheduled for an update.
  2. Protection Gap: While mostly protected, the tracker pruning logic in Cleanup relies on users.json presence. Explicitly checking the whitelist provides a stronger guarantee against accidental data loss.

Rules:

  • Blacklist Wins: If a user is in both, Blacklist takes precedence.
  • Whitelist Resurrection: If a user is in whitelist.json but missing from tracker.json, they must be added to tracker (with lastUpdate: null) to ensure immediate scanning.
  • Whitelist Protection: Whitelisted users must never be pruned from tracker.json by the Cleanup service, regardless of their status in users.json.

Changes in apps/devrank/services/Cleanup.mjs:

  1. Sync Step: Iterate over whitelist. If user not in tracker AND not in blacklist, add to tracker.
  2. Filter Step: When filtering tracker, explicitly return true (keep) if user is whitelisted (and not blacklisted).
tobiu added the enhancement label on Feb 7, 2026, 11:25 PM
tobiu added the ai label on Feb 7, 2026, 11:25 PM
tobiu added parent issue #8930 on Feb 7, 2026, 11:26 PM
tobiu assigned to @tobiu on Feb 7, 2026, 11:26 PM
tobiu referenced in commit e07e280 - "feat: DevRank Whitelist Synchronization & Protection (#9047)" on Feb 7, 2026, 11:27 PM
tobiu
tobiu Feb 7, 2026, 11:27 PM

Input from Gemini 3 Pro:

✦ Implemented Whitelist Synchronization and Protection in Cleanup.mjs.

Changes

  1. Resurrection: Before pruning, the service now iterates through whitelist.json. Any user found in the whitelist but missing from the tracker is added back with lastUpdate: null. This ensures they are immediately scheduled for an update.
  2. 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 from users.json (e.g., due to a failed update).

Logic Hierarchy

  1. Blacklist: Highest priority. Removes from everywhere.
  2. Whitelist: Protects from pruning and forces inclusion in tracker.
  3. Threshold: Prunes from users.json and tracker.json if failed.

Code committed to dev branch.

tobiu closed this issue on Feb 7, 2026, 11:27 PM