c19c2b2e2c301fa4695e7910bad9fa7175bc3871
1122 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
c19c2b2e2c |
Merge pull request 'feat(testing): implement @tdd_expected_fail tag handling in Robot Framework' (#673) from feature/m5-robot-tdd-tags into master
CI / build (push) Successful in 16s
CI / lint (push) Successful in 17s
CI / quality (push) Successful in 36s
CI / typecheck (push) Successful in 39s
CI / benchmark-regression (push) Has been skipped
CI / security (push) Successful in 55s
CI / e2e_tests (push) Successful in 1m24s
CI / benchmark-publish (push) Failing after 1m31s
CI / unit_tests (push) Successful in 3m11s
CI / integration_tests (push) Successful in 3m43s
CI / docker (push) Successful in 1m9s
CI / coverage (push) Successful in 7m15s
Reviewed-on: #673 Reviewed-by: Jeffrey Phillips Freeman <jeffrey.freeman@cleverthis.com> Reviewed-by: Brent Edwards <brent.edwards@cleverthis.com> |
||
|
|
c13a62a2f2 |
Merge branch 'master' into feature/m5-robot-tdd-tags
CI / lint (pull_request) Successful in 25s
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 40s
CI / typecheck (pull_request) Successful in 47s
CI / security (pull_request) Successful in 45s
CI / e2e_tests (pull_request) Successful in 2m4s
CI / benchmark-regression (pull_request) Failing after 1m41s
CI / unit_tests (pull_request) Successful in 5m2s
CI / integration_tests (pull_request) Successful in 5m30s
CI / docker (pull_request) Successful in 55s
CI / coverage (pull_request) Successful in 6m9s
|
||
|
|
d0ca129d90 |
Merge branch 'master' into feature/m5-robot-tdd-tags
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 16s
CI / lint (pull_request) Successful in 20s
CI / quality (pull_request) Successful in 29s
CI / unit_tests (pull_request) Has been cancelled
CI / e2e_tests (pull_request) Has been cancelled
CI / typecheck (pull_request) Has been cancelled
CI / security (pull_request) Has been cancelled
CI / integration_tests (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
|
||
|
|
2688c85769 |
feat(extensibility): implement Custom Sandbox Strategy Registration via SandboxStrategy Protocol
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 19s
CI / lint (pull_request) Successful in 23s
CI / quality (pull_request) Successful in 28s
CI / security (pull_request) Successful in 54s
CI / typecheck (pull_request) Successful in 1m25s
CI / e2e_tests (pull_request) Successful in 2m33s
CI / unit_tests (pull_request) Successful in 3m4s
CI / integration_tests (pull_request) Successful in 3m33s
CI / docker (pull_request) Successful in 1m7s
CI / coverage (pull_request) Successful in 5m50s
CI / lint (push) Successful in 18s
CI / build (push) Successful in 33s
CI / quality (push) Successful in 47s
CI / typecheck (push) Successful in 49s
CI / benchmark-regression (push) Has been skipped
CI / security (push) Successful in 52s
CI / e2e_tests (push) Successful in 2m9s
CI / unit_tests (push) Successful in 3m32s
CI / integration_tests (push) Successful in 3m41s
CI / docker (push) Successful in 56s
CI / coverage (push) Successful in 6m10s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (pull_request) Successful in 40m21s
Implement SandboxStrategyProtocol, a 9-method @runtime_checkable Protocol enabling third-party sandbox strategy registration. Includes: - SandboxStrategyProtocol with create/read/write/diff/commit/rollback/checkpoint/ restore_checkpoint/cleanup methods - SandboxRef (frozen dataclass) and DiffView/DiffEntry (Pydantic models) - SandboxStrategyRegistry with config-driven registration, Protocol validation, thread safety, and clear/list/has operations - BuiltInSandboxStrategyAdapter wrapping existing Sandbox implementations to conform to the new Protocol - CustomStrategyConfig for YAML/dict-based strategy registration - SandboxFactory integration with custom_registry parameter, has_custom_strategy() and get_custom_strategy_class() - 25 Behave BDD scenarios (85 steps) covering protocol, registry, adapter, config, and factory integration - 8 Robot Framework integration tests with real filesystem operations - ASV benchmarks for registry and adapter operations - Developer documentation ISSUES CLOSED: #586 |
||
|
|
a5de448856 |
feat(testing): implement @tdd_expected_fail tag handling in Robot Framework
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 16s
CI / build (pull_request) Successful in 20s
CI / quality (pull_request) Successful in 30s
CI / typecheck (pull_request) Successful in 51s
CI / security (pull_request) Successful in 53s
CI / e2e_tests (pull_request) Successful in 1m20s
CI / unit_tests (pull_request) Successful in 3m24s
CI / benchmark-regression (pull_request) Failing after 2m32s
CI / integration_tests (pull_request) Successful in 3m33s
CI / docker (pull_request) Successful in 15s
CI / coverage (pull_request) Successful in 6m52s
Implements the three-tag TDD bug-capture system in Robot Framework via a Listener v3 module, paralleling the Behave implementation. Tests tagged tdd_expected_fail that fail have their result inverted to PASS (bug still exists); tests that unexpectedly pass are inverted to FAIL with guidance. Addresses all 15 findings from code review (PR !673, reviewer hamza.khyari): P2 fixes: - Added idempotency guard (_processed_tests set) to prevent double-inversion when the listener is loaded twice in the same process. - Rewrote normal-test-unaffected check to run alongside a tdd_expected_fail fixture in a single Robot invocation, proving the listener is loaded and selectively applies rather than being a tautological pass. P3 fixes: - Added output.xml existence guard with clear diagnostics in _run_fixture. - Documented intentional use of data.tags (static definition) vs result.tags (runtime-modifiable) in end_test docstring. - Added SKIP status test fixture and integration test case. - Added message content assertion in cmd_expected_fail_inverted. - Tightened substring assertions to match specific error text. - Added tdd_expected_fail-alone fixture (both companions missing). - Added close() hook to clear _validation_errors and _processed_tests. - Simplified _run_fixture return type to tuple[str, str]. - Changed listener path resolution from CWD-relative to __file__-relative in noxfile.py (integration_tests, slow_integration_tests, e2e_tests). P4 fixes: - Added __all__ declaration to helper module. - Changed module docstring from "mirroring" to "paralleling". - Added comment documenting accepted XML parsing risk (self-generated XML). Additional fixes: - Increased M4 E2E plan-tree test timeout from 30s to 120s (pre-existing timeout failure unrelated to this feature). Quality gates (post-rebase onto latest master): - nox -s lint: PASS - nox -s typecheck: PASS (0 errors) - nox -s unit_tests: PASS (10,700 scenarios) - nox -s integration_tests: PASS (1,505 tests) - nox -s coverage_report: PASS (97.9% >= 97% threshold) - nox -s benchmark: PASS - nox -s docs: PASS - nox -s build: PASS - nox -s security_scan: PASS - nox -s dead_code: PASS ISSUES CLOSED: #628 |
||
|
|
05503712ae
|
Docs: Daily update to timeline
CI / lint (push) Successful in 28s
CI / build (push) Successful in 15s
CI / quality (push) Successful in 31s
CI / typecheck (push) Successful in 1m12s
CI / benchmark-regression (push) Has been skipped
CI / security (push) Successful in 1m21s
CI / e2e_tests (push) Successful in 1m31s
CI / unit_tests (push) Successful in 3m15s
CI / docker (push) Successful in 15s
CI / integration_tests (push) Successful in 4m15s
CI / coverage (push) Successful in 6m2s
CI / benchmark-publish (push) Successful in 19m45s
|
||
|
|
028cf150b7 |
Merge pull request 'feat(acms): implement UKO Layer 3 Technology Vocabularies (uko-py, uko-ts, uko-rs, uko-java)' (#660) from feature/m6-uko-layer3-technology-vocabularies into master
CI / lint (push) Successful in 15s
CI / build (push) Successful in 15s
CI / quality (push) Successful in 32s
CI / typecheck (push) Successful in 51s
CI / benchmark-regression (push) Has been skipped
CI / security (push) Successful in 55s
CI / e2e_tests (push) Successful in 1m31s
CI / integration_tests (push) Successful in 3m31s
CI / unit_tests (push) Successful in 3m32s
CI / docker (push) Successful in 56s
CI / coverage (push) Successful in 5m49s
CI / benchmark-publish (push) Successful in 19m41s
Reviewed-on: #660 Reviewed-by: Brent Edwards <brent.edwards@cleverthis.com> |
||
|
|
89eaee008d |
feat(acms): implement UKO Layer 3 Technology Vocabularies (uko-py, uko-ts, uko-rs, uko-java)
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 19s
CI / build (pull_request) Successful in 27s
CI / quality (pull_request) Successful in 29s
CI / security (pull_request) Successful in 41s
CI / typecheck (pull_request) Successful in 45s
CI / e2e_tests (pull_request) Successful in 1m29s
CI / unit_tests (pull_request) Successful in 3m19s
CI / integration_tests (pull_request) Successful in 3m30s
CI / docker (pull_request) Successful in 54s
CI / coverage (pull_request) Successful in 6m8s
CI / benchmark-regression (pull_request) Successful in 38m9s
Implement Layer 3 technology-specific UKO vocabulary extensions for Python, TypeScript, Rust, and Java with language-specific classes, properties, and DetailLevelMap insertions. - 4 OWL/Turtle ontology files with language-specific semantic classes - DetailLevelMap insertion logic with correct integer reassignment - Provenance contract (5 required fields per spec) - Full 4-layer chain resolution (Layer 3 -> Layer 2 -> Layer 1 -> Layer 0) - Comprehensive Behave test suite (63 scenarios) ISSUES CLOSED: #576 |
||
|
|
3b6b1d2414 |
Merge pull request 'test(plan): TDD failing tests for checkpoint real rollback (bug #822)' (#929) from tdd/m6-checkpoint-real-rollback into master
CI / lint (push) Successful in 18s
CI / quality (push) Successful in 25s
CI / security (push) Successful in 40s
CI / typecheck (push) Successful in 47s
CI / e2e_tests (push) Successful in 1m32s
CI / build (push) Successful in 15s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Successful in 5m29s
CI / docker (push) Successful in 11s
CI / integration_tests (push) Successful in 5m43s
CI / coverage (push) Successful in 5m59s
CI / benchmark-publish (push) Successful in 19m57s
Reviewed-on: #929 Reviewed-by: Luis Mendes <luis.mendes@cleverthis.com> |
||
|
|
3119383529 |
Merge branch 'master' into tdd/m6-checkpoint-real-rollback
CI / lint (pull_request) Successful in 40s
CI / typecheck (pull_request) Successful in 43s
CI / security (pull_request) Successful in 52s
CI / quality (pull_request) Successful in 26s
CI / unit_tests (pull_request) Successful in 5m20s
CI / integration_tests (pull_request) Successful in 5m54s
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 15s
CI / e2e_tests (pull_request) Successful in 1m34s
CI / docker (pull_request) Successful in 1m0s
CI / coverage (pull_request) Successful in 6m12s
CI / benchmark-regression (pull_request) Successful in 37m16s
|
||
|
|
3eecb79003 |
test(plan): TDD failing tests for checkpoint real rollback (bug #822)
CI / lint (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 46s
CI / typecheck (pull_request) Successful in 56s
CI / security (pull_request) Successful in 56s
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 29s
CI / e2e_tests (pull_request) Successful in 2m7s
CI / unit_tests (pull_request) Successful in 3m8s
CI / docker (pull_request) Successful in 9s
CI / integration_tests (pull_request) Successful in 3m57s
CI / coverage (pull_request) Successful in 7m48s
CI / benchmark-regression (pull_request) Successful in 40m48s
TDD expected-fail tests proving bug #822 exists: CheckpointService.rollback_to_checkpoint() returns a successful RollbackResult but does not execute git reset --hard. Files modified after the checkpoint remain unchanged after rollback. Also fixes Robot Framework timeout robustness across the entire test suite: all Run Process calls now use on_timeout=kill (prevents SIGTERM-induced -15 exit codes under CI load) and timeouts increased to 120s (prevents premature kills during heavy parallel execution). ISSUES CLOSED: #839 |
||
|
|
2d4b12df6a |
Merge pull request 'test(plan): TDD failing tests for subplan spawn orchestration (bug #823)' (#930) from tdd/m6-subplan-spawn-orchestration into master
CI / lint (push) Successful in 21s
CI / typecheck (push) Successful in 40s
CI / security (push) Successful in 49s
CI / quality (push) Successful in 31s
CI / e2e_tests (push) Successful in 2m4s
CI / unit_tests (push) Successful in 3m36s
CI / build (push) Successful in 16s
CI / benchmark-regression (push) Has been skipped
CI / docker (push) Successful in 11s
CI / integration_tests (push) Successful in 3m52s
CI / coverage (push) Successful in 6m6s
CI / benchmark-publish (push) Successful in 20m25s
Reviewed-on: #930 |
||
|
|
b67dc63eda |
test(plan): TDD failing tests for subplan spawn orchestration (bug #823)
CI / lint (pull_request) Successful in 1m2s
CI / quality (pull_request) Successful in 39s
CI / typecheck (pull_request) Successful in 2m21s
CI / benchmark-publish (pull_request) Has been skipped
CI / security (pull_request) Successful in 2m36s
CI / build (pull_request) Successful in 21s
CI / e2e_tests (pull_request) Successful in 2m6s
CI / integration_tests (pull_request) Successful in 3m57s
CI / unit_tests (pull_request) Successful in 4m5s
CI / docker (pull_request) Successful in 58s
CI / coverage (pull_request) Successful in 6m37s
CI / benchmark-regression (pull_request) Successful in 37m33s
Write Behave scenario and Robot Framework test proving that SubplanService.spawn() only creates metadata (SubplanStatus records and SpawnMetadata) without creating real child Plan domain objects or triggering lifecycle progression. Tests are tagged @tdd_expected_fail so CI passes via result inversion. ISSUES CLOSED: #838 |
||
|
|
dfa05a6909 |
fix(cli): wire real LLM actors into plan executor for production execution
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 26s
CI / quality (pull_request) Successful in 32s
CI / build (pull_request) Successful in 35s
CI / security (pull_request) Successful in 52s
CI / typecheck (pull_request) Successful in 56s
CI / e2e_tests (pull_request) Successful in 1m36s
CI / unit_tests (pull_request) Successful in 3m25s
CI / integration_tests (pull_request) Successful in 3m55s
CI / docker (pull_request) Successful in 57s
CI / coverage (pull_request) Successful in 6m54s
CI / lint (push) Successful in 14s
CI / quality (push) Successful in 35s
CI / typecheck (push) Successful in 39s
CI / security (push) Successful in 51s
CI / benchmark-regression (push) Has been skipped
CI / build (push) Successful in 21s
CI / e2e_tests (push) Successful in 2m14s
CI / unit_tests (push) Successful in 5m9s
CI / integration_tests (push) Successful in 5m29s
CI / docker (push) Successful in 1m6s
CI / coverage (push) Successful in 6m12s
CI / benchmark-publish (push) Successful in 20m51s
CI / benchmark-regression (pull_request) Successful in 37m16s
The `plan execute` CLI command only performed phase transitions (Strategize → Execute) without ever invoking the `PlanExecutor` to drive the strategize or execute actors. `PlanExecutor.__init__` unconditionally created `StrategizeStubActor()` and `ExecuteStubActor()` which parse text locally and return empty changesets — no real LLM call was made. Added `_get_plan_executor()` helper that resolves `ProviderRegistry` from the DI container and constructs `LLMStrategizeActor` / `LLMExecuteActor` for real LLM invocations via LangChain. Updated `execute_plan` CLI command to detect plan phase/state and automatically run the appropriate actor: - Strategize/queued → run strategize actor → transition to Execute - Strategize/complete → phase transition only (backward compat) - Execute/queued → run execute actor → mark complete New `llm_actors.py` module provides `LLMStrategizeActor` (task decomposition into numbered steps) and `LLMExecuteActor` (code generation with FILE: blocks). Both resolve `provider/model` actor names (e.g. `openai/gpt-4`) to live LangChain LLM instances. `PlanExecutor.__init__` now accepts optional `strategize_actor` and `execute_actor` parameters, falling back to stubs when None. Existing mock-based BDD tests remain backward-compatible via duck- typing fallback (MagicMock.phase is not a PlanPhase, so the legacy `service.execute_plan()` path is taken). Includes Behave BDD scenarios testing custom actor injection into PlanExecutor. ISSUES CLOSED: #960 |
||
|
|
2d423bdfcd |
fix(cli): add missing --format flag to action create command
The `action create` CLI command was the only action subcommand missing the `--format`/`-f` parameter. All other action subcommands (`list`, `show`, `archive`) already accepted `--format` and routed through `_print_action()`. Running `action create --config action.yaml --format plain` failed with a Typer unrecognized-option error. Added the `fmt` parameter (with `--format`/`-f` aliases, defaulting to `rich`) to the `create()` function signature and passed it through to the existing `_print_action()` helper which already handles all output formats. Added Behave BDD scenarios for `--format plain` and `--format json` to `action_cli_spec_alignment.feature`. ISSUES CLOSED: #959 |
||
|
|
065171f21c |
test(e2e): E2E acceptance criteria for M2 (v3.1.0) — actor compiler and LLM integration
Add Robot Framework E2E test suite robot/e2e/m2_acceptance.robot exercising M2 acceptance criteria with zero mocking. Test creates a temp git repo with sample project files, registers a custom actor via CLI, sets up resource and project, creates an action referencing the actor, and runs the full plan lifecycle (use → execute strategize → execute → diff → apply). Validates actor YAML compilation, skill registry, tool lifecycle, and LLM integration through real CLI invocations with real provider API keys. Uses flexible structural assertions and expected_rc=None for LLM-dependent commands. ISSUES CLOSED: #742 |
||
|
|
5f07316641 |
fix: wire DI persistence and plan execute/apply for M1 lifecycle
CI / lint (pull_request) Successful in 16s
CI / typecheck (pull_request) Successful in 42s
CI / security (pull_request) Successful in 46s
CI / quality (pull_request) Successful in 27s
CI / unit_tests (pull_request) Successful in 3m16s
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 15s
CI / e2e_tests (pull_request) Successful in 1m12s
CI / integration_tests (pull_request) Successful in 4m20s
CI / docker (pull_request) Successful in 59s
CI / coverage (pull_request) Successful in 6m34s
CI / lint (push) Successful in 20s
CI / typecheck (push) Successful in 45s
CI / security (push) Successful in 46s
CI / quality (push) Successful in 37s
CI / build (push) Successful in 17s
CI / e2e_tests (push) Successful in 52s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Successful in 5m9s
CI / integration_tests (push) Successful in 5m32s
CI / docker (push) Successful in 57s
CI / coverage (push) Successful in 6m10s
CI / benchmark-publish (push) Successful in 20m11s
CI / benchmark-regression (pull_request) Successful in 38m29s
Fixed 5 bugs preventing the M1 E2E acceptance test from passing: 1. _get_lifecycle_service() in action.py and plan.py bypassed the DI container, creating PlanLifecycleService without UnitOfWork. All plan/action data was in-memory only and lost between subprocess calls. Now uses container.plan_lifecycle_service() for DB persistence. 2. `plan execute` CLI only called service.execute_plan() (a pure state transition) without running PlanExecutor phase processing. Rewrote to detect the plan's current phase/state and dispatch synchronously: Strategize/queued → run_strategize(), Strategize/complete → transition + run_execute(), Execute/queued → run_execute(). 3. `plan apply` CLI had no plan_id argument. Added optional positional plan_id with _lifecycle_apply_with_id() that drives the plan through Apply/queued → Apply/processing → Apply/applied. 4. Preflight guardrail in start_strategize() built action_registry from the in-memory _actions dict only. Added get_action(plan.action_name) call to load the action from DB into cache before the guardrail check. 5. Robot Framework Create File syntax used continuation lines producing 9 arguments instead of 1. Fixed to use Catenate SEPARATOR=\n then pass single variable to Create File. Also fixed --branch main to --branch master (git init default). update mocks for execute_plan CLI changes across unit and integration tests The new execute_plan() command calls _get_plan_executor() and service.get_plan(plan_id) for phase/state detection. Existing tests only mocked _get_lifecycle_service, so MagicMock defaults caused phase/state comparisons to fail. Changes across 14 files: - Patch _get_plan_executor in all test setups that invoke the CLI execute command (Behave step files + Robot helper scripts) - Set service.get_plan.return_value to real Plan objects with correct phase/state so the execute_plan dispatch logic works - Fix error-path tests to use STRATEGIZE/COMPLETE plans so the error side_effects are actually reached - Fix "Multiple plans eligible" → "Multiple plans ready" message text to match existing test expectations increase Robot Framework subprocess timeouts for CI resource contention Three integration tests were timing out in CI due to resource contention when pabot runs multiple test suites in parallel. All three pass locally and the timeouts were simply too tight for constrained CI environments. - tdd_session_create_di.robot: 30s → 90s (DI container init + DB setup) - database_integration.robot: 60s → 120s (Run Python Script keyword) - m3_e2e_verification.robot: 60s → 120s (correction-live-revert spawns 3 sequential CLI subprocesses with full container initialization) ISSUES CLOSED: #789 |
||
|
|
cb3b7aab44 |
test(e2e): E2E acceptance criteria for M1 (v3.0.0) — minimal plan execution flow
Added Robot Framework E2E test suite for M1 milestone acceptance criteria. Tests the complete plan lifecycle (action create → resource add → project create → plan use → plan execute strategize → plan execute → plan diff → plan apply) with real LLM API keys and no mocking. Key implementation details: - Uses openai/gpt-4o-mini as strategy/execution actor (cost-effective) - Simple definition_of_done: "Create a file called HELLO.md" - Creates isolated temp git repo via Create Temp Git Repo keyword - Extracts plan ID via ULID regex from plain-text output - Uses expected_rc=None for LLM-dependent steps (execute, diff, apply) to handle non-deterministic LLM behavior gracefully - Flexible structural assertions: checks rc, output presence, git log - Skips gracefully when no LLM API keys (ANTHROPIC/OPENAI) are set - Tagged [E2E] so it runs only in nox -s e2e_tests session ISSUES CLOSED: #741 |
||
|
|
21a8e672a3
|
Docs: Contributing now enforces 97% coverage
CI / lint (push) Successful in 28s
CI / quality (push) Successful in 28s
CI / typecheck (push) Successful in 39s
CI / benchmark-regression (push) Has been skipped
CI / security (push) Successful in 48s
CI / e2e_tests (push) Successful in 50s
CI / build (push) Successful in 1m0s
CI / integration_tests (push) Successful in 3m43s
CI / coverage (push) Successful in 7m36s
CI / unit_tests (push) Successful in 8m25s
CI / docker (push) Successful in 9s
CI / benchmark-publish (push) Successful in 21m30s
|
||
|
|
ce722ed0ea |
ops(ci): configure LLM API keys in Forgejo CI for integration test execution
CI / lint (pull_request) Successful in 20s
CI / benchmark-publish (pull_request) Has been skipped
CI / quality (pull_request) Successful in 36s
CI / typecheck (pull_request) Successful in 40s
CI / e2e_tests (pull_request) Successful in 36s
CI / build (pull_request) Successful in 36s
CI / security (pull_request) Successful in 1m3s
CI / unit_tests (pull_request) Successful in 3m14s
CI / docker (pull_request) Successful in 9s
CI / integration_tests (pull_request) Successful in 3m49s
CI / coverage (pull_request) Successful in 5m54s
CI / lint (push) Successful in 32s
CI / quality (push) Successful in 33s
CI / typecheck (push) Successful in 45s
CI / benchmark-regression (push) Has been skipped
CI / build (push) Successful in 23s
CI / e2e_tests (push) Successful in 1m0s
CI / security (push) Successful in 1m12s
CI / unit_tests (push) Successful in 3m23s
CI / integration_tests (push) Successful in 3m41s
CI / docker (push) Successful in 1m6s
CI / coverage (push) Successful in 6m15s
CI / benchmark-publish (push) Successful in 20m11s
CI / benchmark-regression (pull_request) Successful in 38m40s
Updated CI pipeline to inject ANTHROPIC_API_KEY and OPENAI_API_KEY secrets as environment variables during Robot Framework integration test execution. Added CI setup documentation. ISSUES CLOSED: #701 |
||
|
|
af6340e732
|
Docs: Daily update to timeline
CI / lint (push) Successful in 15s
CI / quality (push) Successful in 34s
CI / typecheck (push) Successful in 38s
CI / security (push) Successful in 43s
CI / benchmark-regression (push) Has been skipped
CI / build (push) Successful in 20s
CI / e2e_tests (push) Successful in 40s
CI / unit_tests (push) Successful in 5m11s
CI / integration_tests (push) Successful in 5m37s
CI / docker (push) Successful in 1m8s
CI / coverage (push) Successful in 6m6s
CI / benchmark-publish (push) Has been cancelled
|
||
|
|
67291b4614
|
Docs: Updated chat room | ||
|
|
09f1d621bf
|
Docs: Daily update to timeline | ||
|
|
ec450e9085 |
fix(test): fix tolerant exit code and missing RC check in resource CLI test
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 34s
CI / quality (pull_request) Successful in 34s
CI / build (pull_request) Successful in 24s
CI / typecheck (pull_request) Successful in 40s
CI / e2e_tests (pull_request) Successful in 29s
CI / security (pull_request) Successful in 1m10s
CI / unit_tests (pull_request) Successful in 5m27s
CI / integration_tests (pull_request) Successful in 5m41s
CI / coverage (pull_request) Successful in 5m56s
CI / docker (pull_request) Successful in 1m9s
CI / lint (push) Successful in 22s
CI / quality (push) Successful in 31s
CI / e2e_tests (push) Successful in 50s
CI / typecheck (push) Successful in 56s
CI / security (push) Successful in 57s
CI / benchmark-regression (push) Has been skipped
CI / build (push) Successful in 41s
CI / unit_tests (push) Successful in 3m36s
CI / integration_tests (push) Successful in 3m46s
CI / docker (push) Successful in 1m7s
CI / coverage (push) Successful in 6m57s
CI / benchmark-publish (push) Successful in 19m47s
CI / benchmark-regression (pull_request) Successful in 44m27s
- Replace `rc == 0 or rc == 1` with strict `rc == 0` in resource type list test so failures are no longer silently accepted - Capture and assert the return code of the Suite Setup database schema creation to fail fast if the setup itself is broken apply strict RC checks to resource_cli.robot - Capture return value of Run Process in Suite Setup and assert rc==0 - Replace tolerant RC check (rc==0 or rc==1) with strict Should Be Equal As Integers check for resource type list test case broaden exception handling in resource CLI commands Add catch-all `except Exception` handler after each `except CleverAgentsError` block in all 14 resource CLI command handlers. This ensures unexpected exceptions (e.g. sqlalchemy.exc.OperationalError) are caught and displayed gracefully instead of producing raw tracebacks. re-raise typer.Abort/Exit in broad exception handlers The `except Exception` handlers added in the previous commit inadvertently caught typer.Abort and typer.Exit, which are subclasses of Exception (via click.exceptions). This turned successful CLI exits into aborts and double-handled already-caught errors, breaking integration tests that rely on normal typer exit behaviour. Add an isinstance guard to re-raise typer.Abort and typer.Exit before the catch-all handler runs. Fixes #896 |
||
|
|
447328a92d |
fix(test): remove retry masking and output filtering in database integration test
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 19s
CI / e2e_tests (pull_request) Successful in 23s
CI / security (pull_request) Successful in 31s
CI / typecheck (pull_request) Successful in 32s
CI / lint (pull_request) Successful in 43s
CI / unit_tests (pull_request) Successful in 2m10s
CI / docker (pull_request) Successful in 36s
CI / integration_tests (pull_request) Successful in 3m26s
CI / coverage (pull_request) Successful in 5m51s
CI / lint (push) Successful in 12s
CI / build (push) Successful in 14s
CI / quality (push) Successful in 15s
CI / e2e_tests (push) Successful in 25s
CI / typecheck (push) Successful in 29s
CI / security (push) Successful in 29s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Successful in 2m6s
CI / integration_tests (push) Successful in 2m39s
CI / docker (push) Successful in 36s
CI / coverage (push) Successful in 5m0s
CI / benchmark-publish (push) Successful in 18m54s
CI / benchmark-regression (pull_request) Successful in 36m22s
|
||
|
|
9ef8502570 | fix(database): reset session factory after engine disposal in init_database | ||
|
|
8c9d9c8c33 |
fix(providers): add missing module docstring to providers package
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / quality (pull_request) Successful in 16s
CI / build (pull_request) Successful in 23s
CI / e2e_tests (pull_request) Successful in 26s
CI / security (pull_request) Successful in 32s
CI / typecheck (pull_request) Successful in 33s
CI / unit_tests (pull_request) Successful in 2m35s
CI / docker (pull_request) Successful in 36s
CI / integration_tests (pull_request) Successful in 3m27s
CI / coverage (pull_request) Successful in 4m56s
CI / lint (push) Successful in 11s
CI / build (push) Successful in 15s
CI / quality (push) Successful in 17s
CI / e2e_tests (push) Successful in 25s
CI / typecheck (push) Successful in 31s
CI / benchmark-regression (push) Has been skipped
CI / security (push) Successful in 35s
CI / integration_tests (push) Successful in 2m39s
CI / unit_tests (push) Successful in 3m9s
CI / docker (push) Successful in 35s
CI / coverage (push) Successful in 4m58s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (pull_request) Successful in 35m21s
|
||
|
|
a69af285a8 |
fix(test): remove retry masking and output filtering in database integration test
- Remove silent retry logic in Run Python Script that masked intermittent failures by retrying on empty stdout + non-zero RC - Change output filter from 'in' to 'startswith' so only lines beginning with log prefixes are filtered, not lines containing them mid-string - Remove [error from the filter list so error lines are never silently discarded from test output Fixes #898 |
||
|
|
00c46c12fd |
fix(test): convert soft warnings to hard failures in architecture test
Replace Run Keyword And Return Status soft checks with direct assertions in three test cases: - Docstring check now uses Should Contain directly instead of logging WARN, so missing docstrings cause a hard test failure. - Settings file (config/settings.py) existence is now a hard File Should Exist assertion instead of a conditional that silently skips all checks when the file is absent. - Exceptions file (core/exceptions.py) existence is now a hard File Should Exist assertion instead of a conditional that silently skips the exception hierarchy checks when the file is absent. |
||
|
|
9148590542 |
fix(providers): add missing module docstring to providers package
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 14s
CI / build (pull_request) Successful in 14s
CI / quality (pull_request) Successful in 16s
CI / e2e_tests (pull_request) Successful in 24s
CI / security (pull_request) Successful in 31s
CI / typecheck (pull_request) Successful in 38s
CI / integration_tests (pull_request) Successful in 2m41s
CI / unit_tests (pull_request) Successful in 5m4s
CI / coverage (pull_request) Successful in 4m59s
CI / docker (pull_request) Successful in 43s
CI / lint (push) Successful in 12s
CI / build (push) Successful in 14s
CI / quality (push) Successful in 15s
CI / e2e_tests (push) Successful in 26s
CI / security (push) Successful in 29s
CI / typecheck (push) Successful in 35s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Successful in 2m5s
CI / integration_tests (push) Successful in 2m36s
CI / docker (push) Successful in 42s
CI / coverage (push) Successful in 4m59s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (pull_request) Successful in 34m34s
|
||
|
|
64e606099c |
fix(test): convert soft warnings to hard failures in architecture test
Replace Run Keyword And Return Status soft checks with direct assertions in three test cases: - Docstring check now uses Should Contain directly instead of logging WARN, so missing docstrings cause a hard test failure. - Settings file (config/settings.py) existence is now a hard File Should Exist assertion instead of a conditional that silently skips all checks when the file is absent. - Exceptions file (core/exceptions.py) existence is now a hard File Should Exist assertion instead of a conditional that silently skips the exception hierarchy checks when the file is absent. |
||
|
|
586ea4557f |
fix(test): add return code checks to intermediate commands in core CLI test
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / build (pull_request) Successful in 15s
CI / quality (pull_request) Successful in 17s
CI / e2e_tests (pull_request) Successful in 27s
CI / security (pull_request) Successful in 32s
CI / typecheck (pull_request) Successful in 32s
CI / unit_tests (pull_request) Successful in 2m2s
CI / docker (pull_request) Successful in 9s
CI / integration_tests (pull_request) Successful in 2m46s
CI / coverage (pull_request) Successful in 5m2s
CI / lint (push) Successful in 11s
CI / build (push) Successful in 15s
CI / quality (push) Successful in 15s
CI / e2e_tests (push) Successful in 23s
CI / security (push) Successful in 29s
CI / typecheck (push) Successful in 36s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Successful in 2m10s
CI / integration_tests (push) Successful in 2m41s
CI / docker (push) Successful in 37s
CI / coverage (push) Successful in 6m58s
CI / benchmark-publish (push) Successful in 19m25s
CI / benchmark-regression (pull_request) Successful in 35m29s
Add rc == 0 assertions to ~11 intermediate Run Process calls in core_cli_commands.robot that were used as setup steps without any return code verification. If any setup command (init, tell, build, context add, plan new) fails silently, subsequent test assertions could pass for wrong reasons. All setup commands now capture their result and assert rc == 0. |
||
|
|
14884ba15e |
Merge pull request 'refactor(a2a): update test files for ACP to A2A rename' (#737) from refactor/m7-acp-to-a2a-tests into master
CI / lint (push) Successful in 15s
CI / build (push) Successful in 16s
CI / quality (push) Successful in 18s
CI / e2e_tests (push) Successful in 25s
CI / security (push) Successful in 32s
CI / typecheck (push) Successful in 33s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Successful in 2m22s
CI / docker (push) Successful in 9s
CI / integration_tests (push) Successful in 2m38s
CI / coverage (push) Successful in 5m9s
CI / benchmark-publish (push) Has been cancelled
Reviewed-on: #737 Reviewed-by: Brent Edwards <brent.edwards@cleverthis.com> |
||
|
|
4133c46aff |
refactor(a2a): update test files for ACP to A2A rename
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 14s
CI / build (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 18s
CI / e2e_tests (pull_request) Successful in 25s
CI / typecheck (pull_request) Successful in 33s
CI / security (pull_request) Successful in 34s
CI / unit_tests (pull_request) Successful in 2m12s
CI / docker (pull_request) Successful in 8s
CI / integration_tests (pull_request) Successful in 2m37s
CI / coverage (pull_request) Successful in 5m6s
CI / benchmark-regression (pull_request) Successful in 35m40s
Replace two remaining 'ACP' references with 'A2A' in vulture_whitelist.py comments (lines 633, 957) missed by the source rename in PR #705. Closes #689 |
||
|
|
c169cb201d |
fix(test): remove skip guard and soft assertions from scientific paper E2E test
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / build (pull_request) Successful in 15s
CI / quality (pull_request) Successful in 16s
CI / security (pull_request) Successful in 31s
CI / e2e_tests (pull_request) Successful in 30s
CI / typecheck (pull_request) Successful in 32s
CI / integration_tests (pull_request) Successful in 2m39s
CI / unit_tests (pull_request) Successful in 5m23s
CI / coverage (pull_request) Successful in 4m59s
CI / docker (pull_request) Successful in 38s
CI / lint (push) Successful in 13s
CI / build (push) Successful in 14s
CI / quality (push) Successful in 15s
CI / e2e_tests (push) Successful in 23s
CI / typecheck (push) Successful in 31s
CI / benchmark-regression (push) Has been skipped
CI / security (push) Successful in 35s
CI / unit_tests (push) Successful in 2m16s
CI / docker (push) Successful in 8s
CI / integration_tests (push) Successful in 2m36s
CI / coverage (push) Successful in 4m59s
CI / benchmark-publish (push) Successful in 18m41s
CI / benchmark-regression (pull_request) Successful in 36m52s
- Remove Require OpenAI Key skip guard that silently skipped the suite - Replace Run Keyword And Return Status soft RC check with direct assertion - Convert conditional LaTeX presence check to hard assertions - Convert conditional latex_source context field check to hard assertion - Remove dead stderr checks (stderr redirected to stdout via stderr=STDOUT) |
||
|
|
77a7813f0e |
fix(test): tighten diagnostics check exit code assertion in CLI core test
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 15s
CI / quality (pull_request) Successful in 17s
CI / e2e_tests (pull_request) Successful in 24s
CI / lint (pull_request) Successful in 29s
CI / security (pull_request) Successful in 31s
CI / typecheck (pull_request) Successful in 55s
CI / integration_tests (pull_request) Successful in 2m39s
CI / unit_tests (pull_request) Successful in 2m57s
CI / docker (pull_request) Successful in 11s
CI / coverage (pull_request) Successful in 5m14s
CI / lint (push) Successful in 12s
CI / build (push) Successful in 15s
CI / quality (push) Successful in 17s
CI / e2e_tests (push) Successful in 23s
CI / typecheck (push) Successful in 30s
CI / security (push) Successful in 30s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Successful in 2m5s
CI / docker (push) Successful in 38s
CI / integration_tests (push) Successful in 2m44s
CI / coverage (push) Successful in 5m14s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (pull_request) Successful in 36m14s
Replace the tolerant "rc == 0 or rc == 1" assertion with a strict "rc == 0" check for the diagnostics --check command. In a clean test environment, diagnostics should complete without finding errors, and the previous assertion could not distinguish a legitimate diagnostic failure from a command crash. |
||
|
|
eb2c2362bd |
fix(test): remove skip guard from scientific paper basic test
CI / lint (pull_request) Successful in 18s
CI / build (pull_request) Successful in 15s
CI / quality (pull_request) Successful in 19s
CI / benchmark-publish (pull_request) Has been skipped
CI / e2e_tests (pull_request) Successful in 31s
CI / typecheck (pull_request) Successful in 35s
CI / security (pull_request) Successful in 42s
CI / unit_tests (pull_request) Successful in 2m22s
CI / docker (pull_request) Successful in 54s
CI / integration_tests (pull_request) Successful in 3m37s
CI / coverage (pull_request) Successful in 6m21s
CI / benchmark-regression (pull_request) Successful in 35m46s
CI / lint (push) Successful in 13s
CI / build (push) Successful in 14s
CI / e2e_tests (push) Successful in 25s
CI / quality (push) Successful in 29s
CI / typecheck (push) Successful in 30s
CI / benchmark-regression (push) Has been skipped
CI / security (push) Successful in 36s
CI / unit_tests (push) Successful in 2m28s
CI / docker (push) Successful in 9s
CI / integration_tests (push) Successful in 2m45s
CI / coverage (push) Successful in 5m19s
CI / benchmark-publish (push) Has been cancelled
Remove the Require OpenAI Key keyword and its call from Suite Setup. Tests now fail with a real error when OPENAI_API_KEY is absent, providing honest signal instead of silently skipping. |
||
|
|
232ef965f5 |
Merge pull request 'feat(acms): implement UKO Layer 2 Paradigm Vocabularies (uko-oo, uko-func, uko-proc)' (#657) from feature/m6-uko-layer2-paradigm-vocabularies into master
CI / lint (push) Successful in 16s
CI / build (push) Successful in 14s
CI / quality (push) Successful in 18s
CI / security (push) Successful in 33s
CI / e2e_tests (push) Successful in 23s
CI / typecheck (push) Successful in 36s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Successful in 2m17s
CI / integration_tests (push) Successful in 2m46s
CI / docker (push) Successful in 55s
CI / coverage (push) Successful in 5m23s
CI / benchmark-publish (push) Successful in 18m40s
CI / benchmark-publish (pull_request) Has been skipped
CI / integration_tests (pull_request) Successful in 3m48s
CI / quality (pull_request) Successful in 18s
CI / unit_tests (pull_request) Successful in 2m12s
CI / typecheck (pull_request) Successful in 34s
CI / build (pull_request) Successful in 17s
CI / lint (pull_request) Successful in 14s
CI / docker (pull_request) Successful in 50s
CI / e2e_tests (pull_request) Successful in 27s
CI / security (pull_request) Successful in 33s
CI / coverage (pull_request) Successful in 5m13s
CI / benchmark-regression (pull_request) Failing after 19m26s
Reviewed-on: #657 Reviewed-by: Aditya Chhabra <aditya.chhabra@cleverthis.com> |
||
|
|
3c014a9565 |
feat(acms): implement UKO Layer 2 Paradigm Vocabularies (uko-oo, uko-func, uko-proc)
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / build (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 19s
CI / e2e_tests (pull_request) Successful in 23s
CI / typecheck (pull_request) Successful in 32s
CI / security (pull_request) Successful in 43s
CI / unit_tests (pull_request) Successful in 2m2s
CI / integration_tests (pull_request) Successful in 2m41s
CI / docker (pull_request) Successful in 49s
CI / coverage (pull_request) Successful in 5m32s
CI / benchmark-regression (pull_request) Successful in 36m2s
|
||
|
|
317d015260
|
test(e2e): validate M4 acceptance criteria for v3.3.0 milestone closure
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 16s
CI / build (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 18s
CI / e2e_tests (pull_request) Successful in 27s
CI / security (pull_request) Successful in 38s
CI / typecheck (pull_request) Successful in 39s
CI / unit_tests (pull_request) Successful in 3m0s
CI / docker (pull_request) Successful in 10s
CI / integration_tests (pull_request) Successful in 3m29s
CI / coverage (pull_request) Successful in 5m54s
CI / lint (push) Successful in 13s
CI / build (push) Successful in 14s
CI / quality (push) Successful in 17s
CI / security (push) Successful in 38s
CI / e2e_tests (push) Successful in 36s
CI / typecheck (push) Successful in 39s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Successful in 2m59s
CI / integration_tests (push) Successful in 3m24s
CI / docker (push) Successful in 38s
CI / coverage (push) Successful in 5m54s
CI / benchmark-publish (push) Successful in 19m34s
CI / benchmark-regression (pull_request) Successful in 36m21s
Strengthen M4 E2E CLI acceptance tests and address all review findings from the self-review on PR #681 (3 blocking, 7 non-blocking issues). Blocking fixes: - Remove tautological domain assertions from cli_plan_execute() that verified values the test itself constructed via _mock_parent_plan and could never fail. Replace with a comment documenting that subplan info cannot be verified from CLI output alone. - Fix unguarded positional arg access in plan_diff() that would raise IndexError if the production CLI passes plan_id as a keyword argument. Now uses kwargs-with-positional-fallback pattern. - Split the 1074-line helper_m4_e2e_verification.py into four focused modules under the CONTRIBUTING.md 500-line limit: helper_m4_e2e_common.py (237 lines) — constants, helpers, factories helper_m4_e2e_domain.py (495 lines) — domain model tests helper_m4_e2e_cli.py (426 lines) — CLI integration tests helper_m4_e2e_verification.py (81 lines) — thin dispatcher Non-blocking improvements: - Add ProjectLink isinstance type guard before iterating project_links. - Wrap all assert_called_once*() calls in try/except with _fail() pattern to produce standardised FAIL: diagnostics instead of raw AssertionError. - Make project_links extraction symmetric with action_name (kwargs + positional fallback at index 1). - Replace broad "execute" substring match with word-boundary regex r"\bexecute\b" to avoid false positives from incidental substrings. - Extract _make_subplan_status() factory, _assert_exit_code() and _assert_mock_called_once*() wrappers to eliminate DRY violations (SubplanStatus construction repeated 3x, exit-code checks 4x). - Replace non-deterministic datetime.now() calls with frozen constant _FROZEN_NOW = datetime(2026, 3, 1, 12, 0, 0) for deterministic fixtures. - Rename generic _DECISION_ULID_N constants to descriptive names (_DECISION_PROMPT_DEF, _DECISION_STRATEGY, _DECISION_PARALLEL_SPAWN, _DECISION_SPAWN_API, _DECISION_SPAWN_UI). Quality gates: - lint: PASS - format: PASS (1404 files unchanged) - typecheck: PASS (0 errors) - unit_tests: 10,431 scenarios, 0 failures - integration_tests: 1,452 tests, 0 failures - coverage_report: PASS (98%, threshold 97%) - security_scan: PASS - dead_code: PASS - docs: PASS - build: PASS ISSUES CLOSED: #495 |
||
|
|
eb770643c2
|
test(e2e): validate M5 acceptance criteria for v3.4.0 milestone closure
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 16s
CI / build (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 19s
CI / e2e_tests (pull_request) Successful in 32s
CI / security (pull_request) Successful in 37s
CI / typecheck (pull_request) Successful in 39s
CI / unit_tests (pull_request) Successful in 3m1s
CI / integration_tests (pull_request) Successful in 3m39s
CI / docker (pull_request) Successful in 40s
CI / coverage (pull_request) Successful in 6m49s
CI / lint (push) Successful in 12s
CI / build (push) Successful in 15s
CI / quality (push) Successful in 17s
CI / e2e_tests (push) Successful in 30s
CI / typecheck (push) Successful in 36s
CI / benchmark-regression (push) Has been skipped
CI / security (push) Successful in 49s
CI / unit_tests (push) Successful in 3m16s
CI / integration_tests (push) Successful in 3m37s
CI / docker (push) Successful in 51s
CI / coverage (push) Successful in 6m40s
CI / benchmark-publish (push) Successful in 20m12s
CI / benchmark-regression (pull_request) Successful in 37m11s
Add four CLI-based integration test cases to the M5 E2E verification suite that exercise the exact commands from the v3.4.0 milestone description via real subprocess calls to `python -m cleveragents`. CLI test cases: - CLI Project Create Large Project: `agents project create local/large-project` - CLI Resource Add Git Checkout: `agents resource add git-checkout ...` - CLI Project Link Resource: `agents project link-resource ...` - CLI Project Show Displays Linked Resource: `agents project show ...` Each test creates an isolated temp directory with its own CLEVERAGENTS_HOME, initialises a workspace via `agents init`, runs the target CLI command as a subprocess with `on_timeout=kill`, asserts zero exit code and verifies expected output, then tears down the temp directory. Bug fix: ProjectResourceLinkRepository.create_link() and remove_link() only called session.flush() without session.commit(), causing linked resource data to be silently lost between sessions. Added session.commit() to both methods, plus finally: session.close() to match the session-factory lifecycle pattern used by all other mutating repository methods. Added session.refresh() and session.expunge() before return in create_link() so the returned ORM instance is fully loaded and usable in detached state after session close. Regression guard: Added two cross-session persistence Behave scenarios (project_repository.feature) that open a new session from the same engine after create_link/remove_link and verify the operation was durably committed. Test improvements from review feedback (rounds 1 and 2): - Per-test CLEVERAGENTS_HOME isolation via env: override on all Run Process calls to prevent shared state between tests. - Stronger ULID-based assertions: CLI tests capture the resource_id ULID from resource show output and verify the exact ID in project show output. - Regex-based branch assertion (branch.*main) instead of generic string match. - Test 4 differentiated from Test 3 by verifying resource show independently after linking and asserting the specific resource ULID. - Documentation noting context tier and ACMS criteria are validated at the Python API level via helper_m5_e2e_verification.py. - Updated ProjectResourceLinkRepository class docstring documenting commit and close behaviour of mutating methods. - CHANGELOG entry for both test additions and production bug fix. - Redundant Library imports removed, --format plain on project list, comments explaining fake repo directories, standardised Run Process line style. Context/ACMS CLI coverage is intentionally not added because the CLI does not yet expose dedicated context/ACMS inspection commands. These criteria are validated at the Python API level via helper_m5_e2e_verification.py. ISSUES CLOSED: #496 |
||
|
|
3e3e9b4b5d
|
feat(observability): wire AuditService.record() into domain services via EventBus auto-dispatch
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 14s
CI / build (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 18s
CI / e2e_tests (pull_request) Successful in 30s
CI / security (pull_request) Successful in 36s
CI / typecheck (pull_request) Successful in 40s
CI / unit_tests (pull_request) Successful in 3m19s
CI / integration_tests (pull_request) Successful in 3m36s
CI / docker (pull_request) Successful in 40s
CI / coverage (pull_request) Successful in 5m38s
CI / lint (push) Successful in 12s
CI / quality (push) Successful in 19s
CI / build (push) Successful in 15s
CI / security (push) Successful in 38s
CI / e2e_tests (push) Successful in 28s
CI / typecheck (push) Successful in 42s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Successful in 3m14s
CI / docker (push) Successful in 10s
CI / integration_tests (push) Successful in 3m33s
CI / coverage (push) Successful in 6m3s
CI / benchmark-publish (push) Successful in 19m14s
CI / benchmark-regression (pull_request) Successful in 36m42s
Implements AuditEventSubscriber that subscribes to all 9 security-relevant EventType members and persists redacted audit entries via AuditService.record(). Key components: - AuditEventSubscriber: bridges EventBus and AuditService (SEC7) - SECURITY_EVENT_MAP: maps EventType enum to audit type strings - Redaction via redact_dict() on event details before persistence - Graceful error handling: failures logged, never propagated Post-review fixes applied: - BUG-1: Remove dead correlation_id null-check guard (DomainEvent.correlation_id is always non-None via ULID default_factory) - SEC-2: Redact exception messages in warning logs via redact_value() to prevent potential leakage of sensitive internal state (e.g. DB connection strings) - PERF-3: Pre-generate unique DomainEvent instances in ASV benchmark setup to avoid skew from reusing a single frozen object - Wire event_bus from the DI container into CorrectionService (plan.py), ConfigService (config.py, skill.py x2, server.py), and PersistentSessionService (session.py) at their CLI construction sites. Closes #581 |
||
|
|
b90f2cccdc |
Merge pull request 'fix(test): convert M1-M6 E2E suites to real subprocess CLI invocations (closes #658)' (#784) from bugfix/m6-e2e-mock-only-coverage into master
CI / lint (push) Successful in 15s
CI / build (push) Successful in 16s
CI / quality (push) Successful in 18s
CI / e2e_tests (push) Successful in 27s
CI / security (push) Successful in 35s
CI / typecheck (push) Successful in 42s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Successful in 3m14s
CI / integration_tests (push) Successful in 3m30s
CI / docker (push) Successful in 49s
CI / coverage (push) Successful in 6m26s
CI / benchmark-publish (push) Successful in 19m21s
Reviewed-on: #784 |
||
|
|
717550c59e |
Merge branch 'master' into bugfix/m6-e2e-mock-only-coverage
CI / benchmark-publish (pull_request) Has been skipped
CI / quality (pull_request) Successful in 17s
CI / lint (pull_request) Successful in 18s
CI / build (pull_request) Successful in 21s
CI / e2e_tests (pull_request) Successful in 33s
CI / security (pull_request) Successful in 1m4s
CI / typecheck (pull_request) Successful in 1m11s
CI / unit_tests (pull_request) Successful in 3m4s
CI / integration_tests (pull_request) Successful in 3m47s
CI / docker (pull_request) Successful in 43s
CI / coverage (pull_request) Successful in 6m36s
CI / benchmark-regression (pull_request) Successful in 37m38s
|
||
|
|
9141676329 |
Merge pull request 'test(e2e): TDD failing tests for E2E mock-only coverage (bug #658)' (#738) from tdd/m6-e2e-mock-only-coverage into master
CI / lint (push) Successful in 14s
CI / build (push) Successful in 15s
CI / quality (push) Successful in 18s
CI / e2e_tests (push) Successful in 27s
CI / security (push) Successful in 36s
CI / typecheck (push) Successful in 37s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Successful in 3m12s
CI / integration_tests (push) Successful in 3m42s
CI / docker (push) Successful in 53s
CI / coverage (push) Successful in 5m39s
CI / benchmark-publish (push) Has been cancelled
Reviewed-on: #738 |
||
|
|
94d953246d |
fix(test): correct mock wiring in plan_correct_tree_wiring Robot helper
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 14s
CI / build (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 17s
CI / security (pull_request) Successful in 34s
CI / typecheck (pull_request) Successful in 38s
CI / unit_tests (pull_request) Successful in 3m0s
CI / integration_tests (pull_request) Successful in 3m26s
CI / docker (pull_request) Successful in 41s
CI / coverage (pull_request) Successful in 5m26s
CI / benchmark-regression (pull_request) Has been cancelled
Replace container.resolve.return_value with container.decision_service.return_value to match actual CLI code (plan.py uses container.decision_service()). This was the residual pattern from before the DI migration in this same PR. Fixes CI: Robot.Plan Correct Tree Wiring (2 of 3 tests failing with exit code 1) |
||
|
|
703511a28f |
Merge branch 'master' into tdd/m6-e2e-mock-only-coverage
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 14s
CI / build (pull_request) Successful in 15s
CI / quality (pull_request) Successful in 18s
CI / e2e_tests (pull_request) Successful in 34s
CI / security (pull_request) Successful in 37s
CI / typecheck (pull_request) Successful in 39s
CI / unit_tests (pull_request) Successful in 4m46s
CI / integration_tests (pull_request) Successful in 5m11s
CI / docker (pull_request) Successful in 42s
CI / coverage (pull_request) Successful in 5m35s
CI / benchmark-regression (pull_request) Successful in 36m16s
|
||
|
|
9c8dc9edd2
|
Docs: Daily update to timeline
CI / lint (push) Successful in 18s
CI / build (push) Successful in 16s
CI / quality (push) Successful in 20s
CI / e2e_tests (push) Successful in 33s
CI / security (push) Successful in 43s
CI / typecheck (push) Successful in 44s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Successful in 3m10s
CI / integration_tests (push) Successful in 3m23s
CI / docker (push) Successful in 40s
CI / coverage (push) Successful in 5m29s
CI / benchmark-publish (push) Successful in 19m12s
|
||
|
|
9d36a7f904 |
Merge pull request 'fix(cli): handle missing database in session list command' (#723) from bugfix/m3-session-list-error into master
CI / lint (push) Successful in 15s
CI / build (push) Successful in 15s
CI / quality (push) Successful in 19s
CI / e2e_tests (push) Successful in 33s
CI / security (push) Successful in 35s
CI / typecheck (push) Successful in 37s
CI / benchmark-regression (push) Has been skipped
CI / benchmark-publish (push) Has been cancelled
CI / integration_tests (push) Has been cancelled
CI / unit_tests (push) Has been cancelled
CI / docker (push) Has been cancelled
CI / coverage (push) Has been cancelled
Reviewed-on: #723 Reviewed-by: Jeffrey Phillips Freeman <jeffrey.freeman@cleverthis.com> |
||
|
|
76fb84c3d0 |
Merge remote-tracking branch 'origin/master' into bugfix/m3-session-list-error
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 20s
CI / build (pull_request) Successful in 20s
CI / e2e_tests (pull_request) Successful in 27s
CI / typecheck (pull_request) Successful in 40s
CI / security (pull_request) Successful in 52s
CI / unit_tests (pull_request) Successful in 3m9s
CI / integration_tests (pull_request) Successful in 3m32s
CI / docker (pull_request) Successful in 40s
CI / coverage (pull_request) Successful in 5m41s
CI / benchmark-regression (pull_request) Successful in 36m0s
# Conflicts: # CHANGELOG.md |