3 Commits

Author SHA1 Message Date
HAL9000 d51f3a05ae fix: resolve ambiguous step definition conflict in execution_environment_steps.py
- Renamed 'it should contain' steps to 'the container types should contain' for specificity
- Updated execution_environment.feature to use the new step names
- This fixes the AmbiguousStep error that was preventing unit tests from running
2026-06-06 12:11:44 -04:00
hamza.khyari 5e96b4bf80 feat(resource): implement 6-level execution environment precedence chain
CI / build (pull_request) Successful in 16s
CI / helm (pull_request) Successful in 21s
CI / lint (pull_request) Successful in 3m18s
CI / quality (pull_request) Successful in 3m47s
CI / typecheck (pull_request) Successful in 3m57s
CI / security (pull_request) Successful in 4m6s
CI / benchmark-publish (pull_request) Has been skipped
CI / integration_tests (pull_request) Successful in 7m6s
CI / unit_tests (pull_request) Successful in 7m18s
CI / docker (pull_request) Successful in 1m19s
CI / coverage (pull_request) Successful in 11m49s
CI / e2e_tests (pull_request) Successful in 20m44s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-regression (pull_request) Successful in 55m9s
Implement the spec's 6-level execution environment precedence chain
(spec lines 19324-19386):

1. Plan override (priority=override) — always wins
2. Project override (priority=override) — wins over devcontainer
3. Nearest-ancestor devcontainer — auto-discovered
4. Plan fallback (priority=fallback) — defers to devcontainer
5. Project fallback (priority=fallback) — defers to closer scopes
6. Host default — final fallback

- New resolve_with_precedence() API on ExecutionEnvironmentResolver
- Added execution_env_priority field to ContextConfig (project model)
- has_devcontainer() helper for devcontainer-instance detection
- Legacy 4-level resolve() preserved for backward compatibility
- _parse_priority() defaults missing priority to FALLBACK
- 13 new Behave scenarios testing all 6 levels + edge cases
- Updated CHANGELOG

ISSUES CLOSED: #877
2026-03-31 16:01:58 +00:00
freemo ad5f737721 feat(execution): add execution environment routing
CI / lint (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 25s
CI / typecheck (pull_request) Successful in 35s
CI / benchmark-publish (pull_request) Has been skipped
CI / security (pull_request) Successful in 38s
CI / build (pull_request) Successful in 21s
CI / unit_tests (pull_request) Successful in 3m42s
CI / docker (pull_request) Successful in 42s
CI / coverage (pull_request) Successful in 4m9s
CI / integration_tests (pull_request) Successful in 4m33s
CI / lint (push) Successful in 13s
CI / quality (push) Successful in 18s
CI / typecheck (push) Successful in 34s
CI / build (push) Successful in 19s
CI / benchmark-regression (push) Has been skipped
CI / security (push) Successful in 48s
CI / integration_tests (push) Successful in 2m55s
CI / unit_tests (push) Successful in 3m10s
CI / docker (push) Successful in 59s
CI / coverage (push) Successful in 4m46s
CI / benchmark-publish (push) Successful in 14m18s
CI / benchmark-regression (pull_request) Successful in 26m2s
Add ExecutionEnvironment enum (host/container) to domain models, implement
execution environment resolution with priority chain (tool > plan > project
> default), wire the tool runner to check execution_environment before
execution, and add CLI flags to plan use/execute and project context set.

When container is selected but no container resource is available, a clear
ContainerUnavailableError is raised with an actionable message.

Closes #512
2026-03-03 14:48:55 -05:00