|
|
|
@@ -207,7 +207,7 @@ ensuring data is stored with proper parameter values.
|
|
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
|
|
- **A2A module rename BDD test suite** (#8615): Comprehensive Behave tests validating that the ACP→A2A module rename is complete — verifying all 22 A2A symbols are properly exported, no legacy ACP references remain in `.py` files under `cleveragents.a2a/`, and the module docstring uses current A2A naming. The step definitions include self-contained symbol lookups to avoid cross-scenario dependency failures.
|
|
|
|
|
- **A2A module rename BDD test suite** (#8615): Comprehensive Behave tests validating that the ACP→A2A module rename is complete — verifying all 22 A2A symbols are properly exported, no legacy ACP references remain in `.py` files under `cleveragents.a2a/`, and the module docstring uses current A2A naming. The step definitions include self-contained symbol lookups to avoid cross-scenario dependency failures.
|
|
|
|
|
|
|
|
|
|
- Fixed `ReactiveEventBus.emit()` exception handler to log the full exception
|
|
|
|
|
message (`str(exc)`) and enable traceback forwarding (`exc_info=True`).
|
|
|
|
@@ -350,7 +350,7 @@ ensuring data is stored with proper parameter values.
|
|
|
|
|
untyped `config` dict), the old code always returned an empty string, causing
|
|
|
|
|
cross-actor cycle detection to silently fail and leaving the system vulnerable to
|
|
|
|
|
infinite recursion at runtime. Added Behave regression tests
|
|
|
|
|
(`features/actor_subgraph_cycle_detection.feature`) and a Robot Framework
|
|
|
|
|
(`features/actor_subgraph_cycle_detection.feature`) and a Robot Framework
|
|
|
|
|
integration test (`robot/actor_compiler.robot`) to prevent regressions.
|
|
|
|
|
|
|
|
|
|
- **ActorLoader.list_actors TOCTOU race condition** (#8588): Moved the namespace
|
|
|
|
@@ -473,6 +473,12 @@ ensuring data is stored with proper parameter values.
|
|
|
|
|
relative globs also match absolute paths. Added BDD regression tests in
|
|
|
|
|
`execute_phase_context_assembler_coverage.feature` and `project_context_phase_analysis.feature`.
|
|
|
|
|
|
|
|
|
|
- **Plan artifacts JSON completeness fix** (#9084): Removed stale `@tdd_expected_fail`
|
|
|
|
|
tags from two BDD scenarios in `features/plan_diff_artifacts.feature` and fixed test
|
|
|
|
|
step assertions in `plan_diff_artifacts_steps.py` to correctly access `validation_summary`
|
|
|
|
|
and `apply_summary` through the spec-required `{"data": ...}` envelope returned by
|
|
|
|
|
`format_output`.
|
|
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
|
|
- Restored `benchmark-regression` CI job to `master.yml` with `pull_request` trigger guard
|
|
|
|
@@ -542,8 +548,7 @@ _ALL_DATA_COLUMNS + ") " "SELECT " + _ALL_DATA_COLUMNS + " FROM v3_plans"`.
|
|
|
|
|
`is_superseded` flag. The command handles empty decision trees gracefully and includes
|
|
|
|
|
ULID validation and proper error handling consistent with other plan commands.
|
|
|
|
|
|
|
|
|
|
- `agents actor context clear` command to reset actor message history and
|
|
|
|
|
state while preserving the underlying context directory via `ContextManager`
|
|
|
|
|
- `agents actor context clear` command to reset actor message history and state while preserving the underlying context directory via `ContextManager`
|
|
|
|
|
(#6370).
|
|
|
|
|
- **Quick Start Guide** (PR #9245): Added `docs/quickstart.md` with an end-to-end quick start guide covering prerequisites, installation, project creation, resource registration, plan/apply workflow, and troubleshooting. Updated `mkdocs.yml` navigation to include the Quick Start page.
|
|
|
|
|
- **container-instance --clone-into and devcontainer-instance sandbox strategy** (#7555):
|
|
|
|
@@ -680,19 +685,19 @@ back when UnitOfWork transaction rolls back`.
|
|
|
|
|
|
|
|
|
|
- **Unified provider factory: eliminate divergence between `create_llm()` and `create_ai_provider()`** (#10949):
|
|
|
|
|
Introduced `_create_provider_instance()` as the single internal factory so that
|
|
|
|
|
both public methods delegate to one place. Creating a new provider now
|
|
|
|
|
both public methods delegate to one place. Creating a new provider now
|
|
|
|
|
requires changes in exactly one method.
|
|
|
|
|
- **Fixed API key regression**: the unified factory now explicitly passes
|
|
|
|
|
the validated API key to all LangChain constructors (OpenAI, Anthropic,
|
|
|
|
|
Google / Gemini, Azure, Groq, Together, Cohere, and OpenRouter). Users
|
|
|
|
|
Google / Gemini, Azure, Groq, Together, Cohere, and OpenRouter). Users
|
|
|
|
|
who configure providers via `CLEVERAGENTS_`-prefixed variables are no
|
|
|
|
|
longer silently failed when LangChain falls back to raw environment
|
|
|
|
|
variable lookup. Pre-validated keys are forwarded through the
|
|
|
|
|
variable lookup. Pre-validated keys are forwarded through the
|
|
|
|
|
`api_key` kwarg to avoid a second settings lookup in the factory
|
|
|
|
|
closure. (Closes #10949)
|
|
|
|
|
- **Fixed mock provider accessibility in production**: `ProviderType.MOCK`
|
|
|
|
|
is now gated by the `CLEVERAGENTS_ALLOW_MOCK_PROVIDER=true` sentinel
|
|
|
|
|
environment variable. Without this flag, both `create_llm()` and
|
|
|
|
|
environment variable. Without this flag, both `create_llm()` and
|
|
|
|
|
`create_ai_provider()` raise `ValueError` when MOCK is requested,
|
|
|
|
|
preventing accidental or malicious use of the fake LLM in production.
|
|
|
|
|
`resolve_provider_by_name("mock")` now also respects the guard and
|
|
|
|
@@ -760,7 +765,7 @@ back when UnitOfWork transaction rolls back`.
|
|
|
|
|
`agents actor run` silently returning empty output for v3 `type:llm` actors.
|
|
|
|
|
`_build_from_v3()` and `_build()` now synthesise a default single-node
|
|
|
|
|
graph route when agents are created without explicit routes, ensuring
|
|
|
|
|
`run_single_shot()` can invoke the LLM via `GraphExecutor`. The nested
|
|
|
|
|
`run_single_shot()` can invoke the LLM via `GraphExecutor`. The nested
|
|
|
|
|
`actors:` map format also translates the v3 `actor: "provider/model"` key
|
|
|
|
|
into separate `provider` and `model` keys so the correct LLM provider is
|
|
|
|
|
instantiated.
|
|
|
|
@@ -785,10 +790,10 @@ uko-oo:Class` triple emission in `PythonAnalyzer._extract_class()` so that
|
|
|
|
|
|
|
|
|
|
- **Actor CLI v3 YAML Schema Support** (#6283): Fixed three components to add
|
|
|
|
|
full v3 `ActorConfigSchema` support to the actor CLI registration and
|
|
|
|
|
execution paths. `ActorConfiguration.from_blob()` now detects v3 format
|
|
|
|
|
execution paths. `ActorConfiguration.from_blob()` now detects v3 format
|
|
|
|
|
(top-level `type` key of `llm`/`graph`/`tool`) and correctly extracts
|
|
|
|
|
provider, model, and graph descriptors — including `type: tool` actors
|
|
|
|
|
without a `model` field. `ActorRegistry.add()` validates against the full
|
|
|
|
|
without a `model` field. `ActorRegistry.add()` validates against the full
|
|
|
|
|
Pydantic v2 schema, persists `skills`/`lsp`/`description` in the config
|
|
|
|
|
blob, and compiles graph actors with proper metadata.
|
|
|
|
|
`ReactiveConfigParser._build_from_v3()` now uses correct `source`/`target`
|
|
|
|
@@ -797,9 +802,9 @@ uko-oo:Class` triple emission in `PythonAnalyzer._extract_class()` so that
|
|
|
|
|
`env_vars`/`response_format`/`lsp_capabilities`/`lsp_context_enrichment`
|
|
|
|
|
into agent configs, and validates `entry_node` against the nodes map.
|
|
|
|
|
Exception handling narrowed from broad `except Exception` to specific
|
|
|
|
|
`NotFoundError` and `ActorCompilationError`. v3 registration logic
|
|
|
|
|
`NotFoundError` and `ActorCompilationError`. v3 registration logic
|
|
|
|
|
extracted to `v3_registry.py` to keep `registry.py` under the 500-line
|
|
|
|
|
limit. 19 BDD scenarios cover all v3 paths including tool actors,
|
|
|
|
|
limit. 19 BDD scenarios cover all v3 paths including tool actors,
|
|
|
|
|
update mode, LSP dict bindings, and field propagation.
|
|
|
|
|
|
|
|
|
|
- **TDD Non-AssertionError Guard Visibility** (#8294): `apply_tdd_inversion` in
|
|
|
|
@@ -816,8 +821,8 @@ uko-oo:Class` triple emission in `PythonAnalyzer._extract_class()` so that
|
|
|
|
|
|
|
|
|
|
- **Parallel Behave Runner Log Noise Reduction** (#8351): The parallel behave
|
|
|
|
|
runner now suppresses captured stdout/stderr for passing worker chunks and
|
|
|
|
|
only replays diagnostics for failed, errored, or crashed chunks. This makes
|
|
|
|
|
failure output significantly easier to spot in CI and local runs. A worker
|
|
|
|
|
only replays diagnostics for failed, errored, or crashed chunks. This makes
|
|
|
|
|
failure output significantly easier to spot in CI and local runs. A worker
|
|
|
|
|
crash (unhandled exception) is detected via an all-zero summary and the
|
|
|
|
|
captured traceback is always surfaced.
|
|
|
|
|
|
|
|
|
|