{"record":{"id":"2f589b6615f889fb","repo":"tinyhumansai/openhuman","slug":"people-score-e","errorCode":null,"errorMessage":"people_score: {e}","messagePattern":"people_score: (.+?)","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src/openhuman/memory/tools/people.rs","lineNumber":194,"sourceCode":"        \"Return the closeness score and its components (recency, frequency, \\\n         reciprocity, depth) plus interaction count for one `person_id`.\"\n    }\n\n    fn parameters_schema(&self) -> serde_json::Value {\n        json!({\n            \"type\": \"object\",\n            \"properties\": { \"person_id\": { \"type\": \"string\", \"description\": \"Person id (UUID).\" } },\n            \"required\": [\"person_id\"]\n        })\n    }\n\n    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {\n        log::debug!(\"[tool][people] score invoked\");\n        let person_id = parse_person_id(&args)?;\n        let guard = people_guard().await?;\n        let outcome = rpc::handle_score(guard.as_people().expect(\"checked\"), &person_id)\n            .await\n            .map_err(|e| anyhow::anyhow!(\"people_score: {e}\"))?;\n        Ok(ToolResult::success(serde_json::to_string(&outcome.value)?))\n    }\n\n    fn is_concurrency_safe(&self, _args: &serde_json::Value) -> bool {\n        true\n    }\n}\n\n/// Read a full person record.\npub struct PeopleGetTool;\n\n#[async_trait]\nimpl Tool for PeopleGetTool {\n    fn name(&self) -> &str {\n        \"people_get\"\n    }\n\n    fn description(&self) -> &str {","sourceCodeStart":176,"sourceCodeEnd":212,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/memory/tools/people.rs#L176-L212","documentation":"The driver's score call for a person failed after person_id parsing — closeness score components could not be computed. The {e} chain carries the driver's reason; the tool itself only parses and delegates.","triggerScenarios":"Thrown at src/openhuman/memory/tools/people.rs:194 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the person_id exists (people_get)","Retry transient driver failures","Inspect the chained error for the scoring fault"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"749120085864ce16e0f273c7b86fac7740b39c5b","analyzedAt":"2026-08-17T21:21:45.363Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}