Problem
.github/workflows/ci.yml only runs tests/test_catalog_parity.py. Everything else is dark to CI:
- 11 Python pytest files:
test_planner.py, test_doom_loop.py, test_miro.py, test_replan_recovery.py, test_homepage_data.py, test_run_archive*.py, test_report_builder.py, test_dataset_scout.py, test_mcp_*.py, test_skill_doc.py
- 9 node:test
.mjs smokes: e2e_pages_smoke, e2e_admin_smoke, e2e_agent_smoke, e2e_reports_smoke, e2e_nav_consistency, specialists_smoke, doom_loop_ts_smoke, run_archive_ts_smoke, run_archive_ts_extended
Recent fixes (#171 miro regression, #172 catalog parity, #173 cron headroom) all shipped with new tests — none of those new tests except parity actually run on PR. The next regression in planner.py / doomLoop.ts / run-archive.ts will land green and only surface in production.
Fix
Two new CI jobs in .github/workflows/ci.yml:
- pytest-fast — install requirements.txt + pytest, run the offline-safe Python suite (everything except
test_e2e_orchestrator.py, which needs a live server). Gate OPENAI_API_KEY-using tests behind a pytest.mark.live marker and skip in CI.
- node-test-fast —
npm ci + node --test tests/doom_loop_ts_smoke.mjs tests/run_archive_ts_*.mjs (the unit-y .mjs files that don't need a running server). The e2e_* smokes need a live next start and can wait for a follow-up.
Also add "test": "node --test tests/*_smoke.mjs" to package.json so contributors can run them locally.
Code pointers
.github/workflows/ci.yml:1-40 — current 3-job pipeline
package.json:5-9 — scripts block has no test entry
tests/ — full test inventory
Acceptance
Problem
.github/workflows/ci.ymlonly runstests/test_catalog_parity.py. Everything else is dark to CI:test_planner.py,test_doom_loop.py,test_miro.py,test_replan_recovery.py,test_homepage_data.py,test_run_archive*.py,test_report_builder.py,test_dataset_scout.py,test_mcp_*.py,test_skill_doc.py.mjssmokes:e2e_pages_smoke,e2e_admin_smoke,e2e_agent_smoke,e2e_reports_smoke,e2e_nav_consistency,specialists_smoke,doom_loop_ts_smoke,run_archive_ts_smoke,run_archive_ts_extendedRecent fixes (#171 miro regression, #172 catalog parity, #173 cron headroom) all shipped with new tests — none of those new tests except parity actually run on PR. The next regression in planner.py / doomLoop.ts / run-archive.ts will land green and only surface in production.
Fix
Two new CI jobs in
.github/workflows/ci.yml:test_e2e_orchestrator.py, which needs a live server). GateOPENAI_API_KEY-using tests behind apytest.mark.livemarker and skip in CI.npm ci+node --test tests/doom_loop_ts_smoke.mjs tests/run_archive_ts_*.mjs(the unit-y .mjs files that don't need a running server). Thee2e_*smokes need a livenext startand can wait for a follow-up.Also add
"test": "node --test tests/*_smoke.mjs"topackage.jsonso contributors can run them locally.Code pointers
.github/workflows/ci.yml:1-40— current 3-job pipelinepackage.json:5-9— scripts block has notestentrytests/— full test inventoryAcceptance
pytest-fastjob green on PR, exercising ≥9 of the 11 pytest filesnode-test-fastjob green on PR, exercising ≥3 of the .mjs unit smokesnpm testworks locally