UAT: ACP module directory exists but contains no backward-compatibility aliases for deprecated ACP symbols #3118

Open
opened 2026-04-05 06:32:38 +00:00 by freemo · 1 comment
Owner

Background and Context

The specification states that A2A is the successor to the now-deprecated Agent Client Protocol (ACP), and that "A2A retains backward compatibility with ACP's JSON-RPC 2.0 foundation" (docs/specification.md line 55). The codebase has a src/cleveragents/acp/ directory, but it contains only a __pycache__ directory — no __init__.py, no backward-compatibility shims, and no aliased symbols.

Current Behavior

src/cleveragents/acp/ directory exists but is completely empty (only __pycache__). Any code that previously imported from cleveragents.acp would get an ImportError. The directory's presence implies backward-compatibility was planned but never implemented.

Steps to reproduce:

  1. python -c "import cleveragents.acp"ImportError (no __init__.py)
  2. ls src/cleveragents/acp/ → only __pycache__

Impact: Any third-party code or internal code that imports from cleveragents.acp will fail with ImportError. The empty directory is misleading — it suggests backward-compatibility exists but it doesn't.

Expected Behavior

Per the spec (docs/specification.md line 55): "A2A is the successor to the Agent Client Protocol (ACP), which is now deprecated; A2A retains backward compatibility with ACP's JSON-RPC 2.0 foundation." The acp/ module should either:

  1. Contain backward-compatibility aliases that re-export A2A symbols under their old ACP names (e.g., AcpRequest → A2aRequest, AcpResponse → A2aResponse), OR
  2. Be removed entirely if no backward compatibility is required and the spec is updated accordingly.

Acceptance Criteria

  • python -c "import cleveragents.acp" does not raise ImportError
  • All deprecated ACP symbols are aliased to their A2A equivalents with DeprecationWarning on import, OR the acp/ directory is removed and the spec is updated to reflect no backward-compatibility guarantee
  • All nox stages pass
  • Coverage >= 97%

Metadata

  • Branch: fix/backlog-acp-backward-compat-aliases
  • Commit Message: fix(acp): add backward-compatibility aliases for deprecated ACP symbols or remove empty module
  • Milestone: (none — backlog)
  • Parent Epic: #933

Subtasks

  • Audit src/cleveragents/acp/ directory and determine whether backward-compatibility aliases are required per spec
  • If aliases are required: create src/cleveragents/acp/__init__.py with re-exports of all relevant A2A symbols and DeprecationWarning on import
  • If aliases are NOT required: remove src/cleveragents/acp/ directory entirely and update docs/specification.md to remove the backward-compatibility claim
  • Add Behave unit test scenarios covering the chosen resolution (import succeeds with deprecation warning, or module is absent and spec is updated)
  • Verify coverage >= 97% via nox -s coverage_report
  • Run nox (all default sessions) and 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.
  • The commit is pushed to the remote on the branch matching the Branch in Metadata exactly.
  • The commit is submitted as a pull request to master, reviewed, and merged.
  • All nox stages pass
  • Coverage >= 97%

Backlog note: This issue was discovered during autonomous operation
on milestone . 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

