Files
cleveragents-core/robot/plan_sync.robot
freemo ae1fd648d5 feat(client): add plan sync and remote execution
Implement PlanSyncClient for synchronizing local resources with a remote
CleverAgents server and submitting plans for remote execution:
- Sync actions, skills, tools, projects with configurable scope flags
- Conflict resolution policies (local_wins / server_wins)
- Remote plan execution, apply, and status query endpoints
- Server-side ID persistence in local item metadata
- Sync summary output (created/updated/skipped/errors)
- Dry-run mode that skips server mutations
- SyncScope, SyncSummary, ExecutionResult data models
- Behave scenarios (18 scenarios, 62 steps)
- Robot Framework smoke tests
- ASV benchmark for sync throughput baseline
- Reference documentation at docs/reference/server_sync.md

ISSUES CLOSED: #336
2026-03-24 20:28:19 +00:00

82 lines
3.3 KiB
Plaintext

*** Settings ***
Documentation Integration tests for Plan Sync client
Resource ${CURDIR}/common.resource
Suite Setup Setup Test Environment
Suite Teardown Cleanup Test Environment
*** Variables ***
${HELPER} ${CURDIR}/helper_plan_sync.py
*** Test Cases ***
Plan Sync Scope Active Types
[Documentation] Verify SyncScope active_types
${result}= Run Process ${PYTHON} ${HELPER} scope-active cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} plan-sync-scope-ok
Plan Sync Create Items
[Documentation] Verify sync creates new items
${result}= Run Process ${PYTHON} ${HELPER} sync-create cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} plan-sync-create-ok
Plan Sync Dry Run
[Documentation] Verify dry run mode
${result}= Run Process ${PYTHON} ${HELPER} sync-dry-run cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} plan-sync-dry-run-ok
Plan Sync Execute Plan
[Documentation] Verify remote plan execution
${result}= Run Process ${PYTHON} ${HELPER} execute-plan cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} plan-sync-execute-ok
Plan Sync Apply Plan
[Documentation] Verify remote plan apply
${result}= Run Process ${PYTHON} ${HELPER} apply-plan cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} plan-sync-apply-ok
Plan Sync Get Status
[Documentation] Verify plan status retrieval
${result}= Run Process ${PYTHON} ${HELPER} plan-status cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} plan-sync-status-ok
Plan Sync Conflict Policy
[Documentation] Verify conflict policy change
${result}= Run Process ${PYTHON} ${HELPER} conflict-policy cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} plan-sync-conflict-policy-ok
Plan Sync Summary Total
[Documentation] Verify SyncSummary total_processed
${result}= Run Process ${PYTHON} ${HELPER} summary-total cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} plan-sync-summary-total-ok
Plan Sync Execution Result Attributes
[Documentation] Verify ExecutionResult attributes
${result}= Run Process ${PYTHON} ${HELPER} exec-result-attrs cwd=${WORKSPACE}
Log ${result.stdout}
Log ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
Should Contain ${result.stdout} plan-sync-exec-result-ok