UAT: Server mode A2A HTTP transport is a complete stub — collaborative server mode is entirely unimplemented #4135

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

Metadata

  • Branch: fix/a2a-server-mode-http-transport
  • Commit Message: feat(a2a): implement A2A HTTP transport for server mode
  • Milestone: (none — backlog)
  • Parent Epic: #378 (Post-MVP Deferred Work)

Bug Report

What Was Tested

Collaborative server mode — the ability for teams to share resources and execute plans remotely via a CleverAgents server.

Expected Behavior (from spec)

Per docs/specification.md §Server and Client Architecture:

In server mode, CleverAgents becomes a collaborative hub where teams can share resources — prompts, actors, actions, and projects — while executing plans in the cloud. This enables a consistent experience across all your devices: start a complex task on your laptop, check progress from your phone, and review results from any machine.

The spec describes:

  • A2aHttpTransport should send A2A requests over HTTP to a remote CleverAgents server
  • StubServerClient, StubRemoteExecutionClient, StubAuthClient should have real implementations
  • agents server connect <URL> should establish a real connection, not just save config
  • Entity sync (_cleveragents/sync/pull, _cleveragents/sync/push, _cleveragents/sync/status) should work
  • Namespace operations (_cleveragents/namespace/list, _cleveragents/namespace/show, _cleveragents/namespace/members) should work

Actual Behavior

The entire server mode is stubbed out:

  1. src/cleveragents/a2a/transport.pyA2aHttpTransport.send() always raises A2aNotAvailableError:
_SERVER_MODE_MSG = (
    "A2A HTTP transport is not available in local mode"
    " - server mode will be implemented as a separate project"
)
class A2aHttpTransport:
    def send(self, request: A2aRequest) -> A2aResponse:
        raise A2aNotAvailableError(_SERVER_MODE_MSG, ...)
    def connect(self, base_url: str) -> None:
        raise A2aNotAvailableError(_SERVER_MODE_MSG, ...)
    def is_connected(self) -> bool:
        return False  # Always False
  1. src/cleveragents/a2a/clients.py — All three client protocols have stub implementations that raise NotImplementedError:
class StubServerClient:
    def health_check(self) -> bool:
        raise NotImplementedError("Server client is not yet implemented")
    def get_version(self) -> str:
        raise NotImplementedError("Server client is not yet implemented")

class StubRemoteExecutionClient:
    def execute_plan(self, plan_id: str) -> dict[str, Any]:
        raise NotImplementedError("Server client is not yet implemented")
    # ... all methods raise NotImplementedError
  1. src/cleveragents/cli/commands/server.pyagents server connect saves config but explicitly warns no connection is made:
_STUB_WARNING = (
    "Server connection is not yet implemented. "
    "The URL has been saved to configuration but no connection will be made."
)
  1. src/cleveragents/a2a/facade.py — Sync and namespace operations return stub responses:
def _handle_sync_stub(self, params):
    return {"status": "not_implemented", "stub": True}
def _handle_namespace_stub(self, params):
    return {"status": "not_implemented", "stub": True}

Impact

  • Teams cannot use CleverAgents as a collaborative hub
  • Remote plan execution is impossible
  • Entity sharing (actors, skills, actions) across team members is impossible
  • Cross-device task monitoring is impossible
  • The agents server connect command is misleading — it appears to work but does nothing

Code Locations

  • src/cleveragents/a2a/transport.pyA2aHttpTransport (all methods are stubs)
  • src/cleveragents/a2a/clients.pyStubServerClient, StubRemoteExecutionClient, StubAuthClient
  • src/cleveragents/cli/commands/server.pyserver_connect() (saves config only)
  • src/cleveragents/a2a/facade.py_handle_sync_stub(), _handle_namespace_stub()

Subtasks

  • Implement A2aHttpTransport.send() using the A2A Python SDK's HTTP client
  • Implement A2aHttpTransport.connect() with Agent Card discovery and auth
  • Implement ServerClient, RemoteExecutionClient, AuthClient concrete classes
  • Wire agents server connect to actually establish and verify a connection
  • Implement _cleveragents/sync/pull, _cleveragents/sync/push, _cleveragents/sync/status
  • Implement _cleveragents/namespace/list, _cleveragents/namespace/show, _cleveragents/namespace/members
  • Add integration tests for server mode connection

Definition of Done

  • agents server connect <URL> establishes a real A2A connection
  • A2aHttpTransport.send() routes requests to the remote server
  • Entity sync operations work in server mode
  • Namespace operations work in server mode
  • All nox stages pass
  • Coverage >= 97%

