{"record":{"id":"389683ac2b7ad6e0","repo":"can1357/oh-my-pi","slug":"list-details-exec-and-exec-batch-are-not-s","errorCode":null,"errorMessage":"--list-details, --exec, and --exec-batch are not supported by the in-process fd builtin","messagePattern":"--list-details, --exec, and --exec-batch are not supported by the in-process fd builtin","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/pi-builtins/src/fd.rs","lineNumber":610,"sourceCode":"\t\t\t},\n\t\t}\n\t}\n}\n\n/// Creates the `fd` builtin registration.\npub(crate) fn fd_builtin<SE: ShellExtensions>() -> Registration<SE> {\n\tutil::<FdCli, SE>()\n}\n\nfn search(\n\tcli: FdCli,\n\tbase_dir: PathBuf,\n\thost: &mut Host,\n\tcancelled: &AtomicBool,\n) -> io::Result<SearchState> {\n\tif cli.list_details || !cli.exec.is_empty() || !cli.exec_batch.is_empty() || cli.batch_size != 0\n\t{\n\t\treturn Err(io::Error::new(\n\t\t\tio::ErrorKind::InvalidInput,\n\t\t\t\"--list-details, --exec, and --exec-batch are not supported by the in-process fd builtin\",\n\t\t));\n\t}\n\tlet _ = (cli.color, cli.hyperlink, cli.strip_cwd_prefix);\n\n\tlet search_paths = resolve_search_paths(&cli, &base_dir, host)?;\n\tlet absolute_roots = search_paths\n\t\t.iter()\n\t\t.filter(|path| path.original.is_absolute())\n\t\t.map(|path| path.resolved.clone())\n\t\t.collect::<Vec<_>>();\n\tlet matcher = Arc::new(build_matcher(&cli)?);\n\tlet excludes = build_excludes(&cli.excludes)?;\n\tlet types = build_type_filter(&cli.types)?;\n\tlet sizes = build_size_filters(&cli.sizes)?;\n\tlet changed_after = cli\n\t\t.changed_within","sourceCodeStart":592,"sourceCodeEnd":628,"githubUrl":"https://github.com/can1357/oh-my-pi/blob/969062200754ea02cfac922e5ebb8c608c079e15/crates/pi-builtins/src/fd.rs#L592-L628","documentation":"The in-process fd builtin rejects CLI configurations that require spawning an external process: --list-details (ls -l style output), --exec, --exec-batch, and nonzero --batch-size. These features depend on fd's process-execution machinery, which the embedded builtin deliberately does not implement.","triggerScenarios":"Invoking the fd builtin with `--exec <cmd>`, `--exec-batch <cmd>`, `--list-details` (or `-l`), or setting `--batch-size` to a nonzero value.","commonSituations":"Users copying fd CLI one-liners into the shell builtin; scripts ported from standalone fd; aliases that always include --exec.","solutions":["Drop --list-details/--exec/--exec-batch/--batch-size from the invocation","Replace `fd ... --exec cmd` with `fd ... | xargs cmd` (or `xargs -I{}` per-file)","Replace `--list-details` with `fd ... | xargs ls -l`","If you need real fd semantics, call the standalone `fd` binary instead of the builtin"],"exampleFix":"// before\nfd '\\.rs$' --exec cargo fmt --\n// after\nfd '\\.rs$' | xargs cargo fmt --","handlingStrategy":"validation","validationCode":"const UNSUPPORTED = [\"--list-details\", \"--exec\", \"--exec-batch\", \"--batch-size\"];function assertBuiltinSafe(args) { for (const a of args) if (UNSUPPORTED.some(u => a === u || a.startsWith(u + \"=\"))) throw new Error(`in-process fd does not support ${a}`); }","typeGuard":"fn uses_exec_features(cli: &FdCli) -> bool { cli.list_details || !cli.exec.is_empty() || !cli.exec_batch.is_empty() || cli.batch_size != 0 }","tryCatchPattern":"match run_fd(&cli) { Err(e) if e.to_string().contains(\"not supported by the in-process fd builtin\") => { exec_standalone_fd(&cli); }, Err(e) => return Err(e), Ok(s) => s }","preventionTips":["Keep two invocations: builtin-safe fd for searching, external fd for --exec workflows","Prefer xargs pipelines over --exec when portability matters","Pin wrapper scripts to features the in-process builtin actually implements"],"tags":["cli","unsupported-feature","fd","rust"],"backgroundTag":"unsupported-cli-flag","analyzedSha":"969062200754ea02cfac922e5ebb8c608c079e15","analyzedAt":"2026-08-31T10:29:35.737Z","schemaVersion":2},"datasetVersion":"2026-08-31T14:17:45.589Z"}