Commit Graph

2022 Commits

Author SHA1 Message Date
freemo 4e7bb5ae4e build: more explicit on how to run the script
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / lint (push) Failing after 39s
CI / typecheck (push) Failing after 42s
CI / build (push) Failing after 40s
CI / security (push) Failing after 48s
CI / quality (push) Failing after 49s
CI / coverage (push) Has been skipped
CI / e2e_tests (push) Failing after 53s
CI / integration_tests (push) Failing after 1m1s
CI / unit_tests (push) Failing after 1m1s
CI / docker (push) Has been skipped
CI / helm (push) Failing after 21s
CI / push-validation (push) Failing after 23s
CI / status-check (push) Waiting to run
2026-04-17 17:27:11 -04:00
freemo 47d630599a build: further clarified how to get the PRs using the scripts
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / push-validation (push) Successful in 12s
CI / helm (push) Failing after 18s
CI / lint (push) Successful in 23s
CI / build (push) Failing after 34s
CI / quality (push) Failing after 41s
CI / e2e_tests (push) Failing after 47s
CI / typecheck (push) Successful in 50s
CI / security (push) Successful in 50s
CI / coverage (push) Has been skipped
CI / integration_tests (push) Failing after 50s
CI / unit_tests (push) Successful in 3m22s
CI / docker (push) Has been skipped
CI / status-check (push) Failing after 1s
2026-04-17 17:07:58 -04:00
freemo 6153da8deb build: trying to improve skill comprehension of scripts
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / quality (push) Successful in 23s
CI / build (push) Failing after 30s
CI / lint (push) Failing after 39s
CI / typecheck (push) Failing after 41s
CI / helm (push) Failing after 18s
CI / push-validation (push) Successful in 21s
CI / security (push) Successful in 47s
CI / coverage (push) Has been skipped
CI / e2e_tests (push) Successful in 3m30s
CI / unit_tests (push) Successful in 7m22s
CI / docker (push) Has been skipped
CI / integration_tests (push) Successful in 7m25s
CI / status-check (push) Failing after 1s
2026-04-17 16:53:33 -04:00
freemo e8f06fa433 build: made invocation of scripts more explicit
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / lint (push) Successful in 20s
CI / helm (push) Failing after 21s
CI / push-validation (push) Failing after 24s
CI / typecheck (push) Successful in 34s
CI / security (push) Successful in 34s
CI / build (push) Failing after 37s
CI / quality (push) Failing after 44s
CI / coverage (push) Has been skipped
CI / unit_tests (push) Failing after 51s
CI / docker (push) Has been skipped
CI / integration_tests (push) Failing after 59s
CI / e2e_tests (push) Failing after 59s
CI / status-check (push) Failing after 1s
2026-04-17 16:32:37 -04:00
freemo 17bbe20376 Revert "build: adding auto-agents-system as a task as well as a skill."
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / build (push) Successful in 21s
CI / helm (push) Successful in 20s
CI / quality (push) Successful in 22s
CI / push-validation (push) Failing after 21s
CI / security (push) Failing after 43s
CI / lint (push) Failing after 44s
CI / typecheck (push) Failing after 44s
CI / coverage (push) Has been skipped
CI / unit_tests (push) Failing after 49s
CI / docker (push) Has been skipped
CI / e2e_tests (push) Successful in 3m18s
CI / integration_tests (push) Has been cancelled
CI / status-check (push) Has been cancelled
This reverts commit 5c8b5a84d2.
2026-04-17 16:28:28 -04:00
freemo 5c8b5a84d2 build: adding auto-agents-system as a task as well as a skill.
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / quality (push) Successful in 21s
CI / build (push) Failing after 30s
CI / lint (push) Failing after 40s
CI / typecheck (push) Failing after 40s
CI / push-validation (push) Failing after 19s
CI / security (push) Successful in 46s
CI / coverage (push) Has been skipped
CI / helm (push) Successful in 31s
CI / e2e_tests (push) Successful in 3m39s
CI / unit_tests (push) Successful in 7m23s
CI / integration_tests (push) Successful in 7m25s
CI / docker (push) Has been skipped
CI / status-check (push) Failing after 3s
2026-04-17 16:19:00 -04:00
freemo fe95acb856 build: added more clarification for loading scripts
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / lint (push) Successful in 22s
CI / quality (push) Successful in 22s
CI / typecheck (push) Successful in 45s
CI / security (push) Successful in 46s
CI / build (push) Successful in 26s
CI / helm (push) Successful in 32s
CI / push-validation (push) Successful in 22s
CI / e2e_tests (push) Successful in 3m58s
CI / unit_tests (push) Successful in 7m45s
CI / integration_tests (push) Successful in 7m42s
CI / docker (push) Successful in 56s
CI / coverage (push) Successful in 9m48s
CI / status-check (push) Successful in 1s
2026-04-17 16:02:21 -04:00
freemo 6ed9dbc2e7 build: expanded capabilities (permissions) of the git rebaser subagent
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / lint (push) Successful in 22s
CI / quality (push) Successful in 21s
CI / typecheck (push) Successful in 42s
CI / security (push) Successful in 42s
CI / build (push) Successful in 27s
CI / helm (push) Successful in 32s
CI / push-validation (push) Successful in 21s
CI / e2e_tests (push) Successful in 3m37s
CI / unit_tests (push) Successful in 7m53s
CI / integration_tests (push) Successful in 7m44s
CI / docker (push) Successful in 54s
CI / coverage (push) Successful in 9m57s
CI / status-check (push) Successful in 1s
2026-04-17 15:45:54 -04:00
freemo 555509c609 build: tweaked reasoning level on pr-merge related agents
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / lint (push) Successful in 20s
CI / quality (push) Successful in 18s
CI / typecheck (push) Successful in 44s
CI / security (push) Successful in 43s
CI / build (push) Successful in 27s
CI / helm (push) Successful in 32s
CI / push-validation (push) Successful in 21s
CI / e2e_tests (push) Successful in 3m51s
CI / unit_tests (push) Successful in 7m41s
CI / docker (push) Successful in 12s
CI / integration_tests (push) Successful in 7m41s
CI / coverage (push) Has been cancelled
CI / status-check (push) Has been cancelled
2026-04-17 15:34:56 -04:00
freemo aaeecd1616 build: reduced cost of models for merging by picking cheaper models
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / lint (push) Successful in 22s
CI / quality (push) Successful in 21s
CI / security (push) Successful in 47s
CI / build (push) Successful in 28s
CI / helm (push) Successful in 31s
CI / push-validation (push) Successful in 21s
CI / typecheck (push) Successful in 4m0s
CI / e2e_tests (push) Successful in 3m37s
CI / unit_tests (push) Successful in 7m23s
CI / integration_tests (push) Successful in 7m28s
CI / coverage (push) Has been cancelled
CI / docker (push) Has been cancelled
CI / status-check (push) Has been cancelled
2026-04-17 15:26:49 -04:00
freemo 868fdeff8a build: seperated out the actual rebase and conflict resolution to its own specialized subagent
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / push-validation (push) Successful in 16s
CI / lint (push) Successful in 21s
CI / typecheck (push) Successful in 33s
CI / security (push) Successful in 34s
CI / build (push) Successful in 37s
CI / helm (push) Successful in 40s
CI / quality (push) Successful in 48s
CI / e2e_tests (push) Successful in 3m38s
CI / coverage (push) Successful in 5m58s
CI / integration_tests (push) Successful in 7m0s
CI / unit_tests (push) Successful in 11m1s
CI / docker (push) Successful in 1m19s
CI / status-check (push) Successful in 1s
2026-04-17 15:03:24 -04:00
HAL9000 66850665b7 fix(sandbox): split oversized step file and update CONTRIBUTORS.md
CI / push-validation (pull_request) Successful in 10s
CI / helm (pull_request) Successful in 33s
CI / lint (pull_request) Successful in 44s
CI / quality (pull_request) Successful in 48s
CI / security (pull_request) Successful in 54s
CI / e2e_tests (pull_request) Successful in 3m14s
CI / build (pull_request) Successful in 3m25s
CI / typecheck (pull_request) Successful in 4m1s
CI / integration_tests (pull_request) Successful in 6m33s
CI / unit_tests (pull_request) Successful in 7m48s
CI / docker (pull_request) Successful in 55s
CI / coverage (pull_request) Successful in 5m58s
CI / status-check (pull_request) Successful in 2s
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / push-validation (push) Successful in 13s
CI / lint (push) Successful in 19s
CI / helm (push) Successful in 24s
CI / build (push) Successful in 31s
CI / quality (push) Successful in 39s
CI / typecheck (push) Successful in 42s
CI / security (push) Successful in 43s
CI / e2e_tests (push) Successful in 3m20s
CI / unit_tests (push) Successful in 3m36s
CI / integration_tests (push) Successful in 4m34s
CI / docker (push) Successful in 1m38s
CI / coverage (push) Successful in 9m25s
CI / status-check (push) Successful in 1s
Split checkpoint_manager_coverage_steps.py (692 lines) into three
focused modules to comply with the 500-line file limit:

