UAT: ACMS ContextAssemblyPipeline is not wired to the A2A facade — context assembly returns stub response #3919

Open
opened 2026-04-06 07:25:16 +00:00 by freemo · 0 comments
Owner

Metadata

  • Branch: feat/a2a-wire-context-assembly-pipeline
  • Commit Message: feat(a2a): wire ContextAssemblyPipeline into A2aLocalFacade
  • Milestone: (none — see backlog note below)
  • Parent Epic: #396

Background and Context

The ContextAssemblyPipeline class exists in src/cleveragents/application/services/acms_pipeline.py but is not wired into the A2A facade. The A2aLocalFacade in src/cleveragents/a2a/facade.py has a TODO comment at line 471 explicitly noting this gap, and returns a stub response instead of invoking the pipeline.

Per docs/specification.md, the ACMS Context Assembly Pipeline is the central orchestrator for context assembly. It is described as a 10-stage pluggable pipeline that handles strategy orchestration, fragment fusion, and context finalization. The A2A facade is the spec-defined communication boundary for all client-server interaction (A2A Protocol), and must route context assembly requests through the ContextAssemblyPipeline.

Current Behavior

The A2A facade's context assembly handler (around line 471 in src/cleveragents/a2a/facade.py) contains:

# TODO: Wire to ACMS ContextAssemblyPipeline once available.

And returns a stub response:

"message": "ACMS ContextAssemblyPipeline not yet wired"

This means actors cannot get proper context assembly through the A2A interface.

Code locations:

  • src/cleveragents/a2a/facade.py lines 471–476 (TODO comment and stub response)
  • src/cleveragents/application/services/acms_pipeline.py (ContextAssemblyPipeline class exists but is not wired)

Steps to reproduce:

  1. Read src/cleveragents/a2a/facade.py around line 471
  2. Observe the TODO comment and stub response for context assembly

Expected Behavior

Per docs/specification.md, the A2A facade should route context assembly requests through the ContextAssemblyPipeline. The pipeline should be instantiated (or injected) and invoked within the facade's context assembly handler, returning a real assembled context response rather than a stub.

Acceptance Criteria

  • A2aLocalFacade instantiates or receives an injected ContextAssemblyPipeline
  • The context assembly handler in facade.py invokes ContextAssemblyPipeline instead of returning a stub
  • The TODO comment at line 471 of facade.py is removed
  • A2A context assembly requests return real pipeline output
  • All existing A2A facade tests continue to pass
  • New Behave scenarios cover the wired pipeline path (happy path and error path)

Supporting Information

  • Discovered by: UAT code-level analysis of src/cleveragents/a2a/facade.py and src/cleveragents/application/services/acms_pipeline.py
  • Impact: Context assembly via the A2A protocol returns a stub response instead of using the actual ACMS pipeline. Actors cannot get proper context assembly through the A2A interface, which is the spec-defined communication boundary.
  • Parent Epic: #396 — Epic: ACMS Context Pipeline
  • Related spec section: ACMS Context Assembly Pipeline (10-stage pluggable pipeline, strategy orchestration, fragment fusion, context finalization)

Subtasks

  • Read and understand ContextAssemblyPipeline public API in src/cleveragents/application/services/acms_pipeline.py
  • Identify the correct injection point in A2aLocalFacade (constructor or method-level)
  • Wire ContextAssemblyPipeline into A2aLocalFacade.__init__ or via dependency injection
  • Replace the stub response at facade.py line 471–476 with a real pipeline invocation
  • Remove the TODO comment
  • Tests (Behave): Add scenario — context assembly request via A2A facade invokes ContextAssemblyPipeline
  • Tests (Behave): Add scenario — pipeline error propagates correctly through A2A facade
  • Tests (Robot): Add integration test for A2A context assembly end-to-end
  • Verify coverage >= 97% via nox -s coverage_report
  • Run nox (all default sessions), fix any errors

Definition of Done

This issue is complete when:

  • All subtasks above are completed and checked off.
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly (feat(a2a): wire ContextAssemblyPipeline into A2aLocalFacade), followed by a blank line, then additional lines providing relevant details about the implementation.
  • The commit is pushed to the remote on the branch matching the Branch in Metadata exactly (feat/a2a-wire-context-assembly-pipeline).
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done.
  • All nox stages pass.
  • Coverage >= 97%.

Backlog note: This issue was discovered during autonomous operation
on milestone v3.4.0. It does not block milestone completion and has been
placed in the backlog for human review and future milestone assignment.


Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: ca-uat-tester

