UAT: _cleveragents/registry/* extension methods only implement list — spec requires show, add, update, and remove for all entity types #3014

Open
opened 2026-04-05 03:46:43 +00:00 by freemo · 2 comments
Owner

Metadata

  • Branch: feat/a2a-registry-crud-extension-methods
  • Commit Message: feat(a2a): add full CRUD extension methods for all registry entity types
  • Milestone: v3.4.0
  • Parent Epic: #933

Background

The specification (§A2A Extension Methods table, line 23460) defines the full registry CRUD interface as:

_cleveragents/registry/{entity}/list, show, add, update, remove (for each entity type: actor, skill, tool, validation, resource, resource_type, project, action, automation_profile, invariant, lsp)

The current A2aLocalFacade implementation only provides list operations for a subset of entity types, and is entirely missing show, add, update, and remove operations for all entity types. Additionally, several entity types are missing even the list operation (validation, resource_type, automation_profile, invariant, lsp).

Code location: /app/src/cleveragents/a2a/facade.py_EXTENSION_OPERATIONS list (lines ~60–100), _handlers() method

Bug Report

What was tested: Code-level analysis of /app/src/cleveragents/a2a/facade.py

Expected behavior (from spec): The A2aLocalFacade should support the full CRUD interface for each registry entity type:

  • _cleveragents/registry/actor/{list,show,add,update,remove}
  • _cleveragents/registry/skill/{list,show,add,update,remove}
  • _cleveragents/registry/tool/{list,show,add,update,remove}
  • _cleveragents/registry/validation/{list,show,add,update,remove}
  • _cleveragents/registry/resource/{list,show,add,update,remove}
  • _cleveragents/registry/resource_type/{list,show,add,update,remove}
  • _cleveragents/registry/project/{list,show,add,update,remove}
  • _cleveragents/registry/action/{list,show,add,update,remove}
  • _cleveragents/registry/automation_profile/{list,show,add,update,remove}
  • _cleveragents/registry/invariant/{list,show,add,update,remove}
  • _cleveragents/registry/lsp/{list,show,add,update,remove}

Actual behavior: The _EXTENSION_OPERATIONS list in facade.py only contains:

"_cleveragents/registry/tool/list",
"_cleveragents/registry/resource/list",
"_cleveragents/registry/actor/list",
"_cleveragents/registry/skill/list",
"_cleveragents/registry/action/list",
"_cleveragents/registry/project/list",

Missing: show, add, update, remove for all types; validation, resource_type, automation_profile, invariant, lsp entity types entirely absent.

Steps to reproduce:

  1. Open /app/src/cleveragents/a2a/facade.py
  2. Search for _cleveragents/registry/actor/show — not found
  3. Search for _cleveragents/registry/tool/add — not found
  4. Search for _cleveragents/registry/validation — not found
  5. Attempt to dispatch _cleveragents/registry/actor/show — raises A2aOperationNotFoundError

Impact: CLI commands that need to show, add, update, or remove registry entities cannot route through the A2A protocol. This violates the spec requirement that "Every client operation flows through A2A regardless of deployment mode." The missing operations block full registry management via the A2A interface.

Subtasks

  • Extend _EXTENSION_OPERATIONS in facade.py to include all 5 CRUD operations (list, show, add, update, remove) for all 11 entity types (actor, skill, tool, validation, resource, resource_type, project, action, automation_profile, invariant, lsp)
  • Implement handler methods in A2aLocalFacade._handlers() for each new operation, delegating to the appropriate service layer
  • Add request/response parameter schemas for show (by id/name), add (entity payload), update (id + partial payload), and remove (by id/name) for each entity type
  • Write Behave unit test scenarios covering each new CRUD operation for each entity type (dispatch, success, not-found, validation-error cases)
  • Write Robot Framework integration tests verifying end-to-end routing for the new operations
  • Verify nox -e typecheck passes (all new handlers fully statically typed, no # type: ignore)
  • Verify coverage >= 97% via nox -e coverage_report
  • Run full nox suite and fix any errors

Definition of Done

  • All 55 registry CRUD operations (11 entity types × 5 operations) are registered in _EXTENSION_OPERATIONS
  • All 55 handler methods are implemented and delegate correctly to the service layer
  • Dispatching any of the 55 operations via A2aLocalFacade does NOT raise A2aOperationNotFoundError
  • Behave scenarios exist for every new operation (happy path + error cases)
  • Robot Framework integration tests pass for end-to-end routing
  • nox -e typecheck passes with zero errors
  • All nox stages pass
  • Coverage >= 97%

Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: ca-new-issue-creator

## Metadata - **Branch**: `feat/a2a-registry-crud-extension-methods` - **Commit Message**: `feat(a2a): add full CRUD extension methods for all registry entity types` - **Milestone**: v3.4.0 - **Parent Epic**: #933 ## Background The specification (§A2A Extension Methods table, line 23460) defines the full registry CRUD interface as: > `_cleveragents/registry/{entity}/list`, `show`, `add`, `update`, `remove` (for each entity type: actor, skill, tool, validation, resource, resource_type, project, action, automation_profile, invariant, lsp) The current `A2aLocalFacade` implementation only provides `list` operations for a subset of entity types, and is entirely missing `show`, `add`, `update`, and `remove` operations for all entity types. Additionally, several entity types are missing even the `list` operation (`validation`, `resource_type`, `automation_profile`, `invariant`, `lsp`). **Code location**: `/app/src/cleveragents/a2a/facade.py` — `_EXTENSION_OPERATIONS` list (lines ~60–100), `_handlers()` method ## Bug Report **What was tested**: Code-level analysis of `/app/src/cleveragents/a2a/facade.py` **Expected behavior (from spec)**: The `A2aLocalFacade` should support the full CRUD interface for each registry entity type: - `_cleveragents/registry/actor/{list,show,add,update,remove}` - `_cleveragents/registry/skill/{list,show,add,update,remove}` - `_cleveragents/registry/tool/{list,show,add,update,remove}` - `_cleveragents/registry/validation/{list,show,add,update,remove}` - `_cleveragents/registry/resource/{list,show,add,update,remove}` - `_cleveragents/registry/resource_type/{list,show,add,update,remove}` - `_cleveragents/registry/project/{list,show,add,update,remove}` - `_cleveragents/registry/action/{list,show,add,update,remove}` - `_cleveragents/registry/automation_profile/{list,show,add,update,remove}` - `_cleveragents/registry/invariant/{list,show,add,update,remove}` - `_cleveragents/registry/lsp/{list,show,add,update,remove}` **Actual behavior**: The `_EXTENSION_OPERATIONS` list in `facade.py` only contains: ```python "_cleveragents/registry/tool/list", "_cleveragents/registry/resource/list", "_cleveragents/registry/actor/list", "_cleveragents/registry/skill/list", "_cleveragents/registry/action/list", "_cleveragents/registry/project/list", ``` Missing: `show`, `add`, `update`, `remove` for all types; `validation`, `resource_type`, `automation_profile`, `invariant`, `lsp` entity types entirely absent. **Steps to reproduce**: 1. Open `/app/src/cleveragents/a2a/facade.py` 2. Search for `_cleveragents/registry/actor/show` — not found 3. Search for `_cleveragents/registry/tool/add` — not found 4. Search for `_cleveragents/registry/validation` — not found 5. Attempt to dispatch `_cleveragents/registry/actor/show` — raises `A2aOperationNotFoundError` **Impact**: CLI commands that need to show, add, update, or remove registry entities cannot route through the A2A protocol. This violates the spec requirement that "Every client operation flows through A2A regardless of deployment mode." The missing operations block full registry management via the A2A interface. ## Subtasks - [ ] Extend `_EXTENSION_OPERATIONS` in `facade.py` to include all 5 CRUD operations (`list`, `show`, `add`, `update`, `remove`) for all 11 entity types (`actor`, `skill`, `tool`, `validation`, `resource`, `resource_type`, `project`, `action`, `automation_profile`, `invariant`, `lsp`) - [ ] Implement handler methods in `A2aLocalFacade._handlers()` for each new operation, delegating to the appropriate service layer - [ ] Add request/response parameter schemas for `show` (by id/name), `add` (entity payload), `update` (id + partial payload), and `remove` (by id/name) for each entity type - [ ] Write Behave unit test scenarios covering each new CRUD operation for each entity type (dispatch, success, not-found, validation-error cases) - [ ] Write Robot Framework integration tests verifying end-to-end routing for the new operations - [ ] Verify `nox -e typecheck` passes (all new handlers fully statically typed, no `# type: ignore`) - [ ] Verify coverage >= 97% via `nox -e coverage_report` - [ ] Run full `nox` suite and fix any errors ## Definition of Done - [ ] All 55 registry CRUD operations (`11 entity types × 5 operations`) are registered in `_EXTENSION_OPERATIONS` - [ ] All 55 handler methods are implemented and delegate correctly to the service layer - [ ] Dispatching any of the 55 operations via `A2aLocalFacade` does NOT raise `A2aOperationNotFoundError` - [ ] Behave scenarios exist for every new operation (happy path + error cases) - [ ] Robot Framework integration tests pass for end-to-end routing - [ ] `nox -e typecheck` passes with zero errors - [ ] All nox stages pass - [ ] Coverage >= 97% --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-new-issue-creator
freemo added this to the v3.4.0 milestone 2026-04-05 03:48:31 +00:00
Author
Owner

Label compliance fix applied:

  • Added missing labels: Priority/Medium, State/Unverified, Type/Bug
  • Reason: Issue was missing all required labels per CONTRIBUTING.md. Inferred Type/Bug from the "UAT:" prefix. Applied Priority/Medium and State/Unverified as defaults.

Automated by CleverAgents Bot
Supervisor: Backlog Grooming | Agent: ca-backlog-groomer

Label compliance fix applied: - Added missing labels: `Priority/Medium`, `State/Unverified`, `Type/Bug` - Reason: Issue was missing all required labels per CONTRIBUTING.md. Inferred `Type/Bug` from the "UAT:" prefix. Applied `Priority/Medium` and `State/Unverified` as defaults. --- **Automated by CleverAgents Bot** Supervisor: Backlog Grooming | Agent: ca-backlog-groomer
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • Priority: Confirmed
  • MoSCoW: Should Have

Valid finding verified during batch triage.


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

Issue triaged by project owner: - **State**: Verified - **Priority**: Confirmed - **MoSCoW**: Should Have Valid finding verified during batch triage. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
freemo removed this from the v3.4.0 milestone 2026-04-06 21:01:56 +00:00
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#3014
No description provided.