- checkpoint_manager_coverage_steps.py: model, protocol, manager init,
  create_checkpoint, _snapshot_directory, and _cleanup_snapshot steps
  (408 lines)
- checkpoint_manager_rollback_steps.py: rollback_to, list_checkpoints,
  and delete_checkpoint branch steps (283 lines)
- checkpoint_manager_bug7488_steps.py: Bug #7488 sandbox_path
  auto-stored-in-metadata steps (59 lines)

Also updated CONTRIBUTORS.md to document HAL 9000's contribution for
bug fix #7488 as required by CONTRIBUTING.md guidelines.

ISSUES CLOSED: #7488
2026-04-17 18:34:16 +00:00
HAL9000 beceb183d0 fix(sandbox): store sandbox_path in checkpoint metadata to enable rollback
CheckpointManager.create_checkpoint() computed sandbox_path from
sandbox.context.sandbox_path but never stored it in the metadata dict.
This caused rollback_to() to always find metadata.get('sandbox_path')
returning None, silently skip the rollback, and return False.

The fix adds sandbox_path to the metadata dict immediately after it is
resolved from the sandbox context, before the SandboxCheckpoint is
constructed. rollback_to() can now retrieve the path and correctly
restore the sandbox filesystem state.

Added two new BDD scenarios to checkpoint_manager_coverage.feature:
- Verifies sandbox_path is automatically stored in metadata on create
- Verifies rollback succeeds without manually supplying sandbox_path

ISSUES CLOSED: #7488
2026-04-17 18:33:39 +00:00
freemo d6fca18c01 build: broke the 4 stage pr merge cycle into a 6 stage cycle and eliminating PRs that arent stale and need review
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / push-validation (push) Successful in 30s
CI / lint (push) Successful in 38s
CI / build (push) Successful in 40s
CI / helm (push) Successful in 42s
CI / typecheck (push) Successful in 47s
CI / quality (push) Successful in 58s
CI / e2e_tests (push) Successful in 3m44s
CI / security (push) Successful in 4m17s
CI / coverage (push) Successful in 5m59s
CI / integration_tests (push) Successful in 10m34s
CI / unit_tests (push) Successful in 10m41s
CI / docker (push) Successful in 57s
CI / status-check (push) Successful in 1s
2026-04-17 14:20:40 -04:00
CoreRasurae 0c5b140d29 fix(database): include alembic files in package distribution
CI / push-validation (pull_request) Successful in 18s
CI / lint (pull_request) Successful in 26s
CI / helm (pull_request) Successful in 38s
CI / build (pull_request) Successful in 48s
CI / quality (pull_request) Successful in 54s
CI / security (pull_request) Successful in 55s
CI / typecheck (pull_request) Successful in 57s
CI / e2e_tests (pull_request) Successful in 4m48s
CI / unit_tests (pull_request) Successful in 8m5s
CI / integration_tests (pull_request) Successful in 9m23s
CI / docker (pull_request) Successful in 1m23s
CI / coverage (pull_request) Successful in 12m29s
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / status-check (pull_request) Successful in 1s
CI / push-validation (push) Successful in 12s
CI / helm (push) Successful in 29s
CI / build (push) Successful in 3m23s
CI / lint (push) Successful in 3m38s
CI / quality (push) Successful in 3m40s
CI / security (push) Successful in 4m3s
CI / typecheck (push) Successful in 4m5s
CI / e2e_tests (push) Successful in 6m42s
CI / unit_tests (push) Successful in 10m7s
CI / integration_tests (push) Successful in 10m13s
CI / docker (push) Successful in 1m46s
CI / coverage (push) Successful in 10m58s
CI / status-check (push) Successful in 2s
Move alembic configuration and migration files from repository root into the
Python package structure to ensure they are included in the wheel distribution.

This fix resolves the FileNotFoundError when running `agents init` in Docker
containers or any environment using the built wheel distribution.

Changes:
- Move alembic/ directory from repo root to
  src/cleveragents/infrastructure/database/migrations/
- Move alembic.ini to the same new location and update script_location setting
- Update MigrationRunner._find_alembic_ini() to search from the new canonical
  location within the package
- Update create_template_db.py to point to the new alembic.ini location
- Update documentation references to reflect new migration file locations
- Create __init__.py for migrations package

- The env.py file is imported when running tests that verify all modules can be
  imported without errors. However, context.config is only available when alembic
  is actually running migrations, not during normal module imports. This caused
  an AttributeError when the test tried to import the migrations.env module.

- Fix by using getattr() with a default value to safely access context.config,
  and guard all code that uses config with None checks. This allows the module
  to be safely imported while still functioning correctly during migrations.

Testing:
- Verified MigrationRunner can locate alembic.ini in new location
- Tested agents init succeeds in creating project with database
- Template database creation works correctly
- All migration tests should pass without changes

Alembic files now follow standard Python packaging conventions, making them
automatically included in wheel distributions without special configuration.

