{"record":{"id":"bf69e2ad34399cc2","repo":"nikivdev/code","slug":"trace-is-only-supported-for-codex-sessions-use-f","errorCode":null,"errorMessage":"trace is only supported for Codex sessions; use `f codex trace ...`","messagePattern":"trace is only supported for Codex sessions; use `f codex trace \\.\\.\\.`","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/ai.rs","lineNumber":597,"sourceCode":"            }\n            Some(ProviderAiAction::EnableGlobal { .. }) => {\n                bail!(\n                    \"global Codex enablement is only supported for Codex sessions; use `f codex enable-global`\"\n                );\n            }\n            Some(ProviderAiAction::Daemon { .. }) => {\n                bail!(\"daemon is only supported for Codex sessions; use `f codex daemon ...`\");\n            }\n            Some(ProviderAiAction::Memory { .. }) => {\n                bail!(\"memory is only supported for Codex sessions; use `f codex memory ...`\");\n            }\n            Some(ProviderAiAction::Telemetry { .. }) => {\n                bail!(\n                    \"telemetry is only supported for Codex sessions; use `f codex telemetry ...`\"\n                );\n            }\n            Some(ProviderAiAction::Trace { .. }) => {\n                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 ...`\");","sourceCodeStart":579,"sourceCodeEnd":615,"githubUrl":"https://github.com/nikivdev/code/blob/a747e741ae92c09071d0ae946ab48488adcff1ce/src/ai.rs#L579-L615","documentation":"Raised by `run_provider` in src/ai.rs when the `trace` action is dispatched against a Cursor session. Tracing is a Codex-only integration; the Cursor match arm rejects it explicitly with `bail!`. The error text routes the user to the Codex subcommand.","triggerScenarios":"Running `f cursor trace ...`, or calling run_provider(Provider::Cursor, Some(ProviderAiAction::Trace{..})). Occurs whenever a Codex-oriented trace workflow is pointed at Cursor transcripts.","commonSituations":"Reusing a Codex trace script with the provider argument swapped, muscle-memory CLI usage, tooling that enumerates all `f <provider>` subcommands without capability checks.","solutions":["Use the Codex path: `f codex trace ...`","For Cursor transcripts, limit yourself to read-only commands: `f cursor list`, `f cursor copy`, `f cursor context`","Guard dispatch code so Trace is only reachable for Provider::Codex","Update aliases/scripts that assume trace works for every provider"],"exampleFix":"// before\nf cursor trace --session abc\n// after\nf codex trace --session abc","handlingStrategy":"validation","validationCode":"fn supports_trace(provider: Provider) -> bool {\n    matches!(provider, Provider::Codex)\n}\nif !supports_trace(provider) {\n    eprintln!(\"trace requires Codex: use `f codex trace ...`\");\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::Trace { .. })) {\n    if e.to_string().contains(\"trace is only supported for Codex\") {\n        eprintln!(\"rerun as: f codex trace ...\");\n    } else {\n        return Err(e);\n    }\n}","preventionTips":["Only issue `trace` when the session provider is Codex","Parameterize scripts with the correct provider instead of swapping one CLI word","Document Cursor as a read-only provider in team docs","Add a wrapper that rewrites `f cursor trace` to `f codex trace`"],"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"}