in goal last steer is re-included after each compaction

Resolved 💬 4 comments Opened May 6, 2026 by Szpadel Closed May 30, 2026

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 ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