{"record":{"id":"06f42135a7eb2cf9","repo":"atuinsh/atuin","slug":"failed-to-set-bash-language","errorCode":null,"errorMessage":"failed to set bash language","messagePattern":"failed to set bash language","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/atuin-ai/src/permissions/shell.rs","lineNumber":69,"sourceCode":"}\n\n// ────────────────────────────────────────────────────────────────\n// Tree-sitter parsers (POSIX + Fish)\n// Disabled on platforms where tree-sitter doesn't cross-compile\n// (e.g. Windows); falls back to word-level extraction.\n// ────────────────────────────────────────────────────────────────\n\n#[cfg(feature = \"tree-sitter\")]\nmod ts {\n    use tree_sitter::{Parser, Tree};\n\n    use super::{ParsedShellCommand, ShellCommand, parse_fallback};\n\n    fn bash_parser() -> Parser {\n        let mut parser = Parser::new();\n        parser\n            .set_language(&tree_sitter_bash::LANGUAGE.into())\n            .expect(\"failed to set bash language\");\n        parser\n    }\n\n    pub(super) fn parse_posix(code: &str) -> ParsedShellCommand {\n        let mut parser = bash_parser();\n        let Some(tree) = parser.parse(code, None) else {\n            return parse_fallback(code);\n        };\n\n        let mut commands = Vec::new();\n        walk_bash_tree(&tree, code.as_bytes(), &mut commands);\n        ParsedShellCommand {\n            subcommands: commands,\n        }\n    }\n\n    /// Leaf node kinds that never contain nested commands.\n    const BASH_LEAVES: &[&str] = &[","sourceCodeStart":51,"sourceCodeEnd":87,"githubUrl":"https://github.com/atuinsh/atuin/blob/15fe1318f1df51de604262eb50734c9883d48e7b/crates/atuin-ai/src/permissions/shell.rs#L51-L87","documentation":"Error \"failed to set bash language\" thrown in atuinsh/atuin.","triggerScenarios":"Fires when initializing the tree-sitter bash language for shell permission parsing fails.","commonSituations":"See trigger scenarios.","solutions":["Check that the tree-sitter bash grammar is available; rebuild with the correct features."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"15fe1318f1df51de604262eb50734c9883d48e7b","analyzedAt":"2026-08-19T08:56:57.719Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}