feature/m2-actor-yaml #432

Merged
aditya merged 4 commits from feature/m2-actor-yaml into master 2026-02-26 13:19:01 +00:00
Member

Description

Extends the hierarchical actor YAML schema and loader with per-node LSP bindings, tool-source references, subgraph actor references, and graph reachability validation. Updates the loader to report precise error locations and field paths. Adds docs/reference/actor_config.md as the authoritative configuration reference.

Type of Change

  • New feature (non-breaking change which adds functionality)
  • Documentation update
  • Test improvements

Quality Checklist

  • Code follows the project's coding standards (see CONTRIBUTING.md)
  • All public/protected methods have argument validation
  • Static typing is complete (no Any unless justified)
  • nox -s typecheck passes with no errors
  • nox -s lint passes with no errors
  • Unit tests written/updated (Behave scenarios in features/)
  • Integration tests written/updated (Robot suites in robot/) if applicable
  • Coverage remains above 85% (nox -s coverage_report)
  • No security issues introduced (nox -s security_scan)
  • No dead code introduced (nox -s dead_code)
  • Documentation updated if behavior changed

Testing

Ran the full nox suite against the implementation.

Test Commands Run

nox -s unit_tests       # Behave tests
nox -s typecheck        # Type checking
nox -s lint             # Linting
nox -s coverage_report  # Coverage
nox -s security_scan    # Security
nox -s integration_tests # Robot Framework
nox                     # Full suite including benchmark

Results:

  • 95 Behave scenarios passed (actor_schema, actor_hierarchy, actor_loading)
  • 10 Robot smoke tests passed (including new hierarchical loader test)
  • Typecheck: 0 errors, 0 warnings
  • Lint: all checks passed
  • Security scan: no issues identified
  • Coverage: 99% on schema.py and loader.py (threshold 97%)

Closes #157

Implementation Notes

  • Reachability validation accounts for both explicit edges and implicit routing targets defined inside conditional node config.conditions[].route_to — without this, valid graphs with conditional branching would be incorrectly rejected.
  • Loader error format now emits dotted Pydantic field paths (e.g. route.nodes.0.id) and YAML line/column positions, making schema errors actionable without manual inspection.
  • graph_workflow.yaml was updated to replace the deprecated config.actor_path with the top-level actor_ref field, consistent with the hierarchical schema extension.
  • docs/reference/actor_config.md is a new practical reference (distinct from actors_schema.md) focused on hierarchical examples, topology rules, and error-case guidance.
## Description Extends the hierarchical actor YAML schema and loader with per-node LSP bindings, tool-source references, subgraph actor references, and graph reachability validation. Updates the loader to report precise error locations and field paths. Adds `docs/reference/actor_config.md` as the authoritative configuration reference. ## Type of Change - [x] New feature (non-breaking change which adds functionality) - [x] Documentation update - [x] Test improvements ## Quality Checklist - [x] Code follows the project's coding standards (see CONTRIBUTING.md) - [x] All public/protected methods have argument validation - [x] Static typing is complete (no `Any` unless justified) - [x] `nox -s typecheck` passes with no errors - [x] `nox -s lint` passes with no errors - [x] Unit tests written/updated (Behave scenarios in `features/`) - [x] Integration tests written/updated (Robot suites in `robot/`) if applicable - [x] Coverage remains above 85% (`nox -s coverage_report`) - [x] No security issues introduced (`nox -s security_scan`) - [x] No dead code introduced (`nox -s dead_code`) - [x] Documentation updated if behavior changed ## Testing Ran the full nox suite against the implementation. ### Test Commands Run ```bash nox -s unit_tests # Behave tests nox -s typecheck # Type checking nox -s lint # Linting nox -s coverage_report # Coverage nox -s security_scan # Security nox -s integration_tests # Robot Framework nox # Full suite including benchmark ``` **Results:** - 95 Behave scenarios passed (actor_schema, actor_hierarchy, actor_loading) - 10 Robot smoke tests passed (including new hierarchical loader test) - Typecheck: 0 errors, 0 warnings - Lint: all checks passed - Security scan: no issues identified - Coverage: 99% on `schema.py` and `loader.py` (threshold 97%) ## Related Issues Closes #157 ## Implementation Notes - **Reachability validation** accounts for both explicit edges and implicit routing targets defined inside `conditional` node `config.conditions[].route_to` — without this, valid graphs with conditional branching would be incorrectly rejected. - **Loader error format** now emits dotted Pydantic field paths (e.g. `route.nodes.0.id`) and YAML line/column positions, making schema errors actionable without manual inspection. - **`graph_workflow.yaml`** was updated to replace the deprecated `config.actor_path` with the top-level `actor_ref` field, consistent with the hierarchical schema extension. - **`docs/reference/actor_config.md`** is a new practical reference (distinct from `actors_schema.md`) focused on hierarchical examples, topology rules, and error-case guidance.
aditya added this to the v3.1.0 milestone 2026-02-25 11:17:33 +00:00
Extend actor YAML schema to support hierarchical graphs with explicit
node types (agent, tool, conditional, subgraph), per-node LSP bindings
(lsp_binding with server, languages, auto, capabilities), and tool-source
references (skills, mcp_servers, agent_skills).

