Skip to content

Copilot CLI sessions appear in Entire, but transcript details are empty or incomplete #1070

@blackgirlbytes

Description

@blackgirlbytes

Summary

Users can see Copilot CLI sessions on the Entire dashboard, and the session logs/files/checkpoints are present, but the session detail view may show:

No transcript messages to display.

In other cases, the session is only partially visible: tool calls or later turns appear, but the actual conversational text is missing or truncated.

This happens because some Copilot transcripts contain empty data.content fields for both user.message and assistant.message, while the real displayable text lives in fallback fields:

  • user.message.data.transformedContent
  • assistant.message.data.reasoningText

Impact

Copilot sessions are detected and checkpointed correctly, but the most important session details are missing from the UI. That makes the session look broken, blank, or incomplete even though the agent did real work.

Observed behavior

  • Session shows up in the sessions tab
  • Files/logs/checkpoints are present
  • Session detail page has no displayable user/assistant messages, or only a partial transcript
  • Empty-state text says the parser did not extract any displayable messages
  • In some cases the stored/compacted transcript contains tool calls and file activity, but no displayable conversational text

Expected behavior

Entire should extract displayable transcript content for Copilot CLI sessions even when content is empty, using:

  • transformedContent for user prompts
  • reasoningText for assistant text

It should also remove Copilot wrapper noise like:

  • <current_datetime>...</current_datetime>
  • <reminder>...</reminder>

Likely root cause

Copilot CLI emits transcript events where:

  • user.message.data.content == ""
  • assistant.message.data.content == ""

The current transcript extraction path assumes content is populated, so those events are treated as empty and dropped. As a result, the compacted/stored transcript may only contain tool calls and no displayable conversational text.

There may also be a recovery gap for already-stored bad Copilot transcripts: if stale cached payloads already exist, fixing the parser alone may only help newly generated sessions unless old data is reprocessed or rehydrated.

Suggested fix

In the Copilot transcript handling path:

  • For prompt extraction:

    • fall back from data.content to data.transformedContent
    • strip <current_datetime> and <reminder> blocks before storing/displaying
  • For assistant summary / compact transcript generation:

    • fall back from data.content to data.reasoningText
  • For recovery of existing broken sessions:

    • consider reprocessing, rehydrating, or otherwise re-parsing already-stored stale Copilot transcripts so previously blank sessions recover too
    • make sure partially stale sessions can recover, not only fully empty ones

Areas to update

  • cmd/entire/cli/agent/copilotcli/transcript.go
  • cmd/entire/cli/transcript/compact/copilot.go

If server-side recovery is needed too:

  • api/src/lib/transcript-parsers/copilot-cli-parser.ts
  • api/src/lib/session-transcript.ts
  • api/src/routes/cache.ts

Suggested tests

Add coverage for:

  • user.message with empty content but populated transformedContent
  • assistant.message with empty content but populated reasoningText
  • stripping of <current_datetime> and <reminder> blocks
  • compacted transcript output includes displayable text instead of only tool calls
  • already-stored stale Copilot transcripts can be recovered
  • partially stale multi-checkpoint Copilot sessions recover instead of remaining truncated

Nice-to-have follow-up

If applicable on the server side, add fallback handling or transcript reprocessing for already-uploaded Copilot sessions so existing empty or incomplete sessions recover, not just newly generated ones.

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is needed

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions