fix/plan-phase-migration-raw-sql-root-plan-id
1954 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
a0fae4535e |
fix(test): add root_plan_id to raw SQL in plan_phase_migration constraint tests
CI / push-validation (pull_request) Successful in 27s
CI / helm (pull_request) Successful in 37s
CI / build (pull_request) Successful in 3m50s
CI / lint (pull_request) Successful in 3m57s
CI / quality (pull_request) Successful in 4m23s
CI / typecheck (pull_request) Successful in 4m40s
CI / security (pull_request) Successful in 4m50s
CI / unit_tests (pull_request) Failing after 5m51s
CI / docker (pull_request) Has been skipped
CI / e2e_tests (pull_request) Successful in 7m14s
CI / integration_tests (pull_request) Successful in 7m51s
CI / coverage (pull_request) Successful in 15m0s
CI / status-check (pull_request) Failing after 3s
The step_try_insert_plan_with_phase_and_state function was using raw SQL to insert a plan with an invalid phase value to test the CHECK constraint. However, the raw SQL was missing the root_plan_id column, which is NOT NULL in the schema. This caused the insert to fail with a NOT NULL violation instead of the intended CHECK constraint violation on the phase column. This fix adds root_plan_id to the raw SQL INSERT statement, setting it to the same value as plan_id (for a root plan). This allows the test to properly exercise the CHECK constraint on the phase column, ensuring the test fails for the correct reason. ISSUES CLOSED: #9411 |
||
|
|
835bc580e2 |
spec: document JSON-RPC 2.0 A2A wire format (AUTO-ARCH-8)
CI / push-validation (pull_request) Successful in 10s
CI / helm (pull_request) Successful in 25s
CI / build (pull_request) Successful in 26s
CI / lint (pull_request) Successful in 28s
CI / quality (pull_request) Successful in 53s
CI / typecheck (pull_request) Successful in 56s
CI / security (pull_request) Successful in 57s
CI / e2e_tests (pull_request) Successful in 3m19s
CI / unit_tests (pull_request) Successful in 7m21s
CI / integration_tests (pull_request) Successful in 7m23s
CI / docker (pull_request) Successful in 55s
CI / coverage (pull_request) Successful in 11m13s
CI / status-check (pull_request) Successful in 2s
CI / lint (push) Successful in 37s
CI / quality (push) Successful in 43s
CI / typecheck (push) Successful in 52s
CI / security (push) Successful in 53s
CI / build (push) Successful in 19s
CI / push-validation (push) Successful in 29s
CI / helm (push) Successful in 31s
CI / e2e_tests (push) Successful in 3m16s
CI / unit_tests (push) Successful in 7m9s
CI / integration_tests (push) Successful in 7m13s
CI / docker (push) Successful in 8s
CI / coverage (push) Successful in 10m54s
CI / status-check (push) Successful in 1s
Updates the A2A Protocol section to reflect the rename of A2aRequest/ A2aResponse fields to standard JSON-RPC 2.0 names (method, id, result, error). Documents A2aVersionNegotiator for backward compatibility. Closes #8787 |
||
|
|
b8732dfc6f |
fix(tests): resolve nox unit_tests timeout for agent_skills_loader and skill_search features
CI / build (pull_request) Successful in 17s
CI / helm (pull_request) Successful in 17s
CI / push-validation (pull_request) Successful in 10s
CI / lint (pull_request) Successful in 39s
CI / quality (pull_request) Successful in 50s
CI / typecheck (pull_request) Successful in 52s
CI / security (pull_request) Successful in 53s
CI / e2e_tests (pull_request) Successful in 2m13s
CI / coverage (pull_request) Successful in 5m35s
CI / integration_tests (pull_request) Successful in 6m40s
CI / unit_tests (pull_request) Successful in 7m38s
CI / docker (pull_request) Successful in 1m45s
CI / status-check (pull_request) Successful in 1s
CI / lint (push) Successful in 16s
CI / quality (push) Successful in 17s
CI / build (push) Successful in 23s
CI / helm (push) Successful in 24s
CI / typecheck (push) Successful in 53s
CI / security (push) Successful in 53s
CI / push-validation (push) Successful in 38s
CI / e2e_tests (push) Successful in 3m14s
CI / unit_tests (push) Successful in 6m37s
CI / integration_tests (push) Successful in 6m39s
CI / docker (push) Successful in 12s
CI / coverage (push) Successful in 10m53s
CI / status-check (push) Successful in 1s
Adjusted test running and file-detection logic to stabilize unit tests in overlayfs environments and improve target feature handling. - Modified scripts/run_behave_parallel.py to run sequentially when there are 2 or fewer feature files, avoiding fork deadlocks on overlayfs and reducing nox-based unit test timeouts for agent_skills_loader and skill_search features. - Updated noxfile.py to correctly detect feature files in posargs, fixing the prior logic that appended the "features/" directory when specific feature files were provided. This ensures precise test selection and avoids unnecessary path expansion. Rationale: These changes address the root causes of flaky unit test timeouts by preventing problematic forking behavior with small feature sets and by ensuring nox respects explicitly provided feature file paths. ISSUES CLOSED: #9374 |
||
|
|
bdbfb39e45 |
chore(agents): improve pr-review-pool-supervisor — fix tracking prefix mismatch causing duplicate issues
CI / lint (pull_request) Successful in 18s
CI / build (pull_request) Successful in 17s
CI / helm (pull_request) Successful in 18s
CI / push-validation (pull_request) Successful in 9s
CI / quality (pull_request) Successful in 52s
CI / typecheck (pull_request) Successful in 56s
CI / security (pull_request) Successful in 57s
CI / e2e_tests (pull_request) Successful in 5m9s
CI / coverage (pull_request) Successful in 5m34s
CI / integration_tests (pull_request) Successful in 6m36s
CI / unit_tests (pull_request) Successful in 11m29s
CI / docker (pull_request) Successful in 1m18s
CI / status-check (pull_request) Successful in 1s
CI / build (push) Successful in 15s
CI / helm (push) Successful in 16s
CI / push-validation (push) Successful in 11s
CI / security (push) Successful in 30s
CI / lint (push) Successful in 39s
CI / quality (push) Successful in 42s
CI / typecheck (push) Successful in 53s
CI / integration_tests (push) Successful in 6m35s
CI / coverage (push) Successful in 5m44s
CI / e2e_tests (push) Successful in 6m48s
CI / unit_tests (push) Successful in 7m41s
CI / docker (push) Successful in 1m19s
CI / status-check (push) Successful in 1s
Approved proposal: #7602 Pattern: workflow_fix Evidence: Watchdog (Cycle 15, #7587) reports HIGH severity systemic issue — AUTO-REV-SUP creating 10+ duplicate tracking issues per cycle. Root cause: agent definition uses AUTO-REV-POOL prefix in ATM calls but actual issues use AUTO-REV-SUP prefix. ATM cannot find/close old issues → duplicates. Fix: Updated all tracking prefix references from AUTO-REV-POOL to AUTO-REV-SUP and tracking type from 'Review Pool Status' to 'PR Review Pool Status'. ISSUES CLOSED: #7602 # Conflicts: # .opencode/agents/pr-review-pool-supervisor.md |
||
|
|
9178ba5f91 |
fix(security): harden plugin entry point loading (#7785)
CI / lint (push) Successful in 18s
CI / helm (push) Successful in 17s
CI / build (push) Successful in 30s
CI / typecheck (push) Successful in 40s
CI / quality (push) Successful in 49s
CI / push-validation (push) Successful in 36s
CI / security (push) Successful in 1m1s
CI / e2e_tests (push) Successful in 3m27s
CI / integration_tests (push) Successful in 4m2s
CI / unit_tests (push) Successful in 5m42s
CI / docker (push) Successful in 1m7s
CI / coverage (push) Successful in 12m44s
CI / status-check (push) Successful in 1s
Enforce entry point allowlist validation before importing plugin modules, add explicit parsing helper, Robot Framework security regression test, and Behave security regression coverage. Documents the security fix in the changelog. Closes #7476 |
||
|
|
46ed31930e |
docs(contributors): add HAL 9000 plugin security hardening contribution detail
CI / build (pull_request) Successful in 16s
CI / helm (pull_request) Successful in 16s
CI / push-validation (pull_request) Successful in 11s
CI / lint (pull_request) Successful in 38s
CI / typecheck (pull_request) Successful in 50s
CI / security (pull_request) Successful in 51s
CI / e2e_tests (pull_request) Successful in 2m14s
CI / quality (pull_request) Successful in 3m44s
CI / integration_tests (pull_request) Successful in 6m17s
CI / unit_tests (pull_request) Successful in 7m32s
CI / docker (pull_request) Successful in 56s
CI / coverage (pull_request) Successful in 12m31s
CI / status-check (pull_request) Successful in 1s
Added detail entry for HAL 9000's contribution to the plugin entry point security hardening fix (#7476). ISSUES CLOSED: #7476 |
||
|
|
74ce88caeb |
docs(contributors): add HAL 9000 to contributors list
ISSUES CLOSED: #7476 |
||
|
|
cef70ff98a |
fix(security): add Robot integration test and CONTRIBUTORS for #7476
Add Robot Framework integration test verifying that load_from_entry_points does not call ep.load() for entry points with disallowed module prefixes (security regression test for issue #7476). Also add HAL 9000 to CONTRIBUTORS.md per CONTRIBUTING.md process rules. ISSUES CLOSED: #7476 |
||
|
|
717a05f604 |
fix(security): fix plugins/loader.py load_from_entry_point security #7476
Parse entry point targets before import so allowlist enforcement happens prior to execution and add a Behave regression scenario covering the disallowed-prefix path. ISSUES CLOSED: #7476 |
||
|
|
f67e8a2e07
|
fix(testing): document and harden non-AssertionError guard in apply_tdd_inversion to reduce flaky CI
CI / lint (pull_request) Successful in 18s
CI / build (pull_request) Successful in 17s
CI / helm (pull_request) Successful in 18s
CI / quality (pull_request) Successful in 53s
CI / typecheck (pull_request) Successful in 56s
CI / security (pull_request) Successful in 57s
CI / push-validation (pull_request) Successful in 40s
CI / unit_tests (pull_request) Successful in 3m13s
CI / integration_tests (pull_request) Successful in 4m23s
CI / e2e_tests (pull_request) Successful in 4m37s
CI / docker (pull_request) Successful in 1m34s
CI / coverage (pull_request) Successful in 10m46s
CI / status-check (pull_request) Successful in 1s
CI / lint (push) Successful in 17s
CI / quality (push) Successful in 17s
CI / build (push) Successful in 24s
CI / helm (push) Successful in 24s
CI / push-validation (push) Successful in 37s
CI / typecheck (push) Successful in 52s
CI / security (push) Successful in 52s
CI / e2e_tests (push) Successful in 3m13s
CI / unit_tests (push) Successful in 6m37s
CI / integration_tests (push) Successful in 6m39s
CI / docker (push) Successful in 1m35s
CI / coverage (push) Successful in 11m13s
CI / status-check (push) Successful in 1s
Surface the non-AssertionError guard warning in standard Behave output by emitting to stderr in addition to the structured logger, and add infrastructure coverage that asserts this guard path is visible during test runs. Document the @tdd_expected_fail expectation that bug-signaling failures must use AssertionError so infrastructure exceptions are not accidentally treated as expected bug failures. ISSUES CLOSED: #8294 |
||
|
|
237e776951
|
feat(skills): add exhaustive Forgejo REST API agent skill
CI / lint (push) Successful in 20s
CI / quality (push) Successful in 20s
CI / helm (push) Successful in 24s
CI / build (push) Successful in 24s
CI / push-validation (push) Successful in 39s
CI / security (push) Successful in 1m1s
CI / e2e_tests (push) Successful in 3m13s
CI / typecheck (push) Successful in 4m23s
CI / unit_tests (push) Successful in 6m44s
CI / integration_tests (push) Successful in 6m49s
CI / docker (push) Successful in 11s
CI / coverage (push) Successful in 6m56s
CI / status-check (push) Successful in 0s
Adds a comprehensive opencode skill under .opencode/skills/forgejo-api/
covering all 473 Forgejo REST API endpoints across 25 reference categories.
- 78 files, 23,000+ lines, 149 distinct path parameter types
- Every curl command parameterised ({owner}/{repo}/{index}/etc) and
tested against the live git.cleverthis.com server
- SKILL.md: 917-line entry point with quick-answer curl commands (35),
jq cheat sheet for chaining API calls, 14 decision trees, 12 critical
concepts (exclusive labels, lazy mergeability, SHA locking, auto-close
keywords, search envelope differences, 412 stale-edit protection), full
HTTP status code table, and environment variable reference
- references/pull-requests/: CRUD, 6 merge styles, automerge, server-side
rebase without local clone, inline review comments, diff/patch
- references/issues/: comments, reactions, attachments, dependencies,
time tracking, stopwatches, pinning
- references/labels/: repo + org labels, exclusive label groups,
GET/POST/PUT/DELETE on issues and PRs
- references/ci-actions/ + references/commit-statuses/: workflow runs,
dispatch, secrets, variables, quality gate verification
- references/web-interface/ci-logs.md: step-by-step CI log access via
CSRF web session (not available through REST API)
- references/complex-workflows/: 10 multi-step recipes including
PR review cycle, issue lifecycle, CI status check, server-side rebase,
automerge, release workflow, org setup, fork contribution
|
||
|
|
8b2e0c81c5 |
fix(testing): print behave-parallel worker logs only for failed chunks
CI / lint (pull_request) Successful in 20s
CI / helm (pull_request) Successful in 33s
CI / push-validation (pull_request) Successful in 21s
CI / quality (pull_request) Successful in 3m36s
CI / build (pull_request) Successful in 3m44s
CI / typecheck (pull_request) Successful in 4m30s
CI / security (pull_request) Successful in 4m37s
CI / e2e_tests (pull_request) Successful in 6m54s
CI / unit_tests (pull_request) Successful in 9m46s
CI / integration_tests (pull_request) Successful in 9m51s
CI / docker (pull_request) Successful in 1m33s
CI / coverage (pull_request) Successful in 10m53s
CI / status-check (pull_request) Successful in 0s
CI / security (push) Successful in 41s
CI / helm (push) Successful in 31s
CI / push-validation (push) Successful in 33s
CI / lint (push) Successful in 3m17s
CI / build (push) Successful in 3m16s
CI / quality (push) Successful in 3m38s
CI / typecheck (push) Successful in 4m16s
CI / e2e_tests (push) Successful in 6m35s
CI / unit_tests (push) Successful in 10m18s
CI / integration_tests (push) Successful in 10m21s
CI / docker (push) Successful in 1m36s
CI / coverage (push) Successful in 10m47s
CI / status-check (push) Successful in 0s
In parallel mode, the behave runner previously replayed captured stdout/stderr for every worker chunk, creating noisy output that obscured failure diagnostics in CI and local runs. Changes to scripts/run_behave_parallel.py: - Added _chunk_has_failures() and _chunk_no_scenarios_ran() helpers to evaluate individual chunk summaries for failure/error/crash conditions. - Updated the aggregation loop in main() to conditionally replay captured stdout/stderr only for chunks whose summary indicates failures, errors, or no scenarios ran (crash detection). Passing chunks now suppress their output entirely. - Added robust exception handling in _worker_run_features() so that worker crashes produce a full traceback in stderr and return a crash summary with features.errors = 1, enabling the parent to detect the crash via _chunk_has_failures (and also _chunk_no_scenarios_ran, since no scenarios reached a terminal state) and replay the diagnostics. - The conditional replay uses summary-based checks rather than the raw runner.run() boolean, consistent with the existing exit-code logic. This avoids spurious log replay for @tdd_expected_fail scenarios whose runner.run() returns True even though the TDD inversion handler has corrected the scenario status to passed. - Existing summary merge, exit semantics, and the no-scenarios safety net are fully preserved. New Behave unit tests (17 scenarios) cover the chunk-level helpers, the conditional aggregation loop, the pure no-scenarios-ran path, stderr replay for non-crash failed chunks, and the worker crash path. New Robot integration tests (6 test cases) verify the same behavior end-to-end via the helper_behave_parallel_log_filtering.py script. Also updated: - CHANGELOG.md: add unreleased entry for this behavioral change. - features/steps/behave_parallel_log_filtering_steps.py: use contextlib.redirect_stdout/redirect_stderr instead of manual sys.stdout assignment; register module in sys.modules; document CWD requirement in _load_runner_module(). - robot/helper_behave_parallel_log_filtering.py: move import io to top-level; remove redundant inline imports; use contextlib for output capture; register module in sys.modules; document CWD requirement. Branch note: the canonical branch for this fix is bugfix/m3-behave-parallel-failed-chunk-logs. The PR head branch (bugfix/mX-behave-parallel-failed-chunk-logs) cannot be renamed via the Forgejo API; both branches are kept in sync at the same SHA. ISSUES CLOSED: #8351 |
||
|
|
b43ba41f6d |
fix(concurrency): protect validate_fragment_scope with lock and update CONTRIBUTORS
CI / push-validation (pull_request) Successful in 20s
CI / helm (pull_request) Successful in 24s
CI / build (pull_request) Successful in 27s
CI / lint (pull_request) Successful in 29s
CI / quality (pull_request) Successful in 44s
CI / typecheck (pull_request) Successful in 54s
CI / security (pull_request) Successful in 55s
CI / e2e_tests (pull_request) Successful in 3m4s
CI / unit_tests (pull_request) Successful in 9m51s
CI / integration_tests (pull_request) Successful in 9m53s
CI / docker (pull_request) Successful in 1m31s
CI / coverage (pull_request) Successful in 16m31s
CI / status-check (pull_request) Successful in 2s
CI / quality (push) Successful in 17s
CI / push-validation (push) Successful in 17s
CI / helm (push) Successful in 25s
CI / build (push) Successful in 26s
CI / lint (push) Successful in 36s
CI / typecheck (push) Successful in 46s
CI / security (push) Successful in 50s
CI / e2e_tests (push) Successful in 3m19s
CI / integration_tests (push) Successful in 4m23s
CI / unit_tests (push) Successful in 5m7s
CI / docker (push) Successful in 1m19s
CI / coverage (push) Successful in 11m0s
CI / status-check (push) Successful in 1s
- Wrapped validate_fragment_scope() body with self._lock to prevent RuntimeError: dictionary changed size during iteration when another thread mutates the tier stores during scope validation - Updated CONTRIBUTORS.md to document HAL 9000's concurrency safety contributions including thread-safe context tier management (issue #7547) Fixes review feedback from PR #8279. ISSUES CLOSED: #7547 |
||
|
|
0f75429253 |
fix(concurrency): add thread safety to ContextTierService
Implemented thread-safety improvements for ContextTierService by introducing a re-entrant lock and guarding all critical sections with self._lock. This prevents RuntimeError: dictionary changed size during iteration under concurrent plan execution. - Added threading.RLock to ContextTierService.__init__ as self._lock - Wrapped all public methods (store, get, promote, demote, evict_lru, get_metrics, get_all_fragments, get_hot_fragments, get_for_actor, get_scoped_view) with with self._lock: - Added _lock: threading.RLock type stub to TierRuntimeMixin and ScopedTierMixin - Wrapped enforce_staleness in TierRuntimeMixin with self._lock - Wrapped get_scoped_by_resource and get_scoped_metrics in ScopedTierMixin with self._lock - Extracted settings helpers to new context_tier_settings.py to keep context_tiers.py under 500 lines - Added BDD feature file context_tier_thread_safety.feature with 10 thread-safety scenarios - Added step definitions context_tier_thread_safety_steps.py - Updated CHANGELOG.md with fix entry ISSUES CLOSED: #7547 |
||
|
|
b752dd485f |
fix(cli): --format color now emits ANSI-coloured output instead of plain text
CI / quality (pull_request) Successful in 20s
CI / push-validation (pull_request) Successful in 21s
CI / build (pull_request) Successful in 24s
CI / helm (pull_request) Successful in 24s
CI / lint (pull_request) Successful in 37s
CI / security (pull_request) Successful in 51s
CI / typecheck (pull_request) Successful in 52s
CI / integration_tests (pull_request) Successful in 4m50s
CI / unit_tests (pull_request) Successful in 6m25s
CI / e2e_tests (pull_request) Successful in 6m29s
CI / docker (pull_request) Successful in 1m33s
CI / coverage (pull_request) Successful in 12m43s
CI / status-check (pull_request) Successful in 1s
CI / helm (push) Successful in 21s
CI / build (push) Successful in 25s
CI / push-validation (push) Successful in 25s
CI / quality (push) Successful in 42s
CI / lint (push) Successful in 43s
CI / typecheck (push) Successful in 51s
CI / security (push) Successful in 52s
CI / integration_tests (push) Successful in 4m21s
CI / e2e_tests (push) Successful in 4m27s
CI / unit_tests (push) Successful in 5m17s
CI / docker (push) Successful in 1m31s
CI / coverage (push) Successful in 10m55s
CI / status-check (push) Successful in 1s
Route the COLOR format option through format_output_session (which uses ColorMaterializer) instead of _format_plain. Previously --format color produced identical output to --format plain because both were routed to the same plain-text formatter. All other formats (plain, json, yaml, rich, table) remain unaffected. Updated CHANGELOG.md with the fix entry and CONTRIBUTORS.md with HAL 9000 contribution details. ISSUES CLOSED: #7910 |
||
|
|
4c0f3e1da9 |
fix(tests): fix create_template_db.py to create writable SQLite template database
CI / push-validation (push) Successful in 17s
CI / helm (push) Successful in 23s
CI / build (push) Successful in 30s
CI / lint (push) Successful in 43s
CI / quality (push) Successful in 48s
CI / typecheck (push) Successful in 53s
CI / security (push) Successful in 53s
CI / e2e_tests (push) Successful in 3m22s
CI / integration_tests (push) Successful in 6m42s
CI / unit_tests (push) Successful in 7m47s
CI / docker (push) Successful in 1m31s
CI / coverage (push) Successful in 12m9s
CI / status-check (push) Successful in 1s
CI / push-validation (pull_request) Successful in 13s
CI / helm (pull_request) Successful in 26s
CI / lint (pull_request) Successful in 33s
CI / build (pull_request) Successful in 38s
CI / quality (pull_request) Successful in 45s
CI / typecheck (pull_request) Successful in 49s
CI / security (pull_request) Successful in 55s
CI / e2e_tests (pull_request) Successful in 3m38s
CI / integration_tests (pull_request) Successful in 6m40s
CI / unit_tests (pull_request) Successful in 7m44s
CI / docker (pull_request) Successful in 10s
CI / coverage (pull_request) Successful in 12m9s
CI / status-check (pull_request) Successful in 3s
Added os.chmod(db_path, 0o664) after database creation to ensure the template database has writable permissions. This prevents sqlite3.OperationalError: attempt to write a readonly database when tests copy and modify the template during test setup. The template database is now created with rw-rw-r-- (664) permissions instead of the default rw-r--r-- (644), allowing the test runner process to write to it. ISSUES CLOSED: #9372 |
||
|
|
9aad085b74 |
fix(cli): add missing "✓ OK" footer to agents plan errors rich output
CI / push-validation (pull_request) Successful in 19s
CI / helm (pull_request) Successful in 19s
CI / build (pull_request) Successful in 20s
CI / quality (pull_request) Successful in 41s
CI / lint (pull_request) Successful in 47s
CI / typecheck (pull_request) Successful in 53s
CI / security (pull_request) Successful in 1m27s
CI / e2e_tests (pull_request) Successful in 3m39s
CI / integration_tests (pull_request) Successful in 4m10s
CI / unit_tests (pull_request) Successful in 5m56s
CI / docker (pull_request) Successful in 1m21s
CI / coverage (pull_request) Successful in 10m52s
CI / status-check (pull_request) Successful in 1s
CI / push-validation (push) Successful in 19s
CI / helm (push) Successful in 23s
CI / build (push) Successful in 28s
CI / e2e_tests (push) Successful in 3m13s
CI / lint (push) Successful in 3m17s
CI / quality (push) Successful in 3m38s
CI / typecheck (push) Successful in 3m57s
CI / security (push) Successful in 4m5s
CI / integration_tests (push) Successful in 6m19s
CI / unit_tests (push) Successful in 7m35s
CI / docker (push) Successful in 1m21s
CI / coverage (push) Successful in 10m48s
CI / status-check (push) Successful in 1s
ISSUES CLOSED: #9355 |
||
|
|
abbb830c60
|
Build: sped up bootstrap time of pr-merge pool agent
CI / push-validation (push) Successful in 19s
CI / build (push) Successful in 25s
CI / helm (push) Successful in 25s
CI / lint (push) Successful in 36s
CI / quality (push) Successful in 43s
CI / typecheck (push) Successful in 49s
CI / security (push) Successful in 54s
CI / e2e_tests (push) Successful in 4m25s
CI / unit_tests (push) Successful in 5m31s
CI / docker (push) Successful in 1m32s
CI / integration_tests (push) Successful in 7m18s
CI / coverage (push) Successful in 13m37s
CI / status-check (push) Successful in 1s
|
||
|
|
d3cb534caf |
feat(plan): implement LLM-powered strategy actor
CI / push-validation (pull_request) Successful in 17s
CI / helm (pull_request) Successful in 19s
CI / lint (pull_request) Successful in 27s
CI / security (pull_request) Successful in 32s
CI / quality (pull_request) Successful in 41s
CI / typecheck (pull_request) Successful in 48s
CI / build (pull_request) Successful in 3m18s
CI / e2e_tests (pull_request) Successful in 4m16s
CI / integration_tests (pull_request) Successful in 4m16s
CI / unit_tests (pull_request) Successful in 5m8s
CI / docker (pull_request) Successful in 1m32s
CI / coverage (pull_request) Successful in 10m53s
CI / status-check (pull_request) Successful in 1s
CI / push-validation (push) Successful in 18s
CI / helm (push) Successful in 23s
CI / build (push) Successful in 31s
CI / lint (push) Successful in 43s
CI / typecheck (push) Successful in 52s
CI / security (push) Successful in 52s
CI / e2e_tests (push) Successful in 3m37s
CI / quality (push) Successful in 3m44s
CI / integration_tests (push) Successful in 6m35s
CI / unit_tests (push) Failing after 7m36s
CI / docker (push) Has been skipped
CI / coverage (push) Successful in 13m39s
CI / status-check (push) Failing after 1s
Implement StrategyActor class for the plan strategize phase that uses an LLM to produce hierarchical execution strategies with dependencies, resource requirements, estimated complexity, and risk scores. Key components: - StrategyActor: Core actor with LLM prompt construction, response parsing (JSON and numbered-list fallback), and graceful degradation to StrategizeStubActor when no LLM provider is configured - StrategyAction/StrategyTree: Pydantic models for the hierarchical action tree with dependency links - validate_no_cycles(): Kahns algorithm (deque-based) for dependency graph cycle detection, raising PlanError on circular dependencies - build_strategy_prompt(): Context-aware prompt construction using definition_of_done, resources, project context, and ACMS analysis with XML-delimited user content sections for prompt injection hardening - parse_strategy_response(): Robust LLM output parsing with JSON extraction and numbered-list fallback - resolve_strategy_actor(): Integration point for the existing actor.default.strategy config key (CLEVERAGENTS_DEFAULT_STRATEGY_ACTOR) - Decision conversion producing strategy_choice Decision objects - build_decisions() preserves tree hierarchy via parent_id mapping, populates downstream_decision_ids from dependency edges, and validates plan_id Structural tree hierarchy (B2 review fix): - _build_tree infers parent_id from the dependency graph: each actions first resolved dependency becomes its structural parent. Actions with no dependencies fall back to the root. This produces hierarchical trees for agents plan tree rendering per spec Plan Decision Tree. Downstream decision tracking (B3 review fix): - build_decisions populates downstream_decision_ids from the strategy trees dependency edges using a pre-generated decision_id map so influence relationships between decisions are recorded per the spec Decision Record Structure. Post code-review hardening (PR #1175): - Broadened exception handling in execute() and ACMS retrieval to catch all LLM provider errors (openai, httpx, anthropic, etc.) with graceful fallback to stub mode (H1, H2) - Added warning log for unresolvable dependency references so dropped edges are visible in structured logs (H3) - Added XML-delimited user content sections and explicit data-only instructions in system prompt for prompt injection hardening (H4) - Switched prompt truncation to word-boundary-safe _truncate_at_word() for all prompt input sections (M1) - Fixed _parse_actor_name to preserve user-specified provider or model when only one segment is empty, instead of discarding both (M2) - Annotated _build_invariant_records as placeholder pending the Invariant Reconciliation Actor implementation (M5) - Documented resources/project_context params as future-wired through PlanExecutor.run_strategize() (M8) - Added docstring noting supersession relationship with LLMStrategizeActor in llm_actors.py (M9) - Added __all__ export definition (L2) - Improved validate_no_cycles docstring edge direction semantics (L7) - Cap JSON parse retry loop at _MAX_JSON_PARSE_RETRIES (10) Post second code-review hardening (PR #1175, review cycle 2): - Fixed _truncate_at_word docstring: documented max_chars >= 3 precondition for the result-length guarantee (R-H1) - Added warning log in build_decisions for unresolvable parent_id references, matching the existing _build_tree warning for unresolvable dependency references (R-H2) - Fixed _parse_actor_name to handle whitespace-only input by adding actor_name.strip() check alongside the emptiness check (R-M1) - Tightened ACMS scenario assertions from non-empty to expected count of 5 decisions (R-L3) - Added timeout=60s on_timeout=kill to all Robot test cases for consistency with project patterns (R-M5) Post third code-review hardening (PR #1175, review cycle 3): - Added _sanitize_xml_content() to escape XML special characters (<, >, &) in user content before embedding into XML-delimited prompt sections, preventing prompt injection via forged closing tags (spec Prompt Injection Mitigation) (CR3-M1) - Upgraded _try_parse_json() to multi-anchor retry: collects all [{ positions left-to-right and tries each as a candidate start, fixing false-start anchoring when LLM preamble contains [{ fragments before the real JSON array (CR3-M2) - Added _truncate_at_word() guard for max_chars < 3: returns a hard slice instead of word-boundary truncation when the ellipsis would exceed the limit (CR3-L2) - Changed _build_tree collision fallback key from -(idx+1) to -(1_000_000+idx) to eliminate theoretical collision with LLM-produced negative step numbers (CR3-L3) - Added forward-looking API docstring note to build_decisions() documenting that it is not yet wired into PlanExecutor and will be integrated once Decision persistence lands (CR3-M3) Post fourth code-review hardening (PR #1175, review cycle 4): - Fixed _try_parse_json per-anchor retry counter: reset retries=0 at the start of each anchor iteration so false-start [{ anchors in LLM preamble text no longer exhaust the retry budget for the correct anchor (CR4-B1) - Added known-limitations docstring to module header documenting missing decision types (resource_selection, subplan_spawn, invariant_enforced) as future work (CR4-D1) - Rewrote XML injection assertion in test to use regex extraction instead of fragile chained .split() calls that could IndexError on structural changes (CR4-T5) Post fifth code-review hardening (PR #1175, review cycle 5): - Added warning log in build_decisions for empty-string parent_id (distinct from None) so the silent fallback to root is visible in structured logs for debuggability (CR5-B1) - Added plan_id propagation assertion to build_decisions test scenarios verifying decision.plan_id matches the input (CR5-T1) - Added sequence_number monotonicity assertion verifying decision sequence_numbers are zero-indexed and monotonically increasing (CR5-T2) - Added _truncate_at_word boundary test for max_chars=3 (exactly ellipsis length) verifying correct "..." output (CR5-T3) - Tightened false-start anchor test from permissive len>=1 to specific description match "Sole real action" (CR5-T4) - Added word-boundary truncation test using space-separated input to exercise the rfind(" ") path under oversized DoD (CR5-T5) Post sixth code-review hardening (PR #1175, review cycle 6): - Added _MAX_INVARIANTS cap (100) for invariant list truncation in prompt to prevent token limit overflows, consistent with other prompt section caps (CR6-M4) - Added negative max_chars guard in _truncate_at_word returning empty string instead of slicing from end (CR6-M5) - Added global JSON parse attempt cap _MAX_GLOBAL_JSON_ATTEMPTS (50) across all anchors in _try_parse_json (CR6-L3) - Moved re import to module level in strategy_parsing.py per CONTRIBUTING import guidelines (CR6-L4) - Extracted _DEFAULT_DESCRIPTION constant to eliminate duplication between _default_action() and _build_tree() (CR6-L5) Post seventh code-review hardening (PR #1175, review cycle 7): - Decoupled _execute_stub from StrategizeStubActor._parse_steps private method by delegating to parse_strategy_response, removing cross-class private method dependency (CR7-M1) - Added ULID format validation on plan_id in execute() and build_decisions() for spec-consistent argument validation per §Plan glossary and CONTRIBUTING §Argument Validation (CR7-M2) - Constrained StrategyAction.estimated_complexity to Literal["low", "medium", "high"] at Pydantic model level per CONTRIBUTING §Type Safety (CR7-M5) - Documented XML-tag prompt boundary deviation from spec [USER_CONTENT_START]/[USER_CONTENT_END] markers with rationale for the more structured approach (CR7-M6) - Added _build_tree empty-input guard comment documenting orphaned root_id semantics (CR7-L1) - Added _truncate_at_word > 0 intent comment explaining why position-0 space is intentionally excluded (CR7-L2) - Added build_decisions context_snapshot future-work comment referencing spec §Decision Record Structure (CR7-L5) - Used enumerate() in _build_tree first loop for idiomatic Python (CR7-L7) - Fixed false-start anchor test (CR5-T4) broken by CR6-L3 global cap: reduced preamble fragments from 15 to 3 so total attempts stay within _MAX_GLOBAL_JSON_ATTEMPTS (CR7-T1) - Fixed test plan_ids containing non-Crockford-Base32 characters (L→K) to pass ULID format validation (CR7-T2) Tests: - 105 Behave BDD scenarios in features/strategy_actor_llm.feature adding: global JSON attempt cap exhaustion (CR7-L3), orphaned dependency edge silent drop (CR7-L4), non-ULID plan_id rejection in execute() and build_decisions() (CR7-M2) - 101 Behave BDD scenarios in features/strategy_actor_llm.feature including new scenarios for _truncate_at_word edge cases (L3), create_llm argument verification (L4), non-numeric step field fallback (L5), updated assertions for XML-delimited prompts and _parse_actor_name partial-segment preservation (M2), lifecycle exception fallback (R1), PydanticValidationError re-raise verification (R2), self-loop cycle detection (R3), whitespace-only actor name (R4), XML tag injection sanitisation (CR3-M1), preamble bracket fragment parsing (CR3-M2), _truncate_at_word sub-3 limit (CR3-L2), resolve_strategy_actor with both llm config and registry (CR3-L5), build_decisions unresolvable parent_id fallback (CR3-L7), XML injection in resources/project_context/acms_context fields (CR4-S1), ampersand escaping (CR4-S1d), false-start anchor retry budget (CR4-T3), non-sequential step edge specificity (CR4-T4), plan_id propagation (CR5-T1), sequence_number monotonicity (CR5-T2), max_chars=3 boundary (CR5-T3), false-start anchor specificity (CR5-T4), word-boundary truncation (CR5-T5), invariant prompt constraints (CR6-M2), invariant XML sanitisation (CR6-M3), invariant truncation cap (CR6-M4), negative max_chars (CR6-M5), and no-space truncation (CR6-L8) - 7 Robot Framework integration tests in robot/strategy_actor.robot - Mock LLM provider in features/mocks/mock_strategy_llm.py All nox stages pass: lint, typecheck, unit_tests (13789 scenarios), integration_tests (1863 passed). integration_tests (1863 passed, 2 pre-existing TDD failures unrelated to this change). ISSUES CLOSED: #828 |
||
|
|
5a57eb9a07
|
Build: doom loops are detected and killed
CI / push-validation (push) Successful in 17s
CI / build (push) Successful in 36s
CI / lint (push) Successful in 38s
CI / helm (push) Successful in 43s
CI / typecheck (push) Successful in 50s
CI / quality (push) Successful in 3m42s
CI / integration_tests (push) Successful in 3m59s
CI / security (push) Successful in 4m8s
CI / e2e_tests (push) Successful in 4m17s
CI / unit_tests (push) Successful in 8m29s
CI / docker (push) Successful in 10s
CI / coverage (push) Successful in 13m52s
CI / status-check (push) Successful in 1s
|
||
|
|
acb901abf1
|
Build: Refined some of the wording in the supervisors to get more reliable performance out of them. Made permissions stricter so we will get less circumvention of intended permissions
CI / push-validation (push) Successful in 16s
CI / helm (push) Successful in 17s
CI / typecheck (push) Successful in 1m4s
CI / build (push) Successful in 3m19s
CI / lint (push) Successful in 3m19s
CI / quality (push) Successful in 3m49s
CI / integration_tests (push) Successful in 4m0s
CI / security (push) Successful in 4m5s
CI / e2e_tests (push) Successful in 6m12s
CI / unit_tests (push) Successful in 9m35s
CI / docker (push) Successful in 1m31s
CI / coverage (push) Successful in 13m52s
CI / status-check (push) Successful in 1s
|
||
|
|
0d6b197504 |
docs(timeline): update schedule adherence Day 104 (2026-04-14) [AUTO-TIME-1]
CI / helm (push) Successful in 24s
CI / push-validation (push) Successful in 17s
CI / lint (push) Successful in 3m21s
CI / build (push) Successful in 3m17s
CI / quality (push) Successful in 3m54s
CI / typecheck (push) Successful in 3m58s
CI / security (push) Successful in 4m9s
CI / e2e_tests (push) Successful in 6m51s
CI / integration_tests (push) Successful in 9m44s
CI / push-validation (pull_request) Successful in 18s
CI / helm (pull_request) Successful in 25s
CI / unit_tests (push) Successful in 11m5s
CI / docker (push) Successful in 1m54s
CI / lint (pull_request) Successful in 3m20s
CI / build (pull_request) Successful in 3m18s
CI / quality (pull_request) Successful in 3m41s
CI / typecheck (pull_request) Successful in 3m42s
CI / security (pull_request) Successful in 3m49s
CI / e2e_tests (pull_request) Successful in 4m26s
CI / integration_tests (pull_request) Successful in 7m38s
CI / unit_tests (pull_request) Successful in 8m38s
CI / coverage (push) Successful in 14m29s
CI / status-check (push) Successful in 1s
CI / docker (pull_request) Successful in 1m57s
CI / coverage (pull_request) Successful in 14m35s
CI / status-check (pull_request) Successful in 1s
|
||
|
|
78cfdc9b1b
|
Build: Improved merge, review, and implementor logic to have better and more clear priorities
CI / push-validation (push) Successful in 10s
CI / helm (push) Successful in 24s
CI / lint (push) Successful in 35s
CI / build (push) Successful in 40s
CI / typecheck (push) Successful in 48s
CI / e2e_tests (push) Successful in 3m26s
CI / quality (push) Successful in 3m53s
CI / security (push) Successful in 4m5s
CI / integration_tests (push) Successful in 6m26s
CI / unit_tests (push) Successful in 7m28s
CI / docker (push) Successful in 1m36s
CI / coverage (push) Successful in 17m32s
CI / status-check (push) Successful in 1s
|
||
|
|
510cb03d99 |
docs(spec): add v3.8.0 Server Implementation milestone plan and update status table (#7701)
CI / push-validation (push) Successful in 19s
CI / helm (push) Successful in 23s
CI / build (push) Successful in 36s
CI / e2e_tests (push) Successful in 3m20s
CI / lint (push) Successful in 3m20s
CI / security (push) Successful in 4m5s
CI / quality (push) Successful in 4m19s
CI / typecheck (push) Successful in 4m25s
CI / integration_tests (push) Successful in 9m23s
CI / unit_tests (push) Has been cancelled
CI / coverage (push) Has been cancelled
CI / docker (push) Has been cancelled
CI / status-check (push) Has been cancelled
Co-authored-by: CleverThis <hal9000@cleverthis.com> Co-committed-by: CleverThis <hal9000@cleverthis.com> |
||
|
|
df863f169b |
docs(api): add ACMS/UKO API reference and update nav
CI / lint (pull_request) Successful in 35s
CI / typecheck (pull_request) Successful in 45s
CI / quality (pull_request) Successful in 41s
CI / security (pull_request) Successful in 49s
CI / build (pull_request) Successful in 32s
CI / helm (pull_request) Successful in 26s
CI / push-validation (pull_request) Successful in 23s
CI / e2e_tests (pull_request) Successful in 3m38s
CI / integration_tests (pull_request) Successful in 4m36s
CI / unit_tests (pull_request) Successful in 5m25s
CI / docker (pull_request) Successful in 10s
CI / coverage (pull_request) Successful in 16m0s
CI / status-check (pull_request) Successful in 1s
CI / lint (push) Successful in 23s
CI / quality (push) Successful in 41s
CI / security (push) Successful in 54s
CI / typecheck (push) Successful in 56s
CI / build (push) Successful in 20s
CI / helm (push) Successful in 24s
CI / push-validation (push) Successful in 33s
CI / integration_tests (push) Successful in 4m6s
CI / e2e_tests (push) Successful in 4m27s
CI / unit_tests (push) Successful in 5m42s
CI / docker (push) Successful in 1m36s
CI / coverage (push) Successful in 10m56s
CI / status-check (push) Successful in 1s
Add comprehensive API documentation for the cleveragents.acms package, covering the four-layer UKO ontology hierarchy (Layer 0-3), all public types (VocabularyRegistry, ProvenanceInfo, UKOClass, UKOProperty, UKOVocabulary, Layer2Dependency, ParadigmVocabulary), detail level maps (DetailLevelMapBuilder, build_detail_level_map, build_effective_map, resolve_detail_level), and all Layer 3 language vocabulary types for Python, TypeScript, Rust, and Java. - Add docs/api/acms.md with full API reference and usage example - Update docs/api/index.md to include ACMS/UKO in the module index - Update mkdocs.yml nav to include the new ACMS/UKO page - Update CHANGELOG.md [Unreleased] with the documentation addition |
||
|
|
9db348e5f6 |
docs(timeline): update schedule adherence Day 102 (2026-04-12)
CI / lint (pull_request) Successful in 39s
CI / typecheck (pull_request) Successful in 1m18s
CI / security (pull_request) Successful in 1m29s
CI / quality (pull_request) Successful in 48s
CI / build (pull_request) Successful in 30s
CI / push-validation (pull_request) Successful in 30s
CI / helm (pull_request) Successful in 42s
CI / e2e_tests (pull_request) Successful in 4m26s
CI / integration_tests (pull_request) Successful in 4m55s
CI / unit_tests (pull_request) Successful in 5m34s
CI / docker (pull_request) Successful in 16s
CI / coverage (pull_request) Successful in 14m35s
CI / status-check (pull_request) Successful in 1s
CI / lint (push) Successful in 23s
CI / typecheck (push) Successful in 53s
CI / quality (push) Successful in 43s
CI / security (push) Successful in 59s
CI / helm (push) Successful in 23s
CI / build (push) Successful in 26s
CI / push-validation (push) Successful in 18s
CI / e2e_tests (push) Successful in 3m14s
CI / integration_tests (push) Successful in 6m40s
CI / unit_tests (push) Successful in 8m4s
CI / docker (push) Successful in 11s
CI / coverage (push) Successful in 14m37s
CI / status-check (push) Successful in 1s
|
||
|
|
6559a0e9df |
docs: integrate docs-writer automation tracking workflows
CI / lint (pull_request) Successful in 51s
CI / quality (pull_request) Successful in 49s
CI / typecheck (pull_request) Successful in 58s
CI / security (pull_request) Successful in 53s
CI / build (pull_request) Successful in 24s
CI / push-validation (pull_request) Successful in 20s
CI / helm (pull_request) Successful in 23s
CI / e2e_tests (pull_request) Successful in 4m3s
CI / integration_tests (pull_request) Successful in 8m37s
CI / unit_tests (pull_request) Successful in 11m26s
CI / coverage (pull_request) Successful in 14m48s
CI / docker (pull_request) Successful in 11s
CI / status-check (pull_request) Successful in 1s
CI / lint (push) Successful in 19s
CI / quality (push) Successful in 45s
CI / security (push) Successful in 1m0s
CI / typecheck (push) Successful in 1m29s
CI / build (push) Successful in 39s
CI / helm (push) Successful in 25s
CI / push-validation (push) Successful in 18s
CI / e2e_tests (push) Successful in 4m42s
CI / integration_tests (push) Successful in 7m12s
CI / unit_tests (push) Successful in 8m52s
CI / coverage (push) Successful in 13m35s
CI / docker (push) Successful in 16s
CI / status-check (push) Successful in 1s
- document docs-writer responsibilities and automation tracking requirements\n- enforce automation tracking label validation and clean coverage regression tags\n\nISSUES CLOSED: #7616 # Conflicts: # CHANGELOG.md # docs/development/automation-tracking.md # docs/development/docs-writer.md # mkdocs.yml |
||
|
|
acc5f01155 |
docs(changelog): add plan action-arguments UNIQUE constraint fix (#4197)
CI / lint (pull_request) Successful in 26s
CI / build (pull_request) Successful in 25s
CI / push-validation (pull_request) Successful in 18s
CI / typecheck (pull_request) Successful in 50s
CI / quality (pull_request) Successful in 56s
CI / security (pull_request) Successful in 1m1s
CI / helm (pull_request) Successful in 43s
CI / e2e_tests (pull_request) Successful in 4m13s
CI / integration_tests (pull_request) Successful in 4m21s
CI / unit_tests (pull_request) Successful in 5m23s
CI / docker (pull_request) Successful in 22s
CI / coverage (pull_request) Successful in 10m47s
CI / status-check (pull_request) Successful in 1s
CI / lint (push) Successful in 23s
CI / build (push) Successful in 21s
CI / helm (push) Successful in 23s
CI / typecheck (push) Successful in 48s
CI / quality (push) Successful in 51s
CI / security (push) Successful in 1m1s
CI / push-validation (push) Successful in 44s
CI / integration_tests (push) Successful in 4m21s
CI / e2e_tests (push) Successful in 4m29s
CI / unit_tests (push) Successful in 5m30s
CI / docker (push) Successful in 11s
CI / coverage (push) Successful in 11m19s
CI / status-check (push) Successful in 1s
Documents the fix for sqlite3.IntegrityError when agents plan use is called on an action that already has arguments registered via action create. ISSUES CLOSED: #6856 |
||
|
|
64b1f4c0b6
|
Build: improve grooming worker permissions, milestone enforcement, and PR merge throughput
CI / lint (push) Successful in 21s
CI / quality (push) Successful in 43s
CI / security (push) Successful in 51s
CI / build (push) Successful in 28s
CI / helm (push) Successful in 40s
CI / push-validation (push) Successful in 27s
CI / typecheck (push) Successful in 1m20s
CI / e2e_tests (push) Successful in 3m25s
CI / integration_tests (push) Successful in 3m59s
CI / unit_tests (push) Successful in 5m13s
CI / docker (push) Successful in 10s
CI / coverage (push) Successful in 12m9s
CI / status-check (push) Successful in 1s
CI / lint (pull_request) Successful in 31s
CI / typecheck (pull_request) Successful in 48s
CI / quality (pull_request) Successful in 37s
CI / security (pull_request) Successful in 58s
CI / helm (pull_request) Successful in 22s
CI / build (pull_request) Successful in 34s
CI / push-validation (pull_request) Successful in 16s
CI / e2e_tests (pull_request) Successful in 4m10s
CI / integration_tests (pull_request) Successful in 4m20s
CI / coverage (pull_request) Has been cancelled
CI / unit_tests (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
- Fix grooming-worker Forgejo permissions (deny → allow) to unblock direct API calls - Route PR label fetching through forgejo-label-manager subagent - Replace priority-alignment check with milestone enforcement (every issue must have a milestone) - Add step 11: address non-code review remarks (labels, description, milestone) during grooming - Clarify grooming-pool-supervisor stale threshold to explicit 24-hour window - Refactor pr-merge-pool-supervisor main loop into explicit numbered steps - Add triage strategy section emphasising parallel review checks and immediate worker dispatch - Tighten merge criteria: explicit APPROVED state, no unresolved REQUEST_CHANGES on current head - Dispatch workers for all PR processing, not only rebase operations - Add rule to batch forgejo_list_pull_reviews calls instead of checking serially |
||
|
|
e757ca9db0 |
docs(contributors): add HAL 9000 concurrency-fix contribution detail
CI / lint (pull_request) Successful in 39s
CI / quality (pull_request) Successful in 41s
CI / typecheck (pull_request) Successful in 57s
CI / security (pull_request) Successful in 57s
CI / build (pull_request) Successful in 45s
CI / helm (pull_request) Successful in 45s
CI / push-validation (pull_request) Successful in 20s
CI / e2e_tests (pull_request) Successful in 4m5s
CI / integration_tests (pull_request) Successful in 4m14s
CI / unit_tests (pull_request) Successful in 5m30s
CI / docker (pull_request) Successful in 1m33s
CI / coverage (pull_request) Successful in 13m0s
CI / status-check (pull_request) Successful in 1s
CI / lint (push) Successful in 29s
CI / quality (push) Successful in 48s
CI / typecheck (push) Successful in 58s
CI / security (push) Successful in 59s
CI / build (push) Successful in 34s
CI / push-validation (push) Successful in 29s
CI / helm (push) Successful in 36s
CI / e2e_tests (push) Successful in 3m22s
CI / integration_tests (push) Successful in 5m46s
CI / unit_tests (push) Successful in 8m50s
CI / docker (push) Successful in 2m10s
CI / coverage (push) Successful in 13m38s
CI / status-check (push) Successful in 1s
Add a Details entry for HAL 9000 describing the plan lifecycle concurrency race-condition fix (#7989) — wiring LockService into execute_plan/apply_plan with unique per-invocation owner identities. ISSUES CLOSED: #7989 |
||
|
|
b1f7b51a80 |
fix(concurrency): fix lock owner identity to prevent re-entrant acquisition
The original implementation used plan_id as the owner_id when acquiring the advisory lock. Because LockService treats owner_id as the caller identity and allows re-entrant acquisition for the same owner, concurrent sessions attempting to lock the same plan would all present the same owner_id and thus silently renew the lock instead of raising LockConflictError. This fix generates a unique UUID for each invocation as the owner_id, ensuring that concurrent sessions present different owners and thus trigger LockConflictError when attempting to acquire the same plan lock. The lock is still acquired before the phase transition and released in a finally block to ensure cleanup even on error. ISSUES CLOSED: #8067 |
||
|
|
b83f575cb5 |
fix(concurrency): wire LockService into plan lifecycle — guard execute_plan and apply_plan
LockService was implemented but never integrated into the plan execution path, leaving execute_plan() and apply_plan() unprotected against concurrent calls on the same plan_id (race condition, issue #7989). Changes: - container.py: add _build_lock_service() factory and register LockService as a Singleton provider; inject it into PlanLifecycleService via the DI container. - plan_lifecycle_service.py: accept optional lock_service parameter in __init__; in execute_plan() and apply_plan() acquire a plan-level advisory lock before the critical section and release it in a finally block so the lock is always freed even when exceptions occur. When lock_service is None (existing tests without DI wiring) the behaviour is unchanged — locking is silently skipped for backward compatibility. Closes #7989 |
||
|
|
38bcd41338
|
Build: Better protection against agents editing the main working directory
CI / lint (push) Successful in 24s
CI / typecheck (push) Successful in 54s
CI / quality (push) Successful in 45s
CI / security (push) Successful in 1m15s
CI / build (push) Successful in 29s
CI / push-validation (push) Successful in 30s
CI / helm (push) Successful in 37s
CI / e2e_tests (push) Successful in 3m39s
CI / integration_tests (push) Successful in 4m28s
CI / unit_tests (push) Successful in 5m22s
CI / docker (push) Successful in 21s
CI / coverage (push) Successful in 11m39s
CI / status-check (push) Successful in 1s
|
||
|
|
c11b05b773 |
docs(changelog): add v3.3.0 changelog entry for #7582 fail_fast fix
CI / lint (pull_request) Successful in 30s
CI / typecheck (pull_request) Successful in 1m6s
CI / security (pull_request) Successful in 1m7s
CI / quality (pull_request) Successful in 42s
CI / helm (pull_request) Successful in 27s
CI / build (pull_request) Successful in 34s
CI / push-validation (pull_request) Successful in 23s
CI / e2e_tests (pull_request) Successful in 3m17s
CI / integration_tests (pull_request) Successful in 4m13s
CI / unit_tests (pull_request) Successful in 5m36s
CI / docker (pull_request) Successful in 1m37s
CI / coverage (pull_request) Successful in 11m50s
CI / status-check (pull_request) Successful in 2s
CI / lint (push) Successful in 36s
CI / typecheck (push) Successful in 53s
CI / quality (push) Successful in 30s
CI / security (push) Successful in 1m16s
CI / helm (push) Successful in 22s
CI / push-validation (push) Successful in 15s
CI / e2e_tests (push) Successful in 3m50s
CI / build (push) Successful in 3m32s
CI / integration_tests (push) Successful in 6m45s
CI / unit_tests (push) Successful in 7m39s
CI / docker (push) Successful in 1m19s
CI / coverage (push) Successful in 14m59s
CI / status-check (push) Successful in 1s
|
||
|
|
3cfa24854a |
fix(concurrency): fix SubplanExecutionService._execute_parallel() #7582
Ensure fail_fast cancels in-flight futures and reports them as CANCELLED. Add Behave coverage that reproduces the concurrency regression. ISSUES CLOSED: #7582 |
||
|
|
a71c142854
|
Build: Made conflict resolution a more explicit part of the pr-merge agents
CI / helm (push) Successful in 35s
CI / push-validation (push) Successful in 19s
CI / build (push) Successful in 3m57s
CI / lint (push) Successful in 4m3s
CI / quality (push) Successful in 4m34s
CI / typecheck (push) Successful in 4m44s
CI / security (push) Successful in 4m50s
CI / e2e_tests (push) Successful in 7m3s
CI / integration_tests (push) Successful in 10m13s
CI / unit_tests (push) Successful in 11m21s
CI / docker (push) Successful in 1m30s
CI / coverage (push) Successful in 10m42s
CI / status-check (push) Successful in 1s
|
||
|
|
a0664ad662
|
Build: enforce pagination with agents
CI / status-check (push) Blocked by required conditions
CI / push-validation (push) Successful in 17s
CI / helm (push) Successful in 31s
CI / quality (push) Successful in 43s
CI / typecheck (push) Successful in 55s
CI / lint (push) Successful in 3m20s
CI / build (push) Successful in 3m23s
CI / security (push) Successful in 4m5s
CI / integration_tests (push) Successful in 4m14s
CI / e2e_tests (push) Successful in 7m21s
CI / unit_tests (push) Successful in 8m22s
CI / docker (push) Successful in 10s
CI / coverage (push) Failing after 21m53s
|
||
|
|
ad069c2012
|
Build: Fixed forgejo tool permissions in the agents and fixed the label manager so it reliably works with org level labels
CI / push-validation (push) Successful in 20s
CI / helm (push) Successful in 22s
CI / build (push) Successful in 3m18s
CI / lint (push) Successful in 3m21s
CI / quality (push) Successful in 3m40s
CI / typecheck (push) Successful in 3m59s
CI / security (push) Successful in 4m5s
CI / e2e_tests (push) Successful in 6m10s
CI / integration_tests (push) Successful in 6m12s
CI / unit_tests (push) Successful in 7m31s
CI / docker (push) Successful in 1m32s
CI / coverage (push) Successful in 13m52s
CI / status-check (push) Successful in 1s
|
||
|
|
fd68b85c7b |
Revert "Build: Removed unnessecary status-check target as well"
CI / push-validation (push) Successful in 16s
CI / helm (push) Successful in 35s
CI / lint (push) Successful in 3m21s
CI / build (push) Successful in 3m21s
CI / quality (push) Successful in 3m41s
CI / integration_tests (push) Successful in 3m52s
CI / typecheck (push) Successful in 3m59s
CI / security (push) Successful in 4m5s
CI / e2e_tests (push) Successful in 6m25s
CI / unit_tests (push) Successful in 8m12s
CI / docker (push) Successful in 21s
CI / coverage (push) Successful in 13m51s
CI / status-check (push) Successful in 1s
This reverts commit
|
||
|
|
9998b4f9ad |
Build: Removed unnessecary status-check target as well
CI / lint (push) Successful in 46s
CI / quality (push) Successful in 43s
CI / typecheck (push) Successful in 1m9s
CI / security (push) Successful in 1m5s
CI / push-validation (push) Successful in 20s
CI / helm (push) Successful in 22s
CI / unit_tests (push) Failing after 7m42s
CI / docker (push) Has been skipped
CI / integration_tests (push) Failing after 9m34s
CI / build (push) Failing after 10m58s
CI / e2e_tests (push) Failing after 10m59s
CI / docker (pull_request) Has been skipped
CI / coverage (push) Successful in 22m29s
CI / coverage (pull_request) Successful in 14m42s
CI / security (pull_request) Successful in 10m42s
CI / integration_tests (pull_request) Failing after 9m42s
CI / unit_tests (pull_request) Failing after 10m35s
CI / e2e_tests (pull_request) Successful in 11m9s
CI / helm (pull_request) Successful in 46s
CI / push-validation (pull_request) Successful in 1m4s
CI / quality (pull_request) Successful in 8m59s
CI / build (pull_request) Successful in 7m35s
CI / lint (pull_request) Successful in 9m0s
CI / typecheck (pull_request) Successful in 9m39s
|
||
|
|
836b0e19c3 |
docs: confirm HAL 9000 contributor entry in CONTRIBUTORS.md
CI / lint (pull_request) Successful in 38s
CI / typecheck (pull_request) Successful in 53s
CI / quality (pull_request) Successful in 34s
CI / security (pull_request) Successful in 1m30s
CI / build (pull_request) Successful in 37s
CI / helm (pull_request) Successful in 39s
CI / push-validation (pull_request) Successful in 25s
CI / e2e_tests (pull_request) Successful in 3m8s
CI / integration_tests (pull_request) Successful in 6m51s
CI / unit_tests (pull_request) Successful in 8m11s
CI / docker (pull_request) Successful in 1m24s
CI / coverage (pull_request) Successful in 13m12s
CI / status-check (pull_request) Successful in 2s
CI / lint (push) Waiting to run
CI / typecheck (push) Waiting to run
CI / security (push) Waiting to run
CI / quality (push) Waiting to run
CI / unit_tests (push) Waiting to run
CI / integration_tests (push) Waiting to run
CI / e2e_tests (push) Waiting to run
CI / coverage (push) Blocked by required conditions
CI / build (push) Waiting to run
CI / docker (push) Blocked by required conditions
CI / helm (push) Waiting to run
CI / push-validation (push) Waiting to run
CI / status-check (push) Blocked by required conditions
HAL 9000 was already listed in the Contributors section. This commit adds a detail entry in the Details section to explicitly document the nature of HAL 9000's contributions (automated implementation, bug fixes, and feature development), satisfying the CONTRIBUTING.md requirement to update CONTRIBUTORS.md when making a change. ISSUES CLOSED: #8232 |
||
|
|
c0d631b6cc |
fix: custom automation profiles silently fall back to manual
_resolve_profile_for_plan in PlanLifecycleService now raises a clear ValidationError when a plan's automation profile name is not a known built-in profile, instead of silently falling back to 'manual'. Users who configured custom automation profiles (e.g. 'semi-auto', 'acme/strict') will now receive an actionable error message listing available built-in profiles. The resolved profile name is also logged at debug level for observability. Added BDD regression tests (8 scenarios) covering: - Built-in profiles resolve correctly - Plans with no profile set resolve to 'manual' - Custom/unknown profile names raise ValidationError - Error message mentions the unknown profile name - Error message lists available built-in profiles - Debug log records the resolved profile name ISSUES CLOSED: #8232 |
||
|
|
5438540803 |
build: Removed benchmark stage from CI, moving this to its own workflow
CI / lint (push) Successful in 22s
CI / typecheck (push) Successful in 49s
CI / quality (push) Successful in 37s
CI / security (push) Successful in 57s
CI / build (push) Successful in 26s
CI / push-validation (push) Successful in 16s
CI / helm (push) Successful in 39s
CI / e2e_tests (push) Successful in 3m7s
CI / integration_tests (push) Successful in 6m26s
CI / unit_tests (push) Successful in 7m46s
CI / docker (push) Successful in 20s
CI / coverage (push) Successful in 14m50s
CI / status-check (push) Successful in 1s
CI / typecheck (pull_request) Failing after 55s
CI / quality (pull_request) Successful in 48s
CI / security (pull_request) Successful in 53s
CI / build (pull_request) Successful in 28s
CI / helm (pull_request) Successful in 24s
CI / push-validation (pull_request) Successful in 27s
CI / lint (pull_request) Failing after 11m48s
CI / unit_tests (pull_request) Failing after 12m26s
CI / coverage (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / e2e_tests (pull_request) Failing after 17m45s
CI / integration_tests (pull_request) Failing after 19m36s
CI / status-check (pull_request) Has been cancelled
|
||
|
|
c5afe1f3a7 |
Build: Made the prompts coming from the product builder to the async subagent more clear to avoid issues in the future
CI / benchmark-publish (push) Waiting to run
CI / lint (push) Successful in 29s
CI / security (push) Successful in 55s
CI / quality (push) Successful in 34s
CI / typecheck (push) Successful in 1m26s
CI / benchmark-regression (push) Waiting to run
CI / build (push) Successful in 39s
CI / helm (push) Successful in 38s
CI / push-validation (push) Successful in 26s
CI / e2e_tests (push) Successful in 3m16s
CI / integration_tests (push) Successful in 6m52s
CI / unit_tests (push) Successful in 8m17s
CI / docker (push) Successful in 1m34s
CI / coverage (push) Successful in 13m52s
CI / status-check (push) Successful in 1s
|
||
|
|
c5820266fd |
Build: improced merge agent logic to ensure faster and more effective merging into master
CI / benchmark-publish (push) Waiting to run
CI / lint (push) Successful in 29s
CI / typecheck (push) Successful in 1m10s
CI / security (push) Successful in 1m6s
CI / quality (push) Successful in 31s
CI / benchmark-regression (push) Waiting to run
CI / build (push) Successful in 32s
CI / helm (push) Successful in 37s
CI / push-validation (push) Successful in 29s
CI / e2e_tests (push) Successful in 3m11s
CI / integration_tests (push) Successful in 4m22s
CI / unit_tests (push) Successful in 6m2s
CI / docker (push) Successful in 1m39s
CI / coverage (push) Successful in 11m15s
CI / status-check (push) Successful in 1s
|
||
|
|
5a9aaa79ed |
Build: Reinforced label enforcement, and ensure implementation workers dont continue work on a mergable PR.
CI / lint (push) Successful in 39s
CI / quality (push) Successful in 41s
CI / typecheck (push) Successful in 52s
CI / build (push) Successful in 36s
CI / helm (push) Successful in 27s
CI / push-validation (push) Successful in 18s
CI / security (push) Successful in 4m5s
CI / e2e_tests (push) Successful in 3m43s
CI / integration_tests (push) Successful in 4m2s
CI / unit_tests (push) Successful in 5m37s
CI / docker (push) Successful in 22s
CI / coverage (push) Successful in 11m0s
CI / status-check (push) Successful in 1s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
|
||
|
|
16883859b1 |
Build: some fixes to the automation tracking tickets ensuring they get cleaned up and handled more correctly, and announcements read in a more useful way
CI / lint (push) Successful in 3m23s
CI / helm (push) Successful in 24s
CI / build (push) Successful in 3m47s
CI / push-validation (push) Successful in 24s
CI / quality (push) Successful in 3m58s
CI / typecheck (push) Successful in 4m0s
CI / security (push) Successful in 4m46s
CI / benchmark-regression (push) Has been skipped
CI / e2e_tests (push) Successful in 7m50s
CI / integration_tests (push) Successful in 7m59s
CI / unit_tests (push) Successful in 9m17s
CI / docker (push) Successful in 1m31s
CI / coverage (push) Successful in 10m52s
CI / status-check (push) Successful in 1s
CI / benchmark-publish (push) Has been cancelled
|
||
|
|
978849412d |
docs(reference): align A2A facade API with implementation
CI / push-validation (push) Successful in 18s
CI / lint (push) Successful in 19s
CI / build (push) Successful in 37s
CI / helm (push) Successful in 37s
CI / quality (push) Successful in 46s
CI / typecheck (push) Successful in 53s
CI / e2e_tests (push) Successful in 4m10s
CI / integration_tests (push) Successful in 4m15s
CI / security (push) Successful in 4m16s
CI / unit_tests (push) Successful in 5m28s
CI / docker (push) Successful in 10s
CI / coverage (push) Successful in 11m7s
CI / status-check (push) Successful in 1s
CI / benchmark-regression (push) Has been skipped
CI / benchmark-publish (push) Successful in 1h13m43s
Fixes docs/reference/a2a.md Local Facade section. Issues #6620 and #6624. Fixes #6620 Fixes #6624 Automatically merged by PR Merge Pool Supervisor [AUTO-PRMRG-SUP] --- **Automated by CleverAgents Bot** Supervisor: PR Merge | Agent: pr-merge-pool-supervisor Co-authored-by: CleverThis <hal9000@cleverthis.com> Co-committed-by: CleverThis <hal9000@cleverthis.com> |
||
|
|
2005b8ef82 |
feat(tests): replace all @skip tags with proper @tdd_expected_fail tags or remove them across the entire codebase (#7221)
CI / push-validation (push) Successful in 18s
CI / build (push) Successful in 19s
CI / helm (push) Successful in 24s
CI / lint (push) Successful in 29s
CI / security (push) Successful in 1m11s
CI / e2e_tests (push) Successful in 2m56s
CI / quality (push) Successful in 3m40s
CI / typecheck (push) Successful in 3m59s
CI / integration_tests (push) Successful in 4m3s
CI / unit_tests (push) Successful in 4m55s
CI / docker (push) Successful in 10s
CI / coverage (push) Successful in 10m44s
CI / status-check (push) Successful in 1s
CI / benchmark-regression (push) Has been skipped
CI / benchmark-publish (push) Successful in 1h13m28s
## Summary Replaces all 234 bare `@skip` occurrences across 82 Behave feature files with the correct TDD issue-capture tagging system described in CONTRIBUTING.md § Bug Fix Workflow. Previously, the noxfile ran Behave with `--tags=not @skip`, silently excluding all `@skip`-tagged scenarios from every CI run. These tests never ran, never inverted results via the `@tdd_expected_fail` mechanism, and never contributed to coverage — defeating the purpose of TDD issue-capture testing. Every `@skip` occurrence had a commented-out hint line immediately above it showing the intended proper tags (e.g., `# @tdd_issue @tdd_issue_4272 @tdd_expected_fail @skip`), confirming they were all intended for conversion. ## Changes ### Mechanical conversion (234 replacements across 82 files) - Extracted the proper TDD tags from the comment hint above each `@skip` line, removed `@skip` from the tag set, and replaced the `@skip` line with those tags. - Removed the now-redundant comment hint lines alongside each replacement. ### Bug-fixed scenarios — `@tdd_expected_fail` removed (84 scenarios) - After conversion, ran `nox -s unit_tests` to identify which newly-enabled `@tdd_expected_fail` scenarios now **pass** (their referenced bugs have already been fixed). Removed `@tdd_expected_fail` from those 84 scenarios and their corresponding feature-level tags, leaving only the permanent `@tdd_issue @tdd_issue_<N>` regression-guard tags. - Affected features include: `tdd_tool_runner_env_precedence`, `tdd_automation_profile_session_leak`, `tls_certificate_check`, `project_create_persist`, `resource_type_bootstrap_*`, and 18 others. ### Noxfile cleanup - Removed all four `--tags=not @skip` arguments from `noxfile.py` (unit_tests and coverage sessions). With zero `@skip` tags remaining in the codebase, this filter was dead code and its presence would mislead future maintainers into thinking `@skip` is still a supported escape mechanism. ### Regression guard files - Split the regression guards into two focused files: - `tdd_regression_guards_exec_env.feature` for bug #4281 (exec-env precedence) - `tdd_regression_guards_session_list.feature` for bug #4271 (session list summary) - Each file carries only its own `@tdd_issue` tags at the feature level, avoiding cross-contamination via Behave tag inheritance. The `Background` step (`session-list-summary mock`) only appears in the session-list file where it is actually needed. ### Duplicate tag cleanup - Removed duplicate `@tdd_issue @tdd_issue_4287` tag lines in `tdd_skill_add_regression.feature` (lines 20 and 29). ### Inline comment for retained `@tdd_expected_fail` - Added inline comment in `ci_workflow_validation.feature:134` explaining why this specific #4227 scenario retains `@tdd_expected_fail` despite #4227 being closed (CI YAML does not encode threshold as a machine-readable value). ### Known edge cases — `@tdd_expected_fail` retained (closed issues, fix on master, scenarios still fail) The following issues are **closed** and their fixes **are on master**, but the specific test assertions still fail because the fixes address other aspects of the bugs. The `@tdd_expected_fail` tags are functionally correct and must remain until the specific scenario assertions pass: - `tdd_exec_env_resolution_precedence.feature` — bug #1080 (closed 2026-03-31). The precedence-level-2-vs-4 scenario still fails. - `session_list_summary_dedup.feature` — bug #3046 (closed 2026-04-05). The dedup-consistency scenarios still fail. - `actor_add_update_enforcement.feature` — bug #2609 (closed 2026-04-05). The enforcement scenarios still fail. - `ci_workflow_validation.feature:134` — #4227 (closed 2026-04-08). The CI YAML threshold assertion still fails. ## Verification - `grep -r "@skip" features/ --include="*.feature"` → **zero results** ✓ - `grep -n "tags=not @skip" noxfile.py` → **zero results** ✓ - `nox -s unit_tests` → **629 features passed, 0 failed** ✓ (up from ~545 before this PR) - CI all green (coverage ≥ 97%) ✓ - Integration tests (Robot Framework) do not use `@skip` — confirmed no action needed ✓ - E2E tests (Robot Framework) do not use `@skip` — confirmed no action needed ✓ - `CHANGELOG.md` updated with entry for this change ✓ - `CONTRIBUTORS.md` — Rui Hu already listed ✓ ## Issues Addressed Closes #7025 Co-authored-by: CleverThis <hal9000@cleverthis.com> Reviewed-on: #7221 Reviewed-by: HAL 9000 <HAL9000@cleverthis.com> Reviewed-by: HAL9001 <hal9001@cleverthis.com> Co-authored-by: Rui Hu <rui.hu@cleverthis.com> Co-committed-by: Rui Hu <rui.hu@cleverthis.com> |
||
|
|
96ff9d0ff8 |
build:added some excplict priorities
CI / push-validation (push) Successful in 18s
CI / lint (push) Successful in 19s
CI / helm (push) Successful in 24s
CI / quality (push) Successful in 32s
CI / typecheck (push) Successful in 52s
CI / security (push) Successful in 58s
CI / benchmark-regression (push) Has been skipped
CI / build (push) Successful in 3m18s
CI / integration_tests (push) Successful in 3m56s
CI / unit_tests (push) Successful in 5m27s
CI / docker (push) Successful in 10s
CI / e2e_tests (push) Successful in 7m6s
CI / coverage (push) Successful in 13m23s
CI / status-check (push) Successful in 1s
CI / benchmark-publish (push) Has been cancelled
CI / status-check (pull_request) Successful in 1s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Successful in 57m1s
CI / push-validation (pull_request) Successful in 16s
CI / build (pull_request) Successful in 18s
CI / helm (pull_request) Successful in 23s
CI / lint (pull_request) Successful in 33s
CI / quality (pull_request) Successful in 42s
CI / typecheck (pull_request) Successful in 49s
CI / e2e_tests (pull_request) Successful in 2m59s
CI / integration_tests (pull_request) Successful in 3m56s
CI / security (pull_request) Successful in 4m4s
CI / unit_tests (pull_request) Successful in 8m18s
CI / docker (pull_request) Successful in 12s
CI / coverage (pull_request) Successful in 16m41s
|