## Background and Context The specification states that A2A is the successor to the now-deprecated Agent Client Protocol (ACP), and that "A2A retains backward compatibility with ACP's JSON-RPC 2.0 foundation" (docs/specification.md line 55). The codebase has a `src/cleveragents/acp/` directory, but it contains only a `__pycache__` directory — no `__init__.py`, no backward-compatibility shims, and no aliased symbols. ## Current Behavior `src/cleveragents/acp/` directory exists but is completely empty (only `__pycache__`). Any code that previously imported from `cleveragents.acp` would get an `ImportError`. The directory's presence implies backward-compatibility was planned but never implemented. **Steps to reproduce:** 1. `python -c "import cleveragents.acp"` → `ImportError` (no `__init__.py`) 2. `ls src/cleveragents/acp/` → only `__pycache__` **Impact:** Any third-party code or internal code that imports from `cleveragents.acp` will fail with `ImportError`. The empty directory is misleading — it suggests backward-compatibility exists but it doesn't. ## Expected Behavior Per the spec (docs/specification.md line 55): "A2A is the successor to the Agent Client Protocol (ACP), which is now deprecated; A2A retains backward compatibility with ACP's JSON-RPC 2.0 foundation." The `acp/` module should either: 1. Contain backward-compatibility aliases that re-export A2A symbols under their old ACP names (e.g., `AcpRequest → A2aRequest`, `AcpResponse → A2aResponse`), OR 2. Be removed entirely if no backward compatibility is required and the spec is updated accordingly. ## Acceptance Criteria - [ ] `python -c "import cleveragents.acp"` does not raise `ImportError` - [ ] All deprecated ACP symbols are aliased to their A2A equivalents with `DeprecationWarning` on import, OR the `acp/` directory is removed and the spec is updated to reflect no backward-compatibility guarantee - [ ] All nox stages pass - [ ] Coverage >= 97% --- ## Metadata - **Branch**: `fix/backlog-acp-backward-compat-aliases` - **Commit Message**: `fix(acp): add backward-compatibility aliases for deprecated ACP symbols or remove empty module` - **Milestone**: *(none — backlog)* - **Parent Epic**: #933 ## Subtasks - [ ] Audit `src/cleveragents/acp/` directory and determine whether backward-compatibility aliases are required per spec - [ ] If aliases are required: create `src/cleveragents/acp/__init__.py` with re-exports of all relevant A2A symbols and `DeprecationWarning` on import - [ ] If aliases are NOT required: remove `src/cleveragents/acp/` directory entirely and update `docs/specification.md` to remove the backward-compatibility claim - [ ] Add Behave unit test scenarios covering the chosen resolution (import succeeds with deprecation warning, or module is absent and spec is updated) - [ ] Verify coverage >= 97% via `nox -s coverage_report` - [ ] Run `nox` (all default sessions) and 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. - [ ] The commit is pushed to the remote on the branch matching the **Branch** in Metadata exactly. - [ ] The commit is submitted as a **pull request** to `master`, reviewed, and **merged**. - [ ] All nox stages pass - [ ] Coverage >= 97% --- > **Backlog note:** This issue was discovered during autonomous operation > on milestone <M>. 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
freemo added this to the v3.6.0 milestone 2026-04-05 06:41:51 +00:00
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • Priority: Low — the empty acp/ directory is misleading but does not break any current functionality; no known code imports from cleveragents.acp
  • Milestone: v3.6.0 (Advanced Concepts & Deferred Features) — the v3.6.0 scope explicitly includes "ACP to A2A module rename and symbol standardization"
  • MoSCoW: Could Have — backward-compatibility aliases are a polish item; the primary A2A module works correctly. The simplest fix may be to just remove the empty directory and update the spec
  • Parent Epic: #933 (A2A Protocol Compliance)

Dependency link to parent Epic already existed. This is a cleanup item that fits naturally into v3.6.0's ACP→A2A standardization scope.


Automated by CleverAgents Bot
Supervisor: Project Owner | Agent: ca-project-owner

Issue triaged by project owner: - **State**: Verified - **Priority**: Low — the empty `acp/` directory is misleading but does not break any current functionality; no known code imports from `cleveragents.acp` - **Milestone**: v3.6.0 (Advanced Concepts & Deferred Features) — the v3.6.0 scope explicitly includes "ACP to A2A module rename and symbol standardization" - **MoSCoW**: Could Have — backward-compatibility aliases are a polish item; the primary A2A module works correctly. The simplest fix may be to just remove the empty directory and update the spec - **Parent Epic**: #933 (A2A Protocol Compliance) Dependency link to parent Epic already existed. This is a cleanup item that fits naturally into v3.6.0's ACP→A2A standardization scope. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
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.

Reference
cleveragents/cleveragents-core#3118
No description provided.