mirror of
https://github.com/lukaszraczylo/claude-mnemonic.git
synced 2026-06-11 00:09:28 +00:00
19514bdc55
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.
33 lines
1.2 KiB
Markdown
33 lines
1.2 KiB
Markdown
# 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.
|