codex - 💡(How to fix) Fix v0.133.0: /goal sets active goal but get_goal/update_goal are not exposed to the model

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

On codex-cli 0.133.0, Goal mode can create an active goal, but the model does not receive the goal-management tools (get_goal, create_goal, update_goal). This leaves a goal visibly active while the agent cannot inspect or complete it with update_goal({"status":"complete"}).

This appears different from a plain DB read/write failure: in the smoke tests below, no get_goal call is attempted at all because the tools are absent from the exposed tool surface.

Root Cause

This creates a stuck Goal mode: users can enter Goal mode, but the agent cannot use the required lifecycle tools to inspect or complete the goal. For long-running goals, this removes the main completion mechanism and makes the visible active goal misleading.

Code Example

goals                                   stable             true

---

/goal test goal support; finish by reporting whether get_goal/update_goal are available.

---

Goal active Objective: test goal support; finish by reporting whether get_goal/update_goal are available.

---

get_goal is not available.
update_goal is not available.

---

ToolCall: tool_search get_goal update_goal goal status complete blocked thread_id=019e5002-0a71-7572-81d0-c4e8f0a0f8e4

---

codex exec --json --enable goals -C <repo> \
  'Goal tool exposure smoke test. Do not edit files. Do not run shell commands. If a tool named get_goal is available, call get_goal now, then answer exactly AVAILABLE. If get_goal/create_goal/update_goal are not available, answer exactly MISSING.' \
  | tee /tmp/codex-goal-exec-smoke.jsonl

---

{"type":"thread.started","thread_id":"019e5006-5331-75e3-8fb4-137b7bd3f128"}
{"type":"turn.started"}
{"type":"item.completed","item":{"id":"item_0","type":"agent_message","text":"MISSING"}}
{"type":"turn.completed","usage":{"input_tokens":16453,"cached_input_tokens":3456,"output_tokens":233,"reasoning_output_tokens":225}}

---

state_5.sqlite:
(34, 'drop thread goals', 1)
(33, 'thread goal stopped statuses', 1)
(32, 'threads preview', 1)

goals_1.sqlite:
thread_goals table exists
row count: 5
RAW_BUFFERClick to expand / collapse

Summary

On codex-cli 0.133.0, Goal mode can create an active goal, but the model does not receive the goal-management tools (get_goal, create_goal, update_goal). This leaves a goal visibly active while the agent cannot inspect or complete it with update_goal({"status":"complete"}).

This appears different from a plain DB read/write failure: in the smoke tests below, no get_goal call is attempted at all because the tools are absent from the exposed tool surface.

Environment

  • Codex CLI: codex-cli 0.133.0
  • Platform: Linux / WSL2 (6.6.87.2-microsoft-standard-WSL2, x86_64)
  • Model: gpt-5.5, reasoning xhigh
  • codex features list reports:
goals                                   stable             true

Reproduction 1: TUI /goal

  1. Start a fresh Codex CLI TUI session after closing previous Codex/App/IDE processes.
  2. Run:
/goal test goal support; finish by reporting whether get_goal/update_goal are available.
  1. The TUI displays:
Goal active Objective: test goal support; finish by reporting whether get_goal/update_goal are available.
  1. The agent reports:
get_goal is not available.
update_goal is not available.

It also checked deferred tool discovery; only multi-agent tools were discoverable, not goal-management tools. Because update_goal was unavailable, the agent could not mark the smoke-test goal complete.

Relevant log line from the goal thread:

ToolCall: tool_search get_goal update_goal goal status complete blocked thread_id=019e5002-0a71-7572-81d0-c4e8f0a0f8e4

There is no corresponding ToolCall: get_goal ... in that thread.

Reproduction 2: non-interactive codex exec

Command:

codex exec --json --enable goals -C <repo> \
  'Goal tool exposure smoke test. Do not edit files. Do not run shell commands. If a tool named get_goal is available, call get_goal now, then answer exactly AVAILABLE. If get_goal/create_goal/update_goal are not available, answer exactly MISSING.' \
  | tee /tmp/codex-goal-exec-smoke.jsonl

Observed output:

{"type":"thread.started","thread_id":"019e5006-5331-75e3-8fb4-137b7bd3f128"}
{"type":"turn.started"}
{"type":"item.completed","item":{"id":"item_0","type":"agent_message","text":"MISSING"}}
{"type":"turn.completed","usage":{"input_tokens":16453,"cached_input_tokens":3456,"output_tokens":233,"reasoning_output_tokens":225}}

The persisted rollout for thread 019e5006-5331-75e3-8fb4-137b7bd3f128 contains only the user prompt and final MISSING answer. It contains no get_goal, create_goal, or update_goal tool call.

Local goal DB state

Goal storage appears to exist and be migrated, so this does not look like a missing goals DB:

state_5.sqlite:
(34, 'drop thread goals', 1)
(33, 'thread goal stopped statuses', 1)
(32, 'threads preview', 1)

goals_1.sqlite:
thread_goals table exists
row count: 5

Expected behavior

When Goal mode is enabled and a session supports persisted goals:

  • /goal should create or activate the goal.
  • The model should receive get_goal, create_goal, and update_goal in the tool surface.
  • The agent should be able to call get_goal for synchronization and update_goal({"status":"complete"}) when the objective is finished.

Actual behavior

  • /goal creates/displays an active goal.
  • codex exec --enable goals also runs with goals enabled.
  • The model-visible tools do not include get_goal, create_goal, or update_goal.
  • The agent cannot complete the active goal.

Why this matters

This creates a stuck Goal mode: users can enter Goal mode, but the agent cannot use the required lifecycle tools to inspect or complete the goal. For long-running goals, this removes the main completion mechanism and makes the visible active goal misleading.

Related

This may be adjacent to #23984 because that issue discusses 0.133 goal storage changes and stale schema/process problems. This report is specifically about the goal tools not being exposed at all, even in a fresh non-interactive codex exec smoke test where no get_goal call is attempted.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

When Goal mode is enabled and a session supports persisted goals:

  • /goal should create or activate the goal.
  • The model should receive get_goal, create_goal, and update_goal in the tool surface.
  • The agent should be able to call get_goal for synchronization and update_goal({"status":"complete"}) when the objective is finished.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

codex - 💡(How to fix) Fix v0.133.0: /goal sets active goal but get_goal/update_goal are not exposed to the model