feat(resource): implement 6-level execution environment precedence chain #1065

Merged
hamza.khyari merged 1 commit from feature/m5-exec-env-precedence into master 2026-03-31 16:22:47 +00:00
Member

Summary

Implements the spec's 6-level execution environment precedence chain (lines 19324-19386).

Precedence Levels

  1. Plan override (priority=override)
  2. Project override (priority=override)
  3. Nearest-ancestor devcontainer (auto-discovered)
  4. Plan fallback (priority=fallback)
  5. Project fallback (priority=fallback)
  6. Host default

Changes

  • New resolve_with_precedence() on ExecutionEnvironmentResolver
  • Added execution_env_priority field to ContextConfig
  • has_devcontainer() helper
  • Legacy resolve() preserved for backward compat
  • 13 new Behave scenarios

ISSUES CLOSED: #877

## Summary Implements the spec's 6-level execution environment precedence chain (lines 19324-19386). ## Precedence Levels 1. Plan override (priority=override) 2. Project override (priority=override) 3. Nearest-ancestor devcontainer (auto-discovered) 4. Plan fallback (priority=fallback) 5. Project fallback (priority=fallback) 6. Host default ## Changes - New `resolve_with_precedence()` on `ExecutionEnvironmentResolver` - Added `execution_env_priority` field to `ContextConfig` - `has_devcontainer()` helper - Legacy `resolve()` preserved for backward compat - 13 new Behave scenarios ISSUES CLOSED: #877
freemo added this to the v3.6.0 milestone 2026-03-19 05:28:06 +00:00
hamza.khyari modified the milestone from v3.6.0 to v3.5.0 2026-03-19 12:55:32 +00:00
Owner

Planning review (Day 42):

  • Missing Type/ label: No Type/ label is set. Based on the title prefix feat(resource), this should have Type/Feature.
  • Merge conflict: This PR is currently not mergeable. Please rebase or resolve conflicts.

Otherwise looks good: milestone set (v3.5.0), closes #877, 2 reviewers assigned (freemo + CoreRasurae).

**Planning review (Day 42):** - **Missing Type/ label**: No `Type/` label is set. Based on the title prefix `feat(resource)`, this should have `Type/Feature`. - **Merge conflict**: This PR is currently not mergeable. Please rebase or resolve conflicts. Otherwise looks good: milestone set (v3.5.0), closes #877, 2 reviewers assigned (freemo + CoreRasurae).
Owner

Day 43 Review — Rebase Required

This PR has merge conflicts with master and cannot be merged in its current state. This is one of 9 Hamza PRs in the resource/LSP domain (v3.5.0-v3.6.0) that all have conflicts. These PRs likely share a common dependency chain and should be rebased sequentially.

@hamza.khyari: Please rebase onto current master. If multiple PRs depend on each other, start with the base PR in the chain and work upward.

Rebase priority: HIGH — these PRs represent significant feature work that is blocked by merge conflicts. Every day they remain conflicted is a day they cannot be reviewed or merged.

**Day 43 Review — Rebase Required** This PR has merge conflicts with `master` and cannot be merged in its current state. This is one of 9 Hamza PRs in the resource/LSP domain (v3.5.0-v3.6.0) that all have conflicts. These PRs likely share a common dependency chain and should be rebased sequentially. @hamza.khyari: Please rebase onto current `master`. If multiple PRs depend on each other, start with the base PR in the chain and work upward. **Rebase priority**: HIGH — these PRs represent significant feature work that is blocked by merge conflicts. Every day they remain conflicted is a day they cannot be reviewed or merged.
freemo approved these changes 2026-03-27 17:13:02 +00:00
Dismissed
freemo left a comment

Review: feat(resource): implement 6-level execution environment precedence chain

Approved. Clean, backward-compatible upgrade.

Minor Suggestions

  • ContextConfig.execution_env_priority is str | None — consider using ExecutionEnvPriority | None for stronger type safety.
  • Invalid execution_env_priority values silently become FALLBACK via _parse_priority(). Consider Pydantic validation at the model level.

What's Good

  • Backward compatible: old resolve() preserved, new API is resolve_with_precedence().
  • Clear 6-level priority chain with good docstrings.
  • Resilient parsing with FALLBACK default.
  • 13 BDD scenarios covering every precedence level.
  • CHANGELOG entry with spec line references.
