Files
pipecat/changelog
Paul Kompfner 8330c3487d Refactor delayed-transcript machinery; standardize vocabulary
Splits ``_maybe_emit_user_turn_stopped`` into three focused methods —
``_flush_user_message_to_context`` (push aggregation, return content +
timestamp), ``_finalize_user_turn`` (default-mode flow, emits both
events), and ``_finalize_delayed_user_message`` (delayed-mode flow,
emits only ``on_user_turn_message_finalized``). Fixes a side-issue
where ``on_user_turn_stopped`` could fire from non-end-of-turn paths
in delayed-transcript mode; that event now has a single origin (the
end-of-turn handler).

Standardizes vocabulary across docstrings and comments:

- "Default mode" / "Delayed-transcript mode" (with
  ``_expect_delayed_transcripts == False/True``)
- "End of turn" (not "audible stop" or "audible end of turn")
- "User message finalization" (the moment user-text is flushed to
  context + ``on_user_turn_message_finalized`` fires)
- "Pending finalization" (the in-between state in delayed mode)
- Transcripts (plural — the aggregator combines multiple per turn)

The timer that triggers user message finalization is no longer
described as a "backstop" — it's the sole trigger for finalization
in delayed-transcript mode, not a fallback. Renamed accordingly:
``_pending_finalization_task``, ``_pending_finalization_handler``,
``_run_pending_finalization``, ``_discard_pending_finalization``.

Adds a separate message class for the two events:
``UserTurnStoppedMessage.content`` is now ``str | None`` (``None``
at end-of-turn in delayed-transcript mode), and a new
``UserMessageFinalizedMessage`` carries the always-populated
``content`` for the finalization event.
2026-05-18 09:55:11 -04:00
..
2026-04-29 09:53:42 -04:00
2026-04-29 11:09:38 -04:00
2026-04-30 09:45:16 -04:00
2026-04-30 09:45:16 -04:00
2026-04-30 09:45:16 -04:00
2026-04-30 09:45:16 -04:00
2026-04-30 09:45:16 -04:00
2026-04-30 09:45:16 -04:00
2026-04-30 14:16:46 -04:00
2026-04-30 16:19:35 -04:00
2026-04-30 21:41:28 -04:00
2026-05-01 08:58:38 -04:00
2026-05-05 13:03:49 -04:00
2026-05-07 17:46:15 -07:00
2026-05-07 17:46:15 -07:00
2026-05-07 17:46:15 -07:00
2026-05-07 16:58:08 -07:00
2026-05-04 15:18:15 -04:00
2026-05-04 21:54:58 -04:00
2026-05-04 21:54:58 -04:00
2026-05-04 16:22:26 -04:00
2026-05-06 11:26:14 -03:00
2026-05-06 11:26:14 -03:00
2026-05-07 11:32:48 -03:00
2026-05-10 20:34:52 -07:00
2026-05-12 15:20:57 -04:00
2026-05-11 17:34:00 -04:00