4232907ab9
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 18s
CI / build (pull_request) Successful in 23s
CI / typecheck (pull_request) Successful in 34s
CI / security (pull_request) Successful in 39s
CI / unit_tests (pull_request) Successful in 3m17s
CI / docker (pull_request) Successful in 40s
CI / integration_tests (pull_request) Successful in 4m3s
CI / coverage (pull_request) Successful in 4m9s
CI / lint (push) Successful in 12s
CI / quality (push) Successful in 16s
CI / build (push) Successful in 15s
CI / security (push) Successful in 29s
CI / typecheck (push) Successful in 33s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Successful in 2m23s
CI / integration_tests (push) Successful in 2m48s
CI / docker (push) Successful in 38s
CI / coverage (push) Successful in 4m16s
CI / benchmark-publish (push) Successful in 16m55s
CI / benchmark-regression (pull_request) Successful in 30m14s
Add hierarchical decomposition with 4+ levels and bounded context per subplan. Implement decomposition heuristics (max_files_per_subplan, max_tokens_per_subplan, language/dir clustering). Add dependency closure computation for large graphs and DAG execution ordering. Add bounded dependency closure with cutoff thresholds and memoization for 10K+ files. Record decomposition decisions in DecisionService (strategy_choice + subplan_spawn entries). New modules: - decomposition_models.py: DecompositionConfig, DecompositionNode, DecompositionResult, DependencyEdge, DependencyGraph - decomposition_clustering.py: ClusteringStrategy with directory, language, and size clustering plus deterministic sort - decomposition_graph.py: DependencyClosureComputer with bounded closure, topological sort, cycle detection, and memoization - decomposition_service.py: DecompositionService orchestrating hierarchy building and decision recording Settings: planner_max_depth, planner_max_files_per_subplan, planner_max_tokens_per_subplan, planner_min_files_per_subplan Closes #205
48 lines
2.2 KiB
Plaintext
48 lines
2.2 KiB
Plaintext
*** Settings ***
|
|
Documentation Smoke tests for large-project decomposition service
|
|
Resource ${CURDIR}/common.resource
|
|
Suite Setup Setup Test Environment
|
|
Suite Teardown Cleanup Test Environment
|
|
|
|
*** Variables ***
|
|
${HELPER} ${CURDIR}/helper_large_project_decompose.py
|
|
|
|
*** Test Cases ***
|
|
Decompose Small Project Below Threshold
|
|
[Documentation] Projects below min_files threshold get a single node
|
|
${result}= Run Process ${PYTHON} ${HELPER} below-threshold cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} decompose-below-threshold-ok
|
|
|
|
Decompose Multi-Level Project
|
|
[Documentation] Projects with many files produce multi-level decomposition
|
|
${result}= Run Process ${PYTHON} ${HELPER} multi-level cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} decompose-multi-level-ok
|
|
|
|
Dependency Closure Computation
|
|
[Documentation] Transitive closure should collect reachable nodes
|
|
${result}= Run Process ${PYTHON} ${HELPER} closure cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} decompose-closure-ok
|
|
|
|
Topological Sort
|
|
[Documentation] Topo sort should produce valid execution order
|
|
${result}= Run Process ${PYTHON} ${HELPER} topo-sort cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} decompose-topo-sort-ok
|
|
|
|
Cycle Detection
|
|
[Documentation] Cycles in dependency graph should be detected
|
|
${result}= Run Process ${PYTHON} ${HELPER} cycle-detect cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} decompose-cycle-detect-ok
|
|
|
|
Config Validation
|
|
[Documentation] Invalid config should raise ValueError
|
|
${result}= Run Process ${PYTHON} ${HELPER} config-validation cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} decompose-config-ok
|