Skip to content

enhancement: /read endpoint must support ACP transcript data (not just JSONL) #3143

Description

@OneStepAt4time

Description

From E2E testing + Hep investigation (2026-05-10): The /read endpoint (GET /v1/sessions/:id/read) only reads JSONL transcript files (tmux-era). In ACP mode, transcript data is stored differently and no JSONL file exists, so /read returns messages: [].

Meanwhile /transcript may partially work for ACP sessions through a different code path.

Root Cause

  • /readreadTranscriptgetCachedEntries → reads session.jsonlPath
  • In ACP mode, session.jsonlPath is undefined → returns empty array
  • ACP stores transcript data via its own transcriptId in the ACP session service
  • No bridge between ACP transcript data and the /read endpoint

Impact

  • Users on ACP mode (default) get empty responses from /read
  • Docs reference /read as the primary way to read session output
  • Inconsistency between /read and /transcript behavior

Proposed Fix

  1. Detect ACP sessions and read from ACP transcript service instead of JSONL
  2. Normalize output format to match existing /read response schema
  3. Consider unifying /read and /transcript endpoints long-term

Acceptance Criteria

  • /read returns messages for ACP sessions
  • Output format consistent with JSONL-based reads
  • Backward compatible with tmux sessions

Environment

  • Aegis: v0.6.6-preview.1 (develop)
  • Node: v22

Metadata

Metadata

Labels

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions