UAT: A2aLocalFacade missing registry CRUD operations (show, add, update, remove) for all entity types — only list is implemented #3807

Open
opened 2026-04-06 06:29:48 +00:00 by freemo · 0 comments
Owner

Metadata

  • Branch: fix/a2a-facade-registry-crud-operations
  • Commit Message: fix(a2a): implement registry CRUD operations (show, add, update, remove) for all entity types in A2aLocalFacade
  • Milestone: (none — backlog)
  • Parent Epic: #933

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

Bug Description

The specification (§A2A Extension Methods, line 23557) states that the _cleveragents/registry/{entity} namespace must support five operations for each of the 11 entity types:

Operation Service Method
_cleveragents/registry/{entity}/list {Entity}Service.list()
_cleveragents/registry/{entity}/show {Entity}Service.show()
_cleveragents/registry/{entity}/add {Entity}Service.add()
_cleveragents/registry/{entity}/update {Entity}Service.update()
_cleveragents/registry/{entity}/remove {Entity}Service.remove()

Entity types: actor, skill, tool, validation, resource, resource_type, project, action, automation_profile, invariant, lsp

Actual behavior: Only list is implemented for 6 entity types (actor, skill, tool, resource, action, project). The following 49 operations are completely missing:

  • _cleveragents/registry/actor/show, add, update, remove
  • _cleveragents/registry/skill/show, add, update, remove
  • _cleveragents/registry/tool/show, add, update, remove
  • _cleveragents/registry/validation/list, show, add, update, remove (entire entity missing)
  • _cleveragents/registry/resource/show, add, update, remove
  • _cleveragents/registry/resource_type/list, show, add, update, remove (entire entity missing)
  • _cleveragents/registry/project/show, add, update, remove
  • _cleveragents/registry/action/show, add, update, remove
  • _cleveragents/registry/automation_profile/list, show, add, update, remove (entire entity missing)
  • _cleveragents/registry/invariant/list, show, add, update, remove (entire entity missing)
  • _cleveragents/registry/lsp/list, show, add, update, remove (entire entity missing)

Code locations:

  • src/cleveragents/a2a/facade.py_EXTENSION_OPERATIONS list (lines 57–95): only list operations for 6 entity types
  • src/cleveragents/a2a/facade.py_handlers() method: only _handle_registry_list_stub for actor/skill/action/project

Steps to reproduce:

from cleveragents.a2a.facade import A2aLocalFacade
from cleveragents.a2a.models import A2aRequest
from cleveragents.a2a.errors import A2aOperationNotFoundError

facade = A2aLocalFacade()
# All of these raise A2aOperationNotFoundError:
for op in [
    '_cleveragents/registry/actor/show',
    '_cleveragents/registry/tool/add',
    '_cleveragents/registry/validation/list',
    '_cleveragents/registry/lsp/list',
]:
    try:
        facade.dispatch(A2aRequest(method=op, params={}))
    except A2aOperationNotFoundError:
        print(f"MISSING: {op}")

Subtasks

  • Extend _EXTENSION_OPERATIONS in facade.py to register all 55 registry operations (5 ops × 11 entity types)
  • Add _handle_registry_show_stub, _handle_registry_add_stub, _handle_registry_update_stub, _handle_registry_remove_stub handler methods (or generalise to a single parameterised handler)
  • Wire the 5 missing entity types (validation, resource_type, automation_profile, invariant, lsp) into _handlers() for all 5 operations
  • Wire the 4 missing operations (show, add, update, remove) for the 6 already-registered entity types
  • Ensure each handler delegates to the appropriate {Entity}Service method (or raises A2aNotImplementedError as a stub if the service layer is not yet ready)
  • Tests (Behave): Add scenarios asserting all 55 registry operations are registered and dispatchable
  • Tests (Behave): Add scenarios for correct delegation to each {Entity}Service method
  • Tests (Robot): Add integration test confirming no A2aOperationNotFoundError for any spec-required registry 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.
  • All 55 _cleveragents/registry/{entity}/{operation} methods are present in _EXTENSION_OPERATIONS and routed in _handlers() for all 11 entity types and all 5 CRUD operations.
  • No A2aOperationNotFoundError is raised for any spec-required registry operation.
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly, 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.
  • 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%.

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