Add schema validation for namespaced actor references, duplicate node IDs,
edge target existence, and graph reachability — all nodes must be reachable
from entry_node via explicit edges or conditional node routing targets.

Update loader to report YAML parse errors with precise line/column positions
and schema validation errors with dotted field paths and remediation hints
pointing to docs/reference/actor_config.md.

Add docs/reference/actor_config.md as the practical configuration reference
covering hierarchical graph examples, node type table, topology rules, and
common error cases with fix guidance.

Refresh examples/actors/graph_workflow.yaml to replace deprecated actor_path
with actor_ref. Add benchmarks/actor_yaml_bench.py for schema load overhead.

Tests: 95 Behave scenarios, 10 Robot smoke tests (including hierarchical
loader smoke test), security scan clean, coverage 99% (threshold 97%).

ISSUES CLOSED: #157
chore(changelog): add entry for feat(actor) hierarchical YAML schema and loader
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 13s
CI / quality (pull_request) Successful in 23s
CI / build (pull_request) Successful in 23s
CI / typecheck (pull_request) Successful in 29s
CI / security (pull_request) Successful in 39s
CI / integration_tests (pull_request) Successful in 3m45s
CI / unit_tests (pull_request) Successful in 8m10s
CI / docker (pull_request) Successful in 40s
CI / benchmark-regression (pull_request) Successful in 20m28s
CI / coverage (pull_request) Successful in 27m32s
72b3a49984
CoreRasurae approved these changes 2026-02-25 14:44:50 +00:00
Dismissed
CoreRasurae left a comment

All checks ares passing. Approved!

All checks ares passing. Approved!
aditya changed title from feature/m2-actor-yaml to WIP: feature/m2-actor-yaml 2026-02-25 15:21:36 +00:00
Merge branch 'master' into feature/m2-actor-yaml
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / build (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 44s
CI / typecheck (pull_request) Successful in 44s
CI / security (pull_request) Successful in 47s
CI / integration_tests (pull_request) Successful in 3m17s
CI / unit_tests (pull_request) Successful in 20m41s
CI / docker (pull_request) Successful in 1m2s
CI / benchmark-regression (pull_request) Successful in 23m40s
CI / coverage (pull_request) Successful in 35m33s
b8d7c4c893
aditya dismissed CoreRasurae's review 2026-02-26 06:27:31 +00:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

aditya changed title from WIP: feature/m2-actor-yaml to feature/m2-actor-yaml 2026-02-26 06:27:57 +00:00
CoreRasurae left a comment

Tests passing, changelog updated, documentation updated. Looks good. Approving

Tests passing, changelog updated, documentation updated. Looks good. Approving
aditya merged commit e05afdcd27 into master 2026-02-26 13:19:01 +00:00
aditya deleted branch feature/m2-actor-yaml 2026-02-26 13:19:01 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
cleveragents/cleveragents-core!432
No description provided.