## Metadata - **Branch**: `feat/a2a-wire-context-assembly-pipeline` - **Commit Message**: `feat(a2a): wire ContextAssemblyPipeline into A2aLocalFacade` - **Milestone**: *(none — see backlog note below)* - **Parent Epic**: #396 ## Background and Context The `ContextAssemblyPipeline` class exists in `src/cleveragents/application/services/acms_pipeline.py` but is not wired into the A2A facade. The `A2aLocalFacade` in `src/cleveragents/a2a/facade.py` has a TODO comment at line 471 explicitly noting this gap, and returns a stub response instead of invoking the pipeline. Per `docs/specification.md`, the ACMS Context Assembly Pipeline is the central orchestrator for context assembly. It is described as a 10-stage pluggable pipeline that handles strategy orchestration, fragment fusion, and context finalization. The A2A facade is the spec-defined communication boundary for all client-server interaction (A2A Protocol), and must route context assembly requests through the `ContextAssemblyPipeline`. ## Current Behavior The A2A facade's context assembly handler (around line 471 in `src/cleveragents/a2a/facade.py`) contains: ```python # TODO: Wire to ACMS ContextAssemblyPipeline once available. ``` And returns a stub response: ```python "message": "ACMS ContextAssemblyPipeline not yet wired" ``` This means actors cannot get proper context assembly through the A2A interface. **Code locations**: - `src/cleveragents/a2a/facade.py` lines 471–476 (TODO comment and stub response) - `src/cleveragents/application/services/acms_pipeline.py` (`ContextAssemblyPipeline` class exists but is not wired) **Steps to reproduce**: 1. Read `src/cleveragents/a2a/facade.py` around line 471 2. Observe the TODO comment and stub response for context assembly ## Expected Behavior Per `docs/specification.md`, the A2A facade should route context assembly requests through the `ContextAssemblyPipeline`. The pipeline should be instantiated (or injected) and invoked within the facade's context assembly handler, returning a real assembled context response rather than a stub. ## Acceptance Criteria - [ ] `A2aLocalFacade` instantiates or receives an injected `ContextAssemblyPipeline` - [ ] The context assembly handler in `facade.py` invokes `ContextAssemblyPipeline` instead of returning a stub - [ ] The TODO comment at line 471 of `facade.py` is removed - [ ] A2A context assembly requests return real pipeline output - [ ] All existing A2A facade tests continue to pass - [ ] New Behave scenarios cover the wired pipeline path (happy path and error path) ## Supporting Information - **Discovered by**: UAT code-level analysis of `src/cleveragents/a2a/facade.py` and `src/cleveragents/application/services/acms_pipeline.py` - **Impact**: Context assembly via the A2A protocol returns a stub response instead of using the actual ACMS pipeline. Actors cannot get proper context assembly through the A2A interface, which is the spec-defined communication boundary. - **Parent Epic**: #396 — Epic: ACMS Context Pipeline - **Related spec section**: ACMS Context Assembly Pipeline (10-stage pluggable pipeline, strategy orchestration, fragment fusion, context finalization) ## Subtasks - [ ] Read and understand `ContextAssemblyPipeline` public API in `src/cleveragents/application/services/acms_pipeline.py` - [ ] Identify the correct injection point in `A2aLocalFacade` (constructor or method-level) - [ ] Wire `ContextAssemblyPipeline` into `A2aLocalFacade.__init__` or via dependency injection - [ ] Replace the stub response at `facade.py` line 471–476 with a real pipeline invocation - [ ] Remove the TODO comment - [ ] Tests (Behave): Add scenario — context assembly request via A2A facade invokes `ContextAssemblyPipeline` - [ ] Tests (Behave): Add scenario — pipeline error propagates correctly through A2A facade - [ ] Tests (Robot): Add integration test for A2A context assembly end-to-end - [ ] Verify coverage >= 97% via `nox -s coverage_report` - [ ] Run `nox` (all default sessions), fix any errors ## Definition of Done This issue is complete when: - All subtasks above are completed and checked off. - A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly (`feat(a2a): wire ContextAssemblyPipeline into A2aLocalFacade`), followed by a blank line, then additional lines providing relevant details about the implementation. - The commit is pushed to the remote on the branch matching the **Branch** in Metadata exactly (`feat/a2a-wire-context-assembly-pipeline`). - The commit is submitted as a **pull request** to `master`, reviewed, and **merged** before this issue is marked done. - All nox stages pass. - Coverage >= 97%. > **Backlog note:** This issue was discovered during autonomous operation > on milestone v3.4.0. It does not block milestone completion and has been > placed in the backlog for human review and future milestone assignment. --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-uat-tester
Sign in to join this conversation.
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.

Blocks
#396 Epic: ACMS Context Pipeline
cleveragents/cleveragents-core
Reference
cleveragents/cleveragents-core#3919
No description provided.