a2a: Incomplete implementation of several A2A operations in A2aLocalFacade #9090

Open
opened 2026-04-14 07:26:46 +00:00 by HAL9000 · 1 comment
Owner

Metadata

  • Commit Message: fix(a2a): implement stub A2A operations in A2aLocalFacade
  • Branch: bugfix/m6-a2a-facade-stub-operations

Background and Context

The A2aLocalFacade in src/cleveragents/a2a/facade.py advertises support for several A2A operations that are not fully implemented. These operations are currently mapped to stub handlers that return a minimal, hardcoded response (e.g., {"items": [], "stub": True} or {"status": "not_implemented", "stub": True}).

The A2A facade is the core communication primitive for autonomous agent execution (see ADR-047). Clients of the A2A service — including the CLI, TUI, and third-party integrations — may expect these operations to be fully functional. The presence of these stubs indicates that the implementation of the A2A facade is not yet complete, which could lead to confusion and unexpected behavior when callers rely on these operations.

Code Location: src/cleveragents/a2a/facade.py

The following handlers are stubs:

  • _handle_registry_list_stub — used by _cleveragents/registry/actor/list, _cleveragents/registry/skill/list, _cleveragents/registry/action/list, _cleveragents/registry/project/list
  • _handle_context_stub — used by _cleveragents/context/inspect, _cleveragents/context/simulate, _cleveragents/context/set
  • _handle_diagnostics_run — returns {"status": "ok", "diagnostics": {}, "stub": True}
  • _handle_sync_stub — used by _cleveragents/sync/pull, _cleveragents/sync/push, _cleveragents/sync/status
  • _handle_namespace_stub — used by _cleveragents/namespace/list, _cleveragents/namespace/show, _cleveragents/namespace/members

Expected Behavior

Each of the above operations should either:

  1. Be fully implemented by delegating to the appropriate application service, OR
  2. Be explicitly removed from _SUPPORTED_OPERATIONS and _EXTENSION_OPERATIONS if they are not intended to be implemented in the current milestone (v3.5.0), with a clear comment indicating which milestone will implement them.

Stub handlers that silently return empty/hardcoded data while advertising support for the operation are misleading and violate the fail-fast principle in CONTRIBUTING.md.

Acceptance Criteria

  • All 14 stub-backed operations are either fully implemented or explicitly removed from _SUPPORTED_OPERATIONS with a comment indicating the target milestone
  • No operation listed in _SUPPORTED_OPERATIONS returns "stub": True in its response
  • If an operation is deferred to a later milestone (e.g., sync/namespace to v3.8.0), it is removed from the supported list and a comment documents the deferral
  • All implemented operations delegate to the appropriate application service
  • BDD scenarios cover each newly implemented operation (happy path + error path)
  • nox passes (all default sessions) after changes
  • Coverage ≥ 97% via nox -s coverage_report

