{"record":{"id":"dd39ef2eb60b01c4","repo":"can1357/oh-my-pi","slug":"unimplemented-0","errorCode":null,"errorMessage":"unimplemented: {0}","messagePattern":"unimplemented: (.+?)","errorType":"exception","errorClass":"BindError","httpStatus":null,"severity":"warning","filePath":"crates/pi-builtins/src/bind.rs","lineNumber":100,"sourceCode":"\t/// List key sequence bindings.\n\t#[arg(short = 'X')]\n\tlist_key_seq_bindings: bool,\n\t/// Key sequence binding to readline function or command.\n\tkey_sequence: Option<String>,\n}\n\n#[derive(Debug, thiserror::Error)]\npub(crate) enum BindError {\n\t/// Unknown function specified.\n\t#[error(\"unknown function: {0}\")]\n\tUnknownFunction(String),\n\n\t/// Unknown key binding function.\n\t#[error(\"unknown key binding function: {0}\")]\n\tUnknownKeyBindingFunction(String),\n\n\t/// Unimplemented functionality.\n\t#[error(\"unimplemented: {0}\")]\n\tUnimplemented(&'static str),\n\n\t/// An I/O error occurred.\n\t#[error(\"I/O error occurred\")]\n\tIoError(#[from] std::io::Error),\n\n\t/// A binding parse error occurred.\n\t#[error(transparent)]\n\tBindingParseError(#[from] brush_parser::BindingParseError),\n}\n\nimpl brush_core::BuiltinError for BindError {}\n\nimpl From<&BindError> for brush_core::ExecutionExitCode {\n\tfn from(_err: &BindError) -> Self {\n\t\tSelf::GeneralError\n\t}\n}","sourceCodeStart":82,"sourceCodeEnd":118,"githubUrl":"https://github.com/can1357/oh-my-pi/blob/969062200754ea02cfac922e5ebb8c608c079e15/crates/pi-builtins/src/bind.rs#L82-L118","documentation":"`BindError::Unimplemented` is returned when a `bind` invocation requests functionality that the brush shell has not implemented yet. The payload is a static string describing what is missing. This is an intentional capability gap, not a user mistake: the shell is telling you the requested `bind` feature is a known no-op/stub.","triggerScenarios":"Calling `bind` with flags or modes whose handling code constructs `BindError::Unimplemented(\"...\")` — e.g. keymap manipulations or binding features (`-m` keymap variants, macro definitions, etc.) that brush has stubbed out.","commonSituations":"Running bash scripts that use advanced `bind` options; trying vi-mode keymap reconfiguration (`bind -m vi-insert ...`) in a build where that path is unimplemented; interactive users copying bash invocations verbatim.","solutions":["Read the message text to identify exactly which feature is missing and avoid that option.","Use a supported subset of `bind` (listing with -l/-P/-p, simple function bindings).","Check the brush/pi-builtins issue tracker or source for implementation status; upgrade if a newer version implements the feature."],"exampleFix":"// before\n$ bind -m vi-insert -x '\"\\C-r\": history-search'\nunimplemented: -x with keymaps\n// after\n$ bind -x '\"\\C-r\": history-search'   # drop the unsupported option","handlingStrategy":"fallback","validationCode":"// probe whether an option is supported before relying on it\nif bind -m vi-insert -l 2>/dev/null; then\n  bind -m vi-insert '\\C-r' history-search-backward\nelse\n  echo \"keymap bind not supported; using default keymap\" >&2\nfi","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Stick to the documented/implemented subset of `bind` flags in portable scripts.","Feature-detect advanced options at startup and degrade gracefully.","Track the brush/pi-builtins changelog for when stubbed features land."],"tags":["shell","builtin","unimplemented","key-binding"],"backgroundTag":"feature-not-implemented","analyzedSha":"969062200754ea02cfac922e5ebb8c608c079e15","analyzedAt":"2026-08-31T10:29:35.737Z","schemaVersion":2},"datasetVersion":"2026-08-31T14:17:45.589Z"}