From 57d6ae59dedc06e82c5f65eae8a7213ba81133b7 Mon Sep 17 00:00:00 2001 From: Haileyesus Date: Wed, 25 Mar 2026 11:09:08 +0300 Subject: [PATCH] refactor: rename session parser functions; move sessionData to a shared type --- .../providers/claude/claude.session-parser.ts | 5 +++-- .../providers/codex/codex.session-parser.ts | 5 +++-- .../providers/cursor/cursor.session-parser.ts | 5 +++-- .../providers/gemini/gemini.session-parser.ts | 5 +++-- .../shared/session-parser.utils.ts} | 14 +++----------- .../src/modules/sessions/sessions.service.ts | 18 +++++++++--------- .../src/modules/sessions/sessions.watcher.ts | 4 ++-- .../types/session.ts} | 2 +- 8 files changed, 27 insertions(+), 31 deletions(-) rename server/src/modules/{sessions/sessions.utils.ts => providers/shared/session-parser.utils.ts} (90%) rename server/src/{modules/sessions/sessions.types.ts => shared/types/session.ts} (97%) diff --git a/server/src/modules/providers/claude/claude.session-parser.ts b/server/src/modules/providers/claude/claude.session-parser.ts index 6f2892cc..3c2ee93b 100644 --- a/server/src/modules/providers/claude/claude.session-parser.ts +++ b/server/src/modules/providers/claude/claude.session-parser.ts @@ -1,7 +1,8 @@ import os from 'os'; import path from 'path'; import { sessionsDb } from '@/shared/database/repositories/sessions.db.js'; -import { buildLookupMap, extractFirstValidJsonlData, findFilesRecursivelyCreatedAfterLastScan, SessionData } from '@/modules/sessions/sessions.utils.js'; +import { buildLookupMap, extractFirstValidJsonlData, findFilesRecursivelyCreatedAfterLastScan } from '@/modules/providers/shared/session-parser.utils.js'; +import { SessionData } from '@/shared/types/session.js'; export async function processClaudeSessionFile(file: string, nameMap?: Map): Promise { if (!nameMap) { @@ -17,7 +18,7 @@ export async function processClaudeSessionFile(file: string, nameMap?: Map): Promise { if (!nameMap) { @@ -17,7 +18,7 @@ export async function processCodexSessionFile(file: string, nameMap?: Map { try { @@ -23,7 +24,7 @@ export async function processGeminiSessionFile(file: string): Promise Value. @@ -39,7 +30,7 @@ export async function buildLookupMap(filePath: string, keyField: string, valueFi /** * Recursively walks a directory tree and returns a flat array of all files * matching a specific extension (e.g., '.jsonl' or '.json'). - * It will only find the files created after the last scan date. + * It will only find the files created after */ export async function findFilesRecursivelyCreatedAfterLastScan( dirPath: string, @@ -61,6 +52,7 @@ export async function findFilesRecursivelyCreatedAfterLastScan( const stats = await fsp.stat(fullPath); if (stats.birthtime > lastScanDate) { fileList.push(fullPath); + console.log("=====> full path is: ", fullPath) } } else { fileList.push(fullPath); diff --git a/server/src/modules/sessions/sessions.service.ts b/server/src/modules/sessions/sessions.service.ts index b84c926b..ae1fbd42 100644 --- a/server/src/modules/sessions/sessions.service.ts +++ b/server/src/modules/sessions/sessions.service.ts @@ -1,10 +1,10 @@ import { scanStateDb } from '@/shared/database/repositories/scan-state.db.js'; -import { getClaudeSessions } from '@/modules/providers/claude/claude.session-parser.js'; -import { getCodexSessions } from '@/modules/providers/codex/codex.session-parser.js'; -import { getGeminiSessions } from '@/modules/providers/gemini/gemini.session-parser.js'; -import { getCursorSessions } from '@/modules/providers/cursor/cursor.session-parser.js'; +import { processClaudeSessions } from '@/modules/providers/claude/claude.session-parser.js'; +import { processCodexSessions } from '@/modules/providers/codex/codex.session-parser.js'; +import { processGeminiSessions } from '@/modules/providers/gemini/gemini.session-parser.js'; +import { processCursorSessions } from '@/modules/providers/cursor/cursor.session-parser.js'; -export async function getSessions() { +export async function processSessions() { // 1. Start the timer with a unique label console.time("🚀 Workspace sync total time"); @@ -13,10 +13,10 @@ export async function getSessions() { try { // Wrapping in Promise.all allows these to process concurrently, speeding up the boot time await Promise.allSettled([ - getClaudeSessions(), - getCodexSessions(), - getGeminiSessions(), - getCursorSessions() + processClaudeSessions(), + processCodexSessions(), + processGeminiSessions(), + processCursorSessions() ]); scanStateDb.updateLastScannedAt(); diff --git a/server/src/modules/sessions/sessions.watcher.ts b/server/src/modules/sessions/sessions.watcher.ts index 8958fbef..79eb2d54 100644 --- a/server/src/modules/sessions/sessions.watcher.ts +++ b/server/src/modules/sessions/sessions.watcher.ts @@ -3,7 +3,7 @@ import path from "path"; import os from "os"; import { promises as fsPromises } from "fs"; import { logger } from "@/shared/utils/logger.js"; -import { getSessions } from "@/modules/sessions/sessions.service.js"; +import { processSessions } from "@/modules/sessions/sessions.service.js"; import { processClaudeSessionFile } from "@/modules/providers/claude/claude.session-parser.js"; import { processCodexSessionFile } from "@/modules/providers/codex/codex.session-parser.js"; import { processGeminiSessionFile } from "@/modules/providers/gemini/gemini.session-parser.js"; @@ -117,7 +117,7 @@ const onUpdate = async ( export async function initializeWatcher() { logger.info("Setting up project watchers for providers..."); - await getSessions(); + await processSessions(); for (const { provider, rootPath } of PROVIDER_WATCH_PATHS) { try { diff --git a/server/src/modules/sessions/sessions.types.ts b/server/src/shared/types/session.ts similarity index 97% rename from server/src/modules/sessions/sessions.types.ts rename to server/src/shared/types/session.ts index e1f7a4d3..8d107fa1 100644 --- a/server/src/modules/sessions/sessions.types.ts +++ b/server/src/shared/types/session.ts @@ -2,4 +2,4 @@ export type SessionData = { sessionId: string; workspacePath: string; sessionName?: string; -} \ No newline at end of file +};