You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Older Codex Desktop threads may not expose codex_app thread management tools #31366
In Codex Desktop, an older/restored thread did not expose the built-in Codex app thread management tools through tool_search, while another Codex Desktop session was able to use them.
This prevented the agent from renaming the current thread through the intended app connector path.
Expected behavior
When a user asks to rename the current Codex thread, the agent should be able to discover and call Codex Desktop thread management tools, such as:
codex_app.list_threads
codex_app.set_thread_title
Expected flow:
Use tool_search to find thread management tools.
Call list_threads to identify the active/current thread.
Call set_thread_title with the active threadId and the desired title.
Actual behavior
In this older thread, tool_search did not expose any codex_app.* tools.
Search query used:
codex_app.set_thread_title list_threads active thread title
Returned tool namespaces included only:
multi_agent_v1
mcp__codex_apps__github
mcp__codex_apps__google_drive
mcp__codex_security
No codex_app.list_threads, codex_app.set_thread_title, or equivalent current-thread title management tool was available.
Impact
The agent could only suggest a title, but could not apply it through Codex Desktop's intended app API. The user had to rename the thread manually.
This creates inconsistent behavior across Codex Desktop sessions: another session's agent was able to use codex_app.set_thread_title, while this older/restored session could not.
Notes
This is not a request to edit local Codex storage or a local database directly. The expected path is the safer Codex Desktop app connector / built-in tool API.
Possible areas to investigate:
Whether older/restored threads miss newly added codex_app tool injection.
Whether model switches or thread restores can drop app-level tools.
Whether tool_search indexes Codex Desktop built-in app tools consistently across old and new sessions.
Adding a related observation from September 21, 2026, rather than opening a duplicate. The old-task/new-task difference resembles this report, but the affected surface is broader than thread-management tools. An identical root cause has not been established.
Runtime recorded in session metadata: 0.155.0-alpha.9.2.
Existing local Desktop task; model gpt-6-astra, reasoning medium, provider openai, ChatGPT authentication.
A custom model catalog is configured, including a context-window override. Its tool settings are shell_type=unified_exec and tool_mode=code_mode_only. A stock-catalog comparison has not been performed.
Observed sequence
Restart the Desktop app and resume an existing local coding task.
Submit an ordinary code-change request. The assistant reports that file/terminal/browser or coding/deployment tools are unavailable and performs no tool calls.
A newly created task using the same model can execute commands on the same machine.
Diagnostic follow-ups and reapplying the same model/reasoning settings do not restore execution in the old task.
Change the affected task to gpt-5.6-sol / medium. The same task starts making real functions.exec -> tools.exec_command calls and resumes work.
The user reports recurrence after app restarts. One restart/recovery episode was inspected directly; the recurrence rate was not independently measured.
Sanitized diagnostic evidence (times below are UTC)
00:42:36: thread/resume succeeded; returned permissions were danger-full-access / never.
00:45:26–00:45:37: the failed turn completed with zero tool calls. No tool-level permission rejection was observed.
00:46:04: new-session MCP initialization logged available_server_count=5 unavailable_server_count=0 tool_count=258; the new task subsequently executed commands. This does not establish the old task's model-visible tool list.
00:50 and 00:53: follow-up diagnostics still produced no execution. These were delivered through send_message_to_thread; the responses repeated the business plan instead of returning a tool inventory, so the diagnostic delivery path is also a limitation.
After the model change, the original task recorded execution-tool calls at 00:56:08, 00:56:31, 00:56:39, and 00:56:43.
Relevant conversation excerpts (English translations; unrelated business content omitted)
User: ‘Why does it say I have not provided the relevant tools? I have to start another conversation before it can use them. This happens after restarting Codex.’
Affected assistant, 00:45:37: ‘The current session has not provided coding and deployment tools. No changes have been made or deployed.’
Read-only diagnostic request, excerpt: ‘Actually execute pwd using the tools available in this turn. Do not modify files or deploy.’
Affected assistant, 00:50:54: ‘The current session has no available code-operation tools.’
Affected assistant after identical model settings were reapplied, 00:53:21: ‘The current session has no available file, terminal, or browser tools. Tool access must be restored before continuing.’
User: ‘Switching models previously resolved this, but I do not want to switch models in the middle of a task.’
Recovery observation: After the user authorized a temporary model change, the affected task produced actual execution-tool calls and resumed implementation.
Expected behavior / remaining uncertainty
A restored local task should retain its coding tools without requiring a new conversation or a model change. The failed request's complete tool definitions were not captured, so this evidence does not distinguish missing tool injection/runtime state from an incorrect model assessment of its available tools. No claim is made that a specific release introduced the issue.
A secondary observation during diagnosis: read_thread / wait_threads returned recent turn metadata but empty items/latest assistant messages, while the local rollout contained the actual replies and tool calls. It is not established whether this shares the same cause.
Only relevant translated excerpts and sanitized log fields are included here; no credentials, private repository content, internal URLs, or complete raw transcripts are published.
I can reproduce this issue: the conversation-renaming skill loaded, but set_thread_title was unavailable, so the agent could not apply the title. The tool was still unavailable on retry.
Activity
github-actions commentedon Jul 7, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Eason412 commentedon Sep 21, 2026
Additional macOS reproduction: restored task reports no coding tools; changing models restores execution
Adding a related observation from September 21, 2026, rather than opening a duplicate. The old-task/new-task difference resembles this report, but the affected surface is broader than thread-management tools. An identical root cause has not been established.
Environment
gpt-6-astra, reasoningmedium, provideropenai, ChatGPT authentication.shell_type=unified_execandtool_mode=code_mode_only. A stock-catalog comparison has not been performed.Observed sequence
gpt-5.6-sol / medium. The same task starts making realfunctions.exec -> tools.exec_commandcalls and resumes work.The user reports recurrence after app restarts. One restart/recovery episode was inspected directly; the recurrence rate was not independently measured.
Sanitized diagnostic evidence (times below are UTC)
thread/resumesucceeded; returned permissions weredanger-full-access/never.available_server_count=5 unavailable_server_count=0 tool_count=258; the new task subsequently executed commands. This does not establish the old task's model-visible tool list.send_message_to_thread; the responses repeated the business plan instead of returning a tool inventory, so the diagnostic delivery path is also a limitation.Relevant conversation excerpts (English translations; unrelated business content omitted)
User: ‘Why does it say I have not provided the relevant tools? I have to start another conversation before it can use them. This happens after restarting Codex.’
Affected assistant, 00:45:37: ‘The current session has not provided coding and deployment tools. No changes have been made or deployed.’
Read-only diagnostic request, excerpt: ‘Actually execute
pwdusing the tools available in this turn. Do not modify files or deploy.’Affected assistant, 00:50:54: ‘The current session has no available code-operation tools.’
Affected assistant after identical model settings were reapplied, 00:53:21: ‘The current session has no available file, terminal, or browser tools. Tool access must be restored before continuing.’
User: ‘Switching models previously resolved this, but I do not want to switch models in the middle of a task.’
Recovery observation: After the user authorized a temporary model change, the affected task produced actual execution-tool calls and resumed implementation.
Expected behavior / remaining uncertainty
A restored local task should retain its coding tools without requiring a new conversation or a model change. The failed request's complete tool definitions were not captured, so this evidence does not distinguish missing tool injection/runtime state from an incorrect model assessment of its available tools. No claim is made that a specific release introduced the issue.
A secondary observation during diagnosis:
read_thread/wait_threadsreturned recent turn metadata but empty items/latest assistant messages, while the local rollout contained the actual replies and tool calls. It is not established whether this shares the same cause.Only relevant translated excerpts and sanitized log fields are included here; no credentials, private repository content, internal URLs, or complete raw transcripts are published.
LinkStartR commentedon Sep 26, 2026
I can reproduce this issue: the conversation-renaming skill loaded, but
set_thread_titlewas unavailable, so the agent could not apply the title. The tool was still unavailable on retry.