Replies: 3 comments
-
|
Issues have been created referencing this discussion:
|
Beta Was this translation helpful? Give feedback.
-
|
PR #71 opened for Phase 1 (fix stale tests): #71 Dependency chain:
|
Beta Was this translation helpful? Give feedback.
-
|
Closing this out: CI is live. The matrix workflow (3.10 / 3.11 / 3.12) runs on every PR and main push, and the stale-test fixes from Phase 1 (#71) are in. Branch protection is the remaining nicety but the test-health goal of this thread is met. Thanks for raising it, Magnus. The phased framing (fix the tests first, then wire CI, then protect the branch) was the right order and made it easy to land incrementally instead of in one big drop. Appreciated. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
Cashew has a substantial test suite (38 test files, ~454 tests) and a strong testing philosophy documented in CLAUDE.md, but no automated CI pipeline. The only GitHub Actions workflow builds and publishes to PyPI — it never runs the tests. This means:
This discussion captures the individual issues, their dependencies, and the order of operations to get from where we are to a working CI pipeline.
Current State (May 2026)
Issues (in dependency order)
Phase 1 — Fix the test suite
Issue #68 — test: fix stale embedding dimension assertions for gte-large default model
Status: PR #71 ready for review.
Upstream PR #46 changed the default embedding model from
all-MiniLM-L6-v2(384-dim) tothenlper/gte-large(1024-dim), but several tests still hardcode 384-dim or expect the old model name. These 8 tests fail on a fresh install:test_embeddings.py— 4 tests expect 384-dim vectorstest_embedding_daemon_integration.py— 3 tests expect 384-dim vectorstest_session.py— 1 test expectsall-MiniLM-L6-v2as defaultFix: update assertions to match the model in use (either parameterize by dim, or make the tests model-aware). This must merge before any CI pipeline is added, otherwise main will always be red.
Phase 2 — Test infrastructure
Tests in
test_vec_table_dim.pyrequiresqlite-vecloadable at runtime. This needssqlite-vecinstalled and a Python that supports extension loading — which theactions/setup-pythonimages do. Handled as part of the CI pipeline install step.Phase 3 — Continuous Integration
Issue #69 — ci: add GitHub Actions workflow for continuous integration
Status: Depends on Phase 1 merging green.
A
.github/workflows/ci.ymlthat runs on push and pull_request:pip install -e ".[dev]"withsqlite-vecaddedPhase 4 — Branch protection
Issue #70 — docs: enable branch protection for main
Status: Requires repository admin access (maintainer action).
Once CI exists and is green on main, enable branch protection to require CI passing before merge. This prevents untested PRs from landing. Cannot be implemented by PR — needs repository settings.
Phase 5 — Optional: Lint/type debt reduction
Status: Independent of the above, could be parallel work.
The lint and type debt has grown significantly. Separate issues can be filed for specific areas as needed.
Dependency Graph
flowchart LR subgraph MustMerge[Must merge first] A[Issue #68<br/>Fix stale tests] --> B[PR #71] end subgraph Pipeline[CI Pipeline] C[Issue #69<br/>Add CI workflow] end subgraph AdminAction[Requires admin] D[Issue #70<br/>Enable branch protection] end B -->|merges| C C -->|green on main| D E[Lint/type debt reduction] style A fill:#d4edda,stroke:#28a745 style B fill:#ffeeba,stroke:#ffc107 style C fill:#e8f4f8,stroke:#2980b9 style D fill:#fef9e7,stroke:#f39c12 style E fill:#f0f0f0,stroke:#95a5a6Questions for discussion
This discussion was filed on behalf of Magnus Hedemark by Jasper, his AI agent.
Beta Was this translation helpful? Give feedback.
All reactions