- Restore session.env["PATH"] in integration_tests nox session to ensure
Run Process uses venv Python instead of system Python
- Convert bare Resource references to ${CURDIR}/ absolute paths across
30 robot files to fix CI resolution failures
- Add timeout=30s to all Run Process calls in rxpy_route_validation.robot
to prevent hanging tests
- Tag 2 rxpy tests as slow (require running actors unavailable on CI)
- Fix LangGraph test to use correct config file (LANGGRAPH_CONFIG)
- All 204 tests pass (4 excluded: 2 slow + 2 discovery)
- integration_tests: replace pabot with sequential robot execution to
eliminate FileNotFoundError caused by subprocess/FD exhaustion in
constrained CI containers (pabot spawns a robot subprocess per suite;
after ~24 suites the container cannot execve new processes)
- integration_tests: add resource debug output (open FD count, ulimit
values) to help diagnose future CI container issues
- integration_tests: remove _pabot_parallel_args (no longer needed);
slow_integration_tests session still available for parallel runs
- load_context_test: add env:TERM=dumb alongside NO_COLOR=1 to disable
all Rich terminal styling (NO_COLOR only disables color, not bold/
reset ANSI codes that may split substrings)
- load_context_test: add repr() debug logging around the --load-context
match to reveal any invisible characters on CI
- security_scan: create build/ directory before bandit writes its JSON
report (fails on fresh CI checkout where directory does not exist)
- integration_tests: cap pabot parallelism to 2 processes and explicitly
propagate venv bin/ to PATH, preventing FileNotFoundError for the
robot binary under CI resource constraints
- integration_tests: add env:NO_COLOR=1 to load_context_test.robot help
text assertions so Rich ANSI escape codes do not break substring
matching on CI
- integration_tests: tag initial_next_command_test as slow (requires
OPENAI_API_KEY for LLM agent invocation, unavailable on CI)
- Fix Rich Console line-wrapping breaking assertions in
context_unit_tests_steps.py: collapse newlines before checking for
filenames and overflow summaries (CI temp paths exceed 80 columns)
- Fix features.mocks import failure in database_integration.robot:
replace hardcoded sys.path '/app' with portable ${CURDIR}/..
- Fix --load-context help text assertions in load_context_test.robot:
merge stderr into stdout via stderr=STDOUT and remove duplicate test
- Add standalone dead_code nox session running vulture directly
- Rename security nox session to security_scan to match CI references
- Restore --exclude discovery to integration_tests nox session (lost
during merge conflict resolution)
- Rewrite .forgejo/workflows/ci.yml to route all jobs through nox sessions
- Fix coverage_report nox session: serial behave mode replaces broken parallel
mode (22% -> 97% accuracy), raise fail-under from 85% to 97%
- Pass posargs through format nox session for CI --check support
- Add 11 CI workflow validation scenarios (Behave) + Robot smoke test + ASV bench
- Add 108 new Behave scenarios covering 6 largest coverage gaps to reach 97%:
yaml_template_engine, actor/config, actor/registry, message_router,
context_analysis, context_service
- Update docs/development/ci-cd.md with nox-based CI docs and 97% threshold
- Restore implementation_plan.md verbose style, check off completed CI tasks
Verified: 1673 scenarios pass, 97% coverage, lint clean, typecheck clean