Install
openclaw skills install smart-wakePrevent subagent timeout using checkpoint + cron wake + resume via session spawn mechanism.
openclaw skills install smart-wakeEnsure long-running tasks do not lose progress when subagent timeout occurs.
Standard mechanism:
sessions_spawn (or session_spawn depending on runtime) with appropriate wakeMode.Use smart-wake when any of the following conditions are met:
sessions_spawn / session_spawn (spawn new work session)Do not create new tools. Only use existing mechanisms.
Each task must implement checkpointing with minimum schema:
{
"task_id": "smartwake_<slug>_<timestamp>",
"goal": "Final objective",
"status": "running|waiting|blocked|done|failed",
"current_step": "step_name",
"progress_pct": 0,
"last_completed": ["step_a", "step_b"],
"next_actions": ["action_1", "action_2"],
"artifacts": ["path/file1", "path/file2"],
"errors": [],
"retry_count": 0,
"updated_at": "ISO_TIMESTAMP"
}
Requirements:
estimated_duration > 70% timeout: enable smart-wake immediately.task_id and initial checkpoint.next_actions.status = waiting,task_idresume_from=latest_checkpointreason=timeout_recoverysessions_spawn (or session_spawn) with wakeMode enabling auto-resume via cron.next_actions.status = done, cancel remaining cron wakes.{
"task": "Resume long-running task",
"task_id": "smartwake_repo_scan_20260301T120000Z",
"wakeMode": "cron",
"resume": {
"from": "latest_checkpoint",
"current_step": "collect_phase_2",
"next_actions": ["fetch page 6-10", "dedupe", "export report"]
},
"done_criteria": [
"output file generated",
"validation passed",
"status marked done"
]
}
Note: Field names may vary by Gateway/OpenClaw version, but checkpoint + wakeMode + resume context principles are mandatory.
retry_count (e.g., max 5).timeout_recovery, dependency_ready, scheduled_progress).{
"task_id": "smartwake_<...>",
"status": "running|waiting|done|failed",
"progress_pct": 65,
"current_step": "...",
"resumed_from_checkpoint": true,
"next_wake_scheduled": true,
"next_wake_at": "ISO_TIMESTAMP|null",
"notes": "concise, auditable"
}
task_id/resume context.done.