more
This commit is contained in:
22
src/index.ts
22
src/index.ts
@@ -425,15 +425,30 @@ server.registerTool(
|
|||||||
summary = JSON.parse(fs.readFileSync(summaryPath, "utf-8"));
|
summary = JSON.parse(fs.readFileSync(summaryPath, "utf-8"));
|
||||||
}
|
}
|
||||||
|
|
||||||
const now = new Date().toISOString();
|
const now = new Date();
|
||||||
|
const nowIso = now.toISOString();
|
||||||
const newEntries: SummaryEntry[] = entries.map((e) => ({
|
const newEntries: SummaryEntry[] = entries.map((e) => ({
|
||||||
...e,
|
...e,
|
||||||
addedAt: now,
|
addedAt: nowIso,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
summary.push(...newEntries);
|
summary.push(...newEntries);
|
||||||
|
|
||||||
|
// Purge entries older than 30 days
|
||||||
|
const RETENTION_MS = 30 * 24 * 60 * 60 * 1000;
|
||||||
|
const cutoff = now.getTime() - RETENTION_MS;
|
||||||
|
const beforePurge = summary.length;
|
||||||
|
summary = summary.filter(
|
||||||
|
(entry) => new Date(entry.addedAt).getTime() >= cutoff
|
||||||
|
);
|
||||||
|
const purged = beforePurge - summary.length;
|
||||||
|
|
||||||
fs.writeFileSync(summaryPath, JSON.stringify(summary, null, 2));
|
fs.writeFileSync(summaryPath, JSON.stringify(summary, null, 2));
|
||||||
|
|
||||||
|
const purgeNote = purged > 0
|
||||||
|
? `\nPurged ${purged} entry/entries older than 30 days.`
|
||||||
|
: "";
|
||||||
|
|
||||||
return {
|
return {
|
||||||
content: [
|
content: [
|
||||||
{
|
{
|
||||||
@@ -441,7 +456,8 @@ server.registerTool(
|
|||||||
text:
|
text:
|
||||||
`Appended ${newEntries.length} entry/entries to summary.\n` +
|
`Appended ${newEntries.length} entry/entries to summary.\n` +
|
||||||
`Total entries in summary: ${summary.length}\n` +
|
`Total entries in summary: ${summary.length}\n` +
|
||||||
`Summary file: ${summaryPath}`,
|
`Summary file: ${summaryPath}` +
|
||||||
|
purgeNote,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user