Files
freemo c43e1f8260
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 14s
CI / quality (pull_request) Successful in 19s
CI / build (pull_request) Successful in 14s
CI / typecheck (pull_request) Successful in 31s
CI / security (pull_request) Successful in 32s
CI / unit_tests (pull_request) Successful in 1m52s
CI / docker (pull_request) Successful in 42s
CI / integration_tests (pull_request) Successful in 2m59s
CI / coverage (pull_request) Successful in 4m14s
CI / lint (push) Successful in 15s
CI / quality (push) Successful in 16s
CI / security (push) Successful in 30s
CI / typecheck (push) Successful in 1m3s
CI / build (push) Successful in 18s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Successful in 2m27s
CI / integration_tests (push) Successful in 3m0s
CI / docker (push) Successful in 50s
CI / coverage (push) Successful in 5m8s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (pull_request) Successful in 29m24s
feat(service): add subplan service and spawn workflow
Add SubplanService for building child plans from DecisionService spawn
entries and SubplanConfig. The service validates resource scopes, merge
strategies, and max_parallel bounds before spawning.

Key additions:
- SubplanService: Orchestrates child plan creation from spawn entries
- SpawnMetadata: Persisted metadata (spawn_decision_id, parent/root
  plan IDs, execution mode) for status output
- Spawn validation: Checks resource scopes, merge strategy, and
  parallelism bounds before spawning
- Documentation: subplan_service.md with spawn workflow and lifecycle

ISSUES CLOSED: #197
2026-03-02 09:41:25 -05:00

60 lines
2.8 KiB
Plaintext

*** Settings ***
Documentation Smoke tests for subplan spawn service, validation,
... and metadata persistence.
Resource ${CURDIR}/common.resource
Suite Setup Setup Test Environment
Suite Teardown Cleanup Test Environment
*** Variables ***
${HELPER} robot/helper_subplan_spawn.py
*** Test Cases ***
Spawn Single Child Plan From Decision Entry
[Documentation] Verify spawning a single child plan creates status and metadata
[Tags] subplan spawn
${result}= Run Process ${PYTHON} ${HELPER} spawn-single cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} spawn-single-ok
Spawn Multiple Child Plans From Decisions
[Documentation] Verify spawning multiple child plans from decision entries
[Tags] subplan spawn multiple
${result}= Run Process ${PYTHON} ${HELPER} spawn-multiple cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} spawn-multiple-ok
Validate Resource Scope Missing
[Documentation] Verify validation rejects missing resource scopes
[Tags] subplan spawn validation
${result}= Run Process ${PYTHON} ${HELPER} validate-resource cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} validate-resource-ok
Validate Max Parallel Exceeded
[Documentation] Verify validation rejects exceeding max_parallel bounds
[Tags] subplan spawn validation parallel
${result}= Run Process ${PYTHON} ${HELPER} validate-max-parallel cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} validate-max-parallel-ok
Spawn Metadata Persistence
[Documentation] Verify spawn metadata contains correct plan IDs and mode
[Tags] subplan spawn metadata
${result}= Run Process ${PYTHON} ${HELPER} metadata-persistence cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} metadata-persistence-ok
Service Validation Guards
[Documentation] Verify service rejects invalid inputs
[Tags] subplan spawn validation
${result}= Run Process ${PYTHON} ${HELPER} validation-guards cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} validation-guards-ok
Build Spawn Entries From Decisions
[Documentation] Verify building spawn entries from decision objects
[Tags] subplan spawn entries
${result}= Run Process ${PYTHON} ${HELPER} build-entries cwd=${WORKSPACE}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} build-entries-ok