## Review: feat(resource): implement 6-level execution environment precedence chain **Approved.** Clean, backward-compatible upgrade. ### Minor Suggestions - `ContextConfig.execution_env_priority` is `str | None` — consider using `ExecutionEnvPriority | None` for stronger type safety. - Invalid `execution_env_priority` values silently become `FALLBACK` via `_parse_priority()`. Consider Pydantic validation at the model level. ### What's Good - Backward compatible: old `resolve()` preserved, new API is `resolve_with_precedence()`. - Clear 6-level priority chain with good docstrings. - Resilient parsing with `FALLBACK` default. - 13 BDD scenarios covering every precedence level. - CHANGELOG entry with spec line references.
hamza.khyari force-pushed feature/m5-exec-env-precedence from d207fe62ad
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 16s
CI / build (pull_request) Successful in 29s
CI / quality (pull_request) Successful in 31s
CI / security (pull_request) Successful in 52s
CI / typecheck (pull_request) Successful in 1m1s
CI / unit_tests (pull_request) Failing after 3m32s
CI / docker (pull_request) Has been skipped
CI / integration_tests (pull_request) Successful in 3m39s
CI / e2e_tests (pull_request) Successful in 4m37s
CI / coverage (pull_request) Successful in 7m50s
CI / benchmark-regression (pull_request) Successful in 39m5s
to 377875573d
Some checks failed
CI / build (pull_request) Successful in 15s
CI / helm (pull_request) Successful in 28s
CI / lint (pull_request) Successful in 3m18s
CI / quality (pull_request) Successful in 3m43s
CI / typecheck (pull_request) Successful in 3m54s
CI / security (pull_request) Successful in 4m8s
CI / unit_tests (pull_request) Failing after 6m14s
CI / docker (pull_request) Has been skipped
CI / integration_tests (pull_request) Successful in 9m18s
CI / e2e_tests (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
CI / benchmark-publish (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
2026-03-31 11:15:47 +00:00
Compare
hamza.khyari dismissed freemo's review 2026-03-31 11:15:47 +00:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

hamza.khyari force-pushed feature/m5-exec-env-precedence from 377875573d
Some checks failed
CI / build (pull_request) Successful in 15s
CI / helm (pull_request) Successful in 28s
CI / lint (pull_request) Successful in 3m18s
CI / quality (pull_request) Successful in 3m43s
CI / typecheck (pull_request) Successful in 3m54s
CI / security (pull_request) Successful in 4m8s
CI / unit_tests (pull_request) Failing after 6m14s
CI / docker (pull_request) Has been skipped
CI / integration_tests (pull_request) Successful in 9m18s
CI / e2e_tests (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
CI / benchmark-publish (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
to 59e048e8f5
Some checks failed
CI / build (pull_request) Successful in 26s
CI / helm (pull_request) Successful in 27s
CI / lint (pull_request) Successful in 3m18s
CI / typecheck (pull_request) Successful in 4m11s
CI / quality (pull_request) Successful in 4m16s
CI / security (pull_request) Successful in 4m28s
CI / unit_tests (pull_request) Failing after 4m45s
CI / docker (pull_request) Has been skipped
CI / integration_tests (pull_request) Successful in 7m10s
CI / coverage (pull_request) Successful in 12m18s
CI / e2e_tests (pull_request) Successful in 16m52s
CI / status-check (pull_request) Failing after 1s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Successful in 55m0s
2026-03-31 11:27:41 +00:00
Compare
hamza.khyari force-pushed feature/m5-exec-env-precedence from 59e048e8f5
Some checks failed
CI / build (pull_request) Successful in 26s
CI / helm (pull_request) Successful in 27s
CI / lint (pull_request) Successful in 3m18s
CI / typecheck (pull_request) Successful in 4m11s
CI / quality (pull_request) Successful in 4m16s
CI / security (pull_request) Successful in 4m28s
CI / unit_tests (pull_request) Failing after 4m45s
CI / docker (pull_request) Has been skipped
CI / integration_tests (pull_request) Successful in 7m10s
CI / coverage (pull_request) Successful in 12m18s
CI / e2e_tests (pull_request) Successful in 16m52s
CI / status-check (pull_request) Failing after 1s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Successful in 55m0s
to 10e4e80892
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 19s
CI / helm (pull_request) Successful in 22s
CI / lint (pull_request) Successful in 3m20s
CI / quality (pull_request) Successful in 3m53s
CI / typecheck (pull_request) Successful in 3m56s
CI / unit_tests (pull_request) Failing after 4m2s
CI / security (pull_request) Successful in 4m7s
CI / docker (pull_request) Has been skipped
CI / integration_tests (pull_request) Successful in 8m9s
CI / coverage (pull_request) Successful in 11m54s
CI / e2e_tests (pull_request) Successful in 19m11s
CI / status-check (pull_request) Failing after 2s
CI / benchmark-regression (pull_request) Has been cancelled
2026-03-31 14:17:38 +00:00
Compare
hamza.khyari force-pushed feature/m5-exec-env-precedence from 10e4e80892
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 19s
CI / helm (pull_request) Successful in 22s
CI / lint (pull_request) Successful in 3m20s
CI / quality (pull_request) Successful in 3m53s
CI / typecheck (pull_request) Successful in 3m56s
CI / unit_tests (pull_request) Failing after 4m2s
CI / security (pull_request) Successful in 4m7s
CI / docker (pull_request) Has been skipped
CI / integration_tests (pull_request) Successful in 8m9s
CI / coverage (pull_request) Successful in 11m54s
CI / e2e_tests (pull_request) Successful in 19m11s
CI / status-check (pull_request) Failing after 2s
CI / benchmark-regression (pull_request) Has been cancelled
to 0ed1954006
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 19s
CI / helm (pull_request) Successful in 26s
CI / lint (pull_request) Successful in 3m17s
CI / quality (pull_request) Successful in 3m41s
CI / typecheck (pull_request) Successful in 3m55s
CI / unit_tests (pull_request) Failing after 3m59s
CI / security (pull_request) Successful in 4m4s
CI / docker (pull_request) Has been skipped
CI / integration_tests (pull_request) Successful in 7m1s
CI / coverage (pull_request) Successful in 13m32s
CI / e2e_tests (pull_request) Successful in 20m46s
CI / status-check (pull_request) Failing after 1s
CI / benchmark-regression (pull_request) Has been cancelled
2026-03-31 14:43:33 +00:00
Compare
hamza.khyari force-pushed feature/m5-exec-env-precedence from 0ed1954006
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 19s
CI / helm (pull_request) Successful in 26s
CI / lint (pull_request) Successful in 3m17s
CI / quality (pull_request) Successful in 3m41s
CI / typecheck (pull_request) Successful in 3m55s
CI / unit_tests (pull_request) Failing after 3m59s
CI / security (pull_request) Successful in 4m4s
CI / docker (pull_request) Has been skipped
CI / integration_tests (pull_request) Successful in 7m1s
CI / coverage (pull_request) Successful in 13m32s
CI / e2e_tests (pull_request) Successful in 20m46s
CI / status-check (pull_request) Failing after 1s
CI / benchmark-regression (pull_request) Has been cancelled
to ba49dd8523
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 18s
CI / lint (pull_request) Successful in 19s
CI / helm (pull_request) Successful in 24s
CI / quality (pull_request) Successful in 3m49s
CI / typecheck (pull_request) Successful in 4m28s
CI / security (pull_request) Successful in 4m38s
CI / integration_tests (pull_request) Successful in 7m1s
CI / unit_tests (pull_request) Successful in 7m11s
CI / docker (pull_request) Successful in 1m30s
CI / coverage (pull_request) Successful in 12m13s
CI / e2e_tests (pull_request) Successful in 20m33s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-regression (pull_request) Has been cancelled
2026-03-31 15:30:33 +00:00
Compare
hamza.khyari force-pushed feature/m5-exec-env-precedence from ba49dd8523
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 18s
CI / lint (pull_request) Successful in 19s
CI / helm (pull_request) Successful in 24s
CI / quality (pull_request) Successful in 3m49s
CI / typecheck (pull_request) Successful in 4m28s
CI / security (pull_request) Successful in 4m38s
CI / integration_tests (pull_request) Successful in 7m1s
CI / unit_tests (pull_request) Successful in 7m11s
CI / docker (pull_request) Successful in 1m30s
CI / coverage (pull_request) Successful in 12m13s
CI / e2e_tests (pull_request) Successful in 20m33s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-regression (pull_request) Has been cancelled
to 5e96b4bf80
All checks were successful
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
2026-03-31 16:02:01 +00:00
Compare
hamza.khyari scheduled this pull request to auto merge when all checks succeed 2026-03-31 16:02:25 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

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