freemo
94a774a1f0
feat(concurrency): add plan resume
...
CI / lint (pull_request) Failing after 23s
CI / typecheck (pull_request) Successful in 59s
CI / coverage (pull_request) Has been skipped
CI / security (pull_request) Successful in 58s
CI / quality (pull_request) Successful in 43s
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 25s
CI / benchmark-regression (pull_request) Has been skipped
CI / integration_tests (pull_request) Failing after 3m51s
CI / unit_tests (pull_request) Failing after 23m31s
CI / docker (pull_request) Has been skipped
Implement step-level progress persistence and plan resume with graceful
shutdown handling.
- Add ResumeCheckpoint, ResumeMetadata, ResumeEligibility, ResumeSummary
domain models (resume.py)
- Add PlanResumeService with validate_eligibility(), build_resume_summary(),
resume_plan(dry_run), record_step_checkpoint(), record_shutdown()
- Add last_completed_step and last_checkpoint_id fields to Plan model
- Add 'plan resume' CLI command with --dry-run flag
- Update plan lifecycle docs (ADR-006) with resume behavior section
- Add Behave tests (24 scenarios in plan_resume.feature)
- Add Robot Framework integration tests (10 tests)
- Add ASV benchmarks for resume overhead
Closes #328
2026-02-25 03:31:25 +00:00
freemo
6c39cb6d2e
feat(concurrency): add plan and project locks
...
Implemented plan-level and project-level locking with configurable timeouts.
Added locks table via Alembic migration storing owner_id, resource_type,
resource_id, acquired_at, and expires_at. Locks enforced in
PlanLifecycleService transitions. Support for re-entrant acquisition,
lock renewal, graceful shutdown release, and startup cleanup of expired
locks. Added diagnostics check for stale lock reporting.
ISSUES CLOSED : #327
2026-02-25 03:31:08 +00:00
freemo
1cafe1de08
feat(changeset): persist changesets and diff artifacts
...
Add SQLite persistence for ChangeSet entries and ToolInvocation records
via new changeset_repository module implementing the ChangeSetStore protocol.
- Alembic migration d0_001 creates changeset_entries and tool_invocations tables
- SqliteChangeSetStore, ChangeSetEntryRepository, ToolInvocationRepository
- PlanApplyService.cleanup_changeset() for cancel/failure cleanup
- Behave tests (17 scenarios), Robot tests (5 cases), ASV benchmarks
- Reference documentation in docs/reference/changeset.md
Closes #163
2026-02-25 03:30:51 +00:00
freemo
1a1dfd6fd8
feat(provider): add cost controls and fallback
...
Add token/cost tracking, budget enforcement (per-plan and per-day),
provider fallback selection with capability filtering, and cost
metadata for plan models.
New modules:
- providers/cost_table.py: CostEntry + ProviderCostTable with default
pricing for OpenAI, Anthropic, Google, Groq, Together, Cohere, Mock
- providers/cost_tracker.py: BudgetStatus enum, BudgetCheckResult,
CostTracker with warn-at-90%/block-at-100% enforcement
- providers/fallback_selector.py: FallbackSelector with capability
filtering (tool_calls, streaming, vision, json_mode) and budget
- domain/models/core/cost_metadata.py: CostMetadata + BudgetExhaustionEvent
Modified:
- config/settings.py: budget_per_plan, budget_per_day, fallback_providers
- domain/models/core/plan.py: cost_metadata field + CLI dict surfacing
- providers/__init__.py: public exports for new classes
Testing:
- 71 Behave scenarios in features/cost_controls.feature (all pass)
- 6 Robot Framework integration tests (all pass)
- ASV benchmarks in benchmarks/cost_controls_bench.py
- nox lint, typecheck, format, docs, build, dead_code, security_scan pass
Closes #324
2026-02-25 03:30:51 +00:00
freemo
3c0251d90e
fix(provider): remove FakeListLLM defaults
2026-02-25 03:30:51 +00:00
freemo
1282bc03b3
Docs: Updated timeline
CI / lint (push) Successful in 17s
CI / quality (push) Successful in 27s
CI / security (push) Successful in 36s
CI / build (push) Successful in 25s
CI / typecheck (push) Successful in 1m3s
CI / benchmark-regression (push) Has been skipped
CI / integration_tests (push) Successful in 3m24s
CI / benchmark-publish (push) Successful in 13m40s
CI / unit_tests (push) Successful in 14m50s
CI / docker (push) Successful in 1m10s
CI / coverage (push) Successful in 38m15s
2026-02-24 17:18:02 -05:00
mngrif
7ec06d5db8
Merge pull request 'asv runners have the same machine name now' ( #388 ) from mngrif-asv-test into master
...
CI / lint (push) Successful in 16s
CI / quality (push) Successful in 18s
CI / build (push) Successful in 16s
CI / security (push) Successful in 32s
CI / typecheck (push) Successful in 49s
CI / benchmark-regression (push) Has been skipped
CI / integration_tests (push) Successful in 3m47s
CI / unit_tests (push) Successful in 9m42s
CI / docker (push) Successful in 16s
CI / benchmark-publish (push) Successful in 12m24s
CI / coverage (push) Has been cancelled
Reviewed-on: #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
CI / lint (pull_request) Successful in 23s
CI / quality (pull_request) Successful in 33s
CI / benchmark-publish (pull_request) Has been skipped
CI / typecheck (pull_request) Successful in 1m2s
CI / security (pull_request) Successful in 1m2s
CI / build (pull_request) Successful in 31s
CI / integration_tests (pull_request) Successful in 4m37s
CI / unit_tests (pull_request) Successful in 21m56s
CI / docker (pull_request) Successful in 1m1s
CI / benchmark-regression (pull_request) Successful in 22m9s
CI / coverage (pull_request) Successful in 1h1m48s
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
freemo
25c571541f
feat(skill): integrate agent skills discovery
...
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 16s
CI / build (pull_request) Successful in 25s
CI / quality (pull_request) Successful in 33s
CI / security (pull_request) Successful in 36s
CI / typecheck (pull_request) Successful in 37s
CI / integration_tests (pull_request) Successful in 2m48s
CI / unit_tests (pull_request) Successful in 17m30s
CI / benchmark-regression (pull_request) Successful in 17m43s
CI / docker (pull_request) Successful in 1m2s
CI / coverage (pull_request) Successful in 46m42s
CI / lint (push) Successful in 13s
CI / quality (push) Successful in 26s
CI / security (push) Successful in 53s
CI / typecheck (push) Successful in 53s
CI / build (push) Successful in 33s
CI / benchmark-regression (push) Has been skipped
CI / integration_tests (push) Successful in 4m2s
CI / benchmark-publish (push) Successful in 13m12s
CI / unit_tests (push) Successful in 20m41s
CI / docker (push) Successful in 1m14s
CI / coverage (push) Successful in 1h7m53s
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
...
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 16s
CI / build (pull_request) Successful in 21s
CI / quality (pull_request) Successful in 32s
CI / security (pull_request) Successful in 33s
CI / typecheck (pull_request) Successful in 54s
CI / integration_tests (pull_request) Successful in 4m48s
CI / unit_tests (pull_request) Successful in 15m53s
CI / docker (pull_request) Successful in 14s
CI / benchmark-regression (pull_request) Successful in 17m19s
CI / coverage (pull_request) Successful in 26m43s
CI / lint (push) Successful in 13s
CI / build (push) Successful in 15s
CI / quality (push) Successful in 16s
CI / security (push) Successful in 28s
CI / typecheck (push) Successful in 44s
CI / benchmark-regression (push) Has been skipped
CI / integration_tests (push) Successful in 4m0s
CI / benchmark-publish (push) Successful in 12m5s
CI / unit_tests (push) Successful in 13m42s
CI / docker (push) Successful in 1m9s
CI / coverage (push) Has been cancelled
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
...
CI / lint (push) Successful in 14s
CI / quality (push) Successful in 19s
CI / build (push) Successful in 24s
CI / typecheck (push) Successful in 35s
CI / benchmark-regression (push) Has been skipped
CI / security (push) Successful in 53s
CI / integration_tests (push) Successful in 4m15s
CI / unit_tests (push) Successful in 8m4s
CI / docker (push) Successful in 1m2s
CI / benchmark-publish (push) Successful in 11m12s
CI / coverage (push) Has been cancelled
Reviewed-on: #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
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 22s
CI / build (pull_request) Successful in 23s
CI / quality (pull_request) Successful in 31s
CI / security (pull_request) Successful in 50s
CI / typecheck (pull_request) Successful in 56s
CI / integration_tests (pull_request) Successful in 2m42s
CI / unit_tests (pull_request) Successful in 15m24s
CI / docker (pull_request) Successful in 1m0s
CI / benchmark-regression (pull_request) Successful in 20m58s
CI / coverage (pull_request) Successful in 31m36s
2026-02-24 18:33:45 +00:00
freemo
c47e6445d0
feat(actor): compile hierarchical actor configs to LangGraph
...
CI / quality (pull_request) Successful in 19s
CI / lint (pull_request) Successful in 22s
CI / benchmark-publish (pull_request) Has been skipped
CI / security (pull_request) Successful in 33s
CI / build (pull_request) Successful in 26s
CI / typecheck (pull_request) Successful in 1m0s
CI / integration_tests (pull_request) Successful in 4m56s
CI / unit_tests (pull_request) Successful in 15m11s
CI / docker (pull_request) Successful in 1m33s
CI / benchmark-regression (pull_request) Successful in 20m55s
CI / coverage (pull_request) Successful in 33m42s
CI / lint (push) Successful in 13s
CI / build (push) Successful in 15s
CI / quality (push) Successful in 17s
CI / security (push) Successful in 28s
CI / typecheck (push) Successful in 32s
CI / benchmark-regression (push) Has been skipped
CI / integration_tests (push) Successful in 3m3s
CI / benchmark-publish (push) Successful in 10m8s
CI / unit_tests (push) Successful in 12m42s
CI / docker (push) Successful in 39s
CI / coverage (push) Has been cancelled
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.
...
CI / lint (pull_request) Successful in 18s
CI / quality (pull_request) Successful in 21s
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 14s
CI / security (pull_request) Successful in 49s
CI / typecheck (pull_request) Successful in 56s
CI / integration_tests (pull_request) Successful in 2m35s
CI / unit_tests (pull_request) Successful in 14m30s
CI / docker (pull_request) Successful in 55s
CI / benchmark-regression (pull_request) Successful in 21m11s
CI / coverage (pull_request) Successful in 34m22s
CI / lint (push) Successful in 12s
CI / build (push) Successful in 16s
CI / quality (push) Successful in 17s
CI / security (push) Successful in 29s
CI / typecheck (push) Successful in 1m0s
CI / benchmark-regression (push) Has been skipped
CI / integration_tests (push) Successful in 4m54s
CI / benchmark-publish (push) Successful in 11m48s
CI / unit_tests (push) Successful in 16m30s
CI / docker (push) Successful in 28s
CI / coverage (push) Successful in 25m45s
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
CI / lint (push) Successful in 15s
CI / build (push) Successful in 15s
CI / quality (push) Successful in 23s
CI / security (push) Successful in 36s
CI / typecheck (push) Successful in 37s
CI / benchmark-regression (push) Has been skipped
CI / integration_tests (push) Successful in 3m24s
CI / benchmark-publish (push) Successful in 12m25s
CI / unit_tests (push) Successful in 13m23s
CI / docker (push) Successful in 1m46s
CI / coverage (push) Successful in 31m3s
2026-02-24 12:16:28 -05:00
brent.edwards
c402e6402b
Merge branch 'master' into fix/database-parallelism
CI / quality (pull_request) Successful in 17s
CI / lint (pull_request) Successful in 20s
CI / benchmark-publish (pull_request) Has been skipped
CI / typecheck (pull_request) Successful in 30s
CI / build (pull_request) Successful in 18s
CI / security (pull_request) Successful in 50s
CI / integration_tests (pull_request) Successful in 3m34s
CI / unit_tests (pull_request) Successful in 6m43s
CI / docker (pull_request) Successful in 1m4s
CI / benchmark-regression (pull_request) Successful in 20m59s
CI / coverage (pull_request) Successful in 25m3s
2026-02-24 16:02:53 +00:00
freemo
aa008ba5d7
feat(cli): add action and plan CLI extensions
...
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / quality (pull_request) Successful in 18s
CI / build (pull_request) Successful in 17s
CI / typecheck (pull_request) Successful in 30s
CI / security (pull_request) Successful in 32s
CI / integration_tests (pull_request) Successful in 4m2s
CI / unit_tests (pull_request) Successful in 7m26s
CI / docker (pull_request) Successful in 9s
CI / benchmark-regression (pull_request) Successful in 16m11s
CI / coverage (pull_request) Successful in 23m7s
CI / lint (push) Successful in 26s
CI / quality (push) Successful in 19s
CI / typecheck (push) Successful in 1m4s
CI / build (push) Successful in 39s
CI / security (push) Successful in 1m2s
CI / benchmark-regression (push) Has been skipped
CI / integration_tests (push) Successful in 4m15s
CI / benchmark-publish (push) Successful in 11m19s
CI / unit_tests (push) Successful in 14m6s
CI / docker (push) Successful in 9s
CI / coverage (push) Successful in 37m7s
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
CI / lint (push) Successful in 15s
CI / quality (push) Successful in 17s
CI / build (push) Successful in 20s
CI / typecheck (push) Successful in 45s
CI / benchmark-regression (push) Has been skipped
CI / security (push) Successful in 48s
CI / integration_tests (push) Successful in 3m42s
CI / unit_tests (push) Successful in 7m8s
CI / docker (push) Successful in 16s
CI / benchmark-publish (push) Successful in 11m22s
CI / coverage (push) Successful in 23m21s
2026-02-24 02:06:53 -05:00
freemo
b1637eb02e
Docs: Daily timeline update
CI / lint (push) Successful in 13s
CI / build (push) Successful in 15s
CI / quality (push) Successful in 18s
CI / security (push) Successful in 30s
CI / typecheck (push) Successful in 32s
CI / benchmark-regression (push) Has been skipped
CI / integration_tests (push) Successful in 3m17s
CI / unit_tests (push) Successful in 6m40s
CI / docker (push) Successful in 39s
CI / benchmark-publish (push) Successful in 11m57s
CI / coverage (push) Failing after 23m34s
2026-02-23 22:52:28 -05:00
freemo
417d17478f
Docs: Explicitly indicated dependency direction for blocking characteristics in CONTRIBUTING.md
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / quality (pull_request) Successful in 18s
CI / build (pull_request) Successful in 20s
CI / security (pull_request) Successful in 29s
CI / typecheck (pull_request) Successful in 32s
CI / integration_tests (pull_request) Successful in 3m12s
CI / unit_tests (pull_request) Successful in 6m51s
CI / docker (pull_request) Successful in 15s
CI / benchmark-regression (pull_request) Successful in 16m15s
CI / coverage (pull_request) Successful in 23m13s
CI / lint (push) Successful in 13s
CI / quality (push) Successful in 18s
CI / build (push) Successful in 21s
CI / typecheck (push) Successful in 33s
CI / benchmark-regression (push) Has been skipped
CI / security (push) Successful in 36s
CI / integration_tests (push) Successful in 2m33s
CI / unit_tests (push) Successful in 6m58s
CI / docker (push) Successful in 8s
CI / benchmark-publish (push) Successful in 10m17s
CI / coverage (push) Successful in 22m57s
2026-02-23 21:58:34 -05:00
freemo
67b4ddf5f8
Docs: Removed implementation-notes and migrated that information as comments on tickets
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 13s
CI / build (pull_request) Successful in 15s
CI / quality (pull_request) Successful in 19s
CI / typecheck (pull_request) Successful in 32s
CI / security (pull_request) Successful in 53s
CI / integration_tests (pull_request) Successful in 3m29s
CI / unit_tests (pull_request) Successful in 6m46s
CI / docker (pull_request) Successful in 39s
CI / benchmark-regression (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
2026-02-23 21:48:07 -05:00
freemo
b1bf2250fb
Docs: Switched back to using QOTO's kroki.
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 14s
CI / build (pull_request) Successful in 18s
CI / quality (pull_request) Successful in 20s
CI / security (pull_request) Successful in 29s
CI / typecheck (pull_request) Successful in 34s
CI / integration_tests (pull_request) Successful in 3m44s
CI / unit_tests (pull_request) Successful in 7m9s
CI / docker (pull_request) Successful in 15s
CI / benchmark-regression (pull_request) Successful in 20m19s
CI / coverage (pull_request) Successful in 23m47s
2026-02-23 20:17:18 -05:00
freemo
d9a492c3ff
docs: add missing reference pages to mkdocs navigation
...
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 14s
CI / build (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 19s
CI / typecheck (pull_request) Successful in 31s
CI / security (pull_request) Successful in 32s
CI / unit_tests (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
CI / integration_tests (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
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
...
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 16s
CI / build (pull_request) Successful in 15s
CI / quality (pull_request) Successful in 19s
CI / security (pull_request) Successful in 30s
CI / typecheck (pull_request) Successful in 42s
CI / integration_tests (pull_request) Successful in 2m42s
CI / unit_tests (pull_request) Successful in 6m44s
CI / docker (pull_request) Successful in 21s
CI / coverage (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
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
...
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 19s
CI / typecheck (pull_request) Successful in 31s
CI / security (pull_request) Successful in 37s
CI / integration_tests (pull_request) Successful in 3m50s
CI / benchmark-regression (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
CI / unit_tests (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
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
...
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / quality (pull_request) Successful in 16s
CI / build (pull_request) Successful in 22s
CI / security (pull_request) Successful in 29s
CI / typecheck (pull_request) Successful in 30s
CI / integration_tests (pull_request) Successful in 4m3s
CI / coverage (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
CI / unit_tests (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
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
...
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 14s
CI / build (pull_request) Successful in 14s
CI / quality (pull_request) Successful in 18s
CI / typecheck (pull_request) Successful in 31s
CI / security (pull_request) Successful in 35s
CI / integration_tests (pull_request) Successful in 2m45s
CI / unit_tests (pull_request) Successful in 6m53s
CI / docker (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
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
brent.edwards
dd963daeaa
Merge branch 'master' into fix/database-parallelism
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 19s
CI / security (pull_request) Successful in 32s
CI / typecheck (pull_request) Successful in 33s
CI / integration_tests (pull_request) Successful in 3m53s
CI / unit_tests (pull_request) Successful in 7m31s
CI / docker (pull_request) Successful in 16s
CI / benchmark-regression (pull_request) Successful in 18m4s
CI / coverage (pull_request) Successful in 23m36s
2026-02-24 00:45:01 +00:00
brent.edwards
f2b9ccfde4
fix(test): isolate parallel behave subprocesses with per-scenario temp databases
...
Each behave-parallel worker previously resolved to the same file-based
SQLite database (cleveragents.db or .cleveragents/db.sqlite) because
before_scenario removed the CLEVERAGENTS_DATABASE_URL env var and the
fallback paths are shared across processes. Under parallel execution
this caused intermittent 'database is locked' and duplicate-project
errors—most visibly in the coverage_report nox session.
Replace the env-var removal in before_scenario with unique temp database
paths via tempfile.mktemp(), giving every scenario its own isolated
database file. Temp files are cleaned up in after_scenario.
Also fix cli_streaming_steps.py where a Background + duplicate Given
sequence triggered a duplicate project name collision, and update
coverage_boost_steps.py so Settings-default assertions explicitly clear
the env vars before testing pydantic defaults.
2026-02-24 00:41:01 +00:00
freemo
ccff33c7c7
docs: update changelog with documentation reorganization entries
...
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 14s
CI / build (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 20s
CI / security (pull_request) Successful in 29s
CI / typecheck (pull_request) Successful in 34s
CI / integration_tests (pull_request) Successful in 3m46s
CI / unit_tests (pull_request) Successful in 7m13s
CI / docker (pull_request) Successful in 39s
CI / benchmark-regression (pull_request) Successful in 20m19s
CI / coverage (pull_request) Has been cancelled
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
...
CI / lint (push) Successful in 15s
CI / build (push) Successful in 16s
CI / quality (push) Successful in 19s
CI / typecheck (push) Successful in 32s
CI / benchmark-regression (push) Has been skipped
CI / security (push) Successful in 35s
CI / integration_tests (push) Successful in 2m25s
CI / benchmark-publish (push) Successful in 11m59s
CI / unit_tests (push) Successful in 12m49s
CI / docker (push) Successful in 59s
CI / coverage (push) Failing after 29m28s
Reviewed-on: #385
2026-02-23 22:44:38 +00:00
khyari hamza
2c46a0be5a
revert(test): remove StaticPool from skill registry in-memory db
...
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 13s
CI / build (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 18s
CI / security (pull_request) Successful in 28s
CI / typecheck (pull_request) Successful in 32s
CI / integration_tests (pull_request) Successful in 2m25s
CI / unit_tests (pull_request) Successful in 6m52s
CI / docker (pull_request) Successful in 42s
CI / benchmark-regression (pull_request) Successful in 16m35s
CI / coverage (pull_request) Successful in 23m1s
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