Restate goal in full when context is compacted

Open 💬 1 comment Opened May 14, 2026 by raulk

What version of Codex CLI is running?

v0.130.0

What subscription do you have?

Pro

Which model were you using?

gpt-5.5

What platform is your computer?

_No response_

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

_No response_

Codex doctor report

What issue are you seeing?

I was running a /goal session with gpt-5.5-xhigh to take a nine-phase plan to completion. The goal included an explicit instruction, copied here verbatim:

Subagent policy:
- Main agent stays xhigh and owns sequencing, architecture, integration, commits, and final judgment.
- Launch subagents only for bounded parallel work with clear ownership and no overlapping write sets.
- Explorers should answer specific codebase questions and usually run at medium/high.
- Workers should own disjoint implementation slices and usually run at high; use xhigh only for macro/
router/WIT correctness work.
Phase effort map:
- Phase 0 baseline and inventories: main xhigh, optional explorer medium for inventories.
- Phase 1 provider macro final runtime dispatch: main xhigh, worker xhigh/high for macro/runtime split,
verifier high.
- Phase 2 lifecycle, manifest, capabilities: main xhigh, worker xhigh, verifier high.
- Phase 3 typed routing APIs: main xhigh, worker xhigh, compile-contract verifier high.
- Phase 4 routing edge APIs and bind/capture correctness: main xhigh, worker xhigh, verifier high.
- Phase 5 provider ports: main xhigh, workers high split by provider with disjoint write sets, verifier
high.
[...]

Somewhere along the way, I noticed that the main session had stopped launching subagents and was absorbing all the work itself. I asked the model if it still saw the full goal. Here's what it replied:

› why are you conducting this work on the main agent?
• Because I did not have an explicit instruction to spawn subagents, and the agent policy here only allows
  delegation when the user asks for subagents, delegation, or parallel agent work. [...]

› you don't see your goal?
• I do see it now. I should have called **get_goal** after the context transition instead of relying on the
  summarized objective, and my previous answer was incomplete: the active goal explicitly makes this a
  main-orchestrator run and authorizes bounded subagents under that policy.
  It does not require delegating every task, but Phase 3 is exactly the kind of wide API/provider/compile-
  contract slice where I should split non-overlapping work. I’ll correct course: main stays on SDK/macro/
  host integration and commits; I’ll use subagents for provider cleanup and verification only after
  reading providers/SKILL.md, which the goal also explicitly required.

My conclusion is that a few rounds of compaction cleared away the goal and possibly even the instruction to call the get_goal tool. If it's not the case already, I might be worth injecting the full goal and a situational awareness update so the model doesn't get confused.

What steps can reproduce the bug?

Try the steps above.

What is the expected behavior?

_No response_

Additional information

_No response_

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