Commit Graph

684 Commits

Author SHA1 Message Date
aditya 80a56846fe Merge branch 'master' into develop-aditya-2
# Conflicts:
#	implementation_plan.md
2026-02-24 09:37:42 +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
freemo 0d5e97ff62 docs: require branch/tag ref field on all issues in contributing guidelines
Added requirement that every issue must have its Forgejo branch/tag (Ref) field
set to the working branch once work begins. This field is separate from the
branch name in the issue body Metadata section but must match it. Setting the
field allows Forgejo to associate issues with branches in its UI.

Refs: #408
2026-02-24 01:03:49 +00:00
freemo bdda79f24b docs: add PR description and dependency link requirements to contributing guidelines
Added explicit requirement that every PR must include a detailed description
with a summary, closing keywords for linked issues, and a Forgejo dependency
link. Updated the merge checklist with PR description and dependency link
verification items. Reworked PR Process item 1 to be comprehensive about
both the description body and the issue linkage.

Refs: #408
2026-02-24 00:59:09 +00:00
freemo 31094b20b9 docs: add milestone and PR label requirements to contributing guidelines
Added milestone requirements: issues beyond State/Unverified must be assigned
to a milestone; PRs must be assigned to the same milestone as their linked
issues. Added PR label rules: every PR must carry exactly one Type/ label
matching the nature of the change. Updated the triaging checklist to include
milestone assignment and updated the merge checklist with milestone and label
verification items.

Refs: #408
2026-02-24 00:51:56 +00:00
freemo ccff33c7c7 docs: update changelog with documentation reorganization entries
Added an Unreleased section to CHANGELOG.md describing all documentation
changes in this branch: CONTRIBUTING.md expansion, implementation plan
migration to docs/timeline.md and docs/implementation-notes.md, and
removal of the monolithic implementation_plan.md.

