fix(acms): wire ContextAssemblyPipeline as default in ACMSExecutePhaseContextAssembler #11095
No reviewers
Labels
No labels
auto/needs-reevaluation
controller-managed
overdue
auto/blocked-by-deps
auto/ci-timeout
auto/claimed-implementer
auto/claimed-merge
auto/claimed-reviewer
auto/driver-down
auto/invariant-violation
auto/last-attempt-tier-0
auto/last-attempt-tier-1
auto/last-attempt-tier-2
auto/last-attempt-tier-min
Automation Tracking
auto/needs-conflict-resolution
auto/needs-implementer
auto/postmortem
auto/ready-to-merge
auto/restart-throttled
auto/revert
auto/sentinel
auto/stale-inactivity
auto/unstable
Blocked
Bounty
$100
Bounty
$1000
Bounty
$10000
Bounty
$20
Bounty
$2000
Bounty
$250
Bounty
$50
Bounty
$500
Bounty
$5000
Bounty
$750
MoSCoW
Could have
MoSCoW
Must have
MoSCoW
Should have
Needs Feedback
Points
1
Points
13
Points
2
Points
21
Points
3
Points
34
Points
5
Points
55
Points
8
Points
88
Priority
Backlog
Priority
CI Blocker
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Signed-off: Owner
Signed-off: Scrum Master
Signed-off: Tech Lead
Spike
State
Completed
State
Duplicate
State
In Progress
State
In Review
State
Paused
State
Unverified
State
Verified
State
Wont Do
Type
Automation
Type
Bug
Type
Discussion
Type
Documentation
Type
Epic
Type
Feature
Type
Legendary
Type
Refactor
Type
Support
Type
Task
Type
Testing
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
cleveragents/cleveragents-core!11095
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/pr-10027-acms-default-pipeline"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
ACMSExecutePhaseContextAssembler previously instantiated the plain ACMSPipeline as its default, missing production Phase 1 optimizations including confidence-weighted strategy selection, proportional budget allocation with min-budget enforcement, parallel strategy execution with circuit breaking, and per-stage timing instrumentation.
The default is now ContextAssemblyPipeline which provides all of these capabilities while remaining a drop-in replacement for ACMSPipeline.
Code Review — PR #11095
Summary
The core production change is correct and well-motivated: changing the default
acms_pipelineinACMSExecutePhaseContextAssembler.__init__fromACMSPipeline()toContextAssemblyPipeline()is exactly what issue #10027 requires. The logic is sound —ContextAssemblyPipelineextendsACMSPipelineand is a genuine drop-in replacement. The two new Behave scenarios are a good addition and directly verify the behaviour.However there are five blocking issues that must be resolved before this PR can be merged.
BLOCKING — 1. CHANGELOG.md destructs 91 lines of historical release content
This commit removes 91 lines from
CHANGELOG.md, including the entire tail of the[Unreleased]section and other historicalFixedentries that exist onmaster(#5436,#7476, etc.). The## [3.8.0]release section has had most of its body deleted.This is almost certainly a rebase/merge-conflict artefact where the PR branch was working off a stale base and the conflict was incorrectly resolved by discarding
masters content.Fix: Rebase this branch onto the latest
master, resolve theCHANGELOG.mdconflict by keeping all existing content frommasterand adding only the new entry for this PR.BLOCKING — 2. PR body missing
Closes #10027keywordThe PR description does not contain a
Closes #NorFixes #Nreference. Per CONTRIBUTING.md this is a mandatory merge prerequisite.Fix: Add
Closes #10027to the PR description body.BLOCKING — 3. Missing milestone
The PR has no milestone assigned. Issue #10027 is in milestone
v3.4.0. Per CONTRIBUTING.md, the PR must be assigned to the same milestone as the linked issue(s).Fix: Assign milestone
v3.4.0to this PR.BLOCKING — 4. Missing
Type/labelThe PR has only a
State/In Reviewlabel. Per CONTRIBUTING.md, exactly oneType/label is required. Issue #10027 isType/Bug, so this PR should be labelledType/Bug.Fix: Apply the
Type/Buglabel to this PR.BLOCKING — 5. Function-body import in step definitions
In
features/steps/execute_phase_context_assembler_coverage_steps.py, theContextAssemblyPipelineimport is placed inside the@thenstep function body. Project rules prohibit this — all imports must appear at the top of the file (onlyTYPE_CHECKINGblocks excepted).Fix: Move the import to the top of the file alongside the other production-code imports.
CI failures
Two CI jobs are failing:
CI / e2e_testsandCI / benchmark-regression. Core gates (lint, typecheck, security, unit_tests, integration_tests) are passing. The author should investigate whether these failures are caused by this PR or are pre-existing.Missing Forgejo dependency link (PR->issue)
The PR does not block issue #10027 in the Forgejo dependency graph. Per CONTRIBUTING.md the correct direction is PR blocks issue.
Fix: On this PR, add issue #10027 under "blocks".
Suggestion: container.py not updated
Issue #10027 body listed
container.pyas needing update (change singleton fromACMSPipelinetoContextAssemblyPipelineand remove the unsupportedplugin_managerparameter). Please clarify if this was intentionally omitted.What looks good
execute_phase_context_assembler.pyis minimal, correct, and well-typedCONTRIBUTORS.mdentry is presentISSUES CLOSED: #10027lint,typecheck,security,unit_tests, andintegration_testsall passAddress the five blocking items above and re-push — the core implementation is solid.
Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker
BLOCKING — Historical CHANGELOG content accidentally deleted
This hunk removes 91 lines that exist on master, including historical Fixed entries and the tail of the [Unreleased] section. This appears to be a rebase/merge-conflict artefact.
Why this is wrong: The deleted entries document shipped fixes and are part of the project history. Removing them corrupts the CHANGELOG.
How to fix: Rebase this branch onto the latest master (git rebase master), then resolve the CHANGELOG conflict by keeping all of masters content and adding only the new entry for this PR. After rebasing, verify: git diff master...HEAD -- CHANGELOG.md should show only additions (the new entry), no deletions.
BLOCKING — Import inside function body violates project import rules
This import is inside the @then step function body. Project rules mandate that all imports must appear at the top of the file. The only permitted exception is if TYPE_CHECKING: guards for annotation-only imports.
Why this is wrong: Function-level imports make dependencies invisible at module load time, can hide ImportErrors until the step runs, and violate the project explicit Python import policy.
How to fix: Move this import to the top of the file alongside the other cleveragents.* imports:
Then use ContextAssemblyPipeline directly in the assertion without re-importing.
Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker
Code Review — PR #11095
Summary
The core production change is correct and well-motivated: switching the default
acms_pipelineinACMSExecutePhaseContextAssembler.__init__fromACMSPipeline()toContextAssemblyPipeline()is exactly what the issue description calls for.ContextAssemblyPipelineis a genuine drop-in replacement that adds production Phase 1 optimizations (confidence-weighted strategy selection, proportional budget allocation, parallel strategy execution with circuit breaking, per-stage timing instrumentation). The two new Behave scenarios directly verify both the default and override behaviours, and all core CI gates pass (lint, typecheck, security, unit_tests, integration_tests, coverage).However, there are four blocking issues that must be resolved before this PR can be merged.
BLOCKING — 1. CHANGELOG.md accidentally deletes 92 lines of historical release content
This commit removes 92 lines from
CHANGELOG.md— specifically the tail of the[Unreleased]section (entries for#5436,#7476, multiple other fixes, and theagents actor removefix #6491), plus the entire## [3.8.0] -- 2026-04-05section header and its body. These exist onmasterand are not related to this PR.This is almost certainly a rebase/merge-conflict artefact where the PR branch was working off a stale base and the conflict was resolved by discarding
masters content.Why this is blocking: Deleting historical changelog entries destroys the project release record.
Fix: Rebase this branch onto the latest
master. When resolving theCHANGELOG.mdconflict, keep all existing content frommasterintact and prepend only the new entry for this PR.BLOCKING — 2. Function-body import violates project import rules
In
features/steps/execute_phase_context_assembler_coverage_steps.py, the import ofContextAssemblyPipelineis placed inside the@thenstep function body:Project rules (CONTRIBUTING.md) are explicit: all imports must be at the top of the file. The only permitted exception is
if TYPE_CHECKING:blocks.Why this is blocking: Violates a mandatory code style rule.
Fix: Move the
ContextAssemblyPipelineimport to the top of the file, alongside the existing production-code imports.BLOCKING — 3. PR body missing
Closes #10027keywordThe PR description does not contain a
Closes #NorFixes #Nreference. Per CONTRIBUTING.md this is a mandatory PR prerequisite — a PR without an issue reference will not be reviewed.Why this is blocking: Reviewers and the merge gate cannot confirm which issue this PR closes without the closing keyword.
Fix: Add
Closes #10027to the PR description body.BLOCKING — 4. Missing milestone and
Type/labelThe PR has no milestone assigned and only a
State/In Reviewlabel — noType/label is present. Per CONTRIBUTING.md, the PR must be assigned to the same milestone as the linked issue(s) and must carry exactly oneType/label. Issue #10027 is a bug fix, soType/Bugis appropriate.Why this is blocking: Both are hard requirements in the PR merge checklist.
Fix: Assign the
v3.4.0milestone and apply theType/Buglabel.CI failures — investigation required
Two CI jobs are failing:
CI / e2e_tests— Failing after 6m1s. Please investigate whether this failure is caused by this PR (e.g., the heavierContextAssemblyPipelinedefault timing out in e2e scenarios) or is pre-existing onmaster.CI / benchmark-regression— Failing after 1m49s. Switching from the lightweightACMSPipelinestub to the fullContextAssemblyPipeline(withThreadPoolExecutor, circuit breakers, timings) could introduce measurable latency. Confirm whether benchmark regressions are introduced by this change.CI / status-check— Failing as a cascade from the above two.If these failures are pre-existing on
master, please document that in a PR comment so reviewers can confirm. If they are caused by this PR, they must be fixed before merge.Suggestion: dependency link in Forgejo
The PR does not appear to block issue #10027 in the Forgejo dependency graph. Per CONTRIBUTING.md the correct direction is PR blocks issue. Please add issue #10027 under the "blocks" relationship on this PR.
What looks good
ContextAssemblyPipelineis a subclass ofACMSPipelineso the type annotationacms_pipeline: ACMSPipeline | Noneremains valid.MagicMockfor dependencies.CONTRIBUTORS.mdentry is descriptive and present.fix(acms): wire ContextAssemblyPipeline as default in ACMSExecutePhaseContextAssembler.ISSUES CLOSED: #10027.Address the four blocking items and re-push. The implementation itself is correct.
Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker
@ -14,6 +14,7 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).from the TDD test so both scenarios run as normal regression guards. (#988)### Fixed- **ACMS executes phase now uses ContextAssemblyPipeline by default** (#10027): ``ACMSExecutePhaseContextAssembler`` previously instantiated the plain ``ACMSPipeline`` when no pipeline was explicitly provided, missing production Phase 1 optimizations including confidence-weighted strategy selection, proportional budget allocation with min-budget enforcement, parallel strategy execution with circuit breaking, and per-stage timing instrumentation. The default is now ``ContextAssemblyPipeline`` which provides all of these capabilities while remaining a drop-in replacement for ``ACMSPipeline``. Added Behave scenario verifying the default pipeline type.BLOCKING — Accidental deletion of historical changelog content
This new entry is placed correctly. However, this commit also removes 92 lines below — including the tail of the
[Unreleased]section (#5436,#7476,#6491agents actor removefix, and others) plus the entire## [3.8.0] -- 2026-04-05section. These entries exist onmasterand are unrelated to this PR.This is almost certainly a rebase/merge-conflict artefact. Fix: Rebase onto latest
masterand keep all existingCHANGELOG.mdcontent, adding only this new entry.Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker
BLOCKING — Import must be at the top of the file, not inside the function body
Project rules (CONTRIBUTING.md) require all imports to appear at the top of the module. The only permitted exception is
if TYPE_CHECKING:guard blocks. This import:...must be moved to the top of this file alongside the other production-code imports (after the existing
from cleveragents.application.services.execute_phase_context_assembler import ...block).Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker
Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker
[CONTROLLER-DEFER:Gate 1:full_duplicate]
This PR has been deferred for re-evaluation. The controller has stepped back
from processing it. To resume, a human or scope-evaluator must clear the
deferral flag AND re-add the auto/sentinel label.
Decision:
To clear the deferral (SQL):
UPDATE workflows SET deferred_reason=NULL,
deferred_at=NULL,
deferred_target_workflow_id=NULL
WHERE workflow_id = 470;
Audit ID: 160491
Automated by the CleverAgents controller pipeline.
Identity: HAL9000 (pipeline action)
🌱 Grooming: proceed — PR cleared for processing.
(check
no_duplicates, categoryno_duplicates)PR #11095 targets a specific ACMS default pipeline instantiation fix: wiring ContextAssemblyPipeline instead of ACMSPipeline in ACMSExecutePhaseContextAssembler to enable production optimizations. Scanned 306 open PRs; multiple ACMS-related PRs exist (storage tiers, policy config, CLI, budget enforcement, path matching, indexing) but none address the same default pipeline choice. No topical overlap found—this is a targeted, non-duplicate fix.
📋 Estimate: tier 1.
6 files changed (+75/-94): wiring a more capable default pipeline (ContextAssemblyPipeline) into ACMSExecutePhaseContextAssembler. Conceptually a focused swap, but CI is failing on coverage, docker, and status-check gates, indicating tests need updating to accommodate the new default's behavior (confidence-weighted selection, parallel execution with circuit-breaking, per-stage timing). Multi-file scope with test burden = standard tier 1.
🌱 Grooming: proceed — PR cleared for processing.
(check
no_duplicates, categoryno_duplicates)No open PR shares the anchor's specific focus on wiring ContextAssemblyPipeline as the default in ACMSExecutePhaseContextAssembler. Related ACMS PRs address index/policy/budget features, while context-strategy PRs implement new strategies or integration points. No topical overlap detected. High confidence no duplicate.
📋 Estimate: tier 1.
6-file diff (+75/-94) wiring a new default pipeline implementation in ACMSExecutePhaseContextAssembler. Conceptually a substitution, but three CI gates (coverage, docker, status-check) are failing, indicating the new default breaks existing test assumptions or exposes interface mismatches. Implementer needs cross-file context to understand ContextAssemblyPipeline vs ACMSPipeline compatibility and diagnose/fix the failures. Clearly above tier-0 mechanical threshold; not tier-2 since scope is contained within the ACMS subsystem.
7853420ddfaf5060b118✅ Approved
Reviewed at commit
91f8b54.Confidence: high.
Claimed by
merge_drive.py(pid 2329255) until2026-06-14T13:48:11.882527+00:00.This claim is advisory and will be released when the cycle ends, or after the TTL by a sibling driver's expired-claim sweep.
91f8b54abebedd1ec0c5Approved by the controller reviewer stage (workflow 470).