Commit Graph

1526 Commits

Author SHA1 Message Date
CoreRasurae a7dc917021 fix(security): harden template rendering
ISSUES CLOSED: #319
2026-02-25 10:06:27 +00:00
CoreRasurae 8604bc66b6 fix(security): enforce explicit exception handling
ISSUES CLOSED: #320
2026-02-25 10:05:57 +00:00
CoreRasurae d70a5d84ae feat(plan): add error recovery patterns and CLI hints
ISSUES CLOSED: #186
2026-02-25 10:05:10 +00:00
CoreRasurae fe69d132f1 feat(dod): enforce definition-of-done gating
ISSUES CLOSED: #178
2026-02-25 10:04:31 +00:00
CoreRasurae 4874f2ad6f feat(validation): add validation pipeline and results model
ISSUES CLOSED: #175
2026-02-25 10:03:57 +00:00
CoreRasurae 57fcc880c3 feat(apply): run validation attachments
ISSUES CLOSED: #176
2026-02-25 10:03:21 +00:00
CoreRasurae 95b6ed57c2 feat(change): add diff review artifacts
ISSUES CLOSED: #303
2026-02-25 10:02:38 +00:00
CoreRasurae ab6a3fd732 feat(apply): add validation-gated apply pipeline
ISSUES CLOSED: #155
2026-02-25 10:01:57 +00:00
brent.edwards 986107ecb2 Merge branch 'test/m2-e2e-verification' into develop-brent-4 2026-02-25 06:36:54 +00:00
brent.edwards 5be1deda67 Merge branch 'test/m1-e2e-verification' into develop-brent-4 2026-02-25 06:36:49 +00:00
brent.edwards e230700857 Merge feature/m1-e2e-sourcecode into develop-brent-4 2026-02-25 06:36:45 +00:00
brent.edwards dbc9be9fc0 Merge feature/m2-actor-tool-smoke into develop-brent-4 2026-02-25 06:35:44 +00:00
brent.edwards ba78617994 Merge branch 'master' into test/m2-e2e-verification 2026-02-25 06:07:59 +00:00
brent.edwards f5ff0e34cf Merge branch 'master' into test/m1-e2e-verification 2026-02-25 06:07:48 +00:00
brent.edwards 5bf1908708 Merge branch 'master' into feature/m1-e2e-sourcecode 2026-02-25 06:07:09 +00:00
brent.edwards 479c275c9d test(e2e): verify M2 success criteria — actor compiler and tool routing v3.1.0 2026-02-25 04:51:15 +00:00
brent.edwards 0397a00eb6 test(e2e): add M1 source-code plan lifecycle suite 2026-02-25 04:50:43 +00:00
brent.edwards af212bc432 test(e2e): verify M1 success criteria — minimal plan execution flow
Add Robot Framework end-to-end test suite that verifies the complete M1
success criteria: action creation from YAML, git resource registration,
project creation and resource linking, plan use/execute/diff/apply
lifecycle, SQLite persistence, ChangeSet from tool invocations, git
worktree sandbox isolation, and post-apply commit verification.
v3.0.0
2026-02-25 04:49:27 +00:00
brent.edwards 9bf87a20d9 chore(pr): address code review feedback for PR #421
- Added CHANGELOG.md entry for M2 E2E test suite (CONTRIBUTING.md §6)
- Added Brent E. Edwards to CONTRIBUTORS.md (CONTRIBUTING.md §8)
- Fixed docs/development/testing.md: corrected M2 Behave scenario count
  from 11 to 10 to match actual feature file
- Added standard explanatory comments to benchmark sys.path setup
  for consistency with project convention (advisory)
- Replaced untyped lambda handler with typed _m2_noop_handler function
  in step definitions (advisory)

All nox stages pass: lint, typecheck, format, unit_tests (280 features /
5846 scenarios / 0 failures), integration_tests (682 passed),
coverage_report (97.2%).

ISSUES CLOSED: #169
2026-02-25 04:13:55 +00:00
brent.edwards d5c7780a53 Merge branch 'master' into feature/m2-actor-tool-smoke 2026-02-25 03:08:57 +00:00
brent.edwards 3a66ce4d02 Merge branch 'master' into feature/m4-cli-extension-tests 2026-02-25 02:58:58 +00:00
brent.edwards f3ddb48faf chore(pr): address code review feedback for PR #420
Added CHANGELOG entry for CLI extension test suite. Added Brent Edwards
to CONTRIBUTORS.md. Replaced broad except Exception with specific
ValidationError catch in benchmark. Moved import json to module
top-level in robot helper script.

ISSUES CLOSED: #326
2026-02-25 02:55:40 +00:00
freemo 1282bc03b3 Docs: Updated timeline 2026-02-24 17:18:02 -05:00
brent.edwards a2a91c3d9c Merge branch 'master' into feature/m2-actor-tool-smoke 2026-02-24 21:59:58 +00:00
brent.edwards c8434e21f3 Merge branch 'master' into feature/m4-cli-extension-tests 2026-02-24 21:56:43 +00:00
brent.edwards 093a74953f test(e2e): add M2 actor + tool source smoke suite
Add comprehensive E2E test suite for M2 (Actor Graphs + Tool Sources) epic:

