mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-03-30 13:43:26 +08:00
fix(session-end): always update session summary content (#317)
* fix(session-end): always update session summary content Previously, session-end.js would only write content to session files on first creation. Subsequent sessions would only update the timestamp, causing stale content (e.g., old tasks, resolved issues) to persist indefinitely. This fix ensures that every session end updates the summary section with fresh content from the current transcript, keeping cross-session context accurate and relevant. Fixes: #187 (partially - addresses stale content issue) Changes: - Remove the blank-template-only check - Replace entire Session Summary section on every session end - Keep timestamp update separate from content update * fix(session-end): match both summary headers and prevent duplicate stats Fixes two issues identified in PR #317 code review: 1. CodeRabbit: Updated regex to match both `## Session Summary` and `## Current State` headers, ensuring files created from blank template can be updated with fresh summaries. 2. Cubic: Changed regex lookahead `(?=### Stats|$)` to end-of-string `$` to prevent duplicate `### Stats` sections. The old pattern stopped before `### Stats` without consuming it, but buildSummarySection() also emits a `### Stats` block, causing duplication on each session update. Changes: - Regex now: `/## (?:Session Summary|Current State)[\s\S]*?$/` - Matches both header variants used in blank template and populated sessions - Matches to end-of-string to cleanly replace entire summary section --------- Co-authored-by: will <will@192.168.5.31>
This commit is contained in:
@@ -167,14 +167,15 @@ async function main() {
|
||||
log(`[SessionEnd] Failed to update timestamp in ${sessionFile}`);
|
||||
}
|
||||
|
||||
// If we have a new summary and the file still has the blank template, replace it
|
||||
// If we have a new summary, update the session file content
|
||||
if (summary) {
|
||||
const existing = readFile(sessionFile);
|
||||
if (existing && existing.includes('[Session context goes here]')) {
|
||||
// Use a flexible regex that tolerates CRLF, extra whitespace, and minor template variations
|
||||
if (existing) {
|
||||
// Use a flexible regex that matches both "## Session Summary" and "## Current State"
|
||||
// Match to end-of-string to avoid duplicate ### Stats sections
|
||||
const updatedContent = existing.replace(
|
||||
/## Current State\s*\n\s*\[Session context goes here\][\s\S]*?### Context to Load\s*\n```\s*\n\[relevant files\]\s*\n```/,
|
||||
buildSummarySection(summary)
|
||||
/## (?:Session Summary|Current State)[\s\S]*?$/ ,
|
||||
buildSummarySection(summary).trim() + '\n'
|
||||
);
|
||||
writeFile(sessionFile, updatedContent);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user