Summary (devops / CI)
test-backend (.github/workflows/test.yml) runs one pytest invocation per marker — -m unit, -m api, -m database, -m integration, -m rag, -m a2a, -m mcp, -m goals — with no exit-code-5 tolerance. When a marker selects zero tests, pytest exits 5 ("no tests ran"), which fails the step and the whole job.
Two markers are now legitimately empty:
This was masked until now because the -m database step aborted the job first (23 pytest-asyncio errors, since fixed on fix/test-backend-lifespan). With those fixed + the aspirational suites quarantined (#80, #81), the job now reaches these empty-marker steps and fails on exit 5 rather than on any real test failure. Steps unit/api/database/integration/rag pass; mcp passes (quarantined but collected-skipped).
Fix (owned by devops-engineer — outside services/orchestrator)
Either:
- Tolerate the empty-marker exit code per step, e.g.
python -m pytest tests/ -m "a2a" ... || [ $? -eq 5 ], or
- Consolidate the per-marker steps into a single
pytest tests/ run (markers then only matter for reporting), or
- Drop the dedicated
-m a2a / -m goals steps until those markers have runnable tests.
Backend slice cannot resolve this: it owns services/orchestrator/**, not CI workflows, and is instructed not to touch the #76 a2a quarantine. Context: PR #72, branch fix/test-backend-lifespan.
Summary (devops / CI)
test-backend(.github/workflows/test.yml) runs onepytestinvocation per marker —-m unit,-m api,-m database,-m integration,-m rag,-m a2a,-m mcp,-m goals— with no exit-code-5 tolerance. When a marker selects zero tests, pytest exits5("no tests ran"), which fails the step and the whole job.Two markers are now legitimately empty:
-m a2a— the only a2a suite (tests/test_a2a_protocol.py) is quarantined at module level (Retire bespoke services/orchestrator/a2a_protocol.py + its test when the open-standard A2A server lands #76).-m a2a→186 deselected / 0 selected→ exit 5.-m goals— no test carries thegoalsmarker (onlyconftest.pyregisters it).-m goals→ 0 selected → exit 5.This was masked until now because the
-m databasestep aborted the job first (23 pytest-asyncio errors, since fixed onfix/test-backend-lifespan). With those fixed + the aspirational suites quarantined (#80, #81), the job now reaches these empty-marker steps and fails on exit 5 rather than on any real test failure. Stepsunit/api/database/integration/ragpass;mcppasses (quarantined but collected-skipped).Fix (owned by devops-engineer — outside services/orchestrator)
Either:
python -m pytest tests/ -m "a2a" ... || [ $? -eq 5 ], orpytest tests/run (markers then only matter for reporting), or-m a2a/-m goalssteps until those markers have runnable tests.Backend slice cannot resolve this: it owns
services/orchestrator/**, not CI workflows, and is instructed not to touch the #76 a2a quarantine. Context: PR #72, branchfix/test-backend-lifespan.