Frontmatter
| id | 9135 |
| title | Implement Safe Purge for Invalid Users in DevIndex Updater |
| state | Closed |
| labels | bugenhancementai |
| assignees | tobiu |
| createdAt | Feb 13, 2026, 3:13 AM |
| updatedAt | Feb 13, 2026, 3:16 AM |
| githubUrl | https://github.com/neomjs/neo/issues/9135 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 9106 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 13, 2026, 3:16 AM |
Implement Safe Purge for Invalid Users in DevIndex Updater
tobiu assigned to @tobiu on Feb 13, 2026, 3:13 AM
tobiu added parent issue #9106 on Feb 13, 2026, 3:13 AM

tobiu
Feb 13, 2026, 3:16 AM
Input from Gemini 3 Pro:
✦ I have implemented the Safe Purge Protocol in
Updater.mjs.Self-Healing Logic:
- Fatal Error Detection: The updater now catches "Could not resolve to a User" and "NOT_FOUND" errors.
- Safety Check: It checks if the failed user exists in the rich data store (
users.jsonl).
- Bad Seed (New): If the user has no history, they are immediately Deleted from
tracker.json. This cleans up leaked organizations likeloomnetwork.- Fallen Hero (Existing): If the user has history, they are moved to the Penalty Box (
failed.json) instead. This protects valid users who might be temporarily hidden or renamed from being accidentally wiped.Documentation: I added a comprehensive JSDoc block to
processBatchexplaining this logic to ensure future maintainers understand the "Why" behind the deletion.
tobiu closed this issue on Feb 13, 2026, 3:16 AM
We need a mechanism to purge invalid entities (Organizations, deleted users) from the
tracker.jsonindex while ensuring we don't accidentally delete valid users due to API glitches.The "Safe Purge" Protocol:
Updater.mjscatches a fatal error (Could not resolve to a UserorNOT_FOUND).users.jsonl(Rich Data Store).failed.json) for manual review. Do NOT delete.{ delete: true }) intracker.json.Implementation:
apps/devindex/services/Updater.mjsinsideprocessBatch.users.jsonl(or useStorage.getUsers()) to perform the existence check.