{"record":{"id":"ab9ff6ffabc77981","repo":"nikivdev/code","slug":"agent-is-only-supported-for-codex-sessions-use-f","errorCode":null,"errorMessage":"agent is only supported for Codex sessions; use `f codex agent ...`","messagePattern":"agent is only supported for Codex sessions; use `f codex agent \\.\\.\\.`","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/ai.rs","lineNumber":615,"sourceCode":"                bail!(\"trace is only supported for Codex sessions; use `f codex trace ...`\");\n            }\n            Some(ProviderAiAction::ProjectAi { .. }) => {\n                bail!(\n                    \"project-ai is only supported for Codex sessions; use `f codex project-ai ...`\"\n                );\n            }\n            Some(ProviderAiAction::SkillEval { .. }) => {\n                bail!(\n                    \"skill-eval is only supported for Codex sessions; use `f codex skill-eval ...`\"\n                );\n            }\n            Some(ProviderAiAction::SkillSource { .. }) => {\n                bail!(\n                    \"skill-source is only supported for Codex sessions; use `f codex skill-source ...`\"\n                );\n            }\n            Some(ProviderAiAction::Agent { .. }) => {\n                bail!(\"agent is only supported for Codex sessions; use `f codex agent ...`\");\n            }\n            Some(ProviderAiAction::Log { .. }) => {\n                bail!(\"log is only supported for Codex sessions; use `f codex log ...`\");\n            }\n            Some(ProviderAiAction::Sessions { .. })\n            | Some(ProviderAiAction::Browse { .. })\n            | Some(ProviderAiAction::Continue { .. })\n            | Some(ProviderAiAction::New)\n            | Some(ProviderAiAction::Open { .. })\n            | Some(ProviderAiAction::Resolve { .. })\n            | Some(ProviderAiAction::Resume { .. })\n            | Some(ProviderAiAction::Find { .. })\n            | Some(ProviderAiAction::FindAndCopy { .. }) => {\n                bail!(\n                    \"Cursor transcripts are readable only; use `f cursor list`, `f cursor copy`, or `f cursor context`\"\n                );\n            }\n            Some(ProviderAiAction::Recover { .. }) => {","sourceCodeStart":597,"sourceCodeEnd":633,"githubUrl":"https://github.com/nikivdev/code/blob/a747e741ae92c09071d0ae946ab48488adcff1ce/src/ai.rs#L597-L633","documentation":"Raised by `run_provider` in src/ai.rs when the `agent` action is dispatched against a Cursor session. Agent orchestration is a Codex-only integration; the Cursor dispatch rejects it with `bail!` and directs the user to `f codex agent ...`.","triggerScenarios":"Running `f cursor agent ...`, or run_provider(Provider::Cursor, Some(ProviderAiAction::Agent{..})). Triggered whenever agent automation targets the Cursor provider.","commonSituations":"Agent pipelines migrated from Codex but still pointing at Cursor transcripts, tab-completion guesses that every provider supports `agent`, shared dotfiles with provider-agnostic aliases.","solutions":["Use `f codex agent ...` instead","Restrict Cursor interaction to the read-only trio: `f cursor list`, `f cursor copy`, `f cursor context`","Branch on provider in automation before invoking Agent","Remove/alias-correct any `f cursor agent` shortcuts in shell configs"],"exampleFix":"// before\nf cursor agent run task\n// after\nf codex agent run task","handlingStrategy":"validation","validationCode":"fn supports_agent(provider: Provider) -> bool {\n    matches!(provider, Provider::Codex)\n}\nif !supports_agent(provider) {\n    eprintln!(\"agent requires Codex: use `f codex agent ...`\");\n    return;\n}","typeGuard":"fn is_codex(provider: Provider) -> bool {\n    matches!(provider, Provider::Codex)\n}","tryCatchPattern":"if let Err(e) = run_provider(provider, Some(ProviderAiAction::Agent { .. })) {\n    if e.to_string().contains(\"agent is only supported for Codex\") {\n        eprintln!(\"rerun as: f codex agent ...\");\n    } else {\n        return Err(e);\n    }\n}","preventionTips":["Point agent pipelines exclusively at Codex","Audit shell aliases for `f cursor agent` leftovers","Validate the provider argument in automation configs","Keep a capability matrix handy: agent = Codex only"],"tags":["unsupported-action","provider-dispatch","cli"],"backgroundTag":"provider-unsupported-action","analyzedSha":"a747e741ae92c09071d0ae946ab48488adcff1ce","analyzedAt":"2026-09-01T22:43:55.719Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}