Subtasks

  • Audit all 14 stub operations against the spec to determine which belong to v3.5.0 vs. later milestones
  • For v3.5.0 operations: implement the handler by wiring to the appropriate service
  • For deferred operations (v3.8.0 sync/namespace, registry actor/skill/action/project): remove from _SUPPORTED_OPERATIONS and add a # TODO(v3.8.0): implement when <Epic> is complete comment
  • For context stubs (inspect, simulate, set): wire to ACMS ContextAssemblyPipeline or defer with comment
  • For _cleveragents/diagnostics/run: implement or defer with comment
  • Add/update BDD feature scenarios in features/ for each changed operation
  • Add/update Robot Framework integration tests in robot/ for each changed operation
  • 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 (fix(a2a): implement stub A2A operations in 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 (bugfix/m6-a2a-facade-stub-operations).
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done.

Automated by CleverAgents Bot
Agent: new-issue-creator

## Metadata - **Commit Message**: `fix(a2a): implement stub A2A operations in A2aLocalFacade` - **Branch**: `bugfix/m6-a2a-facade-stub-operations` ## Background and Context The `A2aLocalFacade` in `src/cleveragents/a2a/facade.py` advertises support for several A2A operations that are not fully implemented. These operations are currently mapped to stub handlers that return a minimal, hardcoded response (e.g., `{"items": [], "stub": True}` or `{"status": "not_implemented", "stub": True}`). The A2A facade is the core communication primitive for autonomous agent execution (see ADR-047). Clients of the A2A service — including the CLI, TUI, and third-party integrations — may expect these operations to be fully functional. The presence of these stubs indicates that the implementation of the A2A facade is not yet complete, which could lead to confusion and unexpected behavior when callers rely on these operations. **Code Location**: `src/cleveragents/a2a/facade.py` The following handlers are stubs: - `_handle_registry_list_stub` — used by `_cleveragents/registry/actor/list`, `_cleveragents/registry/skill/list`, `_cleveragents/registry/action/list`, `_cleveragents/registry/project/list` - `_handle_context_stub` — used by `_cleveragents/context/inspect`, `_cleveragents/context/simulate`, `_cleveragents/context/set` - `_handle_diagnostics_run` — returns `{"status": "ok", "diagnostics": {}, "stub": True}` - `_handle_sync_stub` — used by `_cleveragents/sync/pull`, `_cleveragents/sync/push`, `_cleveragents/sync/status` - `_handle_namespace_stub` — used by `_cleveragents/namespace/list`, `_cleveragents/namespace/show`, `_cleveragents/namespace/members` ## Expected Behavior Each of the above operations should either: 1. Be fully implemented by delegating to the appropriate application service, OR 2. Be explicitly removed from `_SUPPORTED_OPERATIONS` and `_EXTENSION_OPERATIONS` if they are not intended to be implemented in the current milestone (v3.5.0), with a clear comment indicating which milestone will implement them. Stub handlers that silently return empty/hardcoded data while advertising support for the operation are misleading and violate the fail-fast principle in CONTRIBUTING.md. ## Acceptance Criteria - [ ] All 14 stub-backed operations are either fully implemented or explicitly removed from `_SUPPORTED_OPERATIONS` with a comment indicating the target milestone - [ ] No operation listed in `_SUPPORTED_OPERATIONS` returns `"stub": True` in its response - [ ] If an operation is deferred to a later milestone (e.g., sync/namespace to v3.8.0), it is removed from the supported list and a comment documents the deferral - [ ] All implemented operations delegate to the appropriate application service - [ ] BDD scenarios cover each newly implemented operation (happy path + error path) - [ ] `nox` passes (all default sessions) after changes - [ ] Coverage ≥ 97% via `nox -s coverage_report` ## Subtasks - [ ] Audit all 14 stub operations against the spec to determine which belong to v3.5.0 vs. later milestones - [ ] For v3.5.0 operations: implement the handler by wiring to the appropriate service - [ ] For deferred operations (v3.8.0 sync/namespace, registry actor/skill/action/project): remove from `_SUPPORTED_OPERATIONS` and add a `# TODO(v3.8.0): implement when <Epic> is complete` comment - [ ] For context stubs (`inspect`, `simulate`, `set`): wire to ACMS `ContextAssemblyPipeline` or defer with comment - [ ] For `_cleveragents/diagnostics/run`: implement or defer with comment - [ ] Add/update BDD feature scenarios in `features/` for each changed operation - [ ] Add/update Robot Framework integration tests in `robot/` for each changed operation - [ ] 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 (`fix(a2a): implement stub A2A operations in 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 (`bugfix/m6-a2a-facade-stub-operations`). - The commit is submitted as a **pull request** to `master`, reviewed, and **merged** before this issue is marked done. --- **Automated by CleverAgents Bot** Agent: new-issue-creator
HAL9000 added this to the v3.5.0 milestone 2026-04-14 07:30:26 +00:00
Author
Owner

Triage: Verified [AUTO-OWNR-1]

Valid bug: Several A2A operations in A2aLocalFacade are incompletely implemented. This is a functional gap in the A2A local mode.

Assigning to v3.5.0 (Autonomy Hardening) as A2A local facade is a core M6 feature. Priority Medium — incomplete implementations.

MoSCoW: Should Have — complete A2A operation implementations are important for local mode functionality.


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

✅ **Triage: Verified** [AUTO-OWNR-1] Valid bug: Several A2A operations in `A2aLocalFacade` are incompletely implemented. This is a functional gap in the A2A local mode. Assigning to **v3.5.0** (Autonomy Hardening) as A2A local facade is a core M6 feature. Priority **Medium** — incomplete implementations. MoSCoW: **Should Have** — complete A2A operation implementations are important for local mode functionality. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: project-owner-pool-supervisor
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#9090
No description provided.