Commit Graph

369 Commits

Author SHA1 Message Date
freemo bbdf438cdd feat(resource): add fs-mount and fs-directory types 2026-02-17 09:00:18 +00:00
freemo 9d4d27d7e8 fix(lint): narrow docstring tables to 88-char line limit
Fix 25 E501 line-too-long violations in RST/markdown docstring tables
across resource.py, tool.py, models.py, and lifecycle.py. Also fix
invalid test expectation in project_commands_coverage.feature where
project list with no database was expected to abort but now succeeds
with an empty list after the redesign.
2026-02-17 06:18:46 +00:00
freemo 43b231b33b Docs: Fixed some missing check-off marks on todo items 2026-02-17 00:08:44 -05:00
Jeffrey Phillips Freeman 4dc05051dd feat(cli): add project commands (core) 2026-02-16 23:56:55 -05:00
Jeffrey Phillips Freeman 827c241baa feat(service): wire resource registry and project services 2026-02-16 23:53:50 -05:00
Jeffrey Phillips Freeman 0c6ed1c709 feat(repo): add project repositories 2026-02-16 23:50:59 -05:00
Jeffrey Phillips Freeman 96ceedbef4 Docs: Cleaned up ADR home page with better descriptions of content 2026-02-16 23:49:18 -05:00
Jeffrey Phillips Freeman ee5f0376d7 Replaced hand written Reference section with one generated from docstrings 2026-02-16 23:40:33 -05:00
brent.edwards 002eafd6f7 Merge pull request 'feat(qa): enforce coverage >=97% in CI' (#50) from feature/q0-min-coverage into master
Reviewed-on: cleveragents/cleveragents-core#50
2026-02-17 04:01:09 +00:00
Jeffrey Phillips Freeman 339b7de700 Docs: Added ADRs and improved TOC handling 2026-02-16 22:11:01 -05:00
brent.edwards 6f7ab08e12 Merge branch 'master' into feature/q0-min-coverage
# Conflicts:
#	benchmarks/cli_format_bench.py
#	benchmarks/plan_phase_migration_bench.py
#	benchmarks/project_migration_bench.py
#	benchmarks/resource_registry_migration_bench.py
#	benchmarks/uow_lifecycle_bench.py
2026-02-17 02:35:20 +00:00
brent.edwards 2f681b74ca docs(implementation_plan.md): Added what was accomplished 2026-02-17 02:27:59 +00:00
brent.edwards 122af46305 fix(tests): resolve unit test and benchmark failures
- Fix project_repository_steps session mismatch: use shared session
  for repos so context.pr_session.commit() commits flushed data
- Fix cli_format_bench setup/teardown to accept fmt parameter for
  parameterized ASV benchmarks
- Fix plan_model_bench PlanPhase.APPLIED -> PlanPhase.APPLY
- Fix benchmark idempotency: use batch counters to generate unique IDs
  across repeated ASV iterations (plan_phase_migration_bench,
  project_migration_bench, resource_registry_migration_bench)
- Fix uow_lifecycle_bench FK constraint by reusing pre-seeded action
- Fix plan_lifecycle_persistence_bench to create fresh plan per iteration
2026-02-17 02:24:35 +00:00
brent.edwards 7ddd99b07d chore(merge): integrate master into feature/q0-min-coverage
Resolve three merge conflicts from master integration:

- benchmarks/coverage_report_bench.py: remove duplicate PYPROJECT_PATH
  constant (already defined below the conflict region)
- noxfile.py: combine HEAD's os.makedirs('build') guard with master's
  resolved PYTHONPATH (Path('src').resolve())
- implementation_plan.md: take master for completed Q0-min-ci block,
  preserve HEAD's in-progress Q0-min-coverage state, adopt master's
  Q0-Advanced consolidation (no standalone commits)
2026-02-17 00:56:43 +00:00
brent.edwards 5254708146 Merge branch 'master' into fix/benchmark-tests 2026-02-17 00:41:16 +00:00
Jeffrey Phillips Freeman 1fb91cba28 refactor(plan): remove legacy plan persistence 2026-02-17 00:38:33 +00:00
Jeffrey Phillips Freeman 44533444ed feat(service): persist plan lifecycle via repositories 2026-02-17 00:38:33 +00:00
Jeffrey Phillips Freeman d0f265ef62 feat(service): persist plan lifecycle via repositories 2026-02-17 00:37:53 +00:00
freemo ea76990bb6 Docs: Fixed some bugs int he ToC's javascript 2026-02-16 19:26:49 -05:00
freemo 155a5d7819 Docs: Updated ADRs and referenced them from the specification 2026-02-16 18:53:06 -05:00
CoreRasurae 946933139c fix(bench): Benchmark tests database issues on concurrent test calls 2026-02-16 23:13:08 +00:00
CoreRasurae d111157573 fix(bench): use unique names per iteration to avoid UNIQUE constraint failures 2026-02-16 22:28:04 +00:00
Jeffrey Phillips Freeman f7d2f63ab8 feat(cli): add resource commands (core) 2026-02-16 16:46:54 -05:00
Jeffrey Phillips Freeman 36c571db83 feat(repo): add resource repositories 2026-02-16 21:35:54 +00:00
freemo c5617b0457 Build: Added even more MCP and LSP servers to the devcontainer 2026-02-16 16:29:30 -05:00
freemo 3240c94f9d Build: Updated devcontainer with relevant mcp servers on opencode 2026-02-16 15:07:35 -05:00
freemo 983eee7a37 Fix: Fixed failing unit tests due to outdated behave version and alembic typo, and other fixes. 2026-02-16 14:21:06 -05:00
Jeffrey Phillips Freeman e273b52769 feat(db): add projects and project links tables 2026-02-16 12:18:51 -05:00
Jeffrey Phillips Freeman dbca60c98e feat(db): add projects and project links tables 2026-02-15 11:04:18 -05:00
Jeffrey Phillips Freeman 5a7703473a feat(resource): add git-checkout and fs-directory resource types 2026-02-15 10:44:14 -05:00
Jeffrey Phillips Freeman 1f06bb2f76 feat(resource): add resource type model + schema loader 2026-02-15 15:19:09 +00:00
Jeffrey Phillips Freeman ae40bb24c0 feat(uow): wire lifecycle repositories 2026-02-15 09:04:17 +00:00
Jeffrey Phillips Freeman 5691858d46 feat(repo): add lifecycle plan repository 2026-02-15 08:29:31 +00:00
Jeffrey Phillips Freeman 6183ee3230 feat(db): rebaseline plan phase/state enums for Action and Apply terminal states 2026-02-15 06:16:19 +00:00
freemo d07e9903eb Docs: Reassigned blocking tasks to me. 2026-02-15 00:14:19 -05:00
freemo 039ab87b52 feat(domain): rebaseline plan phases and apply states 2026-02-15 00:12:07 -05:00
freemo 88e8957cba Docs: Updated implementation plan 2026-02-14 20:30:55 -05:00
Jeff (CTO) 2277ac1b8e feat(tool): add built-in file tools 2026-02-14 14:03:28 -05:00
freemo 2d345ae31c feat(tool): add tool lifecycle runtime
Implement the four-stage tool lifecycle (discover/activate/execute/deactivate)
with capability enforcement, per-plan activation caching, JSON Schema validation,
execution tracing, and cancellation propagation.

New modules:
- tool/context.py: ToolExecutionContext, BoundResource, Change, CancellationToken
- tool/lifecycle.py: ToolRuntime, ToolInstance protocol, ToolLifecycleCache
- tool/schema_validator.py: JSON Schema input/output validation

Tests: 57 Behave scenarios, 6 Robot smoke tests, 5 ASV benchmarks
Coverage: context 100%, schema_validator 100%, lifecycle 94%, overall 97%
2026-02-14 18:55:48 +00:00
Jeff (CTO) 156e3ffde9 feat(cli): stabilize action/plan output formats 2026-02-14 13:51:12 -05:00
Jeff (CTO) 18482b938f feat(tool): add tool runtime core 2026-02-14 13:46:10 -05:00
freemo 65988669a6 feat(cli): align plan use/list/status flags
- plan use: accept positional PROJECT args, add --automation-profile,
  --invariant (repeatable), and actor override flags
- lifecycle-list: add --state/--processing-state, --action filters,
  optional positional REGEX for name filtering, Action column in output
- plan status: enhanced detail view with processing state, project
  links, arguments order, automation profile provenance, actor
  overrides, automation level, and full timestamps
- Add docs/reference/plan_cli.md reference documentation
- Add Behave feature (17 scenarios) with mock service steps
- Add Robot smoke test (7 cases) with import-safe helper
- Add ASV benchmarks for plan use/list/status commands
2026-02-14 13:42:02 -05:00
Jeff (CTO) d98666651f feat(cli): align action commands to spec
- Enforce config-only 'action create --config <file>' (remove legacy
  inline flags: --name, --strategy-actor, --execution-actor,
  --definition-of-done, --arg)
- Load config via ActionConfigSchema.from_yaml_file() then
  Action.from_config() with clear validation error surfacing
- Remove 'action available' subcommand (no draft state; actions are
  available by default)
- Add REGEX positional arg to 'action list' for name filtering
- Add Short Name and Definition of Done summary to all CLI outputs
- Add 'action list --namespace/-n' and '--state/-s' filters
- Update existing tests to match new config-only create flow
- Add features/action_cli_spec_alignment.feature (19 scenarios)
- Add robot/action_cli_spec.robot smoke tests
- Add benchmarks/action_cli_bench.py ASV benchmarks
- Add docs/reference/action_cli.md
2026-02-14 12:16:39 -05:00
freemo a64687f2a2 Docs: Updated specification to clear up a few inconsistencies 2026-02-14 10:59:06 -05:00
freemo 7fde8fcd13 Docs: Updated implementation plan schedule for latest progress and spec 2026-02-14 00:19:20 -05:00
freemo fde631a453 Docs: Updated some left off check marks in the implementation plan 2026-02-13 23:16:00 -05:00
khyari hamza 6eee0a8835 fix(sandbox): fix CI failures in git_worktree and factory integration tests
- git_worktree: verify original_path is the git repo root, not just a
  subdirectory of an unrelated parent repo (fixes false-positive on CI
  where temp dirs are inside the workspace checkout)
- Robot helper: update factory tests to reflect B4 implementations
  (git_worktree and copy_on_write are now supported strategies)

Refs: TASK-006
2026-02-14 04:01:20 +00:00
khyari hamza 72a4a4080b feat(implementation): update checklist with completed tasks for Resource and Project models 2026-02-14 04:01:20 +00:00
khyari hamza cc45b5ff2c feat(sandbox): add git_worktree and copy_on_write sandbox strategies
Implement GitWorktreeSandbox (worktree creation, commit+merge, rollback,
cleanup, branch sanitization, git timeouts) and CopyOnWriteSandbox
(directory copy, diff-based commit, rollback, cleanup).

Update SandboxFactory to wire new strategies, remove stale overlay/
versioning constants, add snapshot placeholder, align resource type
mapping to spec types (git-checkout, fs-mount, fs-directory, fs-file).

Add 40 Behave scenarios (19 git_worktree + 21 copy_on_write) with gwt/cow
prefixed steps. Update existing sandbox_factory_coverage feature (21
scenarios) to reflect new factory behavior.

All quality gates pass: ruff, pyright, 2325 scenarios, 97% coverage.

TASK-006 / Stage B4
2026-02-14 04:01:20 +00:00
Jeff 20321f21ee feat(skill): add skill domain model and resolver 2026-02-14 03:54:14 +00:00