ISSUES CLOSED: #4180
2026-04-17 17:40:00 +00:00
freemo 11ba77cf73 build: fix to get mroe predicatable behavior out of pr-merge-worker
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / lint (push) Successful in 29s
CI / typecheck (push) Successful in 50s
CI / security (push) Successful in 57s
CI / helm (push) Successful in 23s
CI / push-validation (push) Successful in 18s
CI / quality (push) Successful in 3m41s
CI / e2e_tests (push) Successful in 3m28s
CI / build (push) Successful in 3m41s
CI / integration_tests (push) Successful in 4m47s
CI / unit_tests (push) Successful in 6m31s
CI / docker (push) Successful in 26s
CI / coverage (push) Successful in 13m29s
CI / status-check (push) Successful in 1s
2026-04-17 13:35:25 -04:00
freemo 5762f92583 build: tweaked the pr-merge agents to ensure they use the skill scripts more consistently
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / push-validation (push) Successful in 23s
CI / build (push) Successful in 24s
CI / helm (push) Successful in 32s
CI / lint (push) Successful in 39s
CI / security (push) Successful in 53s
CI / typecheck (push) Successful in 1m1s
CI / e2e_tests (push) Successful in 3m10s
CI / quality (push) Successful in 3m46s
CI / integration_tests (push) Successful in 3m49s
CI / unit_tests (push) Successful in 5m44s
CI / docker (push) Successful in 54s
CI / coverage (push) Successful in 11m46s
CI / status-check (push) Successful in 1s
2026-04-17 13:00:24 -04:00
freemo afa4ebd19b build: fixed up the systems skill so it now provides better access to information about scripts to ensure more consistent usage
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / helm (push) Successful in 18s
CI / lint (push) Successful in 20s
CI / quality (push) Successful in 38s
CI / push-validation (push) Successful in 21s
CI / typecheck (push) Successful in 44s
CI / security (push) Successful in 44s
CI / e2e_tests (push) Successful in 3m12s
CI / build (push) Successful in 3m16s
CI / unit_tests (push) Successful in 3m35s
CI / docker (push) Successful in 8s
CI / integration_tests (push) Successful in 4m5s
CI / coverage (push) Has been cancelled
CI / status-check (push) Has been cancelled
2026-04-17 12:50:46 -04:00
hamza.khyari 1663750b78 Merge pull request 'fix(checkpoint): wire CheckpointManager into PlanExecutor execution path' (#4218) from bugfix/checkpoint-wiring into master
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / push-validation (push) Successful in 16s
CI / lint (push) Successful in 20s
CI / helm (push) Successful in 38s
CI / build (push) Successful in 39s
CI / quality (push) Successful in 40s
CI / typecheck (push) Successful in 44s
CI / security (push) Successful in 45s
CI / unit_tests (push) Successful in 3m33s
CI / integration_tests (push) Successful in 4m6s
CI / docker (push) Successful in 1m16s
CI / e2e_tests (push) Successful in 6m47s
CI / coverage (push) Successful in 7m6s
CI / status-check (push) Successful in 1s
Reviewed-on: #4218
Reviewed-by: Jeffrey Phillips Freeman <jeffrey.freeman@cleverthis.com>
2026-04-17 11:58:50 +00:00
hamza.khyari bdd1ea4f3a fix(checkpoint): wire CheckpointManager into PlanExecutor execution path
CI / push-validation (pull_request) Successful in 10s
CI / build (pull_request) Successful in 16s
CI / helm (pull_request) Successful in 16s
CI / typecheck (pull_request) Successful in 30s
CI / lint (pull_request) Successful in 35s
CI / quality (pull_request) Successful in 35s
CI / security (pull_request) Successful in 50s
CI / integration_tests (pull_request) Successful in 4m3s
CI / e2e_tests (pull_request) Successful in 4m14s
CI / unit_tests (pull_request) Successful in 5m13s
CI / docker (pull_request) Successful in 8s
CI / coverage (pull_request) Successful in 11m2s
CI / status-check (pull_request) Successful in 1s
CheckpointManager was never wired into PlanExecutor — the CLI factory
constructed PlanExecutor without a checkpoint_manager (defaulted to
None), silently skipping all checkpoint hooks.

Fix:
- Register CheckpointManager as Singleton in DI container
- Resolve container singleton in _get_plan_executor() and pass to
  PlanExecutor constructor
- Bridge infra→domain: _try_create_checkpoint() now persists
  last_checkpoint_id on the plan via _commit_plan(), raises PlanError
  if persistence fails
- Default checkpointable=True for writable+sandboxable resources and
  write-capable tools (model_validators on ResourceCapabilities and
  ToolCapability)
- Validate that non-writable/non-sandboxable resources cannot be
  checkpointable (ValueError guard)
- Add post-execute A2A facade notification using plan.status to avoid
  duplicate execute→execute transition errors

Tests:
- 10 Behave scenarios covering DI wiring, singleton identity, checkpoint
  creation, plan metadata update, rollback, graceful fallback, no-arg
  constructor, capability defaults (positive + 2 negative)
- Updated consolidated_resource, consolidated_skill, and Robot
  helper_skill_flatten for new checkpointable defaults

ISSUES CLOSED: #1253
2026-04-17 11:46:38 +00:00
hurui200320 e2b127b7e5 fix(e2e): replace naive OpenAI key-presence check with live API probe in E2E suite setups
CI / lint (pull_request) Successful in 37s
CI / typecheck (pull_request) Successful in 1m18s
CI / security (pull_request) Successful in 56s
CI / quality (pull_request) Successful in 48s
CI / build (pull_request) Successful in 30s
CI / helm (pull_request) Successful in 41s
CI / push-validation (pull_request) Successful in 28s
CI / integration_tests (pull_request) Successful in 4m32s
CI / e2e_tests (pull_request) Successful in 4m42s
CI / coverage (pull_request) Successful in 13m24s
CI / unit_tests (pull_request) Successful in 3m13s
CI / docker (pull_request) Successful in 1m36s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / push-validation (push) Successful in 12s
CI / build (push) Successful in 15s
CI / helm (push) Successful in 16s
CI / lint (push) Successful in 43s
CI / typecheck (push) Successful in 51s
CI / security (push) Successful in 51s
CI / e2e_tests (push) Successful in 2m14s
CI / quality (push) Successful in 3m44s
CI / integration_tests (push) Successful in 7m0s
CI / unit_tests (push) Successful in 8m33s
CI / coverage (push) Successful in 6m21s
CI / docker (push) Successful in 1m31s
CI / status-check (push) Successful in 2s
The existing actor-selection logic in several E2E suite setups checked only
whether OPENAI_API_KEY was present (non-empty). A valid key that has hit its
quota limit passes that check but fails at runtime with HTTP 429, causing the
test to fail even though Anthropic credits are available.

Changes:
- Add robot/e2e/check_openai_key.py: stdlib-only (urllib.request) script that
  sends a minimal chat-completion request ('Hi', max_tokens=1, gpt-4o-mini) to
  the OpenAI API. Exits 0 on HTTP 200; exits 1 for quota (429), auth (401),
  network errors, or any other failure.
- Add 'Resolve LLM Actor' keyword to robot/e2e/common_e2e.resource: runs the
  probe script via ${PYTHON} and returns the openai_model argument (default
  openai/gpt-4o) on success, or the anthropic_model argument (default
  anthropic/claude-sonnet-4-20250514) on failure. Skips the probe entirely when
  OPENAI_API_KEY is not set.
- Update m6_acceptance.robot, wf04_multi_project.robot, wf05_db_migration.robot,
  wf07_cicd.robot, and wf16_devcontainer.robot to use 'Resolve LLM Actor'
  instead of the inline has_openai boolean check.

No production source code (src/) is modified. The decision to fall back to
Anthropic is made once per suite setup, before any test runs.

Closes #10198
2026-04-17 18:00:47 +08:00
hurui200320 80c8636c4a Revert "feat: add fallback to Anthropic Sonnet when OpenAI quota is exhausted"
This reverts commit f5712787e0.
2026-04-17 18:00:47 +08:00
hurui200320 8a89a5d5a6 Revert "debug: upgrade logging levels for fallback diagnostics"
This reverts commit 51472c0b37.
2026-04-17 18:00:46 +08:00
hurui200320 ed7276773e Merge branch 'master' into fix/plan-diff-correction-stub
CI / lint (pull_request) Successful in 27s
CI / typecheck (pull_request) Successful in 31s
CI / security (pull_request) Successful in 33s
CI / quality (pull_request) Successful in 32s
CI / build (pull_request) Successful in 24s
CI / helm (pull_request) Successful in 23s
CI / push-validation (pull_request) Successful in 19s
CI / e2e_tests (pull_request) Successful in 3m42s
CI / unit_tests (pull_request) Successful in 10m13s
CI / integration_tests (pull_request) Successful in 10m51s
CI / docker (pull_request) Successful in 1m15s
CI / coverage (pull_request) Successful in 10m55s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / lint (push) Successful in 16s
CI / build (push) Successful in 16s
CI / typecheck (push) Successful in 35s
CI / security (push) Successful in 36s
CI / helm (push) Successful in 19s
CI / quality (push) Successful in 43s
CI / push-validation (push) Successful in 10s
CI / e2e_tests (push) Successful in 2m42s
CI / integration_tests (push) Successful in 7m7s
CI / unit_tests (push) Successful in 8m28s
CI / docker (push) Successful in 1m20s
CI / coverage (push) Successful in 12m10s
CI / status-check (push) Successful in 1s
2026-04-17 09:38:13 +00:00
hurui200320 1fda56b778 fix(cli): implement plan diff --correction to show real correction attempt diff
CI / lint (pull_request) Successful in 29s
CI / typecheck (pull_request) Successful in 58s
CI / quality (pull_request) Successful in 29s
CI / security (pull_request) Successful in 1m11s
CI / build (pull_request) Successful in 24s
CI / push-validation (pull_request) Successful in 21s
CI / helm (pull_request) Successful in 41s
CI / integration_tests (pull_request) Successful in 4m22s
CI / e2e_tests (pull_request) Successful in 4m39s
CI / unit_tests (pull_request) Successful in 9m51s
CI / coverage (pull_request) Successful in 13m30s
CI / docker (pull_request) Successful in 1m23s
CI / status-check (pull_request) Successful in 2s
Implement spec-compliant correction diff output for `agents plan diff
--correction <CORRECTION_ATTEMPT_ID>`. Fixes the following issues from
the cycle-1 PR review:

- C1/M1: Replace direct `unit_of_work.correction_attempts` access with
  the proper `unit_of_work.transaction()` context manager, eliminating
  the AttributeError crash and the resource (session) leak.
- C2: Add `unit_of_work: UnitOfWork | None = None` constructor parameter
  to `PlanApplyService` and wire it in `_get_apply_service()` via
  `container.unit_of_work()`, removing the illegal `get_container()`
  call inside the method body (ADR-003 DI violation).
- C3: Replace metadata serialization stub with a three-section structured
  diff (Correction Diff summary, Comparison table, Patch Preview) as
  specified in §agents plan diff of the specification.
- C4/M2: Add `features/plan_correction_diff.feature` with 6 BDD
  scenarios covering all 4 output formats plus plan-not-found and
  correction-not-found error paths.
- C5: Update the three existing BDD scenarios that tested old stub
  behavior to mock `_get_apply_service()` and assert the new output.
- C6: Rename branch to `bugfix/m4-plan-diff-correction-stub` per
  CONTRIBUTING.md convention.
- C7: Amend commit message with body and ISSUES CLOSED footer.
- C8: Narrow `except Exception` to `except CorrectionAttemptNotFoundError`
  to avoid masking programming errors.
- M3: Add `robot/plan_correction_diff.robot` and
  `robot/helper_plan_correction_diff.py` integration test covering rich,
  plain, and JSON formats and the not-found error path.
- M4: Type `_build_correction_diff_dict` parameter as
  `CorrectionAttemptRecord` instead of `Any`.
- M5: Change `fmt: str` to `fmt: Literal["rich", "plain", "json", "yaml"]`
  on both `diff()` and `correction_diff()`, with a `cast()` call in the
  CLI layer where Typer supplies a plain `str`.
- M6: Add `ValueError` guards for empty `plan_id` and
  `correction_attempt_id` at the top of `correction_diff()`.
- M7: Add blank line between `diff()` and `correction_diff()` method
  definitions.
- M8: Update PR description to reflect actual implementation.
- m1: Remove unused `plan` variable in `correction_diff()`.
- m2: Reduce three blank lines to two between top-level definitions in
  `plan_apply_service.py`.
- n1: Remove trailing whitespace from blank line in `plan.py`.

Quality gates: lint (ruff), typecheck (pyright strict), unit_tests
(Behave 632 features / 0 failures) all pass.

ISSUES CLOSED: #9085
2026-04-17 08:34:33 +00:00
hurui200320 8953449dc2 fix(actor): validate v3 YAML via ActorConfigSchema in agents actor add CLI
CI / lint (pull_request) Successful in 30s
CI / typecheck (pull_request) Successful in 1m15s
CI / security (pull_request) Successful in 1m18s
CI / quality (pull_request) Successful in 30s
CI / build (pull_request) Successful in 37s
CI / helm (pull_request) Successful in 29s
CI / push-validation (pull_request) Successful in 26s
CI / e2e_tests (pull_request) Successful in 3m58s
CI / integration_tests (pull_request) Successful in 6m49s
CI / unit_tests (pull_request) Successful in 8m39s
CI / docker (pull_request) Successful in 1m23s
CI / coverage (pull_request) Successful in 13m32s
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / status-check (pull_request) Successful in 1s
CI / lint (push) Successful in 25s
CI / typecheck (push) Successful in 1m1s
CI / quality (push) Successful in 55s
CI / security (push) Successful in 1m9s
CI / build (push) Successful in 24s
CI / helm (push) Successful in 30s
CI / push-validation (push) Successful in 20s
CI / e2e_tests (push) Successful in 5m13s
CI / integration_tests (push) Successful in 7m17s
CI / unit_tests (push) Successful in 8m50s
CI / docker (push) Successful in 1m30s
CI / coverage (push) Successful in 11m57s
CI / status-check (push) Successful in 2s
- schema.py: provider field changed to Optional[str] with model validator
  validate_provider_required_for_llm_graph() that requires it only for LLM
  and GRAPH actor types; TOOL actors do not require provider
- schema.py: is_v3_yaml() uses version_str == "3" or version_str.startswith("3.")
  to avoid false positives from "30" or "300" version strings
- schema.py: tool namespace validation uses strict 2-part split to reject
  empty namespace or empty name (e.g. "/tool", "ns/", "a/b/c")
- cli/commands/actor.py: schema_version extraction uses raw_version pattern
  (no # type: ignore[assignment]) for clean static typing
- actor/__init__.py: is_v3_yaml removed from __all__ and _LAZY_IMPORTS
  since it is a module-private helper, not a public API
- robot/actor_add_v3_schema_validation.robot: YAML fixtures for 'Reject v3
  LLM Actor Without Model Field' and 'Reject v3 TOOL Actor Without Tools
  Field' now include required provider field (and model for TOOL fixture)
- robot/helper_actor_add_v3_schema_validation.py: except clauses unified to
  catch (subprocess.TimeoutExpired, FileNotFoundError) in both add_actor()
  and update_actor() functions
- features/actor_add_v3_schema_validation.feature: 'Update a v3 actor with
  valid YAML succeeds' scenario now includes 'And the actor should be
  validated via ActorConfigSchema'; error assertions tightened to exact
  messages (e.g. "Input should be 'llm', 'tool' or 'graph'", "Node ID must
  be alphanumeric", "must be namespaced")
- features/steps/actor_add_v3_schema_validation_steps.py: step_run_actor_update
  now spies on ActorConfigSchema.model_validate; failure paths assert
  isinstance(result.exception, SystemExit)

ISSUES CLOSED: #5869
2026-04-17 16:28:45 +08:00
HAL9000 449c33b752 style(tests): apply ruff format to run_behave_parallel.py
CI / lint (pull_request) Successful in 19s
CI / quality (pull_request) Successful in 20s
CI / security (pull_request) Successful in 43s
CI / typecheck (pull_request) Successful in 53s
CI / build (pull_request) Successful in 24s
CI / helm (pull_request) Successful in 23s
CI / push-validation (pull_request) Successful in 20s
CI / e2e_tests (pull_request) Successful in 3m43s
CI / unit_tests (pull_request) Successful in 7m32s
CI / docker (pull_request) Successful in 13s
CI / integration_tests (pull_request) Successful in 7m35s
CI / coverage (pull_request) Successful in 13m33s
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / status-check (pull_request) Successful in 1s
CI / lint (push) Successful in 27s
CI / typecheck (push) Successful in 1m19s
CI / quality (push) Successful in 29s
CI / security (push) Successful in 1m25s
CI / build (push) Successful in 24s
CI / push-validation (push) Successful in 20s
CI / helm (push) Successful in 30s
CI / e2e_tests (push) Successful in 3m35s
CI / unit_tests (push) Successful in 6m6s
CI / integration_tests (push) Successful in 6m18s
CI / docker (push) Successful in 26s
CI / coverage (push) Successful in 12m18s
CI / status-check (push) Successful in 2s
Fix formatting of conditional expression in _is_btrfs_or_overlayfs()
that was flagged by ruff format --check in CI.
2026-04-17 07:16:05 +00:00
Test 4fc4d7863c fix(tests): prevent behave-parallel multiprocessing deadlock on btrfs/overlayfs
Detect btrfs and overlayfs filesystems and automatically fall back to sequential
mode to prevent deadlocks caused by SQLite WAL file locking and btrfs COW copy-up
locks when multiple forked workers try to access the same files simultaneously.

The fix adds a _is_btrfs_or_overlayfs() function that:
1. Attempts to detect the filesystem type using stat command
2. Falls back to reading /proc/mounts if stat fails
3. Returns True if the filesystem is btrfs or overlayfs

The sequential mode condition is updated to include this check, ensuring that
on affected filesystems, all features run in a single process instead of being
split across multiple forked workers.

ISSUES CLOSED: #9390
2026-04-17 07:16:05 +00:00
freemo ebf54c642c Build: Attempt to prevent merge workers from waiting till merge completes
CI / benchmark-regression (push) Failing after 0s
CI / lint (push) Successful in 19s
CI / quality (push) Successful in 20s
CI / push-validation (push) Successful in 20s
CI / security (push) Successful in 44s
CI / typecheck (push) Successful in 46s
CI / helm (push) Successful in 28s
CI / build (push) Successful in 3m24s
CI / integration_tests (push) Successful in 4m19s
CI / e2e_tests (push) Successful in 4m30s
CI / unit_tests (push) Successful in 5m37s
CI / docker (push) Successful in 52s
CI / coverage (push) Successful in 7m31s
CI / status-check (push) Successful in 1s
CI / benchmark-publish (push) Successful in 1h13m9s
CI / lint (pull_request) Successful in 26s
CI / quality (pull_request) Successful in 32s
CI / typecheck (pull_request) Successful in 56s
CI / security (pull_request) Successful in 51s
CI / build (pull_request) Successful in 23s
CI / helm (pull_request) Successful in 26s
CI / push-validation (pull_request) Successful in 20s
CI / integration_tests (pull_request) Successful in 4m22s
CI / e2e_tests (pull_request) Successful in 4m23s
CI / unit_tests (pull_request) Successful in 7m2s
CI / coverage (pull_request) Successful in 12m47s
CI / docker (pull_request) Successful in 55s
CI / status-check (pull_request) Successful in 2s
2026-04-17 01:23:28 -04:00
HAL9000 e18ac5f23c fix(security): replace startswith sandbox check with Path.relative_to() in validate_path #7558
CI / lint (pull_request) Successful in 20s
CI / quality (pull_request) Successful in 21s
CI / push-validation (pull_request) Successful in 20s
CI / build (pull_request) Successful in 24s
CI / typecheck (pull_request) Successful in 50s
CI / security (pull_request) Successful in 59s
CI / helm (pull_request) Successful in 44s
CI / integration_tests (pull_request) Successful in 4m41s
CI / unit_tests (pull_request) Successful in 5m24s
CI / docker (pull_request) Successful in 52s
CI / coverage (pull_request) Successful in 7m38s
CI / e2e_tests (pull_request) Successful in 2m14s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / lint (push) Successful in 18s
CI / quality (push) Successful in 40s
CI / typecheck (push) Successful in 41s
CI / security (push) Successful in 42s
CI / build (push) Successful in 25s
CI / push-validation (push) Successful in 30s
CI / helm (push) Successful in 56s
CI / e2e_tests (push) Successful in 3m3s
CI / unit_tests (push) Successful in 4m3s
CI / integration_tests (push) Successful in 4m8s
CI / docker (push) Successful in 52s
CI / coverage (push) Successful in 7m22s
CI / status-check (push) Successful in 1s
The validate_path() function in file_tools.py used str.startswith() to
verify that a resolved path stays within the sandbox root. This allowed
sibling directories whose names share a string prefix with the sandbox
(e.g. /tmp/sandbox-escape/ bypassing /tmp/sandbox/) to escape the
containment check.

Replace the string prefix check with Path.relative_to(root), which
performs a proper OS-level path prefix comparison using path separators.
Add a Behave regression scenario tagged @tdd_issue @tdd_issue_7558 that
exercises the prefix-collision bypass to prevent regressions.

ISSUES CLOSED: #7558
2026-04-17 04:50:55 +00:00
HAL9000 51472c0b37 debug: upgrade logging levels for fallback diagnostics
CI / push-validation (pull_request) Successful in 20s
CI / helm (pull_request) Successful in 24s
CI / lint (pull_request) Successful in 27s
CI / security (pull_request) Successful in 1m0s
CI / build (pull_request) Successful in 3m21s
CI / typecheck (pull_request) Successful in 3m59s
CI / quality (pull_request) Successful in 4m5s
CI / e2e_tests (pull_request) Successful in 4m52s
CI / integration_tests (pull_request) Successful in 9m51s
CI / unit_tests (pull_request) Successful in 10m57s
CI / docker (pull_request) Successful in 1m31s
CI / coverage (pull_request) Successful in 10m57s
CI / status-check (pull_request) Successful in 2s
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / build (push) Successful in 17s
CI / push-validation (push) Successful in 17s
CI / quality (push) Successful in 32s
CI / helm (push) Successful in 35s
CI / security (push) Successful in 58s
CI / unit_tests (push) Successful in 3m13s
CI / lint (push) Successful in 3m17s
CI / typecheck (push) Successful in 3m56s
CI / integration_tests (push) Successful in 4m15s
CI / docker (push) Successful in 1m41s
CI / e2e_tests (push) Successful in 7m30s
CI / coverage (push) Successful in 14m4s
CI / status-check (push) Successful in 2s
Change fallback LLM creation and invocation logs from DEBUG to WARNING level
so they appear in Robot Framework test output. Also enhance error message to
clearly show which provider failed and why.

This change makes it possible to diagnose why the fallback is not working
by seeing the actual logs in test output instead of having them filtered
as DEBUG level messages.

Logs now include:
- 'Creating fallback LLM instance: anthropic/claude-sonnet-4-20250514'
- 'Fallback LLM created, attempting invocation'
- 'Using cached fallback LLM, attempting invocation'
- 'FALLBACK PROVIDER FAILED: anthropic/claude-sonnet-4-20250514 returned error: [error details]'

This will help diagnose why E2E tests fail with 'both providers exhausted'
when Anthropic should have available credits.
2026-04-17 03:56:35 +00:00
CoreRasurae f5712787e0 feat: add fallback to Anthropic Sonnet when OpenAI quota is exhausted
Implements graceful degradation for E2E robot integration tests that hit OpenAI 429 quota limit errors.

Changes:
- Add _is_quota_error() helper to detect quota-specific API errors (429, insufficient_quota, rate_limit)
- Modify _execute_with_llm() in StrategyActor to catch quota errors and attempt fallback to Anthropic Haiku
- Configure fallback provider as 'anthropic/claude-sonnet-4-20250514'
- Add comprehensive logging for quota error detection and provider fallback
- Add E2E test scenarios for quota fallback verification

When quota errors occur on both OpenAI and Anthropic fallback, tests
now fail with a clear message explaining that the test outcome cannot
be verified when no LLM provider is available.
 This ensures CI/CD pipelines properly track which tests could not be
executed due to quota constraints, rather than silently skipping them
and creating false confidence in test coverage.

This ensures CI/CD pipelines can complete E2E tests even when the primary provider (OpenAI) hits quota limits,
improving pipeline reliability and reducing false negatives caused by provider-specific issues.

1. **Cache fallback_llm instance** - Instead of recreating the fallback LLM
   every time a quota error occurs, cache it as an instance variable
   (self._fallback_llm). This avoids unnecessary re-initialization overhead.

2. **Implement quota recovery logic** - Add intelligent recovery behavior:
   - Track last quota error timestamp (self._last_quota_error_time)
   - Track fallback mode state (self._using_fallback)
   - Once quota error detected, switch to fallback provider
   - Only attempt to recover primary provider every 5 minutes (_QUOTA_RECOVERY_INTERVAL)
   - This avoids hammering primary provider with repeated quota errors

3. **Add detailed recovery logging** - Log quota fallback transitions and
   recovery attempts to improve observability and debugging.

Benefits:
- Reduced latency: No redundant primary provider calls after quota error
- Reduced overhead: Cached fallback LLM instance, no per-call recreation
- Better observability: Clear logging of fallback mode entry/exit
- Intelligent recovery: Automatic recovery attempt after 5-minute interval

Updated tests:
- M6 E2E Event Queue Via Plan Lifecycle Transitions
- M6 E2E Hierarchical Decomposition Via Plan Tree
- M6 E2E Full Autonomy Acceptance Flow

Fixes: #10042
2026-04-17 03:56:35 +00:00
freemo 82591c1a86 Build: Trying to fix skill script not being called
CI / benchmark-regression (push) Failing after 0s
CI / push-validation (push) Successful in 18s
CI / helm (push) Successful in 24s
CI / security (push) Successful in 1m1s
CI / e2e_tests (push) Failing after 2m55s
CI / build (push) Successful in 3m19s
CI / lint (push) Successful in 3m20s
CI / quality (push) Successful in 3m45s
CI / integration_tests (push) Successful in 3m52s
CI / typecheck (push) Successful in 4m50s
CI / unit_tests (push) Successful in 5m22s
CI / docker (push) Successful in 1m19s
CI / coverage (push) Successful in 10m41s
CI / status-check (push) Failing after 1s
CI / benchmark-publish (push) Has been cancelled
2026-04-16 23:27:39 -04:00
freemo 9684d80637 Build: Enabling skill scripts 2026-04-16 23:01:57 -04:00
freemo 6dad967130 Build: fixed systems skill to link to the scripts from the main skill page
CI / push-validation (push) Successful in 22s
CI / helm (push) Successful in 24s
CI / quality (push) Successful in 48s
CI / typecheck (push) Successful in 53s
CI / security (push) Successful in 55s
CI / lint (push) Successful in 3m21s
CI / build (push) Successful in 3m21s
CI / e2e_tests (push) Failing after 4m2s
CI / integration_tests (push) Successful in 4m8s
CI / unit_tests (push) Successful in 5m19s
CI / docker (push) Successful in 1m31s
CI / coverage (push) Successful in 14m1s
CI / status-check (push) Failing after 1s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
2026-04-16 22:41:42 -04:00
freemo 85c22aa7a8 Build: Fixed bug in permissions, sped up product-verifier slightly
CI / push-validation (push) Successful in 17s
CI / helm (push) Successful in 23s
CI / lint (push) Successful in 26s
CI / quality (push) Successful in 48s
CI / typecheck (push) Successful in 59s
CI / build (push) Successful in 3m18s
CI / e2e_tests (push) Failing after 3m19s
CI / security (push) Successful in 4m27s
CI / integration_tests (push) Successful in 9m55s
CI / unit_tests (push) Successful in 10m58s
CI / docker (push) Successful in 10s
CI / coverage (push) Successful in 13m49s
CI / status-check (push) Failing after 1s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
2026-04-16 21:58:11 -04:00
freemo 5e3b4c9b68 build: fixed typo in permissions in pr-merge related agents
CI / push-validation (push) Successful in 20s
CI / helm (push) Successful in 25s
CI / build (push) Successful in 26s
CI / lint (push) Successful in 26s
CI / quality (push) Successful in 34s
CI / security (push) Successful in 1m14s
CI / e2e_tests (push) Failing after 3m2s
CI / typecheck (push) Successful in 3m58s
CI / integration_tests (push) Successful in 4m4s
CI / unit_tests (push) Successful in 5m3s
CI / docker (push) Successful in 1m30s
CI / coverage (push) Successful in 14m9s
CI / status-check (push) Failing after 1s
CI / benchmark-publish (push) Successful in 1h20m50s
CI / benchmark-regression (push) Has been skipped
2026-04-16 20:21:59 -04:00
freemo 588199886e build: wrong name for auto-agents system skill
CI / push-validation (push) Successful in 17s
CI / helm (push) Successful in 23s
CI / build (push) Successful in 3m18s
CI / lint (push) Successful in 3m43s
CI / typecheck (push) Successful in 3m56s
CI / e2e_tests (push) Failing after 4m1s
CI / security (push) Successful in 4m3s
CI / quality (push) Successful in 4m4s
CI / integration_tests (push) Successful in 4m10s
CI / unit_tests (push) Successful in 8m7s
CI / docker (push) Successful in 1m24s
CI / coverage (push) Successful in 14m9s
CI / status-check (push) Failing after 1s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
2026-04-16 19:53:09 -04:00
freemo 438df82caa build: changed pr-merge process (including supervisor) to use new skills and scripts
CI / push-validation (push) Successful in 23s
CI / helm (push) Successful in 32s
CI / lint (push) Successful in 3m20s
CI / build (push) Successful in 3m38s
CI / quality (push) Successful in 3m41s
CI / typecheck (push) Successful in 3m59s
CI / security (push) Successful in 4m4s
CI / e2e_tests (push) Failing after 4m34s
CI / unit_tests (push) Successful in 4m58s
CI / docker (push) Successful in 1m32s
CI / integration_tests (push) Successful in 7m16s
CI / coverage (push) Successful in 13m50s
CI / status-check (push) Failing after 1s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
2026-04-16 19:10:04 -04:00
freemo ac702cc375 build: Added script to initiate the merge
CI / push-validation (push) Successful in 17s
CI / helm (push) Successful in 24s
CI / security (push) Successful in 1m4s
CI / e2e_tests (push) Failing after 3m42s
CI / build (push) Successful in 4m24s
CI / lint (push) Successful in 4m53s
CI / typecheck (push) Successful in 5m30s
CI / quality (push) Successful in 5m28s
CI / unit_tests (push) Successful in 9m40s
CI / integration_tests (push) Successful in 10m40s
CI / docker (push) Successful in 2m17s
CI / coverage (push) Successful in 6m55s
CI / status-check (push) Failing after 1s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
2026-04-16 18:50:59 -04:00
freemo d3e0911f86 build: added script for rebasing on server to system skill
CI / lint (push) Successful in 29s
CI / typecheck (push) Successful in 1m1s
CI / security (push) Successful in 51s
CI / quality (push) Successful in 30s
CI / build (push) Successful in 26s
CI / helm (push) Successful in 30s
CI / push-validation (push) Successful in 20s
CI / e2e_tests (push) Failing after 3m36s
CI / integration_tests (push) Successful in 6m38s
CI / unit_tests (push) Successful in 7m45s
CI / coverage (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / docker (push) Has been cancelled
CI / status-check (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
2026-04-16 18:17:15 -04:00
freemo 703cf13c01 build: removed rules skills, its in the system skill
CI / lint (push) Successful in 27s
CI / typecheck (push) Successful in 56s
CI / quality (push) Successful in 29s
CI / security (push) Successful in 55s
CI / build (push) Successful in 24s
CI / helm (push) Successful in 31s
CI / push-validation (push) Successful in 20s
CI / e2e_tests (push) Failing after 4m14s
CI / unit_tests (push) Successful in 5m57s
CI / integration_tests (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / status-check (push) Has been cancelled
CI / docker (push) Has been cancelled
CI / coverage (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
2026-04-16 18:01:14 -04:00
freemo a58d17416c build: added scripts into auto-agents-system skill for getting the PR categories for merging. 2026-04-16 17:59:56 -04:00
freemo 0257841825 Revert "refactor(agents): migrate all agent definitions to use skills for universal rules"
CI / build (push) Successful in 18s
CI / helm (push) Successful in 30s
CI / typecheck (push) Successful in 50s
CI / push-validation (push) Successful in 21s
CI / lint (push) Successful in 3m19s
CI / e2e_tests (push) Failing after 3m21s
CI / quality (push) Successful in 3m50s
CI / security (push) Successful in 4m13s
CI / integration_tests (push) Successful in 9m9s
CI / unit_tests (push) Successful in 9m9s
CI / docker (push) Successful in 8s
CI / coverage (push) Successful in 8m26s
CI / status-check (push) Failing after 1s
CI / benchmark-publish (push) Successful in 1h14m43s
CI / benchmark-regression (push) Has been skipped
This reverts commit bb97f1450e.
2026-04-16 14:15:30 -04:00
freemo bb97f1450e refactor(agents): migrate all agent definitions to use skills for universal rules
CI / push-validation (push) Successful in 16s
CI / lint (push) Successful in 18s
CI / typecheck (push) Successful in 31s
CI / helm (push) Successful in 31s
CI / build (push) Successful in 32s
CI / e2e_tests (push) Successful in 3m27s
CI / quality (push) Successful in 3m43s
CI / integration_tests (push) Successful in 4m0s
CI / security (push) Successful in 4m11s
CI / unit_tests (push) Successful in 8m38s
CI / coverage (push) Successful in 5m38s
CI / docker (push) Successful in 1m30s
CI / status-check (push) Successful in 1s
CI / benchmark-publish (push) Successful in 1h13m4s
CI / benchmark-regression (push) Has been skipped
Replace ~600 chars of verbatim per-agent boilerplate with skill references.
All 91 agents now load cleveragents-agent-rules for exhaustive pagination,
label management, bot signatures, and credential flow rules. Adds explicit
skill: "*": deny + targeted allows to every agent permission block, matching
the existing bash: and task: deny-first convention. Tier selectors carry no
skill permissions since they are pure pass-through with no skill references
in their bodies. forgejo-label-manager also grants forgejo-api for its curl
pattern reference.
2026-04-16 01:00:55 -04:00
freemo dceb0e91d3 docs(skill): add cleveragents-agent-rules universal agent rules skill
Introduces a new skill containing the complete specification for the five
universal operational rules every agent must follow: exhaustive pagination
protocol, label management via forgejo-label-manager, bot signature format,
credential flow hierarchy, and localhost:4096 restriction.
2026-04-16 01:00:48 -04:00
clever-agent 93c349d531 Build: Stopped using codex for most of our agents
CI / helm (push) Successful in 29s
CI / push-validation (push) Successful in 34s
CI / lint (push) Successful in 3m22s
CI / build (push) Successful in 3m48s
CI / integration_tests (push) Successful in 3m57s
CI / quality (push) Successful in 4m13s
CI / typecheck (push) Successful in 4m30s
CI / security (push) Successful in 4m50s
CI / e2e_tests (push) Successful in 6m28s
CI / unit_tests (push) Successful in 9m8s
CI / coverage (push) Has been cancelled
CI / docker (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / status-check (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
2026-04-16 00:51:51 -04:00
HAL9000 d167155e90 Build: Removed gemini as a model option
CI / lint (push) Successful in 19s
CI / quality (push) Successful in 19s
CI / typecheck (push) Successful in 44s
CI / security (push) Successful in 44s
CI / build (push) Successful in 24s
CI / helm (push) Successful in 29s
CI / push-validation (push) Successful in 21s
CI / unit_tests (push) Successful in 7m32s
CI / integration_tests (push) Successful in 7m29s
CI / docker (push) Successful in 1m0s
CI / coverage (push) Successful in 9m26s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
CI / e2e_tests (push) Successful in 6m11s
CI / status-check (push) Successful in 1s
2026-04-15 23:43:29 -04:00
freemo c9dc70004c docs(skill): add full redundancy and self-healing documentation to cleveragents-system skill
CI / push-validation (push) Successful in 22s
CI / build (push) Successful in 24s
CI / helm (push) Successful in 32s
CI / lint (push) Successful in 33s
CI / typecheck (push) Successful in 48s
CI / quality (push) Successful in 53s
CI / security (push) Successful in 1m9s
CI / integration_tests (push) Successful in 4m12s
CI / e2e_tests (push) Successful in 6m43s
CI / unit_tests (push) Successful in 7m1s
CI / coverage (push) Successful in 6m59s
CI / docker (push) Successful in 1m33s
CI / status-check (push) Successful in 1s
CI / benchmark-publish (push) Successful in 1h13m54s
CI / benchmark-regression (push) Has been skipped
Add new references/redundancy/README.md (280 lines) covering:
- Three-layer redundancy architecture overview (product-builder / watchdog / supervisors)
  with the key insight that each layer uses a different observation mechanism to
  prevent blind spots between layers
- Layer 1 (product-builder): fast cycle (60s liveness), deep inspection (5-min message
  reading with anti-pattern catalogue: error loops, circular patterns, policy violations,
  context exhaustion), worker health check (pool count vs expected), hourly verification
- Layer 2 (system-watchdog): independent 5-min audit using Forgejo tracking issue
  STALENESS rather than OpenCode session status — catches frozen-but-alive sessions
  that appear healthy to product-builder; session introspection for anti-pattern
  detection; clear role separation (watchdog detects, product-builder restarts)
- Layer 3 (supervisor self-monitoring): per-cycle worker health checks, stuck
  detection (15-min threshold), completed vs crashed distinction, pool filling
- State persistence as the foundation of self-healing: everything externalized
  to Forgejo (tracking issues, attempt comments, claim protocol, announcements)
- Supervisor crash-recovery pattern: session crash → product-builder detects ≤60s →
  relaunch → READ_TRACKING_STATE first → light/moderate/full recovery based on
  offline duration → resume from recovered state
- Worker crash-recovery pattern: crash → supervisor detects in next cycle →
  Forgejo evidence check → re-dispatch at same or escalated tier
- Two independent health signals table: OpenCode (session presence/status, latency
  60s) vs Forgejo (tracking staleness, latency 2×interval) — what each catches
- Complete failure mode catalogue (13 failure types with: who detects it, how,
  recovery action, and whether recovery is automatic or requires human)
- async-agent-monitor health classifications: healthy/stuck/idle/finished/errored
  with threshold and configurable idle_threshold_minutes parameter
- Redundancy gaps and limitations: product-builder has no watcher; watchdog
  detects but cannot restart; worker downtime latency varies by supervisor sleep

Expand SKILL.md (539 → 775 lines, 10 → 13 decision trees):
- Significantly expand 'Is something wrong?' tree: now lists every failure
  type with which layer detects it, how detection works, and recovery action
  (supervisor missing, frozen, error loop, waiting for input, worker crashed,
  worker frozen, supervisor stopped dispatching, orphaned claim, CI violations,
  multiple supervisors down, product-builder crash)
- Add new 'How does the system self-heal?' tree: full three-layer redundancy
  decision tree with per-layer mechanics (fast/deep/hourly cadences), the
  Forgejo persistence foundation, complete supervisor crash-recovery pattern,
  complete worker crash-recovery pattern, and the single-point-of-failure note
- Update Key Numbers table: add worker health check and hourly cycle entries;
  clarify session health threshold is configurable; add watchdog staleness
  threshold (2×interval); add supervisor max downtime (≤60s); add worker
  re-dispatch latency (varies by sleep interval)
- Update frontmatter description to cover self-healing and redundancy
- Update reference index to describe the new redundancy reference file

ISSUES CLOSED: #0
2026-04-15 20:18:54 +00:00
freemo e1e65c85ae docs(skill): final cleanup pass — remove remaining duplicated project knowledge, cross-reference other skills
agent-registry/README.md:
- Remove typecheck-fixer 'Never uses type: ignore' rule (contributing rule,
  lives in cleveragents-contributing not the system registry)
- Remove coverage-improver '>=97%' threshold (project-specific threshold,
  lives in cleveragents-contributing)
- Change new-issue-creator description from 'following CONTRIBUTING.md format'
  to 'following the project issue format' with cross-reference pointer
- Remove subtask-loop trivial description; expand to show the full
  implement → test → quality gates → review loop it manages
- Remove duplicate forgejo-label-manager entry ('See above.') — was listed
  twice in the utility subagents table
- Add cross-reference note at top of Utility Subagents section: descriptions
  focus on system role; project-specific rules (testing philosophy, quality
  gates, commit standards, issue format) are in cleveragents-contributing
- AUTO-IMP-SUP dispatch ordering: add inline cross-reference note pointing
  to cleveragents-contributing and cleverthis-guidelines for label definitions
- AUTO-OWNR description: replace specific label names ('MoSCoW labels',
  'Wont Do') with generic role description + cross-reference note

SKILL.md:
- Reference Index: fix tracking-system entry description — remove 'label rules'
  (those were removed from tracking-system last pass); replace with accurate
  description of what the file now covers (Automation Tracking and needs
  feedback labels as system-specific labels)

No system-specific content was removed: all agent prefixes, the full
announcement relevancy matrix, worker tag patterns, sleep intervals, worker
count formulas, tier system mechanics, tracking system operations, credential
propagation hierarchy, and claim/heartbeat/release protocol are fully preserved.

ISSUES CLOSED: #0
2026-04-15 20:13:47 +00:00