openclaw - 💡(How to fix) Fix [voice-call] Preserve full conversation transcript across mid-conversation human holds [1 comments, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#56179Fetched 2026-04-08 01:44:03
View on GitHub
Comments
1
Participants
1
Timeline
3
Reactions
0
Participants
Timeline (top)
closed ×1commented ×1locked ×1

Code Example

You were mid-conversation. Full conversation so far:
CALLER: Hello billing, Jamie speaking.
YOU: Hi Jamie, this is Imogen...
[... all exchanges ...]
They have just put you on hold. Continue naturally when they return.
RAW_BUFFERClick to expand / collapse

resumeFromHold() opens a fresh OpenAI Realtime session — all conversation history is lost. If a human agent says "hold on while I look that up" and puts the bot on hold, when they return the bot has forgotten the entire conversation.

Design: Before pause, capture CallRecord.transcript. On resume, inject the full transcript verbatim via submitBriefing():

You were mid-conversation. Full conversation so far:
CALLER: Hello billing, Jamie speaking.
YOU: Hi Jamie, this is Imogen...
[... all exchanges ...]
They have just put you on hold. Continue naturally when they return.

Important: Use the full raw transcript — no LLM summary. Information loss from summarization is unacceptable for goal-critical calls.

Where to implement:

  • In webhook.ts, capture transcript from CallRecord.transcript at pause time
  • Format as conversation history prefix
  • Submit as briefing after reconnect via submitBriefing()

extent analysis

Fix Plan

To fix the issue of losing conversation history when resuming from hold, we will implement the following steps:

  • Capture the CallRecord.transcript before pausing the conversation
  • Format the transcript as a conversation history prefix
  • Submit the prefix as a briefing after reconnecting via submitBriefing()

Example Code

// In webhook.ts
const pauseConversation = (callRecord: CallRecord) => {
  // Capture the transcript before pausing
  const transcript = callRecord.transcript;
  // Format the transcript as a conversation history prefix
  const conversationHistory = formatTranscriptAsPrefix(transcript);
  // Store the conversation history for later use
  callRecord.conversationHistory = conversationHistory;
};

const resumeConversation = (callRecord: CallRecord) => {
  // Submit the conversation history as a briefing after reconnecting
  submitBriefing(callRecord.conversationHistory);
};

const formatTranscriptAsPrefix = (transcript: string) => {
  // Format the transcript as a conversation history prefix
  return `You were mid-conversation. Full conversation so far:\n${transcript}\nThey have just put you on hold. Continue naturally when they return.`;
};

Verification

To verify that the fix worked, test the following scenario:

  • Start a conversation with the bot
  • Put the bot on hold
  • Resume the conversation
  • Verify that the bot remembers the entire conversation history and responds accordingly

Extra Tips

  • Make sure to store the conversation history securely to prevent data loss
  • Consider implementing a timeout or expiration for stored conversation histories to prevent storage overload
  • Test the fix thoroughly to ensure that it works correctly in all scenarios, including edge cases and error handling.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING