diff --git a/CHANGELOG.md b/CHANGELOG.md index 94455d060..8d8568c18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -319,6 +319,8 @@ ensuring data is stored with proper parameter values. `AUTO-REV-SUP` prefix. The agent was already using `AUTO-REV-SUP` in production; this change aligns the documentation with the actual runtime behaviour. +- **BDD Feature File Tag Coverage** (#9124): Added required `@a2a`, `@session`, and `@cli` Gherkin tags to all A2A, session, and CLI feature files (30 files) to enable tag-based test filtering via `behave --tags=a2a,session,cli`. This restores the ability to selectively run test categories and enables CI to execute targeted test suites without running the full suite. + - **Cross-actor subgraph cycle detection reads actor_ref field** (#1431): Fixed `_detect_subgraph_cycles()`, `_map_node()`, and the `compile_actor()` main loop in `src/cleveragents/actor/compiler.py` to read `actor_ref` from the top-level diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 0840a0d10..54802c6bc 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -65,3 +65,4 @@ Below are some of the specific details of various contributions. * HAL 9000 has contributed the Definition-of-Done gating feature for the Apply phase (PR #8299 / issue #7927): `PlanLifecycleService.apply_plan` now evaluates DoD criteria before transitioning to Apply, raising `DoDGatingError` when required criteria fail and storing evaluation results in `plan.validation_summary`. * HAL 9000 has contributed the engine cache TOCTOU race condition fix (PR #8265 / issue #7566): added `MEMORY_ENGINES_LOCK` to `engine_cache.py` and wrapped the check-and-set operation in `UnitOfWork.engine` with `with MEMORY_ENGINES_LOCK:` to prevent concurrent threads from creating duplicate in-memory SQLite engine instances; also fixed a cache-hit bug where `self._engine` was never assigned on a cache hit. * HAL 9000 has contributed the plan correct JSON output envelope fix (PR #8662 / issue #8584): restructured `agents plan correct --format json` output to nest correction fields under `data.correction` and pass `command="plan correct"` to `format_output`, producing the spec-required CLI envelope. Added three BDD scenarios validating `data.correction.mode` (revert and append modes) and the `command` field. +* HAL 9000 has contributed BDD feature file tag coverage improvements (#9124 / pr #9183): added required `@a2a`, `@session`, and `@cli` Gherkin tags to 30 feature files (8 A2A, 7 session, 15 CLI) to enable selective tag-based test filtering via `behave --tags=a2a,session,cli`. diff --git a/features/a2a_cli_facade_integration.feature b/features/a2a_cli_facade_integration.feature index 8e11c09c7..1a284e2f6 100644 --- a/features/a2a_cli_facade_integration.feature +++ b/features/a2a_cli_facade_integration.feature @@ -1,3 +1,4 @@ +@a2a @mock_only Feature: A2A CLI facade integration As a CleverAgents developer diff --git a/features/a2a_events_coverage_r3.feature b/features/a2a_events_coverage_r3.feature index 03644322e..bb63ee318 100644 --- a/features/a2a_events_coverage_r3.feature +++ b/features/a2a_events_coverage_r3.feature @@ -1,3 +1,4 @@ +@a2a @mock_only Feature: A2A events module uncovered-line coverage (round 3) As a CleverAgents developer diff --git a/features/a2a_extension_methods.feature b/features/a2a_extension_methods.feature index 8192e577a..a9c045294 100644 --- a/features/a2a_extension_methods.feature +++ b/features/a2a_extension_methods.feature @@ -1,3 +1,4 @@ +@a2a @mock_only Feature: A2A extension method routing via _cleveragents/ prefix As a CleverAgents developer diff --git a/features/a2a_facade_coverage.feature b/features/a2a_facade_coverage.feature index 265261ebe..6609bf92f 100644 --- a/features/a2a_facade_coverage.feature +++ b/features/a2a_facade_coverage.feature @@ -1,3 +1,4 @@ +@a2a Feature: A2A local facade coverage — uncovered handler and edge-case paths As a developer maintaining the A2A local facade I want all handler branches and error paths exercised diff --git a/features/a2a_facade_coverage_boost.feature b/features/a2a_facade_coverage_boost.feature index fa3351336..2eb1943eb 100644 --- a/features/a2a_facade_coverage_boost.feature +++ b/features/a2a_facade_coverage_boost.feature @@ -1,3 +1,4 @@ +@a2a Feature: A2A local facade coverage boost — uncovered validation paths As a developer maintaining the A2A local facade I want all error-handling and validation paths exercised diff --git a/features/a2a_facade_wiring.feature b/features/a2a_facade_wiring.feature index fb8b5b81e..cf27d1eac 100644 --- a/features/a2a_facade_wiring.feature +++ b/features/a2a_facade_wiring.feature @@ -1,3 +1,4 @@ +@a2a Feature: A2A local facade wiring to live services As a client of the A2A local facade I want operations to route to real application services diff --git a/features/a2a_jsonrpc_wire_format.feature b/features/a2a_jsonrpc_wire_format.feature index 9d2f3b963..9c98687f7 100644 --- a/features/a2a_jsonrpc_wire_format.feature +++ b/features/a2a_jsonrpc_wire_format.feature @@ -1,3 +1,4 @@ +@a2a Feature: A2A JSON-RPC 2.0 wire format compliance As a developer maintaining the A2A protocol layer I want A2aRequest and A2aResponse to use JSON-RPC 2.0 field names diff --git a/features/a2a_sse_streaming.feature b/features/a2a_sse_streaming.feature index 80bd2554a..81fc454be 100644 --- a/features/a2a_sse_streaming.feature +++ b/features/a2a_sse_streaming.feature @@ -1,3 +1,4 @@ +@a2a @mock_only Feature: A2A SSE streaming for task updates and artifacts As a CleverAgents developer diff --git a/features/cli.feature b/features/cli.feature index 4fc12b594..29cf83fa6 100644 --- a/features/cli.feature +++ b/features/cli.feature @@ -1,3 +1,4 @@ +@cli Feature: CleverAgents CLI metadata Scenario: Display help diff --git a/features/cli_consistency.feature b/features/cli_consistency.feature index 386adde38..583ceec8f 100644 --- a/features/cli_consistency.feature +++ b/features/cli_consistency.feature @@ -1,3 +1,4 @@ +@cli Feature: CLI consistency and UX polish As a developer I want all CLI commands to follow consistent UX patterns diff --git a/features/cli_core.feature b/features/cli_core.feature index de8ca1c88..bf62305a4 100644 --- a/features/cli_core.feature +++ b/features/cli_core.feature @@ -1,3 +1,4 @@ +@cli Feature: Core system commands (version, info, diagnostics) As a user of CleverAgents I want version, info, and diagnostics commands diff --git a/features/cli_coverage.feature b/features/cli_coverage.feature index 5ed71bfa3..71aa2a895 100644 --- a/features/cli_coverage.feature +++ b/features/cli_coverage.feature @@ -1,3 +1,4 @@ +@cli Feature: CLI Main Coverage As a developer I want to ensure the CLI main module is properly tested diff --git a/features/cli_extensions.feature b/features/cli_extensions.feature index 416ef999a..b4afb9e04 100644 --- a/features/cli_extensions.feature +++ b/features/cli_extensions.feature @@ -1,3 +1,4 @@ +@cli Feature: CLI extensions for plan and action commands As a developer using the CleverAgents CLI I want automation profile, invariant, and actor override flags diff --git a/features/cli_global_format_flag.feature b/features/cli_global_format_flag.feature index 1bb764c4e..6b1203937 100644 --- a/features/cli_global_format_flag.feature +++ b/features/cli_global_format_flag.feature @@ -1,3 +1,4 @@ +@cli Feature: Global --format flag propagation to subcommands As a developer using the CleverAgents CLI I want the --format flag to be a global option on the root `agents` command diff --git a/features/cli_init_yes_flag.feature b/features/cli_init_yes_flag.feature index 57c9db931..78958dc0c 100644 --- a/features/cli_init_yes_flag.feature +++ b/features/cli_init_yes_flag.feature @@ -1,3 +1,4 @@ +@cli # These tests target bug #522 and are expected to fail until the fix is applied. # # NOTE FOR FIX AUTHOR (#522): diff --git a/features/cli_internals.feature b/features/cli_internals.feature index fcded1d37..8d05b1a66 100644 --- a/features/cli_internals.feature +++ b/features/cli_internals.feature @@ -1,3 +1,4 @@ +@cli Feature: CLI Command Processing Scenario: Convert integer exit codes diff --git a/features/cli_json_envelope.feature b/features/cli_json_envelope.feature index 19430f143..b246e6803 100644 --- a/features/cli_json_envelope.feature +++ b/features/cli_json_envelope.feature @@ -1,3 +1,4 @@ +@cli Feature: CLI JSON/YAML output envelope structure As a programmatic consumer of the CleverAgents CLI I want all --format json and --format yaml outputs to include the spec-required envelope diff --git a/features/cli_lifecycle_coverage.feature b/features/cli_lifecycle_coverage.feature index 031f485e2..92a71ec27 100644 --- a/features/cli_lifecycle_coverage.feature +++ b/features/cli_lifecycle_coverage.feature @@ -1,3 +1,4 @@ +@cli Feature: CLI lifecycle command coverage for action and plan commands As a developer I want comprehensive CLI coverage for action/plan lifecycle commands diff --git a/features/cli_lifecycle_robot_alignment.feature b/features/cli_lifecycle_robot_alignment.feature index 19793efe2..dd2497682 100644 --- a/features/cli_lifecycle_robot_alignment.feature +++ b/features/cli_lifecycle_robot_alignment.feature @@ -1,3 +1,4 @@ +@cli Feature: CLI lifecycle Robot alignment As a developer I want a Behave scenario mirroring the Robot E2E lifecycle flow diff --git a/features/cli_main_uncovered_branches.feature b/features/cli_main_uncovered_branches.feature index 6d106ab11..ba41e1612 100644 --- a/features/cli_main_uncovered_branches.feature +++ b/features/cli_main_uncovered_branches.feature @@ -1,3 +1,4 @@ +@cli Feature: CLI main.py uncovered branches As a developer I want to cover the missed branches in cleveragents.cli.main diff --git a/features/cli_output_formats.feature b/features/cli_output_formats.feature index f8eb425b4..618b5c8bc 100644 --- a/features/cli_output_formats.feature +++ b/features/cli_output_formats.feature @@ -1,3 +1,4 @@ +@cli Feature: CLI output formats parity As a developer using the CleverAgents CLI I want all action and plan commands to support --format json|yaml|plain|table|rich diff --git a/features/cli_renderers_coverage.feature b/features/cli_renderers_coverage.feature index b9fe59895..7ea565d72 100644 --- a/features/cli_renderers_coverage.feature +++ b/features/cli_renderers_coverage.feature @@ -1,3 +1,4 @@ +@cli @mock_only Feature: CLI renderers coverage Verifies render_error, render_success, render_warning, and render_empty diff --git a/features/cli_v2_parity.feature b/features/cli_v2_parity.feature index c571510f1..b8fcdf5e7 100644 --- a/features/cli_v2_parity.feature +++ b/features/cli_v2_parity.feature @@ -1,3 +1,4 @@ +@cli Feature: v2 CLI parity for actor-first surface As a user migrating v2 flows to the actor-first CLI I want key CLI behaviors validated diff --git a/features/session_cli_coverage_boost.feature b/features/session_cli_coverage_boost.feature index 724547fd6..056e998ac 100644 --- a/features/session_cli_coverage_boost.feature +++ b/features/session_cli_coverage_boost.feature @@ -1,3 +1,4 @@ +@session Feature: Session CLI Coverage Boost Additional scenarios that exercise previously uncovered code paths in the session.py CLI commands module. diff --git a/features/session_cli_uncovered_branches.feature b/features/session_cli_uncovered_branches.feature index fa84f9767..6521b25da 100644 --- a/features/session_cli_uncovered_branches.feature +++ b/features/session_cli_uncovered_branches.feature @@ -1,3 +1,4 @@ +@session Feature: Session CLI uncovered branches As a developer I want full branch coverage for session CLI commands diff --git a/features/session_create_error.feature b/features/session_create_error.feature index 9b8619c3d..107ea6c85 100644 --- a/features/session_create_error.feature +++ b/features/session_create_error.feature @@ -1,3 +1,4 @@ +@session # Regression tests for bug #570 — verifies that the DI container fix for # session create command works correctly. The @tdd_expected_fail tags have # been removed now that the fix has landed. diff --git a/features/session_list_error.feature b/features/session_list_error.feature index ea38934ad..d2c1370d5 100644 --- a/features/session_list_error.feature +++ b/features/session_list_error.feature @@ -1,3 +1,4 @@ +@session # Regression tests for bug #554 — verifies that the DI container fix for # session list command works correctly. The @tdd_expected_fail tags have # been removed now that the fix has landed. diff --git a/features/session_list_summary_dedup.feature b/features/session_list_summary_dedup.feature index 934b2557f..2ce43d400 100644 --- a/features/session_list_summary_dedup.feature +++ b/features/session_list_summary_dedup.feature @@ -1,3 +1,4 @@ +@session @tdd_issue @tdd_issue_3046 @tdd_expected_fail @tdd_issue_4178 Feature: Session list summary consistency between JSON and rich table output As a developer diff --git a/features/session_persistence.feature b/features/session_persistence.feature index bf924c552..58920024b 100644 --- a/features/session_persistence.feature +++ b/features/session_persistence.feature @@ -1,3 +1,4 @@ +@session Feature: Session Persistence and Repositories As a developer I want sessions to be persisted to the database diff --git a/features/session_service_coverage.feature b/features/session_service_coverage.feature index 8dc8b5eaa..fff1c535b 100644 --- a/features/session_service_coverage.feature +++ b/features/session_service_coverage.feature @@ -1,3 +1,4 @@ +@session Feature: PersistentSessionService coverage Additional scenarios exercising previously uncovered code paths in session_service.py (lines 97-98, 139-146, 150-151, 217, 248, 310-311).