documentation updates
This commit is contained in:
@@ -12,7 +12,21 @@ the full context window with raw episodes.
|
||||
|
||||
## Trigger Conditions
|
||||
|
||||
`triggerSummary(session, allEpisodes)` calls `maybeSummarize` fire-and-forget.
|
||||
`triggerSummary(session)` calls `maybeSummarize` fire-and-forget. It takes only
|
||||
the `session` — it no longer receives the full episode list. Instead
|
||||
`maybeSummarize` fetches exactly what it needs:
|
||||
|
||||
1. `GET /sessions/:id/episode-stats` — a cheap aggregate (`COUNT`, `SUM(token_count)`,
|
||||
`MAX(id)`) that gates the token threshold **without** pulling every episode row
|
||||
2. Only if over threshold: `GET /sessions/:id/episodes/since/:afterId` — the
|
||||
un-summarized tail (episodes newer than the last summary's range), fetched in
|
||||
full for the summary prompt
|
||||
|
||||
This replaced an earlier approach where `chat/index.js` fetched the entire
|
||||
session (`getRecentEpisodes(session.id, 9999)`) on every message just to hand it
|
||||
over — an O(session length) cost per turn. The stats query now runs on every
|
||||
message; full episode text is fetched only when a summary actually fires.
|
||||
|
||||
`maybeSummarize` proceeds only when both conditions are met:
|
||||
|
||||
1. Total session token count exceeds `SUMMARIES.THRESHOLD_TOKENS` (default 200)
|
||||
|
||||
Reference in New Issue
Block a user