- Behave BDD: 10 scenarios covering actor YAML loading, skill registry,
  tool lifecycle (discover/activate/execute/deactivate), and MCP stub
- Robot Framework: 6 integration tests via CLI helper script
- ASV benchmarks: 12 benchmarks for actor loading, skill registry,
  tool lifecycle, and MCP stub performance baselines
- MCP stub server mock: in-process fake with 3 tools (search/fetch/transform)
- Fixtures: hierarchical graph actor YAML + skill pack with tool refs and
  inline tools
- Docs: updated testing.md with M2 smoke suite section

Closes #169
2026-02-24 21:55:24 +00:00
mngrif 7ec06d5db8 Merge pull request 'asv runners have the same machine name now' (#388) from mngrif-asv-test into master
Reviewed-on: cleveragents/cleveragents-core#388
Reviewed-by: Brent Edwards <brent.edwards@cleverthis.com>
2026-02-24 21:51:41 +00:00
mngrif 4e750b9b87 asv runners have the same machine name now 2026-02-24 20:48:41 +00:00
mngrif 800835f6a0 asv runners have the same machine name now 2026-02-24 20:48:41 +00:00
mngrif 57ff467321 asv runners have the same machine name now 2026-02-24 20:48:41 +00:00
mngrif 5f76637b21 asv runners have the same machine name now 2026-02-24 20:48:41 +00:00
mngrif ce4bbd4303 asv runners have the same machine name now 2026-02-24 20:48:41 +00:00
mngrif 8105117c10 asv runners have the same machine name now 2026-02-24 20:48:41 +00:00
brent.edwards 2c21611ad5 test(cli): cover action and plan extensions
Added comprehensive test coverage for CLI extension features from #325:
- Behave scenarios for automation_profile resolution, invariant ordering,
  and actor override error cases
- Output snapshot assertions for JSON/YAML/table formats
- Robot integration test for action show with optional actors/invariants
- ASV benchmark for extended CLI scenario runtime baseline
- Updated testing.md with CLI extension test fixture documentation

ISSUES CLOSED: #326
2026-02-24 20:11:42 +00:00
freemo 25c571541f feat(skill): integrate agent skills discovery
Add agent skills discovery system that scans configurable filesystem
paths for Agent Skills Standard folders (containing SKILL.md with YAML
front-matter) and registers them as tools in ToolRegistry.

Core implementation:
- New skills/discovery.py module with path parsing, directory scanning,
  SKILL.md front-matter parsing, ToolSpec building, and registration
  with configurable conflict handling (skip/error/replace strategies)
- Config key skills.agent_skills_paths for comma-separated discovery paths
- ToolSpec extended with source and source_metadata fields for provenance
- ToolRegistry.list_tools() gains source filter parameter
- SkillRegistryService rewritten with discover_and_register() and
  refresh_agent_skills() hooks for on-demand re-scanning
- CLI "agents skill tools" command updated with --refresh flag and
  source metadata in JSON output

Testing:
- 27 Behave scenarios covering config key, path parsing, discovery,
  ToolSpec building, registration, conflict handling, refresh, edge
  cases (invalid YAML, empty front-matter, non-dict YAML, empty
  descriptions, noop handler), and source metadata
- 10 Robot Framework integration tests for end-to-end discovery flow
- ASV benchmarks for discovery scan performance overhead

Documentation:
- docs/reference/skill_registry.md updated with Agent Skills Discovery
  section covering config, algorithm, SKILL.md format, conflict
  handling, refresh hook, CLI output, and service API

ISSUES CLOSED: #161
2026-02-24 19:41:29 +00:00
freemo f7993d7309 feat(cli): align actor commands to YAML
Align actor add/remove/list/show commands to YAML-first configs,
namespaced names, and --format json|yaml|plain output support.

Changes:
- Add --format option to list, show, add, and update commands
- Add --update flag to add command for updating existing actors
- Add _actor_spec_dict helper for structured output serialization
- Update _print_actor to support format_output rendering
- Add Behave feature tests for CLI format scenarios (11 scenarios)
- Add Robot Framework integration test for show output fields
- Add ASV benchmark for actor CLI parsing overhead
- Add CLI reference documentation for actor commands

ISSUES CLOSED: #288
2026-02-24 19:12:01 +00:00
brent.edwards df6e0f9e48 Merge pull request 'fix/database-parallelism' (#410) from fix/database-parallelism into master
Reviewed-on: cleveragents/cleveragents-core#410
Reviewed-by: Luis Mendes <luis.mendes@cleverthis.com>
2026-02-24 19:06:37 +00:00
brent.edwards aa06b7aa37 Merge branch 'master' into fix/database-parallelism 2026-02-24 18:33:45 +00:00
freemo c47e6445d0 feat(actor): compile hierarchical actor configs to LangGraph
Add ActorCompiler module that translates GRAPH-type ActorConfigSchema
definitions into LangGraph NodeConfig/Edge structures with LSP binding
metadata. Includes subgraph resolution with cross-actor cycle detection,
entry/exit validation, and CompilationMetadata for diagnostics.

New files:
- src/cleveragents/actor/compiler.py: Core compiler with compile_actor()
- features/actor_compiler.feature: 13 Behave scenarios
- features/steps/actor_compiler_steps.py: Step definitions
- robot/actor_compiler.robot: 4 Robot smoke tests
- benchmarks/actor_compiler_bench.py: ASV performance benchmarks
- docs/reference/actor_compiler.md: Compilation pipeline reference

Modified:
- src/cleveragents/actor/__init__.py: Export compiler types
- vulture_whitelist.py: Whitelist new public API

ISSUES CLOSED: #158
2026-02-24 17:57:18 +00:00
freemo 55aee7cf22 fix(test): commit after each add_skill to prevent session GC rollback, and improved coverage.
The step_register_skills_table step called add_skill in a loop but only
committed once at the end. Because SkillRepository.create() obtains a
new session per call and only flushes (never commits), the intermediate
sessions could be garbage-collected before the final commit, rolling
back their transactions on the shared SQLite :memory: connection. Moving
_commit_pending inside the loop ensures each skill is durably committed
before the next session is created.

ISSUES CLOSED: #418
2026-02-24 12:19:04 -05:00
freemo 23aa4280f2 Docs: fixed table values in timeline 2026-02-24 12:16:28 -05:00
brent.edwards c402e6402b Merge branch 'master' into fix/database-parallelism 2026-02-24 16:02:53 +00:00
freemo aa008ba5d7 feat(cli): add action and plan CLI extensions
Add extended CLI flags and output rendering for plan and action
commands in the v3 plan lifecycle.

Plan use command:
- --automation-profile flag validates against BUILTIN_PROFILES and
  persists to plan metadata with PLAN provenance
- --invariant flag (repeatable) passes PlanInvariant objects with
  InvariantSource.PLAN to PlanLifecycleService.use_action()
- --strategy-actor, --execution-actor, --estimation-actor, and
  --invariant-actor flags validate namespace/name format via
  validate_namespaced_actor() before setting on the plan

Plan status/list output:
- Profile and Invariants columns added to plan status summary table
- Profile and Invariants columns added to lifecycle-list table
- _plan_spec_dict includes estimation_actor, invariant_actor, and
  invariants fields in all output formats (json, yaml, plain, table)
- _print_lifecycle_plan rich panel displays invariants with source
  provenance tags

Action show output:
- _print_action displays estimation_actor, invariant_actor,
  invariants list, inputs_schema, and automation_profile when present
- _action_spec_dict conditionally includes estimation_actor,
  invariant_actor, and inputs_schema fields

Documentation:
- docs/reference/plan_cli.md documents all extended flags, actor
  override validation, and usage examples
- docs/reference/action_cli.md documents extended output fields and
  YAML configuration options

Tests:
- 29 Behave scenarios in features/cli_extensions.feature covering
  automation profile, invariant flags, actor override validation,
  plan status/list rendering, and action show extended fields
- 5 Robot Framework integration tests in robot/cli_extensions.robot
  for plan use with invariants, profiles, and actor validation
- 6 ASV benchmark suites in benchmarks/cli_extensions_bench.py
  measuring parsing overhead for all new flags and rendering paths

ISSUES CLOSED: #325
2026-02-24 13:41:11 +00:00
freemo 5c66d718aa Docs: Fixed bad formatting in implementation timeline documentation 2026-02-24 02:06:53 -05:00
freemo b1637eb02e Docs: Daily timeline update 2026-02-23 22:52:28 -05:00
freemo 417d17478f Docs: Explicitly indicated dependency direction for blocking characteristics in CONTRIBUTING.md 2026-02-23 21:58:34 -05:00
freemo 67b4ddf5f8 Docs: Removed implementation-notes and migrated that information as comments on tickets 2026-02-23 21:48:07 -05:00
freemo b1bf2250fb Docs: Switched back to using QOTO's kroki. 2026-02-23 20:17:18 -05:00
freemo d9a492c3ff docs: add missing reference pages to mkdocs navigation
Added decision_model, resource_handlers, and resources to the manually-authored
reference page nav entries in gen_ref_pages.py so mkdocs no longer warns about
pages existing in docs/reference/ but not included in the nav.

Refs: #408
2026-02-24 01:15:26 +00:00
freemo a7c51ed78c docs: clarify branch/tag ref rules for development vs non-development issues
Refined the branch/tag (Ref) field requirement: development issues (features,
fixes, chores) must set it to the same branch as the one in the Metadata
section once the issue reaches State/In Progress, and must always reference a
branch not a tag. Non-development issues (bug reports, questions, support)
may leave it blank or optionally point to the branch or tag being referenced.

Refs: #408
2026-02-24 01:07:55 +00:00