Summary
The session summarizer logs no-work session starts (greetings / handoff acknowledgements) as if they were real memory entries, polluting the daily logs (today-*.md, recent.md). Observed on v0.8.2.
Examples of polluted entries
## 10:51 | main
Handoff loaded. Memory at `…` active. Recent work: …
What's next?
## 16:30 | main
I'm ready. I've loaded your environment context:
- Session starts here …
What's next?
Also seen: a multi-paragraph assistant reply captured verbatim under one header, and a literal unfilled ## HH:MM | main header.
Root cause
In prompts/save-session.prompt.txt, the only SKIP condition is "the conversation covers the SAME work as the previous entry." There is no SKIP for a session that contains no substantive work — so when a session is just a greeting / handoff-load / "what's next?", Haiku faithfully summarizes the greeting as the "work done".
Separately, scripts/save-session.sh (Step 5b) validates that the first line is a ## HH:MM | header but only logs a WARNING — it still appends a malformed entry (e.g. the literal ## HH:MM placeholder).
Suggested fix
- Add a
SKIP-on-no-work rule to save-session.prompt.txt: if the extract is only session-boundary chatter (greeting, readiness/orientation message, handoff acknowledgement, "what's next?", or the human merely continuing with no action), return SKIP.
- (Optional, defense-in-depth) In
save-session.sh Step 5b, drop non-conforming output instead of only warning — advance the saved position and exit without appending, mirroring the existing IS_SKIP path. A first-line regex check (^## ([0-9]{2}:[0-9]{2}|[0-9]{1,2}:[0-9]{2} (AM|PM)) \|) cleanly distinguishes valid entries from greeting prose / placeholder headers, with no false positives on real entries.
Happy to send a PR if useful.
Summary
The session summarizer logs no-work session starts (greetings / handoff acknowledgements) as if they were real memory entries, polluting the daily logs (
today-*.md,recent.md). Observed on v0.8.2.Examples of polluted entries
Also seen: a multi-paragraph assistant reply captured verbatim under one header, and a literal unfilled
## HH:MM | mainheader.Root cause
In
prompts/save-session.prompt.txt, the onlySKIPcondition is "the conversation covers the SAME work as the previous entry." There is noSKIPfor a session that contains no substantive work — so when a session is just a greeting / handoff-load / "what's next?", Haiku faithfully summarizes the greeting as the "work done".Separately,
scripts/save-session.sh(Step 5b) validates that the first line is a## HH:MM |header but only logs a WARNING — it still appends a malformed entry (e.g. the literal## HH:MMplaceholder).Suggested fix
SKIP-on-no-work rule tosave-session.prompt.txt: if the extract is only session-boundary chatter (greeting, readiness/orientation message, handoff acknowledgement, "what's next?", or the human merely continuing with no action), returnSKIP.save-session.shStep 5b, drop non-conforming output instead of only warning — advance the saved position and exit without appending, mirroring the existingIS_SKIPpath. A first-line regex check (^## ([0-9]{2}:[0-9]{2}|[0-9]{1,2}:[0-9]{2} (AM|PM)) \|) cleanly distinguishes valid entries from greeting prose / placeholder headers, with no false positives on real entries.Happy to send a PR if useful.