- Fix malformed JSON parse error: wrap request.json() in try/except,
return -32700 Parse error instead of unhandled HTTP 500
- Fix JSON-RPC error responses: add required 'id' field to all error
responses per JSON-RPC 2.0 Section 5
- Fix HTTP status codes: return HTTP 200 for all JSON-RPC responses
(error codes expressed in JSON body per JSON-RPC 2.0 over HTTP)
- Fix error message leakage: return generic messages instead of raw
Pydantic ValidationError internals (CWE-209)
- Add catch-all exception handler returning -32603 Internal error
- Fix Agent Card url field: use base server URL without /a2a suffix;
interfaces[0].url correctly uses endpoint URL with /a2a suffix
- Fix 0.0.0.0 host: substitute 127.0.0.1 for Agent Card URL
- Fix context typing: replace context: Any with context: Context in
all step files per project convention
- Fix inline imports: move all imports to top of step files
- Fix _COMMANDS typing: use dict[str, Callable[[], None]] to avoid
type: ignore suppression in helper files
- Add BDD scenarios for entity-sync and namespace-mgmt skill enumeration
- Update server_lifecycle.feature: correct HTTP status assertions to 200
ISSUES CLOSED: #867
Implement A2A Agent Card discovery per ADR-047 and issue #867:
- AgentCard Pydantic model (agent_card.py) with nested models for
skills, capabilities, extensions, security schemes, and interfaces.
- Factory function build_agent_card() enumerates supported operations
from the facade and maps them to A2A skills (plan-lifecycle,
registry-crud, context-mgmt, entity-sync, namespace-mgmt,
health-diagnostics).
- Version negotiation: supportedVersions and version fields from
A2aVersion constants.
- A2A conformance validation (validate_agent_card_conformance) checks
required fields, version support, and structural integrity.
- Updated ASGI app to build the Agent Card from the facade model
instead of a raw dict, with conformance validation at startup.
- Behave BDD tests: 34 scenarios covering model construction, field
validation, conformance checks, serialization, endpoint responses,
and skill enumeration from facade operations.
- Robot Framework integration tests: 6 test cases for build, conformance,
endpoint, serialization, skill enumeration, and version info.
- Updated A2A package exports and CHANGELOG.
ISSUES CLOSED: #867