mirror of
https://github.com/lukaszraczylo/claude-mnemonic.git
synced 2026-10-18 06:09:15 +00:00
docs: add testing documentation and macOS ARM64 known issue
Document the macOS ARM64 CGO linking issue with sqlite-vec-go-bindings that prevents hybrid package tests from compiling locally. Added: - .github/TESTING.md: Comprehensive testing guide with platform-specific issues, workarounds, and CI configuration details - internal/vector/hybrid/README.md: Package-specific documentation explaining the macOS limitation - .github/CI_FIX_SUMMARY.md: Technical details of the CI fix Key points: - 41 out of 42 packages test successfully on all platforms - hybrid package tests fail only on macOS ARM64 (local dev issue) - Linux CI tests pass with proper build-tags: "fts5" configuration - Production builds and runtime functionality unaffected This is a known limitation of sqlite-vec-go-bindings on macOS ARM64 and does not impact CI/CD or production deployments.
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
# Hybrid Vector Storage
|
||||
|
||||
LEANN-inspired selective vector storage with hub detection and graph-based search.
|
||||
|
||||
## Testing
|
||||
|
||||
### macOS ARM64 Known Issue
|
||||
|
||||
Tests in this package currently fail to link on macOS ARM64 due to a known issue with `sqlite-vec-go-bindings/cgo`. This is a linking-time issue specific to macOS ARM64 and does not affect:
|
||||
|
||||
- Linux CI/CD (tests pass normally)
|
||||
- Windows builds
|
||||
- Runtime functionality (only affects test compilation)
|
||||
|
||||
The issue is caused by how macOS ARM64 handles CGO linking with multiple SQLite implementations (mattn/go-sqlite3 and sqlite-vec's embedded SQLite).
|
||||
|
||||
**Workaround for local development:**
|
||||
- Run tests for other packages: `go test ./internal/db/... ./internal/search/...`
|
||||
- The CI on Linux will test this package
|
||||
- Or use a Linux container for local testing
|
||||
|
||||
**Status:** This does not affect production builds or CI/CD pipelines.
|
||||
|
||||
## Architecture
|
||||
|
||||
This package implements three storage strategies:
|
||||
|
||||
1. **StorageAlways** - Store all embeddings (backwards compatible)
|
||||
2. **StorageHub** - Store only frequently-accessed "hub" embeddings
|
||||
3. **StorageOnDemand** - Recompute all embeddings during search
|
||||
|
||||
See the main documentation for more details on the LEANN algorithm and hybrid storage approach.
|
||||
Reference in New Issue
Block a user