bugfix/m1-plan-execute-sandbox-root
2183 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
d4cbbaa41f |
fix(e2e): use Extract JSON From Stdout for WF05 decision tree parsing
WF05 was manually parsing the plan tree JSON output without unwrapping the CLI envelope, causing the decision_id count to return 0. The envelope wraps the decision array in a 'data' key. Updated WF05 to use Extract JSON From Stdout which automatically unwraps the envelope, ensuring the decision walker operates on the actual decision array instead of the envelope structure. Also added a documentation note to Extract JSON From Stdout explaining which tests need refactoring to use this keyword instead of custom JSON extraction logic. |
||
|
|
8bce7f45d0 |
fix(e2e): restore M5/WF14 tests broken by JSON envelope and stale config
Two independent root causes were causing 10 non-quota E2E failures.
**M5 acceptance (9 tests + 1 cascade):**
`format_output(..., "json")` wraps all CLI JSON output in the
spec-required envelope `{"command":…,"status":"ok","exit_code":0,
"data":{…},…}`. The M5 tests were looking for payload fields
(`total_tokens`, `resolved_view`, `acms_config`, `tier_metrics`,
`plan_id`) at the top level of the extracted JSON object, but they
live inside `data`.
Fix: update `Extract JSON From Stdout` in `common_e2e.resource` to
auto-unwrap the envelope when both `exit_code` and `data` keys are
present, so callers receive the payload dict transparently. Output
from helper scripts that do not use the CLI envelope (e.g. the WF04
snapshot helper) is returned unchanged.
Also includes the already-staged m5_acceptance.robot rework that fixed
the argument-passing bug (args were previously joined into single
space-containing strings instead of passed individually to Run CLI),
removed stale `tdd_expected_fail` tags, and standardised indentation.
**WF14 server mode (1 test):**
`~/.cleveragents/config.toml` is shared across all parallel pabot
workers and across nox sessions (the `CLEVERAGENTS_HOME` env var
isolates the SQLite DB but not the config file path, which is
hardcoded to `Path.home() / ".cleveragents"`). A previous
`server_stubs.robot` run wrote `server.url = "https://stub.example.com"`
to that file. The `config set` CLI command could not overwrite the
entry because tomllib parses TOML dotted keys as nested dicts
(`{"server": {"url": "…"}}`), causing `config set` to write a new
flat key alongside the original nested entry rather than replacing it.
Fix: add `WF14 Clean Global Config` — a keyword that uses
Python/tomlkit directly to remove `server.url`, `server.token`, and
`server.namespace` from the global config TOML, handling both nested
(`[server]` table) and flat quoted-key representations. The keyword
is called from both `WF14 Suite Setup` (so any stale value is removed
before the test's `config set` runs) and `WF14 Suite Teardown` (so
subsequent runs start clean). Failures are silently ignored — a
missing config file is normal on a fresh environment.
ISSUES CLOSED: #8459
|
||
|
|
84f5d6eb6b |
fix(plan): wire sandbox_root into plan execute pipeline
Fixes three sub-bugs that caused LLM-generated files to be silently lost during plan execute: Bug 1 — Duplicate sandbox branch on second execute call: _create_sandbox_for_plan() was called before phase detection, causing a fatal duplicate-branch error when plan execute was invoked a second time on a plan already in Execute/complete. Moved sandbox creation inside the Execute/QUEUED block so repeated invocations skip it safely. Bug 2 — Changeset entries discarded after execute: The lightweight ChangeSet from LLMExecuteActor was never persisted. Now serialised to plan.error_details["changeset_entries_json"] by PlanExecutor._run_execute_with_stub(); PlanApplyService._resolve_changeset() reconstructs a SpecChangeSet from this metadata when no changeset_store is wired, so plan diff shows the generated file changes. Bug 3 — Wrong output format for plan execute --format plain: execute_plan() used the now-removed _execute_output_dict (envelope format) instead of _plan_spec_dict, inconsistent with plan use / plan apply. Switched to _plan_spec_dict; removed the dead _execute_output_dict function. Also removes tdd_expected_fail from the M1 acceptance E2E test and adds 6 new BDD regression scenarios (@tdd_issue_1313) covering all three fixes. ISSUES CLOSED: #1313 |
||
|
|
d81b5853a8 |
fix(e2e): restore M5/WF14 tests broken by JSON envelope and stale config
Two independent root causes were causing 10 non-quota E2E failures.
**M5 acceptance (9 tests + 1 cascade):**
`format_output(..., "json")` wraps all CLI JSON output in the
spec-required envelope `{"command":…,"status":"ok","exit_code":0,
"data":{…},…}`. The M5 tests were looking for payload fields
(`total_tokens`, `resolved_view`, `acms_config`, `tier_metrics`,
`plan_id`) at the top level of the extracted JSON object, but they
live inside `data`.
Fix: update `Extract JSON From Stdout` in `common_e2e.resource` to
auto-unwrap the envelope when both `exit_code` and `data` keys are
present, so callers receive the payload dict transparently. Output
from helper scripts that do not use the CLI envelope (e.g. the WF04
snapshot helper) is returned unchanged.
Also includes the already-staged m5_acceptance.robot rework that fixed
the argument-passing bug (args were previously joined into single
space-containing strings instead of passed individually to Run CLI),
removed stale `tdd_expected_fail` tags, and standardised indentation.
**WF14 server mode (1 test):**
`~/.cleveragents/config.toml` is shared across all parallel pabot
workers and across nox sessions (the `CLEVERAGENTS_HOME` env var
isolates the SQLite DB but not the config file path, which is
hardcoded to `Path.home() / ".cleveragents"`). A previous
`server_stubs.robot` run wrote `server.url = "https://stub.example.com"`
to that file. The `config set` CLI command could not overwrite the
entry because tomllib parses TOML dotted keys as nested dicts
(`{"server": {"url": "…"}}`), causing `config set` to write a new
flat key alongside the original nested entry rather than replacing it.
Fix: add `WF14 Clean Global Config` — a keyword that uses
Python/tomlkit directly to remove `server.url`, `server.token`, and
`server.namespace` from the global config TOML, handling both nested
(`[server]` table) and flat quoted-key representations. The keyword
is called from both `WF14 Suite Setup` (so any stale value is removed
before the test's `config set` runs) and `WF14 Suite Teardown` (so
subsequent runs start clean). Failures are silently ignored — a
missing config file is normal on a fresh environment.
ISSUES CLOSED: #8459
|
||
|
|
3975ad244c |
docs(spec): fix invariant reconciliation, add ACMS thread safety, v3.6.0 section, ADR-049
CI / benchmark-publish (push) Failing after 35s
CI / lint (push) Successful in 53s
CI / quality (push) Successful in 1m9s
CI / typecheck (push) Successful in 1m14s
CI / build (push) Successful in 38s
CI / security (push) Successful in 1m21s
CI / push-validation (push) Successful in 22s
CI / helm (push) Successful in 38s
CI / integration_tests (push) Successful in 3m44s
CI / e2e_tests (push) Successful in 4m5s
CI / unit_tests (push) Failing after 6m56s
CI / docker (push) Has been skipped
CI / coverage (push) Successful in 11m16s
CI / status-check (push) Failing after 3s
CI / lint (pull_request) Successful in 1m15s
CI / build (pull_request) Successful in 54s
CI / quality (pull_request) Successful in 1m27s
CI / benchmark-publish (pull_request) Has been skipped
CI / typecheck (pull_request) Successful in 1m51s
CI / security (pull_request) Successful in 1m52s
CI / push-validation (pull_request) Successful in 20s
CI / helm (pull_request) Successful in 28s
CI / integration_tests (pull_request) Successful in 4m6s
CI / e2e_tests (pull_request) Successful in 4m14s
CI / unit_tests (pull_request) Successful in 4m54s
CI / docker (pull_request) Successful in 1m45s
CI / coverage (pull_request) Successful in 14m1s
CI / status-check (pull_request) Successful in 2s
- Fix invariant glossary entry: reconciliation now documented as occurring at each phase boundary (before Strategize, Execute, Apply, and after Apply) rather than only at start of Strategize (closes #9899) - Add Multi-Phase Invariant Enforcement note to Plan Lifecycle section - Add ACMS Thread Safety subsection documenting threading.RLock concurrency contract for ContextAssemblyPipeline and all context stores (closes #9859) - Append M7: Advanced Concepts and Deferred Features (v3.6.0) milestone spec section covering advanced invariant lifecycle, ACMS observability, plan hierarchy enhancements, and CLI communication pattern migration - Add ADR-049: CLI Communication Pattern documenting local CLI exemption from A2A boundary requirement and M9 migration path |
||
|
|
0f0efe02e3 |
docs: update examples.json index with actor management workflow entry
CI / helm (pull_request) Successful in 34s
CI / build (pull_request) Successful in 50s
CI / lint (pull_request) Successful in 57s
CI / push-validation (pull_request) Successful in 28s
CI / quality (pull_request) Successful in 1m23s
CI / typecheck (pull_request) Successful in 1m28s
CI / benchmark-publish (pull_request) Has been skipped
CI / security (pull_request) Successful in 1m37s
CI / e2e_tests (pull_request) Successful in 3m46s
CI / integration_tests (pull_request) Successful in 4m32s
CI / unit_tests (pull_request) Successful in 5m50s
CI / docker (pull_request) Successful in 1m22s
CI / coverage (pull_request) Successful in 13m4s
CI / status-check (push) Blocked by required conditions
CI / benchmark-publish (push) Failing after 39s
CI / push-validation (push) Successful in 22s
CI / helm (push) Successful in 35s
CI / status-check (pull_request) Successful in 5s
CI / build (push) Successful in 50s
CI / lint (push) Successful in 1m17s
CI / quality (push) Successful in 1m34s
CI / typecheck (push) Successful in 1m36s
CI / security (push) Successful in 1m38s
CI / coverage (push) Has started running
CI / e2e_tests (push) Successful in 3m51s
CI / integration_tests (push) Successful in 4m19s
CI / unit_tests (push) Successful in 5m20s
CI / docker (push) Successful in 2m4s
ISSUES CLOSED: #7539 |
||
|
|
3cfa344110 |
docs(spec): align checkpoint trigger names and config key path with implementation
CI / build (pull_request) Successful in 54s
CI / lint (pull_request) Successful in 1m0s
CI / quality (pull_request) Successful in 1m21s
CI / typecheck (pull_request) Successful in 1m28s
CI / security (pull_request) Successful in 1m56s
CI / helm (pull_request) Successful in 24s
CI / push-validation (pull_request) Successful in 23s
CI / e2e_tests (pull_request) Successful in 5m14s
CI / integration_tests (pull_request) Successful in 6m1s
CI / unit_tests (pull_request) Successful in 7m14s
CI / docker (pull_request) Successful in 1m35s
CI / coverage (pull_request) Successful in 10m48s
CI / status-check (pull_request) Successful in 2s
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (push) Successful in 59s
CI / helm (push) Successful in 33s
CI / quality (push) Successful in 1m18s
CI / build (push) Successful in 50s
CI / security (push) Successful in 1m37s
CI / typecheck (push) Successful in 1m59s
CI / push-validation (push) Successful in 22s
CI / e2e_tests (push) Successful in 3m40s
CI / integration_tests (push) Successful in 4m20s
CI / unit_tests (push) Successful in 6m17s
CI / benchmark-publish (push) Failing after 43s
CI / docker (push) Successful in 1m53s
CI / coverage (push) Successful in 12m7s
CI / status-check (push) Successful in 3s
|
||
|
|
9f583fffeb |
ci: retrigger CI pipeline
CI / push-validation (pull_request) Successful in 25s
CI / helm (pull_request) Successful in 31s
CI / build (pull_request) Successful in 48s
CI / lint (pull_request) Successful in 57s
CI / quality (pull_request) Successful in 1m8s
CI / typecheck (pull_request) Successful in 1m22s
CI / security (pull_request) Successful in 1m42s
CI / integration_tests (pull_request) Successful in 4m3s
CI / e2e_tests (pull_request) Successful in 4m33s
CI / unit_tests (pull_request) Successful in 7m20s
CI / docker (pull_request) Successful in 1m23s
CI / coverage (pull_request) Successful in 11m51s
CI / status-check (pull_request) Successful in 3s
CI / lint (push) Successful in 1m5s
CI / helm (push) Successful in 34s
CI / quality (push) Successful in 1m19s
CI / build (push) Successful in 52s
CI / typecheck (push) Successful in 1m33s
CI / benchmark-publish (pull_request) Has been skipped
CI / security (push) Successful in 1m44s
CI / push-validation (push) Successful in 23s
CI / e2e_tests (push) Successful in 3m50s
CI / integration_tests (push) Successful in 6m24s
CI / unit_tests (push) Successful in 8m34s
CI / docker (push) Successful in 1m34s
CI / benchmark-publish (push) Failing after 41s
CI / coverage (push) Successful in 11m54s
CI / status-check (push) Successful in 4s
|
||
|
|
4c88458519 | ci: retrigger CI pipeline | ||
|
|
da214b101d |
ci: retrigger CI pipeline
Retrigger CI to resolve transient docker build failure. All code quality gates (lint, typecheck, unit_tests, integration_tests, coverage) pass. The docker failure is a CI infrastructure issue unrelated to this documentation-only PR. |
||
|
|
d6f4395869 |
docs(agents): remove extraneous blank line in CHANGELOG entry
Clean up double blank line in the CHANGELOG.md entry for the PR merge supervisor criteria documentation (#8107). ISSUES CLOSED: #8107 |
||
|
|
7c21ca0d6f |
docs(agents): sync pr-merge-pool-supervisor merge criteria with runtime behaviour
Add Ten Merge Criteria section to pr-merge-pool-supervisor.md documenting all 10 criteria the supervisor checks at runtime. Previously only 6 criteria were documented, creating inconsistency with actual runtime behaviour. Also update CHANGELOG.md and CONTRIBUTORS.md. Closes #8107 # Conflicts: # CONTRIBUTORS.md |
||
|
|
087314843a |
ci: remove benchmark-regression job from PR workflow (already in scheduled)
CI / push-validation (pull_request) Successful in 28s
CI / helm (pull_request) Successful in 32s
CI / lint (pull_request) Successful in 1m3s
CI / build (pull_request) Successful in 59s
CI / quality (pull_request) Successful in 1m26s
CI / security (pull_request) Successful in 1m38s
CI / typecheck (pull_request) Successful in 1m46s
CI / e2e_tests (pull_request) Successful in 3m51s
CI / integration_tests (pull_request) Successful in 4m0s
CI / unit_tests (pull_request) Successful in 6m7s
CI / docker (pull_request) Successful in 1m34s
CI / coverage (pull_request) Successful in 11m9s
CI / benchmark-publish (push) Waiting to run
CI / status-check (pull_request) Successful in 3s
CI / helm (push) Successful in 28s
CI / push-validation (push) Successful in 29s
CI / lint (push) Successful in 1m0s
CI / quality (push) Successful in 1m13s
CI / typecheck (push) Successful in 1m23s
CI / build (push) Successful in 1m3s
CI / security (push) Successful in 1m31s
CI / integration_tests (push) Successful in 4m20s
CI / e2e_tests (push) Successful in 5m11s
CI / unit_tests (push) Successful in 10m37s
CI / docker (push) Successful in 1m24s
CI / benchmark-publish (pull_request) Has been skipped
CI / coverage (push) Successful in 12m19s
CI / status-check (push) Successful in 3s
The benchmark-regression job was supposed to be moved to the dedicated benchmark-scheduled.yml workflow (commit
|
||
|
|
05b58630bf |
style(a2a): apply ruff format to integration test helper
Apply ruff format to robot/helper_a2a_session_plan_lifecycle_integration.py to fix CI lint failure. Changes are purely formatting (whitespace, line wrapping) with no logic modifications. ISSUES CLOSED: #10032 |
||
|
|
d306e6e33c |
test(a2a): add integration tests for full A2A session and plan lifecycle
- Added robot/a2a_session_plan_lifecycle_integration.robot: Robot Framework integration test suite with 7 test cases covering the full A2A session and plan lifecycle, event queue publish/subscribe, guard enforcement (budget cap, tool call limit, denylist), and plan rollback with session state consistency. - Added robot/helper_a2a_session_plan_lifecycle_integration.py: Helper script with real service instances (no mocks) using in-memory SQLite, wiring up A2A facade, session service, plan lifecycle service, event queue, and autonomy guardrail service. ISSUES CLOSED: #10032 |
||
|
|
446f447c03 |
style(test): apply ruff format to tdd_lsp_path_containment_steps.py
CI / push-validation (pull_request) Successful in 24s
CI / helm (pull_request) Successful in 31s
CI / build (pull_request) Successful in 49s
CI / lint (pull_request) Successful in 59s
CI / typecheck (pull_request) Successful in 1m21s
CI / quality (pull_request) Successful in 1m23s
CI / security (pull_request) Successful in 1m43s
CI / e2e_tests (pull_request) Successful in 3m59s
CI / integration_tests (pull_request) Successful in 5m54s
CI / unit_tests (pull_request) Successful in 7m44s
CI / docker (pull_request) Successful in 1m21s
CI / coverage (pull_request) Successful in 11m19s
CI / status-check (pull_request) Successful in 2s
CI / status-check (push) Blocked by required conditions
CI / benchmark-regression (push) Waiting to run
CI / benchmark-publish (push) Waiting to run
CI / lint (push) Successful in 59s
CI / helm (push) Successful in 26s
CI / build (push) Successful in 48s
CI / quality (push) Successful in 1m21s
CI / typecheck (push) Successful in 1m34s
CI / security (push) Successful in 1m34s
CI / push-validation (push) Successful in 21s
CI / coverage (push) Has started running
CI / integration_tests (push) Successful in 3m26s
CI / e2e_tests (push) Successful in 4m21s
CI / unit_tests (push) Successful in 5m10s
CI / docker (push) Successful in 1m29s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Successful in 1h4m13s
|
||
|
|
e619c1be58 |
test(lsp/runtime): fix TDD tag to reference bug issue #10490 and add safe-file scenario
Corrected @tdd_issue_10489 → @tdd_issue_10490 so the tag references the actual bug issue (path traversal vulnerability) rather than the TDD issue itself. Added a positive scenario verifying _read_file can still read files inside the workspace, as suggested in review. ISSUES CLOSED: #10489 |
||
|
|
b5110761c2 |
lsp/runtime: add failing test proving LspRuntime._read_file has no workspace path containment check
Added features/tdd_lsp_path_containment.feature: Introduces a TDD Behave feature with a @tdd_expected_fail scenario to demonstrate that LspRuntime._read_file() does not enforce workspace path containment, guiding a fix. Added features/steps/tdd_lsp_path_containment_steps.py: Provides step definitions for executing the new test. ISSUES CLOSED: #10489 |
||
|
|
1b515d529c |
fix(tests): align LLM trace test session factory with flush-based save
CI / lint (pull_request) Successful in 1m22s
CI / typecheck (pull_request) Successful in 1m35s
CI / quality (pull_request) Successful in 1m39s
CI / push-validation (pull_request) Successful in 24s
CI / helm (pull_request) Successful in 27s
CI / build (pull_request) Successful in 56s
CI / security (pull_request) Successful in 1m46s
CI / integration_tests (pull_request) Successful in 4m42s
CI / e2e_tests (pull_request) Successful in 4m26s
CI / unit_tests (pull_request) Successful in 6m3s
CI / docker (pull_request) Successful in 1m26s
CI / coverage (pull_request) Successful in 12m11s
CI / status-check (pull_request) Successful in 3s
CI / lint (push) Successful in 55s
CI / build (push) Successful in 50s
CI / helm (push) Successful in 27s
CI / push-validation (push) Successful in 20s
CI / quality (push) Successful in 1m13s
CI / typecheck (push) Successful in 1m18s
CI / security (push) Successful in 1m31s
CI / integration_tests (push) Successful in 3m55s
CI / e2e_tests (push) Successful in 4m5s
CI / unit_tests (push) Successful in 5m28s
CI / docker (push) Successful in 1m45s
CI / coverage (push) Successful in 13m14s
CI / benchmark-publish (pull_request) Has been skipped
CI / status-check (push) Successful in 4s
CI / benchmark-regression (push) Has been skipped
CI / benchmark-publish (push) Has started running
CI / benchmark-regression (pull_request) Failing after 1h5m16s
Use a shared session in test setup so that data flushed (but not committed) by LLMTraceRepository.save() remains visible to subsequent read operations within the same test scenario. This matches the production UnitOfWork pattern where a single session is shared across repository calls. Also fixes ruff format violations (single quotes, string concatenation) that caused the CI lint gate to fail. ISSUES CLOSED: #10034 |
||
|
|
2a5a37d774 |
fix: remove type: ignore comments and use proper method assignment
Removed type: ignore[method-assign] comments from spy function assignments in test code. Replaced direct method assignment with object.__setattr__ to properly handle method replacement without type suppression, maintaining code quality standards. |
||
|
|
b4b6fe6484 |
fix: replace session.commit() with session.flush() in LLMTraceRepository.save()
Refactor: replace session.commit() with session.flush() in LLMTraceRepository.save() to ensure changes are persisted within the UnitOfWork without prematurely committing the database transaction. - Updated LLMTraceRepository.save() to call session.flush() instead of session.commit() in src/cleveragents/infrastructure/database/llm_trace_repository.py. - Added two new BDD scenarios to features/llm_trace.feature: - 'Repository save() calls flush not commit' to verify save() uses flush not commit. - 'LLM trace rolled back when UnitOfWork transaction rolls back' to verify rollback. - Added corresponding step definitions to features/steps/llm_trace_steps.py. ISSUES CLOSED: #10034 |
||
|
|
927c5a4681 |
chore(ci): optimize Dockerfile layer order to cache Python dependency installation
CI / lint (pull_request) Successful in 1m3s
CI / build (pull_request) Successful in 42s
CI / quality (pull_request) Successful in 1m13s
CI / typecheck (pull_request) Successful in 1m23s
CI / push-validation (pull_request) Successful in 24s
CI / helm (pull_request) Successful in 36s
CI / security (pull_request) Successful in 1m38s
CI / integration_tests (pull_request) Successful in 4m8s
CI / e2e_tests (pull_request) Successful in 5m11s
CI / unit_tests (pull_request) Successful in 7m27s
CI / docker (pull_request) Successful in 2m43s
CI / coverage (pull_request) Successful in 12m6s
CI / status-check (pull_request) Successful in 3s
CI / coverage (push) Blocked by required conditions
CI / docker (push) Blocked by required conditions
CI / status-check (push) Blocked by required conditions
CI / push-validation (push) Successful in 24s
CI / helm (push) Successful in 31s
CI / benchmark-publish (pull_request) Has been skipped
CI / build (push) Failing after 15m55s
CI / e2e_tests (push) Failing after 15m56s
CI / integration_tests (push) Failing after 15m58s
CI / unit_tests (push) Failing after 15m58s
CI / quality (push) Failing after 15m58s
CI / security (push) Failing after 15m58s
CI / typecheck (push) Failing after 16m0s
CI / lint (push) Failing after 16m2s
CI / benchmark-regression (push) Has been skipped
CI / benchmark-publish (push) Has started running
CI / benchmark-regression (pull_request) Successful in 1h3m8s
Reorder COPY and RUN instructions in both Dockerfile and Dockerfile.server to leverage Docker's layer caching for the dependency installation step. Previously, pyproject.toml, README.md, and src/ were all copied together before running uv pip install, meaning any source code change would invalidate the dependency layer cache and force a full reinstall. The new pattern copies only the dependency manifests (pyproject.toml and uv.lock) first, installs the build tool in a cached layer, then copies README.md and src/ for the actual wheel build. This ensures the uv pip install step is only re-executed when pyproject.toml or uv.lock change, not on every source code change. ISSUES CLOSED: #1667 |
||
|
|
4f2122cd9e |
docs: add action module API reference, update CHANGELOG and nav
CI / push-validation (pull_request) Successful in 27s
CI / helm (pull_request) Successful in 32s
CI / lint (pull_request) Successful in 1m6s
CI / build (pull_request) Successful in 1m0s
CI / typecheck (pull_request) Successful in 1m35s
CI / quality (pull_request) Successful in 1m41s
CI / benchmark-publish (pull_request) Has been skipped
CI / security (pull_request) Successful in 2m50s
CI / integration_tests (pull_request) Successful in 5m3s
CI / e2e_tests (pull_request) Successful in 5m27s
CI / unit_tests (pull_request) Successful in 6m49s
CI / docker (pull_request) Successful in 1m23s
CI / coverage (pull_request) Successful in 11m17s
CI / status-check (pull_request) Successful in 3s
CI / lint (push) Successful in 1m14s
CI / security (push) Successful in 1m22s
CI / typecheck (push) Successful in 1m51s
CI / quality (push) Successful in 1m29s
CI / push-validation (push) Successful in 27s
CI / helm (push) Successful in 48s
CI / build (push) Successful in 48s
CI / integration_tests (push) Successful in 4m11s
CI / e2e_tests (push) Successful in 4m19s
CI / unit_tests (push) Successful in 6m14s
CI / docker (push) Successful in 1m33s
CI / coverage (push) Successful in 16m7s
CI / benchmark-regression (push) Has been skipped
CI / benchmark-publish (push) Failing after 1m3s
CI / status-check (push) Successful in 3s
CI / benchmark-regression (pull_request) Failing after 1h11m1s
- Add docs/api/action.md: full API reference for ActionConfigSchema and ActionArgumentSchema — field tables, factory methods, camelCase compat mapping, env-var interpolation, database integrity note, and complete YAML example - Update docs/api/index.md: add cleveragents.action entry to module index - Update mkdocs.yml: add 'Action Schema: api/action.md' to the API Reference nav - Update CHANGELOG.md [Unreleased] Fixed: document plan use UNIQUE constraint violation fix (#4174, #4197) - Clarify from_yaml_file ValueError semantics, document inputs_schema type as dict[str, Any] | None, and update A2A ASV benchmarks to pass method= requests after JSON-RPC migration ISSUES CLOSED: #7472 |
||
|
|
8320f9f4cb |
fix: correct trusted automation profile description to match spec
CI / push-validation (pull_request) Successful in 23s
CI / helm (pull_request) Successful in 32s
CI / build (pull_request) Successful in 54s
CI / lint (pull_request) Successful in 1m11s
CI / quality (pull_request) Successful in 1m14s
CI / typecheck (pull_request) Successful in 1m27s
CI / security (pull_request) Successful in 1m38s
CI / benchmark-publish (pull_request) Has been skipped
CI / e2e_tests (pull_request) Successful in 4m17s
CI / integration_tests (pull_request) Successful in 5m49s
CI / unit_tests (pull_request) Successful in 6m33s
CI / docker (pull_request) Successful in 1m34s
CI / coverage (pull_request) Successful in 10m33s
CI / push-validation (push) Successful in 26s
CI / helm (push) Successful in 30s
CI / lint (push) Successful in 59s
CI / quality (push) Successful in 1m11s
CI / typecheck (push) Successful in 1m30s
CI / security (push) Successful in 1m32s
CI / build (push) Successful in 1m30s
CI / status-check (pull_request) Successful in 5s
CI / benchmark-regression (push) Has been skipped
CI / benchmark-publish (push) Has started running
CI / integration_tests (push) Successful in 4m12s
CI / e2e_tests (push) Successful in 4m17s
CI / unit_tests (push) Successful in 8m8s
CI / docker (push) Successful in 1m31s
CI / coverage (push) Successful in 12m15s
CI / status-check (push) Successful in 2s
CI / benchmark-regression (pull_request) Successful in 1h1m55s
ISSUES CLOSED: #9156 |
||
|
|
48dd67eb84 |
test: add TDD bug-capture test for #991 — AuditService TOCTOU race
CI / benchmark-publish (pull_request) Has been skipped
CI / push-validation (pull_request) Successful in 23s
CI / helm (pull_request) Successful in 31s
CI / build (pull_request) Successful in 1m5s
CI / lint (pull_request) Successful in 1m27s
CI / quality (pull_request) Successful in 1m29s
CI / typecheck (pull_request) Successful in 1m32s
CI / security (pull_request) Successful in 1m32s
CI / e2e_tests (pull_request) Successful in 4m56s
CI / integration_tests (pull_request) Successful in 6m29s
CI / unit_tests (pull_request) Successful in 8m32s
CI / docker (pull_request) Successful in 1m33s
CI / coverage (pull_request) Successful in 11m7s
CI / status-check (pull_request) Successful in 4s
CI / helm (push) Successful in 28s
CI / build (push) Successful in 53s
CI / lint (push) Successful in 1m10s
CI / quality (push) Successful in 1m10s
CI / typecheck (push) Successful in 1m19s
CI / security (push) Successful in 1m35s
CI / benchmark-regression (push) Has been skipped
CI / benchmark-publish (push) Has started running
CI / push-validation (push) Successful in 22s
CI / integration_tests (push) Successful in 4m28s
CI / e2e_tests (push) Successful in 5m13s
CI / unit_tests (push) Successful in 5m44s
CI / docker (push) Successful in 1m27s
CI / coverage (push) Successful in 13m15s
CI / status-check (push) Successful in 3s
CI / benchmark-regression (pull_request) Successful in 1h2m50s
Rebase onto latest master to resolve CHANGELOG.md merge conflict.
All test files unchanged from the approved PR commit (
|
||
|
|
263cbfa45f |
ci: re-trigger CI after transient typecheck runner failure
CI / push-validation (pull_request) Successful in 32s
CI / helm (pull_request) Successful in 38s
CI / build (pull_request) Successful in 1m4s
CI / lint (pull_request) Successful in 1m21s
CI / typecheck (pull_request) Successful in 1m29s
CI / quality (pull_request) Successful in 1m36s
CI / security (pull_request) Successful in 1m51s
CI / benchmark-publish (pull_request) Has been skipped
CI / integration_tests (pull_request) Successful in 5m26s
CI / e2e_tests (pull_request) Successful in 5m31s
CI / unit_tests (pull_request) Successful in 9m41s
CI / docker (pull_request) Successful in 1m57s
CI / coverage (pull_request) Successful in 15m46s
CI / status-check (pull_request) Successful in 6s
CI / lint (push) Successful in 1m7s
CI / typecheck (push) Successful in 1m18s
CI / quality (push) Successful in 1m3s
CI / helm (push) Successful in 25s
CI / build (push) Successful in 54s
CI / push-validation (push) Successful in 42s
CI / security (push) Successful in 2m13s
CI / integration_tests (push) Successful in 4m17s
CI / e2e_tests (push) Successful in 4m19s
CI / unit_tests (push) Successful in 6m7s
CI / docker (push) Successful in 1m38s
CI / coverage (push) Successful in 15m8s
CI / status-check (push) Successful in 3s
CI / benchmark-regression (pull_request) Successful in 1h2m0s
CI / benchmark-regression (push) Has been skipped
CI / benchmark-publish (push) Successful in 1h37m18s
The previous CI run failed with a 5-second typecheck job failure, indicating a transient runner issue rather than a code problem. Pyright reports 0 errors locally (only checks src/, not features/). All quality gates pass: lint, typecheck, unit_tests. |
||
|
|
ef5b8bf986 |
test(agents/graphs/auto_debug): add expected-fail test for _analyze_error in-place state mutation
Added a TDD-style test for issue #10494 by introducing a new features/tdd_auto_debug_analyze_error_mutation.feature with a scenario tagged @tdd_issue @tdd_issue_10494 @tdd_expected_fail, and implemented Behave steps in features/steps/tdd_auto_debug_analyze_error_mutation_steps.py. The test captures the bug that _analyze_error mutates the state in-place and returns the full state object instead of a dict of updates, violating the LangGraph node contract. The @tdd_expected_fail tag inverts the test outcome so CI remains green while the bug exists. ISSUES CLOSED: #10494 |
||
|
|
a47e88016f |
fix(agents): add PR diff and file list permissions to implementation-worker
CI / benchmark-publish (pull_request) Has been skipped
CI / push-validation (pull_request) Successful in 47s
CI / helm (pull_request) Successful in 57s
CI / build (pull_request) Successful in 1m42s
CI / lint (pull_request) Successful in 2m11s
CI / quality (pull_request) Successful in 2m25s
CI / typecheck (pull_request) Successful in 2m30s
CI / security (pull_request) Successful in 2m30s
CI / e2e_tests (pull_request) Successful in 6m23s
CI / integration_tests (pull_request) Successful in 7m38s
CI / unit_tests (pull_request) Successful in 10m5s
CI / docker (pull_request) Successful in 1m35s
CI / coverage (pull_request) Successful in 14m40s
CI / benchmark-regression (push) Has been skipped
CI / status-check (pull_request) Successful in 3s
CI / helm (push) Successful in 31s
CI / benchmark-publish (push) Has started running
CI / build (push) Successful in 53s
CI / lint (push) Successful in 1m11s
CI / typecheck (push) Successful in 1m21s
CI / push-validation (push) Successful in 35s
CI / quality (push) Successful in 1m21s
CI / security (push) Successful in 1m31s
CI / e2e_tests (push) Successful in 4m7s
CI / integration_tests (push) Successful in 6m11s
CI / unit_tests (push) Successful in 6m37s
CI / docker (push) Successful in 1m42s
CI / coverage (push) Successful in 15m5s
CI / status-check (push) Waiting to run
CI / benchmark-regression (pull_request) Successful in 59m41s
The implementation-worker has a PR fix mode that needs to read PR changes to understand what is failing. However, it lacked forgejo_list_pull_request_files and forgejo_get_pull_request_diff permissions, forcing it to clone the entire repository just to inspect what files changed. The pr-reviewer agent already has both permissions. This change aligns the implementation-worker permissions with its actual usage patterns and reduces unnecessary full-repo clones in PR fix mode. Also adds curl, printenv, and echo bash permissions that were inadvertently omitted from the permission block. These are needed for the agent to make Forgejo API calls, check environment variables, and perform basic shell operations. ISSUES CLOSED: #8175 |
||
|
|
49ecf7ff8f |
fix(agents): add PR diff and file list permissions to implementation-worker
The implementation-worker has a PR fix mode that needs to read PR changes to understand what is failing. However, it lacked forgejo_list_pull_request_files and forgejo_get_pull_request_diff permissions, forcing it to clone the entire repository just to inspect what files changed. The pr-reviewer agent already has both permissions. This change aligns the implementation-worker permissions with its actual usage patterns and reduces unnecessary full-repo clones in PR fix mode. Also adds curl, printenv, and echo bash permissions that were inadvertently omitted from the permission block. These are needed for the agent to make Forgejo API calls, check environment variables, and perform basic shell operations. ISSUES CLOSED: #8175 |
||
|
|
1732436edb |
fix(agents): add PR diff and file list permissions to implementation-worker
The implementation-worker has a PR fix mode that needs to read PR changes to understand what is failing. However, it lacked forgejo_list_pull_request_files and forgejo_get_pull_request_diff permissions, forcing it to clone the entire repository just to inspect what files changed. The pr-reviewer agent already has both permissions. This change aligns the implementation-worker permissions with its actual usage patterns and reduces unnecessary full-repo clones in PR fix mode. Also adds curl, printenv, and echo bash permissions that were inadvertently omitted from the permission block restructuring. These are needed for the agent to make Forgejo API calls, check environment variables, and perform basic shell operations. ISSUES CLOSED: #8175 |
||
|
|
f7deab5147 |
chore(agents): add concrete milestone API example and ISSUES CLOSED footer to agent-evolution-worker
CI / push-validation (pull_request) Successful in 38s
CI / helm (pull_request) Successful in 43s
CI / lint (pull_request) Successful in 1m14s
CI / build (pull_request) Successful in 58s
CI / benchmark-publish (pull_request) Has been skipped
CI / quality (pull_request) Successful in 1m54s
CI / typecheck (pull_request) Successful in 2m2s
CI / security (pull_request) Successful in 2m3s
CI / e2e_tests (pull_request) Successful in 6m5s
CI / integration_tests (pull_request) Successful in 6m49s
CI / unit_tests (pull_request) Successful in 9m24s
CI / docker (pull_request) Successful in 1m33s
CI / coverage (pull_request) Successful in 11m49s
CI / benchmark-regression (push) Has been skipped
CI / status-check (pull_request) Successful in 3s
CI / build (push) Successful in 53s
CI / lint (push) Successful in 1m4s
CI / push-validation (push) Successful in 33s
CI / helm (push) Successful in 39s
CI / typecheck (push) Successful in 1m25s
CI / quality (push) Successful in 1m25s
CI / security (push) Successful in 1m32s
CI / e2e_tests (push) Successful in 3m46s
CI / integration_tests (push) Successful in 4m20s
CI / unit_tests (push) Successful in 6m9s
CI / docker (push) Successful in 1m31s
CI / coverage (push) Successful in 11m43s
CI / status-check (push) Successful in 4s
CI / benchmark-publish (push) Has started running
CI / benchmark-regression (pull_request) Successful in 1h2m2s
Added a concrete curl example showing how to query the earliest open milestone via the Forgejo API at PR creation time, and added the ISSUES CLOSED footer requirement to the PR compliance checklist in agent-evolution-worker.md. Also updated CHANGELOG.md to reflect these additions. ISSUES CLOSED: #8370 |
||
|
|
d17d4eebb5 |
chore(agents): fix CHANGELOG.md stale milestone reference in agent-evolution-worker entry
Updated the CHANGELOG.md [Unreleased] > Changed entry for #8370 to accurately reflect the actual implementation: dynamic earliest-open-milestone assignment via Forgejo API (not hardcoded v3.2.0 ID: 105), and Type/Task label (not Type/Chore which does not exist in the org label system). ISSUES CLOSED: #8370 |
||
|
|
c4122f877a |
chore(agents): add CONTRIBUTING.md compliance steps to agent-evolution-worker
ISSUES CLOSED: #8370 |
||
|
|
92c3bd8732 |
fix(tests): update resource_dag.robot SQLite pool and cycle detection types
CI / benchmark-publish (pull_request) Has been skipped
CI / push-validation (pull_request) Successful in 37s
CI / helm (pull_request) Successful in 38s
CI / lint (pull_request) Successful in 1m35s
CI / build (pull_request) Successful in 59s
CI / typecheck (pull_request) Successful in 1m50s
CI / security (pull_request) Successful in 1m48s
CI / quality (pull_request) Successful in 1m42s
CI / e2e_tests (pull_request) Successful in 4m42s
CI / integration_tests (pull_request) Successful in 6m36s
CI / unit_tests (pull_request) Successful in 8m53s
CI / docker (pull_request) Successful in 1m45s
CI / coverage (pull_request) Successful in 12m51s
CI / benchmark-regression (push) Has been skipped
CI / status-check (pull_request) Successful in 3s
CI / benchmark-publish (push) Has started running
CI / helm (push) Successful in 36s
CI / lint (push) Successful in 55s
CI / build (push) Successful in 56s
CI / quality (push) Successful in 1m28s
CI / typecheck (push) Successful in 1m29s
CI / security (push) Successful in 1m35s
CI / push-validation (push) Successful in 22s
CI / e2e_tests (push) Successful in 4m33s
CI / integration_tests (push) Successful in 4m38s
CI / unit_tests (push) Successful in 6m41s
CI / docker (push) Successful in 1m34s
CI / coverage (push) Successful in 10m47s
CI / status-check (push) Successful in 3s
CI / benchmark-regression (pull_request) Successful in 1h2m16s
Replaced direct create_engine usage with StaticPool-based connection in resource_dag.robot to prevent SQLite connection sharing issues in tests. Updated cycle detection test to use distinct resource types (git-checkout and fs-directory) instead of the same type for both resources, improving test coverage of cross-type cycle detection. Split from PR #1204 per reviewer request for atomic commits. ISSUES CLOSED: #1226 |
||
|
|
60c50d3c9f |
Merge pull request 'fix(plan): implement error recovery for execute phase per spec §35958 and §18323' (#10844) from bugfix/reexecute-errored-plan into master
CI / security (push) Successful in 1m12s
CI / build (push) Successful in 40s
CI / benchmark-regression (push) Has been skipped
CI / push-validation (push) Successful in 25s
CI / e2e_tests (push) Successful in 4m22s
CI / benchmark-publish (push) Failing after 1h2m57s
CI / helm (push) Successful in 41s
CI / lint (push) Successful in 1m19s
CI / quality (push) Successful in 1m20s
CI / typecheck (push) Successful in 1m27s
CI / integration_tests (push) Successful in 4m20s
CI / unit_tests (push) Successful in 6m13s
CI / docker (push) Successful in 1m32s
CI / coverage (push) Successful in 11m34s
CI / status-check (push) Successful in 3s
Reviewed-on: #10844 Reviewed-by: Luis Mendes <luis.mendes@cleverthis.com> |
||
|
|
12fc9e089f |
fix(plan): implement error recovery for execute phase per spec §35958 and §18323
CI / lint (pull_request) Successful in 1m8s
CI / quality (pull_request) Successful in 1m7s
CI / typecheck (pull_request) Successful in 1m31s
CI / security (pull_request) Successful in 1m39s
CI / helm (pull_request) Successful in 28s
CI / push-validation (pull_request) Successful in 24s
CI / build (pull_request) Successful in 36s
CI / integration_tests (pull_request) Successful in 4m21s
CI / unit_tests (pull_request) Successful in 4m45s
CI / e2e_tests (pull_request) Successful in 4m8s
CI / docker (pull_request) Successful in 1m29s
CI / benchmark-publish (pull_request) Has been skipped
CI / coverage (pull_request) Successful in 11m24s
CI / status-check (pull_request) Successful in 4s
CI / benchmark-regression (pull_request) Successful in 1h10m52s
Two recovery paths for execute/errored plans using the domain model's classify_error() for canonical error classification: 1. Transient failures (§28530/§35958): rate limit, timeout, connection errors — reset to execute/queued and re-execute with the same strategy. Preserves strategy_decisions_json for decision hierarchy reconstruction. 2. Non-transient failures (§18323-18329): strategy constraint, authentication, unknown — delegate to service.try_auto_revert_from_execute() which enforces MAX_REVERSIONS loop guard, increments reversion_count, records a reversion decision, and respects the delete_content automation threshold. Error findings are redacted via redact_error_details() and stored as JSON for the strategy actor (§18329). Error classification uses the domain model's classify_error() and ErrorCategory enum — single source of truth, no parallel frozenset. AuthenticationError correctly classified as non-transient per domain model. ISSUES CLOSED: #10843 |
||
|
|
43fdc31624 |
chore(agents): improve ca-continuous-pr-reviewer — skip PRs with unchanged HEAD since last review
CI / lint (push) Successful in 1m12s
CI / helm (push) Successful in 33s
CI / push-validation (push) Successful in 35s
CI / quality (push) Successful in 1m21s
CI / build (push) Successful in 52s
CI / benchmark-regression (push) Has been skipped
CI / typecheck (push) Successful in 1m33s
CI / security (push) Successful in 1m43s
CI / benchmark-publish (push) Has started running
CI / integration_tests (push) Successful in 5m9s
CI / e2e_tests (push) Successful in 5m3s
CI / unit_tests (push) Successful in 6m9s
CI / docker (push) Successful in 1m51s
CI / coverage (push) Successful in 11m53s
CI / status-check (push) Successful in 4s
|
||
|
|
9c5f19854d
|
ci(docker): Ensure CI uses CT docker proxy to workaround Docker ratelimit issues
CI / push-validation (push) Successful in 26s
CI / helm (push) Successful in 33s
CI / build (push) Successful in 1m18s
CI / lint (push) Successful in 1m24s
CI / quality (push) Successful in 1m38s
CI / benchmark-regression (push) Has been skipped
CI / typecheck (push) Successful in 2m3s
CI / security (push) Successful in 2m5s
CI / benchmark-publish (push) Has started running
CI / e2e_tests (push) Successful in 4m33s
CI / unit_tests (push) Successful in 5m24s
CI / integration_tests (push) Successful in 5m37s
CI / docker (push) Successful in 1m34s
CI / coverage (push) Successful in 11m4s
CI / status-check (push) Successful in 4s
CI / push-validation (pull_request) Successful in 24s
CI / helm (pull_request) Successful in 29s
CI / build (pull_request) Successful in 53s
CI / lint (pull_request) Successful in 57s
CI / quality (pull_request) Successful in 1m15s
CI / typecheck (pull_request) Successful in 1m29s
CI / security (pull_request) Successful in 1m29s
CI / integration_tests (pull_request) Successful in 3m24s
CI / e2e_tests (pull_request) Successful in 3m53s
CI / benchmark-publish (pull_request) Has been skipped
CI / unit_tests (pull_request) Successful in 6m5s
CI / docker (pull_request) Successful in 1m29s
CI / coverage (pull_request) Successful in 11m7s
CI / status-check (pull_request) Successful in 3s
CI / benchmark-regression (pull_request) Successful in 1h10m43s
ISSUES CLOSED: #10856 |
||
|
|
e3212b5f8a |
fix: reject migrations when prompt fails unexpectedly
CI / build (pull_request) Successful in 42s
CI / lint (pull_request) Successful in 1m15s
CI / security (pull_request) Successful in 1m30s
CI / quality (pull_request) Successful in 1m35s
CI / typecheck (pull_request) Successful in 1m44s
CI / benchmark-publish (pull_request) Has been skipped
CI / push-validation (pull_request) Successful in 21s
CI / helm (pull_request) Successful in 28s
CI / integration_tests (pull_request) Successful in 3m45s
CI / e2e_tests (pull_request) Successful in 3m43s
CI / unit_tests (pull_request) Successful in 4m54s
CI / docker (pull_request) Successful in 1m49s
CI / coverage (pull_request) Successful in 11m27s
CI / benchmark-regression (push) Has been skipped
CI / status-check (pull_request) Successful in 4s
CI / lint (push) Successful in 56s
CI / build (push) Successful in 52s
CI / helm (push) Successful in 40s
CI / quality (push) Successful in 1m14s
CI / push-validation (push) Successful in 33s
CI / security (push) Successful in 1m24s
CI / typecheck (push) Successful in 1m28s
CI / e2e_tests (push) Successful in 5m2s
CI / integration_tests (push) Successful in 5m3s
CI / unit_tests (push) Successful in 6m1s
CI / docker (push) Successful in 1m30s
CI / coverage (push) Successful in 10m52s
CI / benchmark-regression (pull_request) Failing after 27m23s
CI / status-check (push) Successful in 3s
CI / benchmark-publish (push) Successful in 1h16m42s
Handle unexpected exceptions from the interactive migration prompt by logging the failure and rejecting instead of proceeding. ISSUES CLOSED: #7503 |
||
|
|
4beeb747d0 |
test: add regression for unexpected migration prompt failure
ISSUES CLOSED: #7503 |
||
|
|
122a9e70a1 |
chore(ci): remove build artifacts from tracking and add test_reports to .gitignore
Remove test_reports/summary.txt and test_reports/test_results.json from git tracking as they are build artifacts that should not be committed to the repository. Add test_reports/ to .gitignore to prevent future accidental commits of these files. ISSUES CLOSED: #7503 |
||
|
|
36dc29b3ec | docs(contributors): add HAL 9000 contribution details for migration safety fix | ||
|
|
49ed394d11 |
fix(migration): reject migrations on prompt failure instead of auto-approving
Fixed MigrationRunner._default_prompt_for_migration silently auto-approving destructive database migrations when the interactive prompt raised any exception. The bare 'except Exception' handler was swallowing all errors and returning True (auto-approve), which could apply destructive schema migrations to production databases without user consent when stdin is broken, typer is unavailable, or any other prompt failure occurs. Changes: - Narrow exception handler from 'except Exception' to 'except (OSError, EOFError)' to only catch genuine non-interactive environment signals - Re-raise KeyboardInterrupt so Ctrl-C always works - Return False (reject) instead of True (auto-approve) on prompt failure - Log at WARNING level instead of DEBUG so the rejection is visible - Non-interactive environments (stdin not a TTY) now also return False by default - Updated docstring to document the new safe-default behavior - Added BDD regression tests for all new code paths - Added TDD feature file tdd_migration_prompt_auto_approve_7503.feature ISSUES CLOSED: #7503 |
||
|
|
8071539d1b |
chore(ci): trigger CI re-run for transient infrastructure failure
CI / lint (pull_request) Successful in 1m3s
CI / build (pull_request) Successful in 47s
CI / helm (pull_request) Successful in 58s
CI / push-validation (pull_request) Successful in 38s
CI / typecheck (pull_request) Successful in 1m49s
CI / quality (pull_request) Successful in 1m47s
CI / security (pull_request) Successful in 1m47s
CI / e2e_tests (pull_request) Successful in 4m32s
CI / benchmark-publish (pull_request) Has been skipped
CI / integration_tests (pull_request) Successful in 5m48s
CI / unit_tests (pull_request) Successful in 6m33s
CI / docker (pull_request) Successful in 1m29s
CI / coverage (pull_request) Successful in 11m20s
CI / coverage (push) Blocked by required conditions
CI / docker (push) Blocked by required conditions
CI / status-check (push) Blocked by required conditions
CI / benchmark-regression (push) Has been skipped
CI / status-check (pull_request) Successful in 4s
CI / build (push) Successful in 50s
CI / lint (push) Successful in 58s
CI / push-validation (push) Successful in 32s
CI / quality (push) Successful in 1m18s
CI / typecheck (push) Successful in 1m21s
CI / integration_tests (push) Successful in 3m27s
CI / helm (push) Failing after 10m43s
CI / e2e_tests (push) Failing after 11m24s
CI / unit_tests (push) Failing after 11m27s
CI / security (push) Failing after 11m27s
CI / benchmark-regression (pull_request) Successful in 1h5m7s
CI / benchmark-publish (push) Successful in 1h17m9s
|
||
|
|
b65f33af60 |
chore(ci): trigger CI re-run for transient infrastructure failure
CI / integration_tests (pull_request) Failing after 0s
CI / build (pull_request) Failing after 1s
CI / lint (pull_request) Successful in 52s
CI / push-validation (pull_request) Failing after 0s
CI / typecheck (pull_request) Successful in 1m18s
CI / quality (pull_request) Successful in 1m14s
CI / security (pull_request) Successful in 1m25s
CI / helm (pull_request) Successful in 42s
CI / coverage (pull_request) Failing after 1s
CI / e2e_tests (pull_request) Successful in 4m12s
CI / unit_tests (pull_request) Successful in 5m18s
CI / docker (pull_request) Failing after 1s
CI / status-check (pull_request) Failing after 1s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Successful in 1h5m12s
Previous CI run 14880 failed all jobs immediately (0-1 seconds) due to a CI infrastructure issue, not a code problem. The same failure pattern is observed on the master branch (run 14932), confirming this is a transient infrastructure outage. All quality gates pass locally: - lint ✓ (ruff check: all checks passed) - format ✓ (ruff format --check: 1974 files already formatted) - typecheck ✓ (pyright: 0 errors, 3 warnings — pre-existing optional deps) Refs: #10455 |
||
|
|
a567a78948 |
style(memory): apply ruff formatting to entity persistence files
Apply ruff auto-formatting to fix CI lint gate failures. Two files had formatting issues detected by ruff format --check: - features/steps/tdd_memory_service_entity_persistence_steps.py - src/cleveragents/application/services/memory_service.py Changes are purely cosmetic: line wrapping adjustments, parenthesization style, and string formatting alignment per ruff rules. Refs: #10455 |
||
|
|
719315a30b |
fix(memory): implement entity persistence in MemoryService or remove stub
Added Behave scenario to ensure EntityStore metadata and mention counts persist across restarts. Implemented new step definitions to track metadata updates and assert mention counts. Kept existing persistence behavior unchanged while expanding TDD coverage to validate regression safety. ISSUES CLOSED: #10455 |
||
|
|
0f4824c26c |
fix(memory): implement entity persistence in MemoryService or remove stub
Implemented EntityStore._load_from_persistence() to load entities from a SQLite database on initialization using SQLAlchemy. Implemented EntityStore._persist_if_needed() to write dirty entities to the database using SQLAlchemy. Both methods raise RuntimeError on persistence failures instead of silently failing, eliminating the silent data-loss bug. Added import json to support entity serialization/deserialization. Added TDD Behave feature file with 4 scenarios verifying entity round-trip through persistence. All 4 TDD scenarios pass, all existing tests continue to pass. Coverage at 97.1%. ISSUES CLOSED: #10455 |
||
|
|
f0923e08ba |
feat(plan): create per-project sandboxes for multi-project plans
CI / helm (pull_request) Successful in 34s
CI / push-validation (pull_request) Successful in 27s
CI / build (pull_request) Successful in 1m17s
CI / lint (pull_request) Successful in 1m36s
CI / quality (pull_request) Successful in 1m37s
CI / typecheck (pull_request) Successful in 1m51s
CI / security (pull_request) Successful in 2m5s
CI / integration_tests (pull_request) Successful in 4m4s
CI / e2e_tests (pull_request) Successful in 4m21s
CI / unit_tests (pull_request) Successful in 8m0s
CI / docker (pull_request) Successful in 1m41s
CI / coverage (pull_request) Successful in 12m36s
CI / status-check (pull_request) Successful in 3s
CI / lint (push) Successful in 50s
CI / helm (push) Successful in 32s
CI / push-validation (push) Successful in 30s
CI / build (push) Successful in 45s
CI / quality (push) Successful in 1m16s
CI / typecheck (push) Successful in 1m19s
CI / security (push) Successful in 1m33s
CI / e2e_tests (push) Successful in 4m8s
CI / integration_tests (push) Successful in 4m56s
CI / unit_tests (push) Successful in 5m58s
CI / docker (push) Successful in 2m17s
CI / benchmark-publish (pull_request) Has been skipped
CI / coverage (push) Successful in 12m21s
CI / status-check (push) Successful in 4s
CI / benchmark-regression (push) Has been skipped
CI / benchmark-regression (pull_request) Failing after 1h12m31s
CI / benchmark-publish (push) Successful in 1h17m21s
Per spec §19310-19312, each resource gets its own sandbox and Apply commits each sandbox separately. When a plan is linked to multiple projects with git-checkout resources: - _create_sandbox_for_plan creates a worktree for EACH resource (not just the first), returning a list of _SandboxInfo objects - LLM output is written to the first resource's worktree (primary) - _route_sandbox_files_to_worktrees moves files that belong to other resources into their worktrees by matching against each resource's git ls-files output - Each worktree is committed independently - _apply_sandbox_changes merges each resource's worktree separately, showing per-resource Apply Summary and Sandbox Cleanup panels - Partial apply: if one resource's merge fails, others still proceed Single-resource plans are fully backward compatible — same behavior as before. ISSUES CLOSED: #7270 |
||
|
|
663a6d2397 |
docs(decomposition): enhance docstrings and add spec section for selective subtree recomputation
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 1m0s
CI / quality (pull_request) Successful in 1m12s
CI / typecheck (pull_request) Successful in 1m21s
CI / security (pull_request) Successful in 1m30s
CI / push-validation (pull_request) Successful in 30s
CI / build (pull_request) Successful in 41s
CI / helm (pull_request) Successful in 45s
CI / integration_tests (pull_request) Successful in 3m34s
CI / unit_tests (pull_request) Successful in 4m40s
CI / e2e_tests (pull_request) Successful in 4m10s
CI / docker (pull_request) Successful in 1m32s
CI / coverage (pull_request) Successful in 11m7s
CI / benchmark-regression (push) Has been skipped
CI / status-check (pull_request) Successful in 5s
CI / helm (push) Successful in 32s
CI / build (push) Successful in 59s
CI / lint (push) Successful in 1m7s
CI / quality (push) Successful in 1m24s
CI / typecheck (push) Successful in 1m44s
CI / security (push) Successful in 1m46s
CI / push-validation (push) Successful in 24s
CI / integration_tests (push) Successful in 3m36s
CI / unit_tests (push) Successful in 4m59s
CI / e2e_tests (push) Successful in 5m2s
CI / docker (push) Successful in 1m31s
CI / coverage (push) Successful in 10m47s
CI / status-check (push) Successful in 4s
CI / benchmark-regression (pull_request) Successful in 1h4m59s
CI / benchmark-publish (push) Successful in 1h17m4s
|