Summary
gstack-memory-ingest renders every Codex rollout session with an empty body (message_count: 0, zero-length content). All Codex transcripts import as empty shells.
Root cause
parseTranscriptJsonl (bin/gstack-memory-ingest.ts) detects Codex correctly (first.type === 'session_meta') but its message loop extracts content via:
} else if (isCodex && rec?.payload?.message) { const msg = rec.payload.message; ... }
Current Codex rollout JSONL has no payload.message. Records are shaped:
{ type: 'response_item', payload: { type: 'message', role: 'user'|'assistant'|'developer', content: [...] } }
So the branch never fires → 0 messages → empty page body for every Codex session.
Repro
Ingest any ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl; the resulting transcripts/codex/... page has message_count: 0 and an empty body. Confirmed across 243/243 Codex sessions on this machine.
Suggested fix
Handle the response_item / payload.type === 'message' shape: read payload.role and flatten payload.content (array of {type, text} items) into the body, mirroring the Claude Code branch.
Env
gstack 1.58.4.0, Codex CLI rollout format (June 2026), Windows 10.
Summary
gstack-memory-ingestrenders every Codex rollout session with an empty body (message_count: 0, zero-length content). All Codex transcripts import as empty shells.Root cause
parseTranscriptJsonl(bin/gstack-memory-ingest.ts) detects Codex correctly (first.type === 'session_meta') but its message loop extracts content via:Current Codex rollout JSONL has no
payload.message. Records are shaped:So the branch never fires → 0 messages → empty page body for every Codex session.
Repro
Ingest any
~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl; the resultingtranscripts/codex/...page hasmessage_count: 0and an empty body. Confirmed across 243/243 Codex sessions on this machine.Suggested fix
Handle the
response_item/payload.type === 'message'shape: readpayload.roleand flattenpayload.content(array of{type, text}items) into the body, mirroring the Claude Code branch.Env
gstack 1.58.4.0, Codex CLI rollout format (June 2026), Windows 10.