{"record":{"id":"b1f05ba0e79bbdfe","repo":"atuinsh/atuin","slug":"failed-to-set-fish-language","errorCode":null,"errorMessage":"failed to set fish language","messagePattern":"failed to set fish language","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/atuin-ai/src/permissions/shell.rs","lineNumber":181,"sourceCode":"        }\n\n        let name = name?;\n        let full = if let (Some(start), Some(end)) = (name_start, arg_end) {\n            std::str::from_utf8(&source[start..end]).ok()?.to_string()\n        } else {\n            name.clone()\n        };\n\n        Some(ShellCommand { name, full })\n    }\n\n    // ────────────────────────────────────────────────────────────────\n    // Fish parser\n    // ────────────────────────────────────────────────────────────────\n\n    fn fish_parser() -> Parser {\n        let mut parser = Parser::new();\n        parser.set_language(&tree_sitter_fish::language()).expect(\"failed to set fish language\");\n        parser\n    }\n\n    pub(super) fn parse_fish(code: &str) -> ParsedShellCommand {\n        let mut parser = fish_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_fish_tree(&tree, code.as_bytes(), &mut commands);\n        ParsedShellCommand {\n            subcommands: commands,\n        }\n    }\n\n    const FISH_COMPOUND: &[&str] = &[\n        \"conditional_execution\",","sourceCodeStart":163,"sourceCodeEnd":199,"githubUrl":"https://github.com/atuinsh/atuin/blob/15fe1318f1df51de604262eb50734c9883d48e7b/crates/atuin-ai/src/permissions/shell.rs#L163-L199","documentation":"Error \"failed to set fish language\" thrown in atuinsh/atuin.","triggerScenarios":"Fires when initializing the tree-sitter fish language for shell permission parsing fails.","commonSituations":"See trigger scenarios.","solutions":["Check that the tree-sitter fish 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-14T00:17:10.932Z"}