UAT: _cleveragents/sync/full A2A method is missing — spec requires initial full entity sync on client connect #2135

Open
opened 2026-04-03 04:21:23 +00:00 by freemo · 1 comment
Owner

Metadata

  • Branch: bugfix/a2a-sync-full-method
  • Commit Message: fix(a2a): implement _cleveragents/sync/full method for initial entity sync on client connect
  • Milestone: v3.7.0
  • Parent Epic: #933

Bug Report

What Was Tested

Code-level analysis of entity synchronization in server mode, specifically the _cleveragents/sync/* A2A extension methods in src/cleveragents/a2a/facade.py.

Expected Behavior (from spec)

The specification states:

When a client first connects, it performs an initial full synchronization by calling the _cleveragents/sync/full A2A method, which returns a complete dump of all entities in a given namespace. After this, it relies on the SSE stream for incremental updates.

The _cleveragents/sync/full method is the primary entry point for entity synchronization in server mode. It must:

  1. Accept a namespace parameter to scope the sync
  2. Return a complete dump of all entities (projects, resources, actors, skills, tools, plans) in the namespace
  3. Be called automatically when a client connects to the server

Actual Behavior

The _cleveragents/sync/full method does not exist in the implementation. The A2aLocalFacade in src/cleveragents/a2a/facade.py only defines three sync methods:

  • _cleveragents/sync/pull (stub returning {"status": "not_implemented", "stub": True})
  • _cleveragents/sync/push (stub returning {"status": "not_implemented", "stub": True})
  • _cleveragents/sync/status (stub returning {"status": "not_implemented", "stub": True})

The _cleveragents/sync/full method is completely absent from both _EXTENSION_OPERATIONS list and the handler map.

Code Location

  • src/cleveragents/a2a/facade.py lines 88–90: _EXTENSION_OPERATIONS list only has sync/pull, sync/push, sync/status
  • src/cleveragents/a2a/facade.py lines 278–280: Handler map only maps the three stub methods

Steps to Reproduce

from cleveragents.a2a.facade import A2aLocalFacade, _EXTENSION_OPERATIONS
facade = A2aLocalFacade()
ops = facade.list_operations()
assert "_cleveragents/sync/full" in ops  # FAILS — method not registered

Severity

High — This is the primary mechanism for initial entity synchronization in server mode. Without it, clients cannot perform the initial full sync required by the spec when connecting to a server.

Subtasks

  • Write TDD issue-capture Behave scenario (tagged @tdd_expected_fail) demonstrating the missing _cleveragents/sync/full method
  • Add _cleveragents/sync/full to _EXTENSION_OPERATIONS list in src/cleveragents/a2a/facade.py
  • Implement _cleveragents/sync/full handler in A2aLocalFacade accepting a namespace parameter
  • Return a complete dump of all entities (projects, resources, actors, skills, tools, plans) scoped to the given namespace
  • Register the handler in the dispatch map in A2aLocalFacade
  • Ensure the method is invoked automatically on client connect in server mode
  • Remove @tdd_expected_fail tag and verify the Behave scenario now passes
  • Add additional Behave scenarios for namespace scoping and full entity dump correctness
  • Run nox -e typecheck and fix any type errors
  • Run nox -e lint and fix any lint errors
  • Run nox -e unit_tests and confirm all scenarios pass
  • Run nox -e coverage_report and confirm coverage ≥ 97%
  • Run nox (all default sessions) and confirm no failures

Definition of Done

  • _cleveragents/sync/full is registered in _EXTENSION_OPERATIONS and the handler dispatch map
  • Handler accepts namespace parameter and returns a complete entity dump (projects, resources, actors, skills, tools, plans)
  • Method is invoked automatically on client connect in server mode
  • TDD issue-capture Behave scenario passes (tag removed)
  • All additional Behave scenarios for sync/full pass
  • Commit pushed to bugfix/a2a-sync-full-method with message fix(a2a): implement _cleveragents/sync/full method for initial entity sync on client connect
  • PR merged and issue closed
  • All nox stages pass
  • Coverage >= 97%

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

## Metadata - **Branch**: `bugfix/a2a-sync-full-method` - **Commit Message**: `fix(a2a): implement _cleveragents/sync/full method for initial entity sync on client connect` - **Milestone**: v3.7.0 - **Parent Epic**: #933 ## Bug Report ### What Was Tested Code-level analysis of entity synchronization in server mode, specifically the `_cleveragents/sync/*` A2A extension methods in `src/cleveragents/a2a/facade.py`. ### Expected Behavior (from spec) The specification states: > When a client first connects, it performs an initial full synchronization by calling the `_cleveragents/sync/full` A2A method, which returns a complete dump of all entities in a given namespace. After this, it relies on the SSE stream for incremental updates. The `_cleveragents/sync/full` method is the **primary entry point** for entity synchronization in server mode. It must: 1. Accept a `namespace` parameter to scope the sync 2. Return a complete dump of all entities (projects, resources, actors, skills, tools, plans) in the namespace 3. Be called automatically when a client connects to the server ### Actual Behavior The `_cleveragents/sync/full` method does **not exist** in the implementation. The `A2aLocalFacade` in `src/cleveragents/a2a/facade.py` only defines three sync methods: - `_cleveragents/sync/pull` (stub returning `{"status": "not_implemented", "stub": True}`) - `_cleveragents/sync/push` (stub returning `{"status": "not_implemented", "stub": True}`) - `_cleveragents/sync/status` (stub returning `{"status": "not_implemented", "stub": True}`) The `_cleveragents/sync/full` method is completely absent from both `_EXTENSION_OPERATIONS` list and the handler map. ### Code Location - `src/cleveragents/a2a/facade.py` lines 88–90: `_EXTENSION_OPERATIONS` list only has `sync/pull`, `sync/push`, `sync/status` - `src/cleveragents/a2a/facade.py` lines 278–280: Handler map only maps the three stub methods ### Steps to Reproduce ```python from cleveragents.a2a.facade import A2aLocalFacade, _EXTENSION_OPERATIONS facade = A2aLocalFacade() ops = facade.list_operations() assert "_cleveragents/sync/full" in ops # FAILS — method not registered ``` ### Severity **High** — This is the primary mechanism for initial entity synchronization in server mode. Without it, clients cannot perform the initial full sync required by the spec when connecting to a server. ## Subtasks - [ ] Write TDD issue-capture Behave scenario (tagged `@tdd_expected_fail`) demonstrating the missing `_cleveragents/sync/full` method - [ ] Add `_cleveragents/sync/full` to `_EXTENSION_OPERATIONS` list in `src/cleveragents/a2a/facade.py` - [ ] Implement `_cleveragents/sync/full` handler in `A2aLocalFacade` accepting a `namespace` parameter - [ ] Return a complete dump of all entities (projects, resources, actors, skills, tools, plans) scoped to the given namespace - [ ] Register the handler in the dispatch map in `A2aLocalFacade` - [ ] Ensure the method is invoked automatically on client connect in server mode - [ ] Remove `@tdd_expected_fail` tag and verify the Behave scenario now passes - [ ] Add additional Behave scenarios for namespace scoping and full entity dump correctness - [ ] Run `nox -e typecheck` and fix any type errors - [ ] Run `nox -e lint` and fix any lint errors - [ ] Run `nox -e unit_tests` and confirm all scenarios pass - [ ] Run `nox -e coverage_report` and confirm coverage ≥ 97% - [ ] Run `nox` (all default sessions) and confirm no failures ## Definition of Done - [ ] `_cleveragents/sync/full` is registered in `_EXTENSION_OPERATIONS` and the handler dispatch map - [ ] Handler accepts `namespace` parameter and returns a complete entity dump (projects, resources, actors, skills, tools, plans) - [ ] Method is invoked automatically on client connect in server mode - [ ] TDD issue-capture Behave scenario passes (tag removed) - [ ] All additional Behave scenarios for `sync/full` pass - [ ] Commit pushed to `bugfix/a2a-sync-full-method` with message `fix(a2a): implement _cleveragents/sync/full method for initial entity sync on client connect` - [ ] PR merged and issue closed - [ ] All nox stages pass - [ ] Coverage >= 97% --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-new-issue-creator
freemo added this to the v3.7.0 milestone 2026-04-03 04:21:30 +00:00
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • Priority: High (confirmed) — The _cleveragents/sync/full method is the primary entry point for entity synchronization in server mode. Without it, clients cannot perform initial full sync.
  • Milestone: v3.7.0 (confirmed — A2A Protocol Compliance Epic #933)
  • MoSCoW: Should Have — Entity sync is a core server mode feature. While server mode (v3.8.0) is not the current focus, this is an important A2A protocol compliance gap. The existing sync stubs are also non-functional.
  • Parent Epic: #933 (confirmed correct)

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

Issue triaged by project owner: - **State**: Verified - **Priority**: High (confirmed) — The `_cleveragents/sync/full` method is the primary entry point for entity synchronization in server mode. Without it, clients cannot perform initial full sync. - **Milestone**: v3.7.0 (confirmed — A2A Protocol Compliance Epic #933) - **MoSCoW**: Should Have — Entity sync is a core server mode feature. While server mode (v3.8.0) is not the current focus, this is an important A2A protocol compliance gap. The existing sync stubs are also non-functional. - **Parent Epic**: #933 (confirmed correct) --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
freemo self-assigned this 2026-04-03 16:58:02 +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#2135
No description provided.