in goal last steer is re-included after each compaction

Resolved 💬 5 comments Opened May 6, 2026 by Szpadel Closed May 30, 2026
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

What version of Codex CLI is running?

v0.129.0-alpha.8

What subscription do you have?

pro

Which model were you using?

_No response_

What platform is your computer?

_No response_

What terminal emulator and version are you using (if applicable)?

_No response_

What issue are you seeing?

After each compaction event agent is re-reacting to last sent steer message that is no longer relevant.

What steps can reproduce the bug?

  1. Start long running /goal
  2. At some point sent steer like, refactor X now
  3. Agent will address steer message as expected, and continue normally
  4. Compaction happens
  5. Agent re-recive last steer again and tries to address it again
  6. This will repeat after every future compaction

What is the expected behavior?

Steer should not be re-included after compaction or, next goal cycle should displace user messages in history

Additional information

Here is codex analysis of the issue:

  • turn/steer becomes pending input, then gets recorded as a normal user message once consumed.
  • Compaction preserves recent non-summary user messages. It does not know that an old user message was

only a temporary steer.

  • /goal continuation prompts are injected as developer messages, not user messages, so they do not

displace that old steer as the latest “real user” message.

  • After each compaction, the replacement history can still contain that old steer as the most recent

real user message, plus a fresh summary. The model can then treat it as newly salient and react to it
again.

View original on GitHub ↗

5 Comments

github-actions[bot] contributor · 3 months ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #21269

Powered by Codex Action

etraut-openai contributor · 3 months ago

This is now fixed. Earlier implementations of the /goal feature injected the goal continuation prompt as a developer message. The new implementation uses a user message, which prevents this problem.

nbros · 1 month ago

Doesn't really look fixed to me : in "goal" mode, the agent still seems to be wasting lots of tokens after each compaction re-evaluating the same previous steer message again and again and again.

andrew-adamson-proteros · 1 month ago
This is now fixed. Earlier implementations of the /goal feature injected the goal continuation prompt as a developer message. The new implementation uses a user message, which prevents this problem.

Not fixed for me in Windows.
Feedback ID 019f7d4d-3161-7ce3-bb2e-2d0b8155f671
Version 26.715.31925 (latest available at time of writing).

One workaround I've come up to stop it re-handling old steering messages is to give a follow-up message with something like this:
"This steering command is an empty command to deal with a codex compacting bug that re-sends previous steering messages. Ignore this message."

andrew-adamson-proteros · 1 month ago

@etraut-openai nearly two months later, this bug has not been fixed. These repeated steering commands can do serious damage in a task. Please re-open this issue and prioritise the bug as severe, as it's costing a lot of time and tokens. The sheer number of duplicate/similar issues in github should really be a giveaway that this is affecting a lot of people.