Codex App automations clutter main thread list and lose recurring task intent
Summary
Codex App cron automations currently create a new standalone conversation/thread for each run and surface those run threads directly in the normal main conversation list. For frequent daily automations, this heavily clutters the user's thread list with one-off automation run conversations.
There is also a recurring reliability issue where scheduled automation prompts are repeatedly interpreted incorrectly across runs, especially when a workflow has distinct preparation and publishing windows. The automation tends to forget or blur the intended temporal semantics, such as treating a preparation run as a publish run, targeting the wrong date, or failing to preserve the difference between "prepare tomorrow's package" and "publish/confirm today's package".
Environment
- Codex App desktop
- Windows
- Local cron automations
- Multiple recurring automations in the same project/workspace
- Automations use
kind = "cron"with local execution
Issue 1: Automation run threads pollute the normal thread list
Current behavior
Each cron automation run creates a standalone thread titled like an automation run, for example:
Automation: <automation name>Automation ID: <id>Last run: ...
These one-off run threads appear in the normal user conversation list alongside real manually-created conversations. With several daily automations, the sidebar quickly becomes dominated by automation-generated one-off threads.
Moving the automation's working directory into a project/workspace does not appear to keep the generated run threads scoped inside a project-only automation history. They still appear in the main thread list.
Expected behavior
Automation runs should not pollute the user's normal conversation list by default. Prefer one or more of:
- Store automation runs under a separate "Automation history" area.
- Group run history under the parent automation.
- Auto-archive automation run threads after completion unless pinned or failed.
- Provide a setting: "Show automation runs in main thread list".
- If an automation belongs to a project/workspace, keep its generated run records scoped to that project/workspace instead of showing them as global conversations.
User impact
Frequent daily automations create dozens of visible one-off conversations and make it difficult to find normal human conversations. The user has to periodically bulk archive automation runs manually.
Issue 2: Recurring task intent drifts or is misunderstood across scheduled runs
Current behavior
For recurring scheduled workflows with multiple time windows, Codex repeatedly misunderstands the intended schedule semantics even when the automation prompt is explicit. Examples of the intended semantics:
- 13:00 run: prepare tomorrow's 08:00 release package. Do not publish at 13:00.
- 06:00 run: pre-release risk check for today's 08:00 package.
- 08:00 run: publish or confirm today's prepared package. Do not regenerate content unless no valid package exists.
- 08:10 run: post-release closure check for today's 08:00 release.
- 13:10 / 13:50 runs: process-supervision checks for the next day's package, not same-day publishing.
Despite these distinctions being written in the automation prompts, the automated runs repeatedly require extra corrective wording because the agent may:
- Treat a preparation window as a publishing window.
- Target the wrong date, such as preparing/publishing same-day when the task is for next-day package preparation.
- Restart or regenerate work when it should only confirm existing prepared/published state.
- Fail to consistently preserve the difference between scheduler role, watchdog role, preparation role, publishing role, and post-release verification role.
Expected behavior
Codex automations should reliably preserve cron schedule semantics and task intent across runs. Recurring automation execution should treat the schedule and the prompt as stable operational context, especially date/time targets and "prepare vs publish vs verify" distinctions.
Possible improvements:
- Provide first-class schedule context variables, e.g.
scheduled_run_time,actual_run_time,target_date,timezone, andautomation_id. - Make cron automations include a structured system message with the exact scheduled time and current timezone.
- Add an automation-level "run type" or "phase" field so agents can use structured metadata instead of relying only on long natural-language prompts.
- Add validation/warnings when multiple automations have similar names but different temporal responsibilities.
- Provide a way for an automation to persist and enforce invariants, such as "this automation never publishes" or "this automation only confirms an existing package".
Why this matters
For real operational workflows, automations are not just reminders. They are recurring production processes. If every run creates visible noise in the main chat list and the agent repeatedly misinterprets time-window responsibilities, the automation system becomes hard to trust and expensive to maintain.
Suggested severity
Medium to high for users running daily production automations. The clutter issue is a UX/product defect; the recurring intent drift is a reliability defect for scheduled operations.
4 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Additional Windows repro evidence (
26.715.10079.0)I can reproduce Issue 1: automation run threads pollute the normal thread list on the current Microsoft Store Windows build.
Environment
OpenAI.Codex_26.715.10079.0_x64__2p2nqsd0c76g010.0.26200, x64cronautomation assigned to a projectReproduction
Expected behavior
Standalone automation runs should be surfaced in Scheduled / the review queue, without also accumulating in the normal project thread list unless the user explicitly opens, pins, or promotes a run.
This matches the current product documentation, which says standalone scheduled tasks report their results in Scheduled: https://learn.chatgpt.com/docs/automations
Local state evidence
The same-machine state history shows a behavior change:
status = ARCHIVEDwitharchived_reason = auto.status = PENDING_REVIEWwitharchived_reason = NULL.ARCHIVED / auto, removes it from the normal project list, and keeps it available under Scheduled history.failed_runs_onlyonly marks successful runs as read; it does not archive them or prevent them from entering the normal project list.Inspection of the installed desktop bundle also suggests that the regular local thread catalog and live project-list filters special-case pull-request automation threads, but do not exclude threads whose
threadSourceisautomation. That is consistent with the observed UI behavior.Suggested verification for a fix
No project paths, automation names, account identifiers, or thread IDs are included in this report.
A quick update after support asked whether this survives an app restart.
Codex has since restarted and updated from Windows build
26.715.10079.0to26.721.4979.0. The five runs from the earlier reproduction are nowARCHIVEDwitharchived_reason = auto, and they are no longer in the ordinary local thread catalog.That is encouraging, but it does not prove the bug is fixed: those older samples were already archived, so they cannot tell us whether a still-unarchived automation run would remain in the normal project list after a restart. I will check the next normal standalone run on the current build rather than create an artificial automation just for this test.
The distinction that matters here is simple: a new chat for each standalone run is expected. The problem is the same run appearing both in Scheduled and in the ordinary project task list. Switching to a heartbeat is not an equivalent workaround for someone who wants independent scheduled runs without filling the regular task list.
Additional selective-classification repro on Windows
26.727.6591.0I reproduced a narrower intermittent variant on a newer Microsoft Store Windows build.
Environment
OpenAI.Codex_26.727.6591.0_x64__2p2nqsd0c76g00.146.0-alpha.9.2cronautomations assigned to the same project and working directoryObserved behavior
Four materially identical project-scoped cron runs started within the same roughly ten-second window. All four:
thread_source = automation;However, only one run also appeared in the ordinary Projects conversation/task list. The other runs remained confined to Scheduled.
The affected run completed at
09:42:42local time. The first user interaction with that thread did not start until09:54:05, so opening, replying to, or manually promoting the thread did not cause it to enter Projects.Why this seems distinct
This does not look like every standalone run being intentionally included in the normal list. It appears to be selective and timing-dependent: one run was rendered/indexed as a normal project conversation while equivalent runs were correctly treated as Scheduled-only.
The retained local state confirms that the affected thread was still recognized as an automation run, so this may be a sidebar classification/refresh race rather than only an archiving-policy issue.
Expected behavior
When “Show Scheduled” is disabled, all equivalent standalone automation runs should be treated consistently and remain out of the normal project conversation list unless the user explicitly opens, pins, or promotes one.
No project paths, automation names, account identifiers, or thread IDs are included here.