UAT: _cleveragents/namespace/* A2A handlers are stubs — namespace operations always return "not_implemented" #2538

Open
opened 2026-04-03 18:50:05 +00:00 by freemo · 1 comment
Owner

Metadata

  • Branch: fix/a2a-namespace-handlers
  • Commit Message: fix(a2a): implement _cleveragents/namespace/* handlers instead of stubs
  • Milestone: v3.6.0
  • Parent Epic: #399

Bug Description

The spec defines three namespace extension methods that must be implemented for server-mode multi-user collaboration:

Extension Method Purpose
_cleveragents/namespace/list List available namespaces (local, user, org)
_cleveragents/namespace/show Show details of a specific namespace
_cleveragents/namespace/members List members of an org namespace

Actual behavior: All three handlers in A2aLocalFacade return a stub response:

def _handle_namespace_stub(self, params: dict[str, Any]) -> dict[str, Any]:
    return {"status": "not_implemented", "stub": True}

This means any client calling _cleveragents/namespace/list receives {"status": "not_implemented", "stub": True} instead of the actual namespace list.

Expected Behavior (from spec)

Per the spec section Core Concepts > Namespaces:

Namespaces define ownership, scoping, and discoverability of actors, tools, skills, resources, resource types, actions, projects, and plans.

The _cleveragents/namespace/list method should return the available namespaces (local/, <username>/, <orgname>/). The _cleveragents/namespace/show method should return details about a specific namespace. The _cleveragents/namespace/members method should return the members of an org namespace.

Per the spec's A2A extension method table:

| Namespace | _cleveragents/namespace/list, show, members | NamespaceService |

A NamespaceService is referenced but does not exist in src/cleveragents/application/services/.

Code Location

  • Stub handlers: src/cleveragents/a2a/facade.py_handle_namespace_stub() method
  • Missing service: src/cleveragents/application/services/ — no namespace_service.py exists

Steps to Reproduce

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

facade = A2aLocalFacade()
response = facade.dispatch(A2aRequest(method="_cleveragents/namespace/list", params={}))
# response.result == {"status": "not_implemented", "stub": True}
# Expected: {"namespaces": ["local/", "freemo/", ...]}

Subtasks

  • Implement NamespaceService in src/cleveragents/application/services/namespace_service.py
  • Wire NamespaceService into A2aLocalFacade (replace stub handlers)
  • Implement _cleveragents/namespace/list to return available namespaces
  • Implement _cleveragents/namespace/show to return namespace details
  • Implement _cleveragents/namespace/members to return org namespace members
  • Add BDD tests for all three namespace handlers

Definition of Done

  • _cleveragents/namespace/list returns actual namespace list (not stub)
  • _cleveragents/namespace/show returns namespace details for a given namespace name
  • _cleveragents/namespace/members returns member list for org namespaces
  • All handlers have BDD test coverage
  • No "stub": True in responses

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

## Metadata - **Branch**: `fix/a2a-namespace-handlers` - **Commit Message**: `fix(a2a): implement _cleveragents/namespace/* handlers instead of stubs` - **Milestone**: v3.6.0 - **Parent Epic**: #399 ## Bug Description The spec defines three namespace extension methods that must be implemented for server-mode multi-user collaboration: | Extension Method | Purpose | |---|---| | `_cleveragents/namespace/list` | List available namespaces (local, user, org) | | `_cleveragents/namespace/show` | Show details of a specific namespace | | `_cleveragents/namespace/members` | List members of an org namespace | **Actual behavior:** All three handlers in `A2aLocalFacade` return a stub response: ```python def _handle_namespace_stub(self, params: dict[str, Any]) -> dict[str, Any]: return {"status": "not_implemented", "stub": True} ``` This means any client calling `_cleveragents/namespace/list` receives `{"status": "not_implemented", "stub": True}` instead of the actual namespace list. ## Expected Behavior (from spec) Per the spec section **Core Concepts > Namespaces**: > Namespaces define **ownership, scoping, and discoverability** of actors, tools, skills, resources, resource types, actions, projects, and plans. The `_cleveragents/namespace/list` method should return the available namespaces (`local/`, `<username>/`, `<orgname>/`). The `_cleveragents/namespace/show` method should return details about a specific namespace. The `_cleveragents/namespace/members` method should return the members of an org namespace. Per the spec's A2A extension method table: > | **Namespace** | `_cleveragents/namespace/list`, `show`, `members` | `NamespaceService` | A `NamespaceService` is referenced but does not exist in `src/cleveragents/application/services/`. ## Code Location - **Stub handlers**: `src/cleveragents/a2a/facade.py` — `_handle_namespace_stub()` method - **Missing service**: `src/cleveragents/application/services/` — no `namespace_service.py` exists ## Steps to Reproduce ```python from cleveragents.a2a.facade import A2aLocalFacade from cleveragents.a2a.models import A2aRequest facade = A2aLocalFacade() response = facade.dispatch(A2aRequest(method="_cleveragents/namespace/list", params={})) # response.result == {"status": "not_implemented", "stub": True} # Expected: {"namespaces": ["local/", "freemo/", ...]} ``` ## Subtasks - [ ] Implement `NamespaceService` in `src/cleveragents/application/services/namespace_service.py` - [ ] Wire `NamespaceService` into `A2aLocalFacade` (replace stub handlers) - [ ] Implement `_cleveragents/namespace/list` to return available namespaces - [ ] Implement `_cleveragents/namespace/show` to return namespace details - [ ] Implement `_cleveragents/namespace/members` to return org namespace members - [ ] Add BDD tests for all three namespace handlers ## Definition of Done - `_cleveragents/namespace/list` returns actual namespace list (not stub) - `_cleveragents/namespace/show` returns namespace details for a given namespace name - `_cleveragents/namespace/members` returns member list for org namespaces - All handlers have BDD test coverage - No `"stub": True` in responses --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-uat-tester
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • MoSCoW: Should Have — Spec compliance or quality improvement.

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

Issue triaged by project owner: - **State**: Verified - **MoSCoW**: Should Have — Spec compliance or quality improvement. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
freemo added this to the v3.7.0 milestone 2026-04-05 05:07:06 +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.

Dependencies

No dependencies set.

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