diff --git a/CHANGELOG.md b/CHANGELOG.md index ef0c22f60..6c9387fae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,49 +13,6 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). warning overlay before proceeding. Patterns cover destructive filesystem operations, privilege escalation, network exfiltration, and more. (#1003) -### Changed - -- **A2A — JSON-RPC 2.0 wire format compliance** (**BREAKING**): `A2aRequest` - and `A2aResponse` Pydantic models have been rewritten to use standard - JSON-RPC 2.0 field names. Callers constructing `A2aRequest` or reading - `A2aResponse` must update field references: - - | Old field | New field | Model | - |-----------|-----------|-------| - | `a2a_version` | `jsonrpc` (fixed `"2.0"`) | both | - | `request_id` | `id` | both | - | `operation` | `method` | `A2aRequest` | - | `status` + `data` | `result` (success) | `A2aResponse` | - | `error` | `error` (unchanged) | `A2aResponse` | - | `timing_ms` | *(removed)* | `A2aResponse` | - | `auth` | *(removed — use `params` or HTTP headers)* | `A2aRequest` | - - A `_result_xor_error` model validator enforces JSON-RPC 2.0 mutual exclusion - of `result` and `error`. (#1501) - -- **CLI — Legacy/v3 plan workflow mixing disallowed**: `agents plan` commands - now detect and reject attempts to mix legacy plan commands with v3 plan - workflows in the same session, surfacing a clear error message with migration - guidance. (#1577) - -### Fixed - -- **CLI — `agents actor add` rich output**: The `actor add` command now renders - the full spec-required output including **Type**, **Config**, **Capabilities**, - and **Tools** panels, matching the output format of `actor show`. - -- **Infra — E2E suite database initialization**: The common E2E Robot Framework - suite setup now centrally initializes the database before any CLI commands - run, eliminating per-suite and per-test `agents init` workarounds. Suite home - directory names are sanitized to prevent path-derived initialization failures - in isolated Robot runs. (#1023) - -- **CI — Parallelized static analysis pipeline**: Lint, typecheck, security - scan, and code quality jobs now run in parallel in the CI pipeline, reducing - total pipeline time for static analysis stages. - -### Added - - **TUI — First-run experience with actor selection overlay**: On first launch (no personas configured), a centred `ActorSelectionOverlay` widget guides the user to select an actor from a curated list (`anthropic/claude-4-sonnet`, @@ -81,8 +38,61 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). the "persists across restarts" requirement. 47 new BDD scenarios cover typed triples, temporal queries, and provenance. (#891) +### Changed + +- **A2A — JSON-RPC 2.0 wire format compliance** (**BREAKING**): `A2aRequest` + and `A2aResponse` Pydantic models have been rewritten to use standard + JSON-RPC 2.0 field names. Callers constructing `A2aRequest` or reading + `A2aResponse` must update field references: + + | Old field | New field | Model | + |-----------|-----------|-------| + | `a2a_version` | `jsonrpc` (fixed `"2.0"`) | both | + | `request_id` | `id` | both | + | `operation` | `method` | `A2aRequest` | + | `status` + `data` | `result` (success) | `A2aResponse` | + | `error` | `error` (unchanged) | `A2aResponse` | + | `timing_ms` | *(removed)* | `A2aResponse` | + | `auth` | *(removed — use `params` or HTTP headers)* | `A2aRequest` | + + A `_result_xor_error` model validator enforces JSON-RPC 2.0 mutual exclusion + of `result` and `error`. (#1501) + +- **CLI — Legacy/v3 plan workflow mixing disallowed**: `agents plan` commands + now detect and reject attempts to mix legacy plan commands with v3 plan + workflows in the same session, surfacing a clear error message with migration + guidance. (#1577) + +- **Domain — `DomainBaseModel` shared Pydantic base class**: A new + `DomainBaseModel` base class in `cleveragents.domain.models.base` centralises + the common Pydantic `model_config` (`str_strip_whitespace`, `validate_assignment`, + `arbitrary_types_allowed=False`, `populate_by_name`, `use_enum_values`) + previously duplicated across 14 domain model classes. This is a pure + structural refactor with no behavioral changes. (#1941) + ### Fixed +- **CLI — `agents actor add` rich output**: The `actor add` command now renders + the full spec-required output including **Type**, **Config**, **Capabilities**, + and **Tools** panels, matching the output format of `actor show`. + +- **Infra — E2E suite database initialization**: The common E2E Robot Framework + suite setup now centrally initializes the database before any CLI commands + run, eliminating per-suite and per-test `agents init` workarounds. Suite home + directory names are sanitized to prevent path-derived initialization failures + in isolated Robot runs. (#1023) + +- **CI — Parallelized static analysis pipeline**: Lint, typecheck, security + scan, and code quality jobs now run in parallel in the CI pipeline, reducing + total pipeline time for static analysis stages. + +- **Tests — TDD bug-capture for #989 (JSON decode crash in persistence)**: + Added Behave TDD regression scenario (`@tdd_bug @tdd_bug_989 @tdd_expected_fail`) + that persists corrupt automation-profile JSON and verifies + `AutomationProfileRepository` reads do not leak raw `JSONDecodeError`. + Also stabilized `robot/resource_dag.robot` integration fixture by sharing a + single SQLAlchemy session in inline scripts. (#1094) + - `agents session list` rich output now includes a **Name** column and a **Summary** panel showing total sessions, most recent, oldest, total messages, and storage usage. JSON output also includes a `summary` section with the same statistics. (#1574, #1570)