Skip to content

Execution & Continuation

Preview

The continuation configuration and the newer compaction-recovery vs idle-nudge behavior are currently preview features. The defaults documented here are accurate for the current release, but details may still evolve as Weave gathers more real-world usage.

Weave supports two distinct resume paths:

  • Manual resume — you run /start-work or /run-workflow again
  • Automatic continuation — Weave injects a system prompt after a specific event, such as compaction recovery

This distinction matters because an idle session is not always a session that should resume automatically.

The Default Model

By default, Weave behaves like this:

jsonc
{
  "continuation": {
    "recovery": {
      "compaction": true
    },
    "idle": {
      "enabled": false,
      "work": false,
      "workflow": false,
      "todo_prompt": false
    }
  }
}

In practice, that means:

  • Post-compaction recovery is on by default
  • Generic idle nudges are off by default
  • Todo fallback prompts are off by default
  • Manual resume commands always remain available

How Tapestry Execution Works

For plan execution, the normal flow looks like this:

  1. Loom asks Pattern to create a plan in .weave/plans/
  2. You run /start-work
  3. Tapestry reads the plan and executes the first unchecked task
  4. Tapestry marks tasks complete as it finishes them
  5. If work is interrupted, /start-work can resume from the next unchecked task

Manual resume is the baseline. Even if automatic continuation is disabled, /start-work still works.

Automatic Continuation Paths

1. Compaction Recovery

This is the main automatic continuation path for Tapestry.

If a session is compacted and Weave restores execution state, Weave can inject a recovery prompt so Tapestry continues where it left off.

  • Controlled by: continuation.recovery.compaction
  • Default: true

Use this when you want active work to recover after context loss or compaction without requiring a manual /start-work every time.

2. Idle Work Nudges

If a plan is active but the session simply becomes idle, Weave can inject a prompt asking execution to continue.

  • Controlled by: continuation.idle.work
  • Default: false

This is intentionally separate from compaction recovery. A quiet session is not necessarily blocked.

3. Idle Workflow Nudges

Workflow runs can also be nudged after an idle event.

  • Controlled by: continuation.idle.workflow
  • Default: false

Manual workflow resume still works via /run-workflow.

Todo Finalization Behavior

Todo cleanup has two layers.

Silent repair

If Weave can write the todo list directly, it can mark leftover in_progress todos as completed without using another model turn.

  • This remains active by default
  • It is controlled by the todo-continuation-enforcer hook being enabled

Fallback todo prompt

If direct todo writing is unavailable, Weave can inject a prompt asking the model to finalize the leftover todos.

  • Controlled by: continuation.idle.todo_prompt
  • Default: false

So by default, silent todo repair may still happen, but the visible fallback prompt does not.

What Counts as Resume vs Idle?

Think of continuation as three related but separate behaviors:

  • Recovery — resume after compaction or state restoration
  • Idle nudging — poke a quiet session to continue
  • Todo finalization prompting — fallback cleanup when direct todo repair is unavailable

These behaviors are related, but they solve different problems and should be configured independently.

jsonc
{
  "continuation": {
    "recovery": { "compaction": true },
    "idle": {
      "enabled": false,
      "work": false,
      "workflow": false,
      "todo_prompt": false
    }
  }
}

This keeps Tapestry recovery after compaction, while leaving normal idle sessions quiet.

Enable work nudges for long-running execution

jsonc
{
  "continuation": {
    "recovery": { "compaction": true },
    "idle": {
      "enabled": false,
      "work": true,
      "workflow": false,
      "todo_prompt": false
    }
  }
}

Enable all idle continuation paths

jsonc
{
  "continuation": {
    "recovery": { "compaction": true },
    "idle": { "enabled": true }
  }
}

When idle.enabled is set, omitted child flags inherit from it.

Hooks vs Continuation Config

Continuation config controls which continuation behaviors are allowed.

Hooks are the harder switch: if the relevant hook is disabled, the behavior does not run at all.

Examples:

  • Disable work-continuation → no idle work nudges and no work recovery after compaction
  • Disable workflow → no workflow start/continuation behavior
  • Disable todo-continuation-enforcer → no automatic todo cleanup or fallback todo prompt
  • Disable compaction-todo-preserver → todo state is no longer preserved/restored across compaction

Use continuation config for normal behavior tuning. Use disabled_hooks as the hard off-switch.

Troubleshooting Continuation

If Tapestry did not continue when you expected:

  1. Check whether the session was merely idle or actually compacted
  2. Check your continuation settings
  3. Check disabled_hooks
  4. Re-run /start-work to confirm the plan state is still resumable

If todos were not finalized:

  1. Confirm todo-continuation-enforcer is enabled
  2. If you expected a prompt, confirm continuation.idle.todo_prompt is true
  3. Remember that direct todo repair may happen silently when available

For more symptom-based guidance, see Troubleshooting.

Released under the MIT License.