error response consistency, human readible1

This commit is contained in:
Storme-bit
2026-04-26 23:00:18 -07:00
parent f5011fddca
commit 095c9a623e
7 changed files with 30 additions and 18 deletions

View File

@@ -87,15 +87,27 @@ async function extractAndStoreEntities(userMessage, aiResponse, projectId=null)
const data = await res.json();
const raw = data.response?.trim() ?? '';
const parsed = JSON.parse(raw);
const jsonMatch = raw.match(/\{[\s\S]*\}/);
if (!jsonMatch) {
logger.warn('[entities] No JSON object found in response');
logger.debug('[entities] Raw response was:', raw);
return;
}
let parsed;
try {
parsed = JSON.parse(jsonMatch[0]);
} catch (err) {
logger.warn('[entities] Failed to parse extraction response:', err.message);
logger.debug('[entities] Raw response was:', raw);
return;
}
const entities = Array.isArray(parsed.entities) ? parsed.entities : [];
if (entities.length === 0) {
logger.debug('[entities] No entities found in this exchange — skipping');
return; // not an error, just nothing to extract
}
if (!Array.isArray(entities)) throw new Error('Response was not a JSON array');
let saved = 0;

View File

@@ -80,7 +80,7 @@ app.patch('/sessions/by-external/:externalId', (req, res) => {
const session = episodic.updateSessionByExternalId(req.params.externalId, {name, projectId });
res.json(session);
} catch (err) {
res.status(500).json({error: err.message });
res.status(500).json({ error: 'Failed to update session', detail: err.message });
}
});
@@ -235,7 +235,7 @@ app.post('/projects', (req, res) => {
try {
res.status(201).json(createProject({ name: name.trim(), description, colour, icon }));
} catch (err) {
res.status(500).json({ error: err.message });
res.status(500).json({ error: 'Failed to create project', detail: err.message });
}
});
@@ -255,7 +255,7 @@ app.post('/projects/:id/summarize', async (req, res) => {
if (err.message.includes('No session summaries or episodes')) {
return res.status(422).json({ error: err.message });
}
res.status(500).json({ error: err.message });
res.status(500).json({ error: 'Failed to generate project summary', detail: err.message });
}
});
@@ -310,7 +310,7 @@ app.post('/summaries', (req, res) => {
const summary = createSummary({ sessionId, projectId, content, tokenCount, episodeRange, metadata });
res.status(201).json(summary);
} catch (err) {
res.status(500).json({ error: err.message });
res.status(500).json({ error: 'Failed to create summary', detail: err.message });
}
});