freemo
74772280e6
perf(tests): optimize coverage instrumentation and reporting pipeline
...
Replace coverage.py (sys.settrace-based) with slipcover (bytecode-based
instrumentation) for significantly faster coverage collection:
- Each behave-parallel worker runs under slipcover, producing per-feature
JSON coverage files with unique UUIDs to avoid write contention.
- After all workers finish, slipcover --merge combines per-worker data
into a single build/coverage.json report.
- XML report generated via slipcover --merge --xml for CI tooling.
- Terminal report with --fail-under=97 threshold enforcement.
- Robust JSON key-fallback logic handles both slipcover and coverage.py
output formats.
- CI workflow (ci.yml, nightly-quality.yml) updated with defensive key
lookup instead of hardcoded coverage.py format.
- Documentation updated to reflect slipcover as the coverage tool.
- CHANGELOG.md updated.
ISSUES CLOSED : #482
2026-03-02 02:01:27 +00:00
brent.edwards
38e75342a9
refactor: merge from master
...
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 14s
CI / quality (pull_request) Successful in 16s
CI / build (pull_request) Successful in 23s
CI / typecheck (pull_request) Successful in 31s
CI / security (pull_request) Successful in 59s
CI / integration_tests (pull_request) Successful in 3m30s
CI / benchmark-regression (pull_request) Successful in 21m22s
CI / unit_tests (pull_request) Successful in 23m4s
CI / docker (pull_request) Successful in 16s
CI / coverage (pull_request) Successful in 43m38s
This code is a merge from master.
2026-02-28 05:49:26 +00:00
brent.edwards
348c230bc5
test(e2e): add M6 autonomy acceptance suite
...
CI / lint (pull_request) Successful in 21s
CI / quality (pull_request) Successful in 28s
CI / security (pull_request) Successful in 31s
CI / benchmark-publish (pull_request) Has been skipped
CI / typecheck (pull_request) Successful in 53s
CI / build (pull_request) Successful in 24s
CI / integration_tests (pull_request) Successful in 4m25s
CI / unit_tests (pull_request) Successful in 23m33s
CI / docker (pull_request) Successful in 11s
CI / benchmark-regression (pull_request) Successful in 28m0s
CI / coverage (pull_request) Successful in 48m3s
Add comprehensive M6 autonomy acceptance test suites covering the ACP
local-mode facade, autonomy guardrails, automation profile resolution,
event queue pub/sub, HTTP transport stub, and version negotiation.
Behave suite (52 scenarios):
- ACP facade dispatch for all 11 operations
- Guard enforcement (denylist, allowlist, budget, call limit, write/apply)
- Automation profile built-in validation and custom creation
- Profile resolution precedence (plan > action > project > global)
- Event queue lifecycle (publish, subscribe, unsubscribe, close)
- HTTP transport stub rejection in local mode
- ACP version negotiation (accept/reject)
- Model validation (AcpRequest, AcpResponse, AcpEvent, AcpErrorDetail)
Robot integration suite (11 tests):
- Facade session/plan lifecycle, unknown operation error
- Event queue publish/subscribe, transport stub, version negotiation
- Guard denylist/budget enforcement, profile resolution
- Fixture loading, full end-to-end flow
ASV benchmarks (5 suites):
- Facade dispatch, guard evaluation, profile resolution
- Event queue operations, fixture loading
Fixtures: acp_facade_flows.json, autonomy_guardrails.json,
automation_profiles.json
Closes #211
2026-02-27 20:31:15 +00:00
brent.edwards
ece5e61725
test(e2e): add M5 ACMS + context suites
CI / lint (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 21s
CI / security (pull_request) Successful in 40s
CI / typecheck (pull_request) Successful in 41s
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 16s
CI / integration_tests (pull_request) Successful in 2m47s
CI / benchmark-regression (pull_request) Successful in 28m30s
CI / unit_tests (pull_request) Failing after 33m23s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Failing after 53m42s
2026-02-27 20:20:13 +00:00
brent.edwards
32b81793a2
refactor(test): rename decision persistence files to avoid conflict with master
...
Rename our serialization-focused decision persistence suites to
*_serialization to avoid add/add conflicts with the repository-based
decision persistence suites that landed on master independently:
- decision_persistence.feature -> decision_persistence_serialization.feature
- decision_persistence_steps.py -> decision_persistence_serialization_steps.py
- decision_persistence_bench.py -> decision_persistence_serialization_bench.py
- decision_persistence.robot -> decision_persistence_serialization.robot
- helper_decision_persistence.py -> helper_decision_persistence_serialization.py
Updated robot helper path, step docstring, and testing.md references.
2026-02-26 16:13:44 +00:00
brent.edwards
3d3c8fda33
Merge feature/m4-decision-tests into develop-brent-5
2026-02-26 02:15:01 +00:00
brent.edwards
b3f126b147
Merge feature/m3-decision-validation-smoke into develop-brent-5
2026-02-26 02:14:14 +00:00
brent.edwards
b99510d016
fix(test): derive decision type count from enum instead of hard-coding 11
...
CI / lint (pull_request) Successful in 21s
CI / typecheck (pull_request) Successful in 55s
CI / security (pull_request) Successful in 51s
CI / quality (pull_request) Successful in 32s
CI / integration_tests (pull_request) Successful in 5m12s
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 24s
CI / unit_tests (pull_request) Successful in 33m37s
CI / benchmark-regression (pull_request) Successful in 26m3s
CI / docker (pull_request) Successful in 1m1s
CI / coverage (pull_request) Has been cancelled
Replace hard-coded '11 decision types' with dynamic len(DecisionType) in
the assertion and remove the literal from scenario names, step patterns,
docstrings, and docs so the tests stay correct when new DecisionType
values are added.
2026-02-26 01:19:28 +00:00
brent.edwards
93730067a2
fix(test): address review findings in M3 smoke tests
...
CI / lint (pull_request) Successful in 24s
CI / typecheck (pull_request) Successful in 55s
CI / security (pull_request) Successful in 47s
CI / quality (pull_request) Successful in 28s
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 23s
CI / integration_tests (pull_request) Successful in 5m7s
CI / unit_tests (pull_request) Successful in 20m55s
CI / benchmark-regression (pull_request) Successful in 25m40s
CI / docker (pull_request) Successful in 14s
CI / coverage (pull_request) Successful in 1h48m41s
- Replace dead after_scenario() hook with context.add_cleanup() calls
so patchers are properly stopped (Behave only runs hooks from
environment.py)
- Fix invalid ULID constants: pad DECISION/CORRECTION to 26 chars,
replace invalid 'I' with 'J' in INVARIANT_ULID
- Add temp file cleanup for NamedTemporaryFile(delete=False) via
context.add_cleanup() in behave steps and try/finally in robot helper
- Remove decision-persistence doc sections from testing.md that belong
in PR #438 , not this PR
2026-02-26 01:13:16 +00:00
brent.edwards
c80cda2590
Merge feature/m4-correction-subplan-smoke into develop-brent-5
CI / lint (pull_request) Successful in 23s
CI / typecheck (pull_request) Successful in 1m7s
CI / security (pull_request) Successful in 1m0s
CI / quality (pull_request) Successful in 28s
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 25s
CI / integration_tests (pull_request) Successful in 5m50s
CI / unit_tests (pull_request) Failing after 32m24s
CI / docker (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Successful in 25m44s
CI / coverage (pull_request) Failing after 1h28m6s
2026-02-25 22:11:33 +00:00
brent.edwards
917c2bc546
test(e2e): add M4 correction + subplan suites
2026-02-25 21:51:26 +00:00
brent.edwards
ace7311de4
test(e2e): add M3 decision + validation suites
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 19s
CI / build (pull_request) Successful in 20s
CI / security (pull_request) Successful in 55s
CI / typecheck (pull_request) Successful in 1m5s
CI / integration_tests (pull_request) Successful in 4m4s
CI / benchmark-regression (pull_request) Successful in 22m21s
CI / unit_tests (pull_request) Failing after 34m7s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Has been cancelled
2026-02-25 21:26:19 +00:00
brent.edwards
f4c4884d03
test(persistence): add decision persistence suites
...
CI / lint (pull_request) Successful in 21s
CI / typecheck (pull_request) Successful in 40s
CI / security (pull_request) Successful in 41s
CI / benchmark-publish (pull_request) Has been skipped
CI / quality (pull_request) Successful in 37s
CI / build (pull_request) Successful in 32s
CI / integration_tests (pull_request) Successful in 4m46s
CI / unit_tests (pull_request) Successful in 10m36s
CI / docker (pull_request) Successful in 1m2s
CI / benchmark-regression (pull_request) Successful in 22m26s
CI / coverage (pull_request) Successful in 1h55m50s
Add comprehensive persistence test suites for the Decision domain model
covering serialization round-trips (model_dump/model_validate, JSON),
context-snapshot persistence, correction-chain reconstruction, and
decision-tree reconstruction from serialized data.
Deliverables:
- Behave: 21 scenarios in features/decision_persistence.feature
- Robot Framework: 7 integration tests in robot/decision_persistence.robot
- ASV benchmarks: 4 suites (17 benchmarks) in benchmarks/decision_persistence_bench.py
- Documentation: Updated docs/development/testing.md
ISSUES CLOSED : #180
2026-02-25 21:19:57 +00:00
brent.edwards
3b58432ecc
docs(merge): merge new docs into branch
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 19s
CI / security (pull_request) Successful in 31s
CI / typecheck (pull_request) Successful in 36s
CI / integration_tests (pull_request) Failing after 3m10s
CI / benchmark-regression (pull_request) Has been cancelled
CI / unit_tests (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
2026-02-25 19:41:56 +00:00
CoreRasurae
57fcc880c3
feat(apply): run validation attachments
...
ISSUES CLOSED : #176
2026-02-25 10:03:21 +00:00
brent.edwards
e230700857
Merge feature/m1-e2e-sourcecode into develop-brent-4
2026-02-25 06:36:45 +00:00
brent.edwards
dbc9be9fc0
Merge feature/m2-actor-tool-smoke into develop-brent-4
2026-02-25 06:35:44 +00:00
brent.edwards
0397a00eb6
test(e2e): add M1 source-code plan lifecycle suite
CI / lint (pull_request) Successful in 24s
CI / security (pull_request) Successful in 48s
CI / quality (pull_request) Successful in 30s
CI / benchmark-publish (pull_request) Has been skipped
CI / typecheck (pull_request) Successful in 1m8s
CI / build (pull_request) Successful in 26s
CI / integration_tests (pull_request) Successful in 5m6s
CI / unit_tests (pull_request) Successful in 22m40s
CI / docker (pull_request) Successful in 15s
CI / benchmark-regression (pull_request) Successful in 23m12s
CI / coverage (pull_request) Successful in 31m33s
2026-02-25 04:50:43 +00:00
brent.edwards
9bf87a20d9
chore(pr): address code review feedback for PR #421
...
CI / lint (pull_request) Successful in 23s
CI / benchmark-publish (pull_request) Has been skipped
CI / quality (pull_request) Successful in 30s
CI / build (pull_request) Successful in 23s
CI / security (pull_request) Successful in 52s
CI / typecheck (pull_request) Successful in 58s
CI / integration_tests (pull_request) Successful in 4m58s
CI / unit_tests (pull_request) Successful in 12m52s
CI / docker (pull_request) Successful in 1m0s
CI / benchmark-regression (pull_request) Successful in 21m33s
CI / coverage (pull_request) Successful in 1h12m45s
- Added CHANGELOG.md entry for M2 E2E test suite (CONTRIBUTING.md §6)
- Added Brent E. Edwards to CONTRIBUTORS.md (CONTRIBUTING.md §8)
- Fixed docs/development/testing.md: corrected M2 Behave scenario count
from 11 to 10 to match actual feature file
- Added standard explanatory comments to benchmark sys.path setup
for consistency with project convention (advisory)
- Replaced untyped lambda handler with typed _m2_noop_handler function
in step definitions (advisory)
All nox stages pass: lint, typecheck, format, unit_tests (280 features /
5846 scenarios / 0 failures), integration_tests (682 passed),
coverage_report (97.2%).
ISSUES CLOSED : #169
2026-02-25 04:13:55 +00:00
brent.edwards
093a74953f
test(e2e): add M2 actor + tool source smoke suite
...
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 16s
CI / lint (pull_request) Successful in 21s
CI / quality (pull_request) Successful in 27s
CI / security (pull_request) Successful in 56s
CI / typecheck (pull_request) Successful in 1m2s
CI / coverage (pull_request) Has been cancelled
CI / unit_tests (pull_request) Has been cancelled
CI / integration_tests (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
Add comprehensive E2E test suite for M2 (Actor Graphs + Tool Sources) epic:
- Behave BDD: 10 scenarios covering actor YAML loading, skill registry,
tool lifecycle (discover/activate/execute/deactivate), and MCP stub
- Robot Framework: 6 integration tests via CLI helper script
- ASV benchmarks: 12 benchmarks for actor loading, skill registry,
tool lifecycle, and MCP stub performance baselines
- MCP stub server mock: in-process fake with 3 tools (search/fetch/transform)
- Fixtures: hierarchical graph actor YAML + skill pack with tool refs and
inline tools
- Docs: updated testing.md with M2 smoke suite section
Closes #169
2026-02-24 21:55:24 +00:00
brent.edwards
2c21611ad5
test(cli): cover action and plan extensions
...
CI / lint (pull_request) Successful in 25s
CI / quality (pull_request) Successful in 37s
CI / benchmark-publish (pull_request) Has been skipped
CI / security (pull_request) Successful in 55s
CI / typecheck (pull_request) Successful in 1m1s
CI / build (pull_request) Successful in 33s
CI / integration_tests (pull_request) Successful in 5m13s
CI / unit_tests (pull_request) Successful in 12m53s
CI / docker (pull_request) Successful in 9s
CI / benchmark-regression (pull_request) Successful in 21m31s
CI / coverage (pull_request) Successful in 51m7s
Added comprehensive test coverage for CLI extension features from #325 :
- Behave scenarios for automation_profile resolution, invariant ordering,
and actor override error cases
- Output snapshot assertions for JSON/YAML/table formats
- Robot integration test for action show with optional actors/invariants
- ASV benchmark for extended CLI scenario runtime baseline
- Updated testing.md with CLI extension test fixture documentation
ISSUES CLOSED : #326
2026-02-24 20:11:42 +00:00
brent.edwards
a181b774c9
Merge branch 'feature/m6-perf-scale' into develop-brent-2
...
# Conflicts:
# docs/development/testing.md
2026-02-20 16:31:01 +00:00
brent.edwards
5c323470e2
Merge branch 'feature/m6-validation-edge' into develop-brent-2
2026-02-20 16:30:19 +00:00
brent.edwards
2cfa9eafbc
Merge branch 'feature/m5-subplan-tests' into develop-brent-2
2026-02-20 16:30:11 +00:00
brent.edwards
06c01a1d7b
Merge branch 'feature/m1-persistence-tests-robot' into develop-brent-2
2026-02-20 16:29:11 +00:00
brent.edwards
0dfdc02564
test(perf): add scale test fixtures
2026-02-20 03:31:43 +00:00
brent.edwards
558bcaf586
test(validation): add edge case suites
2026-02-20 02:54:08 +00:00
brent.edwards
f182148d82
test(persistence): add Robot persistence coverage
2026-02-20 00:28:15 +00:00
brent.edwards
4f90d7703b
test(cli): add Robot lifecycle CLI coverage
2026-02-19 22:44:34 +00:00
brent.edwards
2ba753c799
test(domain): add subplan model suites
2026-02-19 22:07:56 +00:00
brent.edwards
6f09f23d29
Merge branch 'feature/m1-persistence-tests' into develop-20260217
...
# Conflicts:
# docs/development/testing.md
2026-02-18 02:43:58 +00:00
brent.edwards
f912a136b7
test(persistence): add plan/action persistence suites
CI / lint (pull_request) Successful in 25s
CI / typecheck (pull_request) Successful in 59s
CI / security (pull_request) Successful in 49s
CI / quality (pull_request) Successful in 33s
CI / unit_tests (pull_request) Failing after 8m26s
CI / docker (pull_request) Has been skipped
CI / build (pull_request) Successful in 15s
CI / integration_tests (pull_request) Successful in 10m5s
CI / coverage (pull_request) Failing after 53s
2026-02-17 20:25:12 +00:00
brent.edwards
b8d2bfe252
test(cli): expand lifecycle command coverage
CI / lint (pull_request) Successful in 17s
CI / typecheck (pull_request) Successful in 35s
CI / security (pull_request) Successful in 36s
CI / quality (pull_request) Successful in 19s
CI / build (pull_request) Successful in 26s
CI / integration_tests (pull_request) Successful in 5m19s
CI / unit_tests (pull_request) Failing after 32m35s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Failing after 12m0s
2026-02-17 20:01:18 +00:00
brent.edwards
bb3c4ffaef
fix(qa): resolve merge conflicts with master and fix coverage threshold test
...
Merged master into feature/q0-min-coverage. Resolved conflicts in:
- benchmarks/coverage_report_bench.py: combined AST and regex benchmarks
- docs/development/testing.md: merged both versions into comprehensive guide
- robot/coverage_threshold.robot: merged test cases from both branches
- implementation_plan.md: kept both Brent and Luis notes
Fixed coverage_threshold_config test that failed because it expected
a literal --fail-under=97 but our noxfile uses the COVERAGE_THRESHOLD
constant via f-string. Updated step to resolve the constant via AST.
2026-02-13 22:25:16 +00:00
brent.edwards
35c74d1a52
feat(qa): enforce coverage >=97% in CI
CI / lint (pull_request) Successful in 16s
CI / typecheck (pull_request) Successful in 26s
CI / security (pull_request) Successful in 21s
CI / quality (pull_request) Successful in 15s
CI / integration_tests (pull_request) Successful in 4m12s
CI / build (pull_request) Successful in 15s
CI / unit_tests (pull_request) Successful in 7m46s
CI / coverage (pull_request) Failing after 5m23s
CI / docker (pull_request) Successful in 8s
2026-02-13 18:54:15 +00:00
freemo
9b30421b34
feat(db): add spec-aligned action and plan tables with migrations, ORM models, and benchmarks
CI / lint (pull_request) Successful in 16s
CI / typecheck (pull_request) Successful in 27s
CI / security (pull_request) Successful in 21s
CI / quality (pull_request) Successful in 16s
CI / integration_tests (pull_request) Successful in 4m10s
CI / build (pull_request) Successful in 15s
CI / unit_tests (pull_request) Successful in 8m0s
CI / docker (pull_request) Successful in 40s
CI / coverage (pull_request) Successful in 6m22s
CI / lint (push) Successful in 13s
CI / typecheck (push) Successful in 27s
CI / security (push) Successful in 22s
CI / quality (push) Successful in 15s
CI / integration_tests (push) Successful in 4m16s
CI / build (push) Successful in 15s
CI / unit_tests (push) Successful in 8m2s
CI / docker (push) Successful in 39s
CI / coverage (push) Successful in 6m23s
2026-02-13 13:05:20 -05:00