fix(a2a): implement A2A stdio transport (local mode) #11105

Merged
HAL9000 merged 4 commits from feat/a2a-stdio-transport-fix-264 into master 2026-06-14 15:35:38 +00:00

4 Commits

Author SHA1 Message Date
HAL9000 f9669926ab fix(a2a): add CHANGELOG entries for A2A stdio transport
CI / build (pull_request) Successful in 50s
CI / lint (pull_request) Successful in 1m7s
CI / quality (pull_request) Successful in 1m6s
CI / typecheck (pull_request) Successful in 1m12s
CI / security (pull_request) Successful in 1m22s
CI / helm (pull_request) Successful in 48s
CI / push-validation (pull_request) Successful in 25s
CI / unit_tests (pull_request) Successful in 6m35s
CI / docker (pull_request) Successful in 1m48s
CI / integration_tests (pull_request) Successful in 10m10s
CI / coverage (pull_request) Successful in 13m43s
CI / status-check (pull_request) Successful in 4s
Add missing [Unreleased] CHANGELOG entries for the A2A stdio transport
feature and the .py path routing fix, both referencing the correct
issue #691 (not #264 which was already closed in v3.0.0).

ISSUES CLOSED: #691
2026-06-14 11:14:35 -04:00
HAL9000 bdcfdd44f6 fix(a2a): fix Popen mock assertion and add @tdd_issue_691 to .py scenario
step_mock_popen_success stored mock_proc (Popen's return value) as
context.popen_mock, but call_args is recorded on the mock *replacing*
subprocess.Popen (what patcher.start() returns). Reading call_args from
mock_proc returns None, causing TypeError in the three command-construction
scenarios — behave reports these as "errored" not "failed".

Fix: assign patcher.start() to context.popen_mock so the assertion steps
read call_args from the correct mock. Also remove the redundant
patcher.stop() calls from the assertion Then steps (context.add_cleanup
already handles teardown). Add the required @tdd_issue and @tdd_issue_691
tags to the Connect with .py file path scenario per the TDD bug fix workflow.

ISSUES CLOSED: #691
2026-06-14 11:14:35 -04:00
freemo 4e53cd3969 fix(a2a): correct issue references and fix documentation compliance
Issue references corrected from #264 to #691 throughout all documentation.
The A2A stdio transport feature is tracked by issue #691, not #264 (which was
about resource registry tables in v3.0.0).

CHANGELOG.md: Updated issue reference and added .py path routing fix entry under

BDD tests: Added command construction assertions for all three connect scenarios
(module, .py script, executable) to verify subprocess.Popen receives correct args:
- Module paths (cleveragents.X): [python, -m, module]
- .py file paths: [python, file.py]
- Executable paths: [executable_path]
2026-06-14 11:14:35 -04:00
HAL9000 3ae8161c37 fix(a2a): correct .py path handling and fix documentation compliance
The connect() method in A2aStdioTransport incorrectly routed literal .py
script paths (e.g. "agent.py") through `python -m` which expects Python
module names. Fixed to use `python agent_path` for direct script execution
while keeping module paths (cleveragents.*) via `-m` and executables unchanged.

Also resolved merge conflict markers in CONTRIBUTORS.md and added changelog
entry for the A2A stdio transport feature under [Unreleased]. Added BDD
test coverage entry.

ISSUES CLOSED: #264
2026-06-14 11:14:35 -04:00