Skip to content

Desktop: auto-title silently falls back to full first prompt when structured JSON title validation fails #44502

Description

@rawer886

What version of the Codex App are you using (From "About Codex" dialog)?

26.903.61454

What subscription do you have?

Unknown (personal model configuration, see Additional information)

What platform is your computer?

Darwin 25.6.0 arm64 arm (macOS)

What issue are you seeing?

New Desktop threads do not get a concise auto-generated title. The sidebar keeps the user's entire first prompt as the title, e.g. a ~5000-character Chinese handoff summary appears in full in session_index.jsonl as thread_name.

Local log evidence (from logs_2.sqlite, table logs) shows the background title-generation thread does complete successfully, yet its result is never applied:

  • Title task runs on model gpt-5.6-luna with reasoning_effort=low, sandbox_policy=ReadOnly { network_access: false }, turn_trigger="thread_title".
  • Upstream request completes with HTTP 200.
  • The task emits Output item item_type="message" with no tool calls and model_needs_follow_up=false needs_follow_up=false.
  • session_index.jsonl afterwards still contains the full raw first prompt as thread_name.

The turn start options also contain a strict JSON schema:

final_output_json_schema = {
  "type": "object",
  "properties": {
    "title":       {"type": "string", "minLength": 1, "maxLength": 36},
    "description": {"type": "string", "minLength": 1}
  },
  "required": ["title", "description"],
  "additionalProperties": false
}

while the same prompt text instructs the model:

Output the title as plain text with no surrounding quotes or backticks.

These two instructions contradict each other. The observed outcome (a normal plain message is produced but no title is applied and no error is logged) is consistent with the model following the plain-text instruction, the response failing the JSON-schema check, and Codex silently falling back to the raw first prompt.

What steps can reproduce the bug?

  1. Open Codex Desktop and start a new thread.
  2. Paste a long, multi-section Chinese prompt (for example a handoff summary with headings, code fences and file paths; ~5000 characters).
  3. Wait for background title generation to finish.
  4. Check the sidebar / session_index.jsonl: the thread_name is still the full first prompt.

This reproduced 2/2 times today with the same long summary on two different threads. A related failure also occurred with a short prompt containing a commit hash: in that case the title model first ran read-only git show <hash> tools and still no title was applied.

What is the expected behavior?

Either:

  • accept a plain-text title produced by the naming model, or
  • if structured JSON output is strictly required, make the prompt text consistent with the JSON schema, and log a clear reason (schema validation failure / discarded title) instead of silently keeping the raw first prompt.

Additional information

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appbugSomething isn't workingcustom-modelIssues related to custom model providers (including local models)sessionIssues involving session (thread) management, resuming, forking, naming, archiving

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions