tinyhumansai/openhuman · error

workspace_reset_persona: {e}

Error message

workspace_reset_persona: {e}

What it means

Resetting the named persona file (SOUL.md/IDENTITY.md) to its bundled default failed at the ops layer; wrapped with the tool name. The filename passed enum validation, so the failure is in locating/overwriting the file or reading the bundled default.

Source

Thrown at src/openhuman/config/workspace/tools.rs:144

    fn description(&self) -> &str {
        "Reset an allowlisted persona file (`filename`) to its bundled default, \
         overwriting any customization. Default-OFF (opt-in)."
    }
    fn parameters_schema(&self) -> serde_json::Value {
        json!({
            "type": "object",
            "properties": { "filename": { "type": "string", "enum": ["SOUL.md", "IDENTITY.md"] } },
            "required": ["filename"]
        })
    }
    fn permission_level(&self) -> PermissionLevel {
        PermissionLevel::Write
    }
    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
        log::debug!("[tool][workspace] reset_persona invoked");
        let filename = req_str(&args, "filename")?;
        let outcome = rpc::reset_workspace_file(&self.config.workspace_dir, &filename)
            .map_err(|e| anyhow::anyhow!("workspace_reset_persona: {e}"))?;
        Ok(ToolResult::success(serde_json::to_string(&outcome.value)?))
    }
}

/// Scaffold the workspace. Default-OFF.
pub struct WorkspaceInitTool;
#[async_trait]
impl Tool for WorkspaceInitTool {
    fn name(&self) -> &str {
        "workspace_init"
    }
    fn description(&self) -> &str {
        "Scaffold the workspace (memory/sessions/state dirs, bundled prompts, \
         HEARTBEAT.md). `force` re-initializes existing files. Default-OFF \
         (opt-in)."
    }
    fn parameters_schema(&self) -> serde_json::Value {
        json!({

View on GitHub (pinned to 7491200858)

Solutions

  1. Run workspace_init to restore missing bundled scaffolding
  2. Check workspace write permissions
  3. Inspect the wrapped error for the underlying cause
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at src/openhuman/config/workspace/tools.rs:144 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17). Data as JSON: /api/errors/294c20f42595ae6e. Report an issue: GitHub.