UAT: Plan domain model missing rollback_enabled field — spec requires per-plan rollback policy #3502

Open
opened 2026-04-05 18:41:30 +00:00 by freemo · 0 comments
Owner

Metadata

  • Branch: fix/plan-model-rollback-enabled-field
  • Commit Message: fix(domain): add rollback_enabled field to Plan model per spec
  • Milestone: None (Backlog)
  • Parent Epic: #358

Summary

The spec defines a rollback_enabled: true|false option on plans that controls whether checkpoint/rollback is enabled for that plan. This field is absent from the Plan domain model (src/cleveragents/domain/models/core/plan.py).

Spec Reference

From the "Checkpointing in Execute" section:

Plan-level rollback policy

Plans should have an option:

  • rollback_enabled: true|false

If disabled, the plan may use more generic/unsafe tools with fewer restrictions (useful for low-stakes tasks).

This is a plan-level configuration that determines whether the checkpoint/rollback system is active for a given plan execution.

Current Implementation

Searching src/cleveragents/domain/models/core/plan.py for rollback_enabled returns no results. The Plan model does not have this field.

The closest related field is require_checkpoints on the SafetyProfile model, but that is a safety profile constraint, not a per-plan opt-out flag. The spec describes rollback_enabled as a plan-level option that can disable rollback for low-stakes tasks, which is a different concept.

Impact

  • Users cannot disable rollback for low-stakes plans that don't need checkpoint overhead
  • The spec's "low-stakes task" optimization path is unavailable
  • Plans that use non-checkpointable tools cannot be configured to opt out of checkpoint requirements at the plan level (they must modify the safety profile instead)

Expected Behavior

The Plan model should have a rollback_enabled: bool = True field. When rollback_enabled=False:

  • Checkpoint creation is skipped during Execute phase
  • Non-checkpointable tools are allowed even if the safety profile requires checkpoints
  • The plan can use more generic/unsafe tools

Code Location

src/cleveragents/domain/models/core/plan.py — the Plan model class is missing the rollback_enabled field.

Subtasks

  • Add rollback_enabled: bool = True field to the Plan model in src/cleveragents/domain/models/core/plan.py
  • Update Plan serialization/deserialization to include rollback_enabled
  • Update Execute phase logic to skip checkpoint creation when rollback_enabled=False
  • Update Execute phase logic to allow non-checkpointable tools when rollback_enabled=False
  • Write Behave unit tests covering rollback_enabled=True (default) and rollback_enabled=False behaviour
  • Write Robot Framework integration tests verifying end-to-end rollback opt-out for a low-stakes plan
  • Add ASV benchmark for plan execution with and without rollback enabled
  • Update any relevant documentation or docstrings

Definition of Done

  • Plan model has rollback_enabled: bool = True field matching the spec
  • Execute phase respects rollback_enabled=False by skipping checkpoints and relaxing tool restrictions
  • All Behave unit tests pass (nox -e unit_tests)
  • All Robot Framework integration tests pass (nox -e integration_tests)
  • All nox stages pass
  • Coverage >= 97%
  • PR merged and issue closed

Backlog note: This issue was discovered during autonomous operation
on milestone v3.3.0. It does not block milestone completion and has been
placed in the backlog for human review and future milestone assignment.


Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: ca-new-issue-creator

## Metadata - **Branch**: `fix/plan-model-rollback-enabled-field` - **Commit Message**: `fix(domain): add rollback_enabled field to Plan model per spec` - **Milestone**: None (Backlog) - **Parent Epic**: #358 ## Summary The spec defines a `rollback_enabled: true|false` option on plans that controls whether checkpoint/rollback is enabled for that plan. This field is absent from the Plan domain model (`src/cleveragents/domain/models/core/plan.py`). ## Spec Reference From the "Checkpointing in Execute" section: > ##### Plan-level rollback policy > > Plans should have an option: > > * `rollback_enabled: true|false` > > If disabled, the plan may use more generic/unsafe tools with fewer restrictions (useful for low-stakes tasks). This is a plan-level configuration that determines whether the checkpoint/rollback system is active for a given plan execution. ## Current Implementation Searching `src/cleveragents/domain/models/core/plan.py` for `rollback_enabled` returns no results. The Plan model does not have this field. The closest related field is `require_checkpoints` on the `SafetyProfile` model, but that is a safety profile constraint, not a per-plan opt-out flag. The spec describes `rollback_enabled` as a plan-level option that can disable rollback for low-stakes tasks, which is a different concept. ## Impact - Users cannot disable rollback for low-stakes plans that don't need checkpoint overhead - The spec's "low-stakes task" optimization path is unavailable - Plans that use non-checkpointable tools cannot be configured to opt out of checkpoint requirements at the plan level (they must modify the safety profile instead) ## Expected Behavior The Plan model should have a `rollback_enabled: bool = True` field. When `rollback_enabled=False`: - Checkpoint creation is skipped during Execute phase - Non-checkpointable tools are allowed even if the safety profile requires checkpoints - The plan can use more generic/unsafe tools ## Code Location `src/cleveragents/domain/models/core/plan.py` — the `Plan` model class is missing the `rollback_enabled` field. ## Subtasks - [ ] Add `rollback_enabled: bool = True` field to the `Plan` model in `src/cleveragents/domain/models/core/plan.py` - [ ] Update Plan serialization/deserialization to include `rollback_enabled` - [ ] Update Execute phase logic to skip checkpoint creation when `rollback_enabled=False` - [ ] Update Execute phase logic to allow non-checkpointable tools when `rollback_enabled=False` - [ ] Write Behave unit tests covering `rollback_enabled=True` (default) and `rollback_enabled=False` behaviour - [ ] Write Robot Framework integration tests verifying end-to-end rollback opt-out for a low-stakes plan - [ ] Add ASV benchmark for plan execution with and without rollback enabled - [ ] Update any relevant documentation or docstrings ## Definition of Done - [ ] `Plan` model has `rollback_enabled: bool = True` field matching the spec - [ ] Execute phase respects `rollback_enabled=False` by skipping checkpoints and relaxing tool restrictions - [ ] All Behave unit tests pass (`nox -e unit_tests`) - [ ] All Robot Framework integration tests pass (`nox -e integration_tests`) - [ ] All nox stages pass - [ ] Coverage >= 97% - [ ] PR merged and issue closed > **Backlog note:** This issue was discovered during autonomous operation > on milestone v3.3.0. It does not block milestone completion and has been > placed in the backlog for human review and future milestone assignment. --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-new-issue-creator
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Blocks
Reference
cleveragents/cleveragents-core#3502
No description provided.