Backlog note: This issue was discovered during autonomous UAT testing.
Server mode is explicitly deferred to Post-MVP (Legendary #378). It does not
block current milestone completion and has been placed in the backlog.


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

## Metadata - **Branch**: `fix/a2a-server-mode-http-transport` - **Commit Message**: `feat(a2a): implement A2A HTTP transport for server mode` - **Milestone**: _(none — backlog)_ - **Parent Epic**: #378 (Post-MVP Deferred Work) ## Bug Report ### What Was Tested Collaborative server mode — the ability for teams to share resources and execute plans remotely via a CleverAgents server. ### Expected Behavior (from spec) Per `docs/specification.md` §Server and Client Architecture: > In **server mode**, CleverAgents becomes a collaborative hub where teams can share resources — prompts, actors, actions, and projects — while executing plans in the cloud. This enables a consistent experience across all your devices: start a complex task on your laptop, check progress from your phone, and review results from any machine. The spec describes: - `A2aHttpTransport` should send A2A requests over HTTP to a remote CleverAgents server - `StubServerClient`, `StubRemoteExecutionClient`, `StubAuthClient` should have real implementations - `agents server connect <URL>` should establish a real connection, not just save config - Entity sync (`_cleveragents/sync/pull`, `_cleveragents/sync/push`, `_cleveragents/sync/status`) should work - Namespace operations (`_cleveragents/namespace/list`, `_cleveragents/namespace/show`, `_cleveragents/namespace/members`) should work ### Actual Behavior The entire server mode is stubbed out: 1. **`src/cleveragents/a2a/transport.py`** — `A2aHttpTransport.send()` always raises `A2aNotAvailableError`: ```python _SERVER_MODE_MSG = ( "A2A HTTP transport is not available in local mode" " - server mode will be implemented as a separate project" ) class A2aHttpTransport: def send(self, request: A2aRequest) -> A2aResponse: raise A2aNotAvailableError(_SERVER_MODE_MSG, ...) def connect(self, base_url: str) -> None: raise A2aNotAvailableError(_SERVER_MODE_MSG, ...) def is_connected(self) -> bool: return False # Always False ``` 2. **`src/cleveragents/a2a/clients.py`** — All three client protocols have stub implementations that raise `NotImplementedError`: ```python class StubServerClient: def health_check(self) -> bool: raise NotImplementedError("Server client is not yet implemented") def get_version(self) -> str: raise NotImplementedError("Server client is not yet implemented") class StubRemoteExecutionClient: def execute_plan(self, plan_id: str) -> dict[str, Any]: raise NotImplementedError("Server client is not yet implemented") # ... all methods raise NotImplementedError ``` 3. **`src/cleveragents/cli/commands/server.py`** — `agents server connect` saves config but explicitly warns no connection is made: ```python _STUB_WARNING = ( "Server connection is not yet implemented. " "The URL has been saved to configuration but no connection will be made." ) ``` 4. **`src/cleveragents/a2a/facade.py`** — Sync and namespace operations return stub responses: ```python def _handle_sync_stub(self, params): return {"status": "not_implemented", "stub": True} def _handle_namespace_stub(self, params): return {"status": "not_implemented", "stub": True} ``` ### Impact - Teams cannot use CleverAgents as a collaborative hub - Remote plan execution is impossible - Entity sharing (actors, skills, actions) across team members is impossible - Cross-device task monitoring is impossible - The `agents server connect` command is misleading — it appears to work but does nothing ### Code Locations - `src/cleveragents/a2a/transport.py` — `A2aHttpTransport` (all methods are stubs) - `src/cleveragents/a2a/clients.py` — `StubServerClient`, `StubRemoteExecutionClient`, `StubAuthClient` - `src/cleveragents/cli/commands/server.py` — `server_connect()` (saves config only) - `src/cleveragents/a2a/facade.py` — `_handle_sync_stub()`, `_handle_namespace_stub()` ## Subtasks - [ ] Implement `A2aHttpTransport.send()` using the A2A Python SDK's HTTP client - [ ] Implement `A2aHttpTransport.connect()` with Agent Card discovery and auth - [ ] Implement `ServerClient`, `RemoteExecutionClient`, `AuthClient` concrete classes - [ ] Wire `agents server connect` to actually establish and verify a connection - [ ] Implement `_cleveragents/sync/pull`, `_cleveragents/sync/push`, `_cleveragents/sync/status` - [ ] Implement `_cleveragents/namespace/list`, `_cleveragents/namespace/show`, `_cleveragents/namespace/members` - [ ] Add integration tests for server mode connection ## Definition of Done - [ ] `agents server connect <URL>` establishes a real A2A connection - [ ] `A2aHttpTransport.send()` routes requests to the remote server - [ ] Entity sync operations work in server mode - [ ] Namespace operations work in server mode - [ ] All nox stages pass - [ ] Coverage >= 97% > **Backlog note:** This issue was discovered during autonomous UAT testing. > Server mode is explicitly deferred to Post-MVP (Legendary #378). It does not > block current milestone completion and has been placed in the backlog. --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-new-issue-creator
freemo added this to the v3.4.0 milestone 2026-04-06 18:07:13 +00:00
Author
Owner

Milestone Triage Decision: Moved to Backlog

This CLI enhancement issue has been moved out of v3.3.0 during aggressive milestone triage. While useful for user experience, it does not relate to the core focus of Corrections + Subplans + Checkpoints.

Reasoning:

  • v3.3.0 focus: Essential corrections, subplan management, and checkpoint functionality
  • This issue: CLI validation enhancement - user experience improvement
  • Impact: UX enhancement, not core corrections/subplans/checkpoints functionality

Will be addressed in a future milestone focused on CLI polish and user experience enhancements.

**Milestone Triage Decision: Moved to Backlog** This CLI enhancement issue has been moved out of v3.3.0 during aggressive milestone triage. While useful for user experience, it does not relate to the core focus of Corrections + Subplans + Checkpoints. **Reasoning:** - v3.3.0 focus: Essential corrections, subplan management, and checkpoint functionality - This issue: CLI validation enhancement - user experience improvement - Impact: UX enhancement, not core corrections/subplans/checkpoints functionality Will be addressed in a future milestone focused on CLI polish and user experience enhancements.
freemo removed this from the v3.4.0 milestone 2026-04-06 20:41:35 +00:00
HAL9000 added this to the v3.5.0 milestone 2026-04-09 03:10:41 +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.

Blocks
#378 Legendary: Post-MVP Deferred Work
cleveragents/cleveragents-core
Reference
cleveragents/cleveragents-core#4135
No description provided.