Files
cleveragents-core/features/decomposition_max_child_depth.feature
T
CoreRasurae 3a95701d9a
CI / lint (pull_request) Successful in 1m19s
CI / quality (pull_request) Successful in 1m39s
CI / typecheck (pull_request) Successful in 1m43s
CI / security (pull_request) Successful in 1m56s
CI / build (pull_request) Successful in 33s
CI / helm (pull_request) Successful in 40s
CI / unit_tests (pull_request) Successful in 6m36s
CI / integration_tests (pull_request) Successful in 3m57s
CI / push-validation (pull_request) Successful in 19s
CI / docker (pull_request) Successful in 1m28s
CI / coverage (pull_request) Successful in 12m46s
CI / status-check (pull_request) Successful in 4s
CI / lint (push) Failing after 12s
CI / typecheck (push) Failing after 11s
CI / integration_tests (push) Failing after 7s
CI / unit_tests (push) Failing after 12s
CI / quality (push) Failing after 12s
CI / security (push) Failing after 13s
CI / coverage (push) Has been skipped
CI / docker (push) Has been skipped
CI / push-validation (push) Failing after 13s
CI / helm (push) Failing after 14s
CI / build (push) Failing after 15s
CI / status-check (push) Failing after 2s
CI / benchmark-regression (push) Failing after 34s
CI / e2e_tests (push) Successful in 1m1s
CI / benchmark-publish (push) Failing after 35m10s
fix(decomposition): enforce plan.max-child-depth recursion limit to prevent unbounded hierarchy growth
Add max_child_depth field to DecompositionConfig (default: 5, matching
plan.max-child-depth config) with validation in __post_init__. Update
_build_hierarchy() in DecompositionService to stop recursion and emit
a warning when the depth limit is reached.

BDD tests verify: max_child_depth guards trigger before max_depth
when more restrictive, warnings are logged, default config value is
correct, and invalid values are rejected.

ISSUES CLOSED: #10269
2026-05-19 21:56:28 +01:00

39 lines
1.8 KiB
Gherkin

Feature: Decomposition respects max_child_depth limit
As a plan orchestrator
I want the decomposition service to enforce plan.max-child-depth
So that child plans cannot nest deeper than the configured limit
Background:
Given a decomposition service
Scenario: Decomposition stops recursing when max_child_depth limit is reached
Given a project with 500 files across 8 directory levels
When I decompose with max_child_depth 2 and max_depth 10
Then the decomposition result should have max_depth_reached <= 2
And the decomposition warning log should contain "max-child-depth limit"
Scenario: Decomposition with default max_child_depth allows standard depth
Given a project with 2000 files across 5 directory levels
When I decompose with default max_child_depth
Then the decomposition result should have max_depth_reached >= 1
And the decomposition result should have max_depth_reached <= 5
Scenario: max_child_depth guard triggers before max_depth when more restrictive
Given a project with 500 files across 8 directory levels
When I decompose with max_child_depth 1 and max_depth 10
Then the decomposition result should have max_depth_reached <= 1
And the decomposition warning log should contain "max-child-depth limit"
Scenario: max_depth can be more restrictive than max_child_depth
Given a project with 500 files across 8 directory levels
When I decompose with max_child_depth 10 and max_depth 2
Then the decomposition result should have max_depth_reached <= 2
Scenario: Default config includes max_child_depth with expected value
Given default decomposition config
Then max_child_depth should be 5
Scenario: Invalid max_child_depth value is rejected
When I create a config with max_child_depth 0
Then a decomposition ValueError should be raised