feat(service): add subplan service and spawn workflow #506

Merged
freemo merged 1 commit from feature/m5-subplan-service into master 2026-03-02 14:46:33 +00:00
Owner

Summary

Add SubplanService for building child plans from DecisionService spawn entries with validation and metadata persistence.

  • SubplanService: spawn(), validate_spawn(), get_spawn_decisions(), build_spawn_entries()
  • SpawnMetadata: Persisted metadata (spawn_decision_id, parent/root plan IDs, execution mode) for status output
  • Validation: Checks resource scopes, merge strategy, max_parallel bounds, action names, decision types
  • Container: Factory provider registered in application container
  • Tests: 13 BDD scenarios, 7 Robot smoke tests, ASV benchmark, docs

Quality Gates

  • lint: PASS
  • typecheck: PASS (Pyright strict -- 0 errors)
  • unit_tests: PASS (7523 scenarios)
  • integration_tests: PASS (subplan tests passed)
  • coverage_report: All code paths covered

Closes #197

## Summary Add SubplanService for building child plans from DecisionService spawn entries with validation and metadata persistence. - SubplanService: spawn(), validate_spawn(), get_spawn_decisions(), build_spawn_entries() - SpawnMetadata: Persisted metadata (spawn_decision_id, parent/root plan IDs, execution mode) for status output - Validation: Checks resource scopes, merge strategy, max_parallel bounds, action names, decision types - Container: Factory provider registered in application container - Tests: 13 BDD scenarios, 7 Robot smoke tests, ASV benchmark, docs ### Quality Gates - lint: PASS - typecheck: PASS (Pyright strict -- 0 errors) - unit_tests: PASS (7523 scenarios) - integration_tests: PASS (subplan tests passed) - coverage_report: All code paths covered Closes #197
feat(service): add subplan service and spawn workflow
All checks were successful
CI / lint (pull_request) Successful in 16s
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 29s
CI / typecheck (pull_request) Successful in 55s
CI / security (pull_request) Successful in 57s
CI / unit_tests (pull_request) Successful in 2m58s
CI / integration_tests (pull_request) Successful in 4m10s
CI / docker (pull_request) Successful in 47s
CI / coverage (pull_request) Successful in 3m48s
CI / benchmark-regression (pull_request) Successful in 22m45s
749e56eb4f
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
freemo added this to the v3.4.0 milestone 2026-03-02 07:59:25 +00:00
freemo force-pushed feature/m5-subplan-service from 749e56eb4f
All checks were successful
CI / lint (pull_request) Successful in 16s
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 29s
CI / typecheck (pull_request) Successful in 55s
CI / security (pull_request) Successful in 57s
CI / unit_tests (pull_request) Successful in 2m58s
CI / integration_tests (pull_request) Successful in 4m10s
CI / docker (pull_request) Successful in 47s
CI / coverage (pull_request) Successful in 3m48s
CI / benchmark-regression (pull_request) Successful in 22m45s
to c43e1f8260
Some checks failed
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
2026-03-02 14:41:43 +00:00
Compare
freemo scheduled this pull request to auto merge when all checks succeed 2026-03-02 14:41:58 +00:00
freemo merged commit c43e1f8260 into master 2026-03-02 14:46:33 +00:00
freemo deleted branch feature/m5-subplan-service 2026-03-02 14:46:34 +00:00
Sign in to join this conversation.
No reviewers
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.

Reference
cleveragents/cleveragents-core!506
No description provided.