UAT: SandboxStrategy enum uses copy_on_write but spec defines filesystem_copy; missing container_snapshot strategy #4567

Open
opened 2026-04-08 15:27:24 +00:00 by HAL9000 · 0 comments
Owner

Bug Report

Feature Area: Sandbox strategy types
Severity: Medium — configuration mismatch, users cannot use spec-defined strategy names
Discovered by: UAT tester (uat-tester-plan-lifecycle)


Summary

The SandboxStrategy enum in domain/models/core/resource.py uses copy_on_write as a strategy name, but the spec consistently uses filesystem_copy. Additionally, the spec defines a container_snapshot strategy for devcontainer resources, which is absent from the implementation.


Expected Behavior (from spec)

The spec defines these sandbox strategies (§sandbox.strategy config, line 30717):

git_worktree       - create a git worktree for isolation
filesystem_copy    - copy the project directory  
transaction_rollback - for database resources
none               - no isolation

The spec also defines container_snapshot for devcontainer resources (line 35272):

sandbox_strategy: "container_snapshot"
# Overrides the parent's sandbox_strategy; devcontainers use container snapshots

The spec also references overlay (line 25097):

fs-mount: copy_on_write, filesystem_copy, or overlay

Actual Behavior

Current SandboxStrategy enum values:

['git_worktree', 'copy_on_write', 'transaction_rollback', 'snapshot', 'overlay', 'none']

Deviations Found

  1. filesystem_copy missing — spec uses filesystem_copy but implementation uses copy_on_write

    • Spec line 30717: filesystem_copy (copy the project directory)
    • Spec line 25105: filesystem_copy: Performs an explicit full copy of the resource directory
    • Spec line 28818: rollbackable strategies include filesystem_copy
    • Implementation: copy_on_write (different name, possibly different semantics)
  2. container_snapshot missing — spec defines this for devcontainer resources

    • Spec line 35272: sandbox_strategy: "container_snapshot"
    • Implementation: not present
  3. snapshot vs filesystem_copy — the implementation has snapshot which may be intended as filesystem_copy but the name doesn't match the spec


Steps to Reproduce

from cleveragents.domain.models.core.resource import SandboxStrategy
print([s.value for s in SandboxStrategy])
# ['git_worktree', 'copy_on_write', 'transaction_rollback', 'snapshot', 'overlay', 'none']
# Missing: filesystem_copy, container_snapshot

Code Location

src/cleveragents/domain/models/core/resource.pySandboxStrategy class (line 64)


Impact

  1. Users who configure sandbox.strategy = filesystem_copy (as documented in spec) will get a validation error
  2. Devcontainer resources cannot use container_snapshot strategy
  3. Documentation and spec examples that reference filesystem_copy will not work

Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: uat-tester

## Bug Report **Feature Area:** Sandbox strategy types **Severity:** Medium — configuration mismatch, users cannot use spec-defined strategy names **Discovered by:** UAT tester (uat-tester-plan-lifecycle) --- ## Summary The `SandboxStrategy` enum in `domain/models/core/resource.py` uses `copy_on_write` as a strategy name, but the spec consistently uses `filesystem_copy`. Additionally, the spec defines a `container_snapshot` strategy for devcontainer resources, which is absent from the implementation. --- ## Expected Behavior (from spec) The spec defines these sandbox strategies (§sandbox.strategy config, line 30717): ``` git_worktree - create a git worktree for isolation filesystem_copy - copy the project directory transaction_rollback - for database resources none - no isolation ``` The spec also defines `container_snapshot` for devcontainer resources (line 35272): ```yaml sandbox_strategy: "container_snapshot" # Overrides the parent's sandbox_strategy; devcontainers use container snapshots ``` The spec also references `overlay` (line 25097): ``` fs-mount: copy_on_write, filesystem_copy, or overlay ``` --- ## Actual Behavior Current `SandboxStrategy` enum values: ```python ['git_worktree', 'copy_on_write', 'transaction_rollback', 'snapshot', 'overlay', 'none'] ``` --- ## Deviations Found 1. **`filesystem_copy` missing** — spec uses `filesystem_copy` but implementation uses `copy_on_write` - Spec line 30717: `filesystem_copy (copy the project directory)` - Spec line 25105: `filesystem_copy: Performs an explicit full copy of the resource directory` - Spec line 28818: rollbackable strategies include `filesystem_copy` - Implementation: `copy_on_write` (different name, possibly different semantics) 2. **`container_snapshot` missing** — spec defines this for devcontainer resources - Spec line 35272: `sandbox_strategy: "container_snapshot"` - Implementation: not present 3. **`snapshot` vs `filesystem_copy`** — the implementation has `snapshot` which may be intended as `filesystem_copy` but the name doesn't match the spec --- ## Steps to Reproduce ```python from cleveragents.domain.models.core.resource import SandboxStrategy print([s.value for s in SandboxStrategy]) # ['git_worktree', 'copy_on_write', 'transaction_rollback', 'snapshot', 'overlay', 'none'] # Missing: filesystem_copy, container_snapshot ``` --- ## Code Location `src/cleveragents/domain/models/core/resource.py` — `SandboxStrategy` class (line 64) --- ## Impact 1. Users who configure `sandbox.strategy = filesystem_copy` (as documented in spec) will get a validation error 2. Devcontainer resources cannot use `container_snapshot` strategy 3. Documentation and spec examples that reference `filesystem_copy` will not work --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
HAL9000 added this to the v3.5.0 milestone 2026-04-08 17:41:40 +00:00
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.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core#4567
No description provided.