Hooks: Gecachten Context zurückgeben wenn verfügbar #154

Closed
opened 2026-01-24 10:04:52 +00:00 by jack · 1 comment
Owner

Problem

In packages/backend/src/routes/hooks.ts gibt es ein offenes TODO (Zeile 154):

// For now, return immediately - context will be generated async
// In the future, could wait for task completion or use cached context
this.success(res, {
  taskId: task.id,
  message: 'Context generation queued',
  // TODO: Return cached context if available
});

Aktuell wird nur eine Task-ID zurückgegeben und der Context wird asynchron generiert. Der Hook-Client bekommt keinen sofortigen Context.

Gewünschtes Verhalten

Wenn bereits ein Context gecached ist (z.B. aus vorheriger Session), sollte dieser sofort zurückgegeben werden:

// Prüfen ob gecachter Context existiert
const cachedContext = await this.contextService.getCachedContext(project);

if (cachedContext) {
  // Sofort gecachten Context zurückgeben
  this.success(res, {
    context: cachedContext.content,
    cached: true,
    cachedAt: cachedContext.updatedAt,
  });
} else {
  // Async generieren lassen
  const task = await this.taskService.queueContextGeneration(project);
  this.success(res, {
    taskId: task.id,
    message: 'Context generation queued',
  });
}

Vorteile

  • Schnellere Response für Hooks
  • Context sofort verfügbar wenn bereits generiert
  • Bessere UX beim Session-Start

Betroffene Datei

packages/backend/src/routes/hooks.ts - Zeile 149-156

## Problem In `packages/backend/src/routes/hooks.ts` gibt es ein offenes TODO (Zeile 154): ```typescript // For now, return immediately - context will be generated async // In the future, could wait for task completion or use cached context this.success(res, { taskId: task.id, message: 'Context generation queued', // TODO: Return cached context if available }); ``` Aktuell wird nur eine Task-ID zurückgegeben und der Context wird asynchron generiert. Der Hook-Client bekommt keinen sofortigen Context. ## Gewünschtes Verhalten Wenn bereits ein Context gecached ist (z.B. aus vorheriger Session), sollte dieser sofort zurückgegeben werden: ```typescript // Prüfen ob gecachter Context existiert const cachedContext = await this.contextService.getCachedContext(project); if (cachedContext) { // Sofort gecachten Context zurückgeben this.success(res, { context: cachedContext.content, cached: true, cachedAt: cachedContext.updatedAt, }); } else { // Async generieren lassen const task = await this.taskService.queueContextGeneration(project); this.success(res, { taskId: task.id, message: 'Context generation queued', }); } ``` ## Vorteile - Schnellere Response für Hooks - Context sofort verfügbar wenn bereits generiert - Bessere UX beim Session-Start ## Betroffene Datei `packages/backend/src/routes/hooks.ts` - Zeile 149-156
Author
Owner

Implementiert in Commit 5653e3e auf Branch fix/164-162-unused-code.

Änderungen:

  1. packages/backend/src/routes/hooks.ts:

    • Import für IClaudeMdRepository hinzugefügt
    • claudemd zu HooksRouterDeps hinzugefügt
    • getContext-Methode prüft jetzt zuerst ob gecachter Context existiert
    • Bei gecachtem Content wird sofort { context, cached: true, cachedAt } zurückgegeben
    • Nur wenn kein Cache vorhanden ist, wird ein Task gequeued
  2. packages/backend/src/server/backend-service.ts:

    • claudemd Repository an HooksRouter übergeben

Verhalten:

  • Wenn bereits ein CLAUDE.md-Context für das Projekt in der DB existiert, wird er sofort zurückgegeben
  • Der Client erhält cached: true und cachedAt (Timestamp) im Response
  • Ansonsten wird wie bisher ein Task zur Generierung gequeued
Implementiert in Commit 5653e3e auf Branch `fix/164-162-unused-code`. **Änderungen:** 1. `packages/backend/src/routes/hooks.ts`: - Import für `IClaudeMdRepository` hinzugefügt - `claudemd` zu `HooksRouterDeps` hinzugefügt - `getContext`-Methode prüft jetzt zuerst ob gecachter Context existiert - Bei gecachtem Content wird sofort `{ context, cached: true, cachedAt }` zurückgegeben - Nur wenn kein Cache vorhanden ist, wird ein Task gequeued 2. `packages/backend/src/server/backend-service.ts`: - `claudemd` Repository an `HooksRouter` übergeben **Verhalten:** - Wenn bereits ein CLAUDE.md-Context für das Projekt in der DB existiert, wird er sofort zurückgegeben - Der Client erhält `cached: true` und `cachedAt` (Timestamp) im Response - Ansonsten wird wie bisher ein Task zur Generierung gequeued
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
customable/claude-mem#154
No description provided.