diff --git a/src/modules/learning-session/learning-session.repository.ts b/src/modules/learning-session/learning-session.repository.ts index d0deb47..cb594d9 100644 --- a/src/modules/learning-session/learning-session.repository.ts +++ b/src/modules/learning-session/learning-session.repository.ts @@ -80,6 +80,11 @@ export class LearningSessionRepository { }); if (existing) { + // Guard: don't update completed/interrupted sessions (defense against out-of-order events) + if (existing.status === 'completed' || existing.status === 'interrupted') { + return existing; + } + const update: any = { lastEventAt: new Date(Number(data.timestampMs)), };