📌 Bug Description
The summarization workflow in background.ts is triggered only when new transcript chunks arrive.
Inside summarizeTranscriptIfNeeded(), the function exits early when the configured summary interval has not yet elapsed:
const elapsed = Math.floor((Date.now() - lastSum) / 1000);
if (lastSum > 0 && elapsed < intervalSeconds) return;
If transcript updates arrive shortly after a summary has been generated, the function returns without scheduling a future retry.
As a result, if the meeting becomes silent or ends before another transcript chunk arrives, the latest transcript content may never be included in the generated summary or action items.
During shutdown (stopAudioCapture() → savePendingSession()), the extension saves the current session state but does not trigger a final summary generation before persisting the session.
What went wrong?
Summary generation depends entirely on future transcript activity.
What feature is affected?
Meeting summaries and action item generation.
When does the issue occur?
When new transcript content arrives before the summary interval expires and the meeting subsequently becomes silent or ends.
🔄 Steps to Reproduce
- Start a Google Meet session with Late-Meet enabled.
- Allow a summary to be generated successfully.
- Continue speaking and generate additional transcript content shortly after the summary runs.
- Ensure the elapsed time is still below the configured summary interval.
- Stop speaking or end the meeting before another transcript chunk arrives after the interval expires.
- Open the saved meeting session and review the generated summary and action items.
✅ Expected Behavior
- If summarization is skipped because the interval has not elapsed, a delayed retry should be scheduled automatically.
- Alternatively, a final summary should be generated before the session is saved when recording stops.
- The latest transcript content should always be reflected in the final summary and action items.
❌ Actual Behavior
summarizeTranscriptIfNeeded() returns early when the interval guard is hit.
- No delayed retry is scheduled.
- If no additional transcript chunks arrive, summary generation is never retriggered.
- The saved meeting summary and action items may not reflect the latest transcript content.
📸 Screenshots / Recordings
Not applicable.
The issue was identified through code inspection of:
summarizeTranscriptIfNeeded()
stopAudioCapture()
savePendingSession()
in src/background.ts.
💻 Environment
Chrome Version: Any supported version
Operating System: Any
Extension Version: Current main branch
Transcription Provider:
🧾 Console Errors
No console errors are generated.
The issue is caused by workflow logic rather than a runtime exception.
📝 Additional Context
Root Cause
The summarization pipeline is passive and event-driven.
When the interval check fails:
if (lastSum > 0 && elapsed < intervalSeconds) return;
the function exits without scheduling a follow-up run.
Because summary generation is only triggered by incoming transcript chunks, a period of silence or a meeting ending can prevent the latest transcript updates from ever being summarized.
Suggested Fix
- Schedule a delayed retry using
setTimeout or chrome.alarms when the interval guard prevents summarization.
- Force a final summary generation before persisting the session during shutdown if there is unsummarized transcript content.
Reproducibility
Based on the current code path, this behavior should occur consistently whenever:
- Transcript updates arrive before the summary interval expires.
- No additional transcript chunks arrive afterward.
🏷️ Metadata
Recommended Labels: bug
📌 Bug Description
The summarization workflow in
background.tsis triggered only when new transcript chunks arrive.Inside
summarizeTranscriptIfNeeded(), the function exits early when the configured summary interval has not yet elapsed:If transcript updates arrive shortly after a summary has been generated, the function returns without scheduling a future retry.
As a result, if the meeting becomes silent or ends before another transcript chunk arrives, the latest transcript content may never be included in the generated summary or action items.
During shutdown (
stopAudioCapture()→savePendingSession()), the extension saves the current session state but does not trigger a final summary generation before persisting the session.What went wrong?
Summary generation depends entirely on future transcript activity.
What feature is affected?
Meeting summaries and action item generation.
When does the issue occur?
When new transcript content arrives before the summary interval expires and the meeting subsequently becomes silent or ends.
🔄 Steps to Reproduce
✅ Expected Behavior
❌ Actual Behavior
summarizeTranscriptIfNeeded()returns early when the interval guard is hit.📸 Screenshots / Recordings
Not applicable.
The issue was identified through code inspection of:
summarizeTranscriptIfNeeded()stopAudioCapture()savePendingSession()in
src/background.ts.💻 Environment
Chrome Version: Any supported version
Operating System: Any
Extension Version: Current
mainbranchTranscription Provider:
🧾 Console Errors
No console errors are generated.
The issue is caused by workflow logic rather than a runtime exception.
📝 Additional Context
Root Cause
The summarization pipeline is passive and event-driven.
When the interval check fails:
the function exits without scheduling a follow-up run.
Because summary generation is only triggered by incoming transcript chunks, a period of silence or a meeting ending can prevent the latest transcript updates from ever being summarized.
Suggested Fix
setTimeoutorchrome.alarmswhen the interval guard prevents summarization.Reproducibility
Based on the current code path, this behavior should occur consistently whenever:
🏷️ Metadata
Recommended Labels:
bug