From 634ffa853fb80e81282519105b2e93916e90b68d Mon Sep 17 00:00:00 2001 From: AIOSAI Date: Mon, 15 Jun 2026 20:04:40 -0700 Subject: [PATCH] =?UTF-8?q?fix(ci):=20restore=20pytest=20dot-dir=20exclusi?= =?UTF-8?q?on=20(norecursedirs=20'.*')=20=E2=80=94=20green=20CI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The custom norecursedirs in pyproject dropped pytest's default '.*' pattern, so pytest recursed into .aipass/ scaffolding. The telegram skill bundled at src/aipass/skills/.aipass/skills/telegram/tests/ (with __init__.py) made its conftest resolve to module 'tests.conftest', colliding with branch tests/ conftest.py -> ImportPathMismatchError aborted collection on BOTH Linux CI and Windows (the sole remaining green-CI blocker after the guard fix). - Re-add '.*' to norecursedirs (skips .aipass/.trinity/.seedgo/... scaffolding) - Verified: full src collection 9540 tests, no ImportPathMismatch; only the telegram .aipass scaffold tests excluded (the single tracked test dir under any dot-dir), all real branch tests still collected Note: the telegram skill's bundled tests (7 failing locally) are out of umbrella CI; skills owns stabilizing + properly integrating them. Co-Authored-By: Claude Opus 4.8 (1M context) --- pyproject.toml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 75f53f28..bc25a61d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -74,7 +74,11 @@ packages = ["src/aipass"] [tool.pytest.ini_options] testpaths = ["tests", "src"] -norecursedirs = ["templates", "*.egg-info", ".git", ".venv", "__pycache__", ".archive", "my-project"] +# ".*" restores pytest's default dot-dir exclusion (dropped when this list was +# customized) so scaffolding dirs (.aipass, .trinity, .seedgo, ...) are never +# recursed for tests — prevents conftest module-name collisions like a bundled +# skill's .aipass/.../tests/conftest.py clashing with a branch's tests/conftest.py. +norecursedirs = ["templates", "*.egg-info", ".*", "__pycache__", "my-project"] [tool.coverage.run] source = ["src/aipass"]