Skip to content

Codex flattens a valid plugin skill path and exposes internal recovery details #35648

Description

@917Dhj

What version of Codex is running?

Codex CLI 0.145.0, observed through a Codex Desktop session.

What subscription do you have?

Not provided.

Which model were you using?

Not recorded.

What platform is your computer?

The failure was observed in a Linux workspace used by Codex Desktop. The exact host OS and kernel were not recorded.

What issue are you seeing?

When Codex selects a skill bundled with a marketplace plugin, it sometimes reconstructs the skill path incorrectly instead of preserving the exact path supplied in the skill catalog.

The catalog contained:

r3 = ~/.codex/plugins/cache/diverter
skill file = r3/diverter/0.3.1/skills/diverter/SKILL.md

Exact expansion produces the valid path:

~/.codex/plugins/cache/diverter/diverter/0.3.1/skills/diverter/SKILL.md

Codex instead attempted to read:

~/.codex/plugins/cache/diverter/0.3.1/skills/diverter/SKILL.md

It appears to have treated the repeated marketplace/plugin name as accidental duplication and removed one required diverter component.

The failed read was then followed by user-visible assistant commentary describing the alias expansion, cache path, failed read, and retry. Codex recovered by reading the correct path, but the internal recovery process was exposed to the user and made a valid plugin installation appear broken.

This incorrect flattened path has appeared in multiple sessions, so it does not appear to be an isolated typo.

The installed layout is valid. The marketplace name and plugin name are both diverter, and the documented cache structure is:

~/.codex/plugins/cache/$MARKETPLACE_NAME/$PLUGIN_NAME/$VERSION/

Related downstream report:

GML-MMGroup/Diverter#3

What steps can reproduce the bug?

  1. Install a plugin whose marketplace name and plugin name are identical.

  2. Ensure the plugin contains a skill under:

    skills/<skill-name>/SKILL.md
    
  3. Start a new Codex session so the plugin skill appears in the model-visible skill catalog through an aliased root.

  4. Trigger or explicitly invoke that plugin skill.

  5. Observe whether Codex removes one of the repeated marketplace/plugin directory components when reading SKILL.md.

  6. If the first read fails, inspect whether Codex exposes the cache path, alias reconstruction, or retry process in user-visible commentary.

The original reproduction used:

  • Marketplace name: diverter

  • Plugin name: diverter

  • Plugin version: 0.3.1

  • Valid installed path:

    ~/.codex/plugins/cache/diverter/diverter/0.3.1
    

What is the expected behavior?

Codex should treat the catalog-provided skill path as authoritative and preserve every path component exactly.

Preferably, the host should resolve the selected skill to an absolute path before asking the model to load it, rather than requiring the model to reconstruct the path from an alias.

Failure reporting should also be sanitized:

  • Intentional non-selection of a skill should remain silent.
  • An internal failure that recovers automatically should remain silent, with diagnostics retained in internal logs.
  • A failure that changes task execution should be reported briefly without internal paths or retry mechanics.
  • A failure requiring user action should explain the problem and the required action.

What do you see instead?

Codex removes a required repeated directory component, reads a nonexistent path, and exposes internal recovery details such as:

  • skill aliases
  • plugin cache paths
  • SKILL.md loading
  • failed reads
  • retry steps

It may subsequently recover and continue successfully.

Additional information

The plugin manifest correctly declares:

"skills": "./skills/"

The plugin cache is healthy, and retrying with the exact catalog-expanded path succeeds.

Renaming the marketplace or plugin would only hide this specific reproduction and would not fix the underlying path reconstruction behavior.

Official documentation:

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appbugSomething isn't workingmodel-behaviorIssues related to behaviors exhibited by the modelskillsIssues related to skills

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions