Refactor code structure for improved readability and maintainability

This commit is contained in:
Alex Newman
2025-10-19 01:45:51 -04:00
parent cbd43240c7
commit daf368e343
15 changed files with 94 additions and 79 deletions
+16 -8
View File
@@ -1,4 +1,5 @@
import { SessionStore } from '../services/sqlite/SessionStore.js';
import { ensureWorkerRunning } from '../shared/worker-utils.js';
export interface SessionEndInput {
session_id: string;
@@ -67,15 +68,22 @@ export async function cleanupHook(input?: SessionEndInput): Promise<void> {
// 1. Delete session via HTTP
if (session.worker_port) {
try {
const response = await fetch(`http://127.0.0.1:${session.worker_port}/sessions/${session.id}`, {
method: 'DELETE',
signal: AbortSignal.timeout(5000)
});
if (response.ok) {
console.error('[claude-mem cleanup] Session deleted successfully via HTTP');
// Ensure worker is running before sending cleanup request
const workerReady = await ensureWorkerRunning();
if (!workerReady) {
console.error('[claude-mem cleanup] Worker not available - skipping HTTP cleanup');
// Continue with local cleanup below
} else {
console.error('[claude-mem cleanup] Failed to delete session:', await response.text());
const response = await fetch(`http://127.0.0.1:${session.worker_port}/sessions/${session.id}`, {
method: 'DELETE',
signal: AbortSignal.timeout(5000)
});
if (response.ok) {
console.error('[claude-mem cleanup] Session deleted successfully via HTTP');
} else {
console.error('[claude-mem cleanup] Failed to delete session:', await response.text());
}
}
} catch (error: any) {
console.error('[claude-mem cleanup] HTTP DELETE error:', error.message);
+7
View File
@@ -1,6 +1,7 @@
import { SessionStore } from '../services/sqlite/SessionStore.js';
import { createHookResponse } from './hook-response.js';
import { logger } from '../utils/logger.js';
import { ensureWorkerRunning } from '../shared/worker-utils.js';
export interface PostToolUseInput {
session_id: string;
@@ -51,6 +52,12 @@ export async function saveHook(input?: PostToolUseInput): Promise<void> {
const promptNumber = db.getPromptCounter(session.id);
db.close();
// Ensure worker is running before sending observation
const workerReady = await ensureWorkerRunning();
if (!workerReady) {
throw new Error('Worker service failed to start or become healthy');
}
const toolStr = logger.formatTool(tool_name, tool_input);
logger.dataIn('HOOK', `PostToolUse: ${toolStr}`, {
+7
View File
@@ -1,6 +1,7 @@
import { SessionStore } from '../services/sqlite/SessionStore.js';
import { createHookResponse } from './hook-response.js';
import { logger } from '../utils/logger.js';
import { ensureWorkerRunning } from '../shared/worker-utils.js';
export interface StopInput {
session_id: string;
@@ -37,6 +38,12 @@ export async function summaryHook(input?: StopInput): Promise<void> {
const promptNumber = db.getPromptCounter(session.id);
db.close();
// Ensure worker is running before requesting summary
const workerReady = await ensureWorkerRunning();
if (!workerReady) {
throw new Error('Worker service failed to start or become healthy');
}
logger.dataIn('HOOK', 'Stop: Requesting summary', {
sessionId: session.id,
workerPort: session.worker_port,
+1 -1
View File
@@ -37,7 +37,7 @@ export async function ensureWorkerRunning(): Promise<boolean> {
// Find worker service path
const packageRoot = getPackageRoot();
const workerPath = path.join(packageRoot, 'dist', 'worker-service.cjs');
const workerPath = path.join(packageRoot, 'plugin', 'scripts', 'worker-service.cjs');
if (!existsSync(workerPath)) {
console.error(`[claude-mem] Worker service not found at ${workerPath}`);