Frontmatter
| id | 9093 |
| title | Refactor: DevRank Backend JSONL Persistence |
| state | Closed |
| labels | airefactoring |
| assignees | tobiu |
| createdAt | Feb 10, 2026, 7:05 PM |
| updatedAt | Feb 10, 2026, 7:51 PM |
| githubUrl | https://github.com/neomjs/neo/issues/9093 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 9089 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 10, 2026, 7:51 PM |
Refactor: DevRank Backend JSONL Persistence
tobiu added parent issue #9089 on Feb 10, 2026, 7:05 PM
tobiu assigned to @tobiu on Feb 10, 2026, 7:08 PM

tobiu
Feb 10, 2026, 7:50 PM
Input from Gemini 3 Pro:
✦ I have successfully migrated the DevRank backend to use JSONL.
Changes
Storage.mjs: UpdatedreadJsonandwriteJsonto natively support.jsonlfiles (newline-delimited JSON). Added logic to detect the extension and switch parsing/serialization strategies.config.mjs: Updatedpaths.usersto point tousers.jsonl.- Migration Script: Created and ran
apps/devrank/services/migrateJsonToJsonl.mjswhich successfully converted the existing 11k+ records to the new format and deleted the legacy file.Verification
- The migration script verified the record count (11043) match.
Storagelogic forusers.jsonlegacy fallback remains (though unused by config).This completes the backend persistence requirements.
tobiu closed this issue on Feb 10, 2026, 7:51 PM
Objective
Ensure the DevRank backend (Spider/Updater/Storage) natively supports the
.jsonlformat to maintain data integrity with the new Streaming Proxy architecture.Rationale
Since we are migrating
users.jsontousers.jsonlfor performance (Epic #9089), the backend services must stop writing to the old JSON file. TheUpdaterruns frequently, so any one-off conversion script will quickly become outdated. The backend itself must be the source of truth for JSONL.Tasks
Refactor
Storage.mjs:readJSONL(path)andwriteJSONL(path, items).updateUsers(newUsers)to append/rewrite in JSONL format..tmp, rename) are preserved for JSONL.Refactor
Updater.mjs:Migration Script (Final):
users.jsontousers.jsonland delete the old file (or archive it).Dependencies