fix(a2a): correct IndentationError, add tdd_issue_9250 tags, fix CONTRIBUTORS
CI / push-validation (pull_request) Successful in 25s
CI / load-versions (pull_request) Failing after 13m46s
CI / lint (pull_request) Has been cancelled
CI / typecheck (pull_request) Has been cancelled
CI / security (pull_request) Has been cancelled
CI / quality (pull_request) Has been cancelled
CI / unit_tests (pull_request) Has been cancelled
CI / integration_tests (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
CI / helm (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled

- Fix 2-space -> 4-space indentation on _handle_session_close in
  facade.py; this single error caused every CI gate to fail
  (lint, typecheck, unit_tests, integration_tests, e2e_tests, security)
- Add @tdd_issue @tdd_issue_9250 tags to the three session_id
  validation scenarios in a2a_facade_coverage.feature per the mandatory
  bug-fix TDD workflow requirement
- Fix CONTRIBUTORS.md entry: was PR #11053 / issue #9094, corrected to
  PR #11098 / issue #9250

ISSUES CLOSED: #9250
This commit is contained in:
2026-06-10 18:28:03 -04:00
committed by drew
parent f527e37a99
commit 1f0af20b9c
3 changed files with 5 additions and 2 deletions
+1 -1
View File
@@ -129,4 +129,4 @@ Below are some specific details of individual PR contributions.
* HAL 9000 has contributed the `ProviderRegistry.FALLBACK_ORDER` fix (#10906): added the missing `ProviderType.GEMINI` to the fallback provider order list so that when only a Gemini API key is configured, the registry correctly selects it as the default provider. Includes BDD regression scenarios in `features/fallback_gemini_provider.feature`.
* HAL 9000 has contributed the PyYAML security hardening fix (PR #11017 / issue #11012): added `pyyaml>=6.0.3` as an explicit runtime dependency in `pyproject.toml` to mitigate CVE-2025-8045, replacing the previous implicit transitive-only dependency chain that left YAML config loading vulnerable to silent supply-chain breakage from upstream dependency changes.
* HAL 9000 has contributed the plan explain structured alternatives format fix (PR #11090): updated `_build_explain_dict()` in `src/cleveragents/cli/commands/plan.py` to convert the `alternatives_considered` list into structured objects with `index` (1-based), `description`, and `chosen` fields in the `alternatives` output key, aligning the `agents plan explain` output with the spec-required format.
* HAL 9000 has contributed the a2a session_id validation fix (PR #11053 / issue #9094): moved the session_id validation guard to the top of `_handle_session_close()` in `A2aLocalFacade`, closing the validation bypass path where empty or null session IDs could slip through to devcontainer cleanup when `SessionService` was not wired.
* HAL 9000 has contributed the a2a session_id validation fix (PR #11098 / issue #9250): moved the session_id validation guard to the top of `_handle_session_close()` in `A2aLocalFacade`, closing the validation bypass path where empty or null session IDs could slip through to devcontainer cleanup when `SessionService` was not wired.
+3
View File
@@ -24,16 +24,19 @@ Feature: A2A local facade coverage — uncovered handler and edge-case paths
# Session close — session_id validation guard (lines 321-324)
# -------------------------------------------------------------------
@tdd_issue @tdd_issue_9250
Scenario: Session close with empty session_id and no service raises ValueError error
Given a facade-cov facade with no services
When I dispatch facade-cov operation "session.close" with params {"session_id": ""}
Then the facade-cov response status should be "error"
@tdd_issue @tdd_issue_9250
Scenario: Session close with missing session_id key and no service raises ValueError error
Given a facade-cov facade with no services
When I dispatch facade-cov operation "session.close" with params {}
Then the facade-cov response status should be "error"
@tdd_issue @tdd_issue_9250
Scenario: Session close with empty session_id and wired service raises ValueError error
Given a facade-cov facade with a mock SessionService
When I dispatch facade-cov operation "session.close" with params {"session_id": ""}
+1 -1
View File
@@ -361,7 +361,7 @@ class A2aLocalFacade:
session = svc.create(actor_name=actor_name)
return {"session_id": session.session_id, "status": "created"}
def _handle_session_close(self, params: dict[str, Any]) -> dict[str, Any]:
def _handle_session_close(self, params: dict[str, Any]) -> dict[str, Any]:
session_id = params.get("session_id", "")
# Validate session_id before any cleanup or service operations.