{"record":{"id":"f92ba5b11015511e","repo":"tinyhumansai/openhuman","slug":"learning-list-facets-e","errorCode":null,"errorMessage":"learning_list_facets: {e:#}","messagePattern":"learning_list_facets: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/agent/learning/tools.rs","lineNumber":88,"sourceCode":"    fn parameters_schema(&self) -> serde_json::Value {\n        json!({\n            \"type\": \"object\",\n            \"properties\": {\n                \"class\": { \"type\": \"string\", \"description\": \"Optional class filter (style|identity|tooling|veto|goal|channel).\" }\n            }\n        })\n    }\n\n    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {\n        log::debug!(\"[tool][learning] list_facets invoked\");\n        let class_filter = args\n            .get(\"class\")\n            .and_then(serde_json::Value::as_str)\n            .map(str::to_string);\n        let cache = get_cache()?;\n        let all = cache\n            .list_all()\n            .map_err(|e| anyhow::anyhow!(\"learning_list_facets: {e:#}\"))?;\n        let facets: Vec<serde_json::Value> = all\n            .iter()\n            .filter(|f| f.state == FacetState::Active || f.state == FacetState::Provisional)\n            .filter(|f| match &class_filter {\n                Some(cls) => {\n                    f.class.as_deref() == Some(cls.as_str())\n                        || f.key.starts_with(&format!(\"{cls}/\"))\n                }\n                None => true,\n            })\n            .map(facet_to_json)\n            .collect();\n        Ok(ToolResult::success(serde_json::to_string(&json!({\n            \"count\": facets.len(),\n            \"facets\": facets,\n        }))?))\n    }\n","sourceCodeStart":70,"sourceCodeEnd":106,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/a221052e0df5b1f7598fceba7329fd1af95d6699/src/openhuman/agent/learning/tools.rs#L70-L106","documentation":"Error \"learning_list_facets: {e:#}\" thrown in tinyhumansai/openhuman.","triggerScenarios":"Thrown at src/openhuman/agent/learning/tools.rs:88 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a221052e0df5b1f7598fceba7329fd1af95d6699","analyzedAt":"2026-08-16T12:47:06.542Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}