Skip to content

Commit 68bba31

Browse files
rainxchzedclaude
andcommitted
ci: install [dev,crypto,smart] so signing/embedding tests run in CI
The second CI failure was the same root cause across test_pool, test_pool_github, and test_review_fixes: pynacl/blake3 aren't installed in CI (by my dev-only design), so the pool falls back to UNSIGNED mode — `pull()` returns [] (require_signature rejects unsigned) and the identity-swap test sees an already-invalid signature. Those tests assume the optional crypto deps rather than skipif-guarding their absence. Fix: install the optional extras in the test job so the suite runs as written. Honest trade-off (commented + tracked in roadmap): CI no longer exercises the zero-dependency degradation paths; restoring that coverage (skipif guards or a 2nd minimal matrix leg) is a follow-up. The engine is still zero-dep — this is a test-coverage gap, not a code gap. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent b7d90be commit 68bba31

2 files changed

Lines changed: 14 additions & 6 deletions

File tree

.github/workflows/ci.yml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,17 @@ jobs:
3333
with:
3434
python-version: ${{ matrix.python-version }}
3535

36-
- name: Install (editable + dev extra)
36+
- name: Install (editable + dev + crypto + smart extras)
3737
run: |
3838
python -m pip install --upgrade pip
39-
# the engine is zero-dep by design; dev brings pytest. We do NOT install the
40-
# optional extras (crypto/smart/llm) here on purpose — CI must prove the
41-
# graceful-degradation paths (blake2b fallback, keyword recall, unsigned)
42-
# still pass with nothing but the standard library + pytest.
43-
pip install -e ".[dev]"
39+
# Install the optional extras so the signed-pool tests (pynacl), real-hash
40+
# tests (blake3), and semantic tests (sentence-transformers) run as written.
41+
# NOTE: this means CI does NOT currently exercise the zero-dependency
42+
# graceful-degradation paths (blake2b/unsigned/keyword) — several tests
43+
# assume the optional deps are present rather than skipif-guarding their
44+
# absence. Adding a second minimal-install matrix leg to cover the
45+
# degradation paths is a tracked follow-up (see docs/03-roadmap.md).
46+
pip install -e ".[dev,crypto,smart]"
4447
4548
- name: Run tests
4649
run: python -m pytest -q

docs/03-roadmap.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,11 @@
6363
removal-PR path.
6464
- 🔜 Plugin-marketplace distribution; docs site. *(external polish.)*
6565
- 🔜 GitHub branch protection on both repos (UI; require the "Verify learnings" check).
66+
- 🔜 CI: add a minimal-install matrix leg (no optional extras) to actually exercise
67+
the zero-dependency degradation paths (blake2b/unsigned/keyword). The current CI
68+
installs `[dev,crypto,smart]` so several signing/embedding tests run as written;
69+
proving the dep-absent paths needs either skipif-guards or a second install
70+
profile. (The engine *is* zero-dep; this is a test-coverage gap, not a code gap.)
6671

6772
## Known gaps / honest notes
6873
- Recall ranking is semantic (embeddings) when the model is installed, keyword FTS otherwise; both feed the same blend + a corroboration bonus.

0 commit comments

Comments
 (0)