## Metadata - **Branch**: `fix/a2a-facade-registry-crud-operations` - **Commit Message**: `fix(a2a): implement registry CRUD operations (show, add, update, remove) for all entity types in A2aLocalFacade` - **Milestone**: *(none — backlog)* - **Parent Epic**: #933 > **Backlog note:** This issue was discovered during autonomous operation > on milestone v3.8.0. It does not block milestone completion and has been > placed in the backlog for human review and future milestone assignment. ## Bug Description The specification (§A2A Extension Methods, line 23557) states that the `_cleveragents/registry/{entity}` namespace must support **five operations** for each of the **11 entity types**: | Operation | Service Method | |---|---| | `_cleveragents/registry/{entity}/list` | `{Entity}Service.list()` | | `_cleveragents/registry/{entity}/show` | `{Entity}Service.show()` | | `_cleveragents/registry/{entity}/add` | `{Entity}Service.add()` | | `_cleveragents/registry/{entity}/update` | `{Entity}Service.update()` | | `_cleveragents/registry/{entity}/remove` | `{Entity}Service.remove()` | Entity types: `actor`, `skill`, `tool`, `validation`, `resource`, `resource_type`, `project`, `action`, `automation_profile`, `invariant`, `lsp` **Actual behavior:** Only `list` is implemented for 6 entity types (`actor`, `skill`, `tool`, `resource`, `action`, `project`). The following **49 operations** are completely missing: - `_cleveragents/registry/actor/show`, `add`, `update`, `remove` - `_cleveragents/registry/skill/show`, `add`, `update`, `remove` - `_cleveragents/registry/tool/show`, `add`, `update`, `remove` - `_cleveragents/registry/validation/list`, `show`, `add`, `update`, `remove` *(entire entity missing)* - `_cleveragents/registry/resource/show`, `add`, `update`, `remove` - `_cleveragents/registry/resource_type/list`, `show`, `add`, `update`, `remove` *(entire entity missing)* - `_cleveragents/registry/project/show`, `add`, `update`, `remove` - `_cleveragents/registry/action/show`, `add`, `update`, `remove` - `_cleveragents/registry/automation_profile/list`, `show`, `add`, `update`, `remove` *(entire entity missing)* - `_cleveragents/registry/invariant/list`, `show`, `add`, `update`, `remove` *(entire entity missing)* - `_cleveragents/registry/lsp/list`, `show`, `add`, `update`, `remove` *(entire entity missing)* **Code locations:** - `src/cleveragents/a2a/facade.py` — `_EXTENSION_OPERATIONS` list (lines 57–95): only `list` operations for 6 entity types - `src/cleveragents/a2a/facade.py` — `_handlers()` method: only `_handle_registry_list_stub` for `actor`/`skill`/`action`/`project` **Steps to reproduce:** ```python from cleveragents.a2a.facade import A2aLocalFacade from cleveragents.a2a.models import A2aRequest from cleveragents.a2a.errors import A2aOperationNotFoundError facade = A2aLocalFacade() # All of these raise A2aOperationNotFoundError: for op in [ '_cleveragents/registry/actor/show', '_cleveragents/registry/tool/add', '_cleveragents/registry/validation/list', '_cleveragents/registry/lsp/list', ]: try: facade.dispatch(A2aRequest(method=op, params={})) except A2aOperationNotFoundError: print(f"MISSING: {op}") ``` ## Subtasks - [ ] Extend `_EXTENSION_OPERATIONS` in `facade.py` to register all 55 registry operations (5 ops × 11 entity types) - [ ] Add `_handle_registry_show_stub`, `_handle_registry_add_stub`, `_handle_registry_update_stub`, `_handle_registry_remove_stub` handler methods (or generalise to a single parameterised handler) - [ ] Wire the 5 missing entity types (`validation`, `resource_type`, `automation_profile`, `invariant`, `lsp`) into `_handlers()` for all 5 operations - [ ] Wire the 4 missing operations (`show`, `add`, `update`, `remove`) for the 6 already-registered entity types - [ ] Ensure each handler delegates to the appropriate `{Entity}Service` method (or raises `A2aNotImplementedError` as a stub if the service layer is not yet ready) - [ ] Tests (Behave): Add scenarios asserting all 55 registry operations are registered and dispatchable - [ ] Tests (Behave): Add scenarios for correct delegation to each `{Entity}Service` method - [ ] Tests (Robot): Add integration test confirming no `A2aOperationNotFoundError` for any spec-required registry 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. - All 55 `_cleveragents/registry/{entity}/{operation}` methods are present in `_EXTENSION_OPERATIONS` and routed in `_handlers()` for all 11 entity types and all 5 CRUD operations. - No `A2aOperationNotFoundError` is raised for any spec-required registry operation. - A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly, 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. - 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%. --- **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.

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