Refs: #408
2026-02-24 00:29:53 +00:00
freemo 87d842732b docs: Clarified metadata on CONTRIBUTING.md
Refs: #408
2026-02-23 19:25:12 -05:00
freemo 9563da6485 docs: Fixed broken image link in CONTRIBUTING.md
Refs: #408
2026-02-23 19:21:25 -05:00
freemo 96516f4944 docs: Expanded the CONTRIBUTING.md document to give more details to the process of contributing issues, and pull requests
Refs: #408
2026-02-23 19:16:17 -05:00
freemo 09c2567d60 docs: Moved the last elements from implementation plan to their respective locations and deleted the plan from the repo
Refs: #408
2026-02-23 17:53:26 -05:00
freemo fb7b20bd6b docs: Moved the notes taken during implementation to its own document
Refs: #408
2026-02-23 17:53:02 -05:00
freemo 69b99d49e6 docs: Moved the implementation timeline out to its own document
Refs: #408
2026-02-23 17:52:59 -05:00
freemo 9559414dc2 docs: Added commit guidlines to the contributing document
Refs: #408
2026-02-23 17:52:56 -05:00
freemo e53c301ab6 docs: Updated CONTRIBUTING.md to be inclusive of everything relevant from the implementation plan
Refs: #408
2026-02-23 17:52:50 -05:00
hamza.khyari 88f1a1264b Merge pull request 'develop-hamza-2' (#385) from develop-hamza-2 into master
Reviewed-on: cleveragents/cleveragents-core#385
2026-02-23 22:44:38 +00:00
khyari hamza 2c46a0be5a revert(test): remove StaticPool from skill registry in-memory db
Reverts the StaticPool fix (68bc068) as it is no longer needed on
develop-hamza-2. Restores the original SingletonThreadPool default
for sqlite:///:memory: engine creation.
2026-02-23 22:20:44 +00:00
khyari hamza e880aa13d9 docs(plan): check off M3.1 quality gates for PR #128 2026-02-23 22:20:44 +00:00
khyari hamza bd58cc04f4 docs(plan): check off M3.1 decision-domain tasks from merged PR #128 2026-02-23 22:20:44 +00:00
khyari hamza 1eb028402c fix(test): use StaticPool for skill registry in-memory db
The default SingletonThreadPool for sqlite:///:memory: can
non-deterministically lose flushed data when multiple sessions are
created without closing (as in the bulk-register table step).
Under CI with coverage --parallel-mode and behave-parallel --processes 32,
this caused list_all() to return 2 skills instead of 3.

StaticPool guarantees all sessions share the exact same DBAPI connection,
which is the SQLAlchemy-recommended pattern for :memory: test databases.
2026-02-23 22:20:44 +00:00
khyari hamza 1a0a501f66 refactor(resource): address PR review feedback for handler runtime
- extract BaseResourceHandler to eliminate ~90% duplication between
  GitCheckoutHandler and FsDirectoryHandler
- raise RuntimeError when sandbox.context is None instead of silent
  empty string fallback
- add threading.Lock to resolver handler cache for thread safety
- type resource_lookup/type_lookup as Callable instead of Any
- log original HandlerResolutionError at DEBUG before fallback
- use behave.runner.Context in step definitions per repo convention
2026-02-23 22:20:44 +00:00
khyari hamza bfc6ab0fb1 feat(resource): add handler runtime for git-checkout and fs-directory 2026-02-23 22:20:44 +00:00
khyari hamza 832fe369fe refactor(benchmark): clean up resource registry bench per review
- remove unused imports (UTC, datetime, ResourceKind, SandboxStrategy)
- remove dead code (_bench_ulid, _CB32, _BENCH_CTR)
- use StaticPool for in-memory SQLite consistency
2026-02-23 22:20:44 +00:00
khyari hamza 78213084ae feat(resource): add resource registry and DAG metadata 2026-02-23 22:20:44 +00:00
khyari hamza 91f1a3d1eb chore: add worktrees/ to gitignore 2026-02-23 22:20:03 +00:00
khyari hamza 229dbc8925 refactor(decision): address PR review feedback
- add with_superseded_by() helper for frozen model mutation
- document frozen model + superseded_by interaction in docstring
- clarify sequence_number uniqueness is a persistence concern
- add scenario for invalid corrects_decision_id ULID validation
- add scenario for with_superseded_by copy behavior
- type step helper dict as dict[str, Any]
2026-02-23 22:20:03 +00:00
khyari hamza abcfba7e66 feat(decision): add decision domain and context snapshots 2026-02-23 22:19:19 +00:00
freemo bb7612c0d3 Docs: Daily update to implementation plan 2026-02-23 12:31:07 -05:00
freemo 5816fe2eb3 fix(test): harden database_integration robot suite against CI flakiness
- Replace NamedTemporaryFile with mkstemp to avoid leaking an open fd
- Increase subprocess timeout from 30s to 60s for CI headroom
- Retry once on empty-output failure (signal-killed by OOM/CPU starvation)
- Include return code in failure message for easier diagnosis
2026-02-23 16:38:17 +00:00
freemo 76375134f1 Fix: linting errors fixed 2026-02-23 09:47:00 -05:00
aditya a6e56fe96e feat(skill): add MCP adapter for external tools 2026-02-23 13:03:10 +00:00
freemo f69224e7e9 feat(cli): add action and plan CLI extensions 2026-02-23 10:46:53 +00:00
freemo 999013a4a4 feat(plan): add phase reversion state machine 2026-02-23 10:45:01 +00:00
freemo 234a2fe52a feat(config): add config service with multi-level resolution 2026-02-23 10:44:58 +00:00
aditya 7013d4462d feat(actor): extend hierarchical actor YAML schema and loader 2026-02-23 10:42:44 +00:00
freemo 55f83771b9 Docs: Added gantt charts to Implementation Timeline section 2026-02-23 01:11:36 -05:00
brent.edwards a4685d374c Merge pull request 'feat(cli): add interactive repl' (#379) from develop-rui-1 into master
Reviewed-on: cleveragents/cleveragents-core#379
2026-02-23 03:50:17 +00:00
brent.edwards f48eb5a05f feat(cli): add interactive repl
Implement `agents repl` command providing an interactive read-eval-print
loop that dispatches to existing CLI commands without the `agents` prefix.

Features:
- Command dispatch via existing Typer app
- readline history with --no-history opt-out (default: ~/.cleveragents/history)
- Tab-completion for all CLI commands and built-in commands
- !! last-command repetition
- Prompt context from CLEVERAGENTS_PROJECT / CLEVERAGENTS_PLAN env vars
- Ctrl+C (continue) and Ctrl+D (exit) signal handling
- Multi-line input with \ continuation
- :help and :exit/:quit built-in commands

Test coverage:
- 15 Behave scenarios (features/repl.feature)
- 10 Robot Framework smoke tests (robot/repl_smoke.robot)
- ASV benchmark suite (benchmarks/repl_bench.py)
- All nox sessions pass: lint, typecheck, unit_tests, integration_tests
- Coverage: 97.2% (threshold: 97%)
2026-02-23 03:11:12 +00:00
freemo 18b7cf8107 Docs: daily update to implementation plan 2026-02-22 17:12:54 -05:00
freemo e24c7bf731 Fix: Fixed lint again 2026-02-22 16:15:49 -05:00
freemo 41ca082022 Tests: Improved coverage to get us back above 97% 2026-02-22 15:29:41 -05:00
freemo 92c83ecc7e Fix: Fixed linting errors 2026-02-22 14:18:24 -05:00
freemo a0000afc72 fix: update Robot helper and CLI to use target_decision_id, fix lint import order
- robot/helper_correction_model.py: decision_id -> target_decision_id in all
  request_correction calls; update validate_guidance test to accept empty
  guidance (M4.2 allows it); remove unused ValidationError import
- robot/correction_model.robot: update Validate Empty Guidance doc string
- src/cleveragents/cli/commands/plan.py: decision_id -> target_decision_id
- src/cleveragents/cli/main.py: fix import ordering (invariant before lsp)
2026-02-22 18:47:41 +00:00
freemo 029f09db1c fix: update M4.1 scenarios for M4.2 allowing empty/whitespace guidance in request_correction 2026-02-22 17:56:18 +00:00
freemo 8182ac2917 fix: update M4.1 tests for M4.2 CorrectionRequest empty guidance now allowed 2026-02-22 17:41:10 +00:00