Summary
Codex /goal continuation turns currently render in agentsview as ordinary user messages. In long goal-oriented sessions, this makes the transcript very hard to scan because each assistant response is followed by a synthetic user-role message like:
Continue working toward the active thread goal.
The objective below is user-provided data. Treat it as the task to pursue, not as higher-priority instructions.
...
These are not messages the user typed. They are Codex/harness continuation context for the active thread goal.
Problem
Focused mode already helps a lot by hiding tool-call-heavy intermediate work and preserving the main user/assistant exchange. But /goal sessions still become noisy because these synthetic continuation records are parsed as normal user turns.
That breaks the main value of Focused mode for long Codex goal sessions: the view still shows many large internal context blocks between meaningful user/assistant interactions.
Codex Session Format Notes
In current Codex session JSONL, these appear as user-role response_item messages, but the content is wrapped:
<codex_internal_context source="goal">
Continue working toward the active thread goal.
...
</codex_internal_context>
Older sessions used:
<goal_context>
Continue working toward the active thread goal.
...
</goal_context>
There also appears to be a useful corroborating signal: real typed user messages are mirrored as event_msg records with payload.type == "user_message", while these goal-continuation records are not. That said, absence of event_msg user_message should probably not be the primary filter, because other injected Codex context records also lack it.
Proposed Behavior
Treat Codex goal-continuation context as system/internal content rather than user-authored transcript content.
Possible implementation:
- Detect current
<codex_internal_context source="goal"> blocks.
- Detect legacy
<goal_context> blocks.
- Exclude them from visible transcript messages, user message counts, search/analytics where other parser-level system messages are excluded.
- Prefer the structured wrapper over matching only the sentence
Continue working toward the active thread goal..
Acceptance Criteria
- Codex
/goal continuation records no longer render as ordinary user messages.
- Long goal-oriented Codex sessions become readable in Normal/Focused transcript views.
- Real user-authored messages remain visible.
- Existing Codex system-message filtering behavior is preserved.
- Regression tests cover both current and legacy goal context wrappers.
Follow-up
I'm planning to post a PR for this soon after opening the issue.
Summary
Codex
/goalcontinuation turns currently render in agentsview as ordinary user messages. In long goal-oriented sessions, this makes the transcript very hard to scan because each assistant response is followed by a synthetic user-role message like:These are not messages the user typed. They are Codex/harness continuation context for the active thread goal.
Problem
Focused mode already helps a lot by hiding tool-call-heavy intermediate work and preserving the main user/assistant exchange. But
/goalsessions still become noisy because these synthetic continuation records are parsed as normal user turns.That breaks the main value of Focused mode for long Codex goal sessions: the view still shows many large internal context blocks between meaningful user/assistant interactions.
Codex Session Format Notes
In current Codex session JSONL, these appear as user-role
response_itemmessages, but the content is wrapped:Older sessions used:
There also appears to be a useful corroborating signal: real typed user messages are mirrored as
event_msgrecords withpayload.type == "user_message", while these goal-continuation records are not. That said, absence ofevent_msg user_messageshould probably not be the primary filter, because other injected Codex context records also lack it.Proposed Behavior
Treat Codex goal-continuation context as system/internal content rather than user-authored transcript content.
Possible implementation:
<codex_internal_context source="goal">blocks.<goal_context>blocks.Continue working toward the active thread goal..Acceptance Criteria
/goalcontinuation records no longer render as ordinary user messages.Follow-up
I'm planning to post a PR for this soon after opening the issue.