Skip to content

Commit 05d9c95

Browse files
committed
release: bump version to 1.0.0 and update changelog for package rename
1 parent 951cc59 commit 05d9c95

File tree

4 files changed

+191
-167
lines changed

4 files changed

+191
-167
lines changed

CHANGELOG-mceachen.md

Lines changed: 0 additions & 164 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 189 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,194 @@
11
# Changelog
22

3-
All notable changes to this community fork will be documented in this file.
3+
## [1.0.0] - 2026-02-09
4+
5+
### Changed
6+
7+
- **npm package renamed from `@mceachen/sqlite-vec` to `@photostructure/sqlite-vec`**
8+
9+
### About this fork
10+
11+
This package is a community fork of [Alex Garcia](https://github.com/asg017)'s
12+
excellent [`sqlite-vec`](https://github.com/asg017/sqlite-vec), building on
13+
[Vlad Lasky](https://github.com/vlasky)'s community fork which merged 15+
14+
upstream PRs. We're grateful to both for their foundational work.
15+
16+
[PhotoStructure](https://photostructure.com) depends on sqlite-vec for
17+
production vector search and is committed to maintaining this fork for as long as
18+
we need it. Our current focus is:
19+
20+
- **Stability:** Memory leak fixes, sanitizer-verified error paths, comprehensive test coverage
21+
- **Node.js packaging:** Prebuilt binaries for all major platforms (including Alpine/musl and Windows ARM64), Electron support, no post-install scripts
22+
23+
The version was bumped to 1.0.0 to signal the package rename and avoid confusion
24+
with the `0.x` releases under the previous name. The underlying C extension is
25+
unchanged from 0.4.1.
26+
27+
All code remains open source under the original MIT/Apache-2.0 dual license.
28+
29+
## [0.4.1] - 2026-02-09
30+
31+
### Fixed
32+
33+
- **Remaining memory leaks from upstream PR #258** ([`c9be38c`](https://github.com/mceachen/sqlite-vec/commit/c9be38c))
34+
- `vec_eachFilter`: Fixed pzErrMsg leak when vector parsing fails with invalid input
35+
- `vec_slice`: Fixed vector cleanup leaks in INT8 and BIT cases on malloc failure
36+
- Changed early `return` to `goto done` to ensure cleanup functions are called
37+
- These leaks only occurred in error paths (invalid input, OOM) not covered by existing tests
38+
39+
### Added
40+
41+
- **Rust example updates for zerocopy 0.8** ([`53aeaeb`](https://github.com/mceachen/sqlite-vec/commit/53aeaeb))
42+
- Updated `examples/simple-rust/` to use zerocopy 0.8 API
43+
- Changed `AsBytes` trait to `IntoBytes` (renamed in zerocopy 0.8)
44+
- Updated documentation in `site/using/rust.md`
45+
- Incorporates [upstream PR #244](https://github.com/asg017/sqlite-vec/pull/244)
46+
47+
- **Comprehensive error path test coverage** ([`95cc6c8`](https://github.com/mceachen/sqlite-vec/commit/95cc6c8))
48+
- New `tests/test-error-paths.py` with 30 tests targeting error-handling code paths
49+
- Tests exercise error conditions that previously went untested (invalid inputs, NULL values, mismatched types/dimensions)
50+
- Covers `vec_each`, `vec_slice`, `vec_distance_*`, `vec_add`, `vec_sub`, vec0 INSERT/KNN operations
51+
- Repeated error operations test (50 iterations) to stress-test cleanup paths
52+
- Ensures sanitizers (ASan/LSan) will catch any reintroduced memory leaks in error paths
53+
54+
### Context
55+
56+
This release completes the integration of upstream PR #258's memory leak fixes. Previous releases (0.3.2, 0.3.3) addressed most issues, but three error paths remained unfixed:
57+
- Error message allocation in `vec_each` with invalid vectors
58+
- Malloc failure handling in `vec_slice` for INT8/BIT vectors
59+
60+
These paths were not detected by sanitizers because they were never executed by the test suite. The new error path tests ensure these code paths are now covered.
61+
62+
## [0.4.0] - 2026-02-07
63+
64+
### Added
65+
66+
- **Electron support** for packaged ASAR apps
67+
- `getLoadablePath()` now resolves `app.asar` to `app.asar.unpacked` automatically
68+
- Works transparently — no code changes needed in Electron apps
69+
- Added README documentation with `electron-builder` and `electron-forge` configuration examples
70+
71+
## [0.3.3] - 2026-02-04
72+
73+
### Fixed
74+
75+
- **Parser logic bugs** ([`45f09c1`](https://github.com/mceachen/sqlite-vec/commit/45f09c1))
76+
- Fixed `&&``||` condition checks in token validation across multiple parsing functions
77+
- Affected: `vec0_parse_table_option`, `vec0_parse_partition_key_definition`, `vec0_parse_auxiliary_column_definition`, `vec0_parse_primary_key_definition`, `vec0_parse_vector_column`
78+
79+
- **Float precision for f32 distance calculations** ([`45f09c1`](https://github.com/mceachen/sqlite-vec/commit/45f09c1))
80+
- Use `sqrtf()` instead of `sqrt()` for f32 vectors to avoid unnecessary double precision
81+
- May result in minor floating-point differences in distance results
82+
83+
- **Memory leaks in metadata and insert operations** ([`f56fdeb`](https://github.com/mceachen/sqlite-vec/commit/f56fdeb))
84+
- Fixed zSql memory leaks in `vec0_write_metadata_value` (never freed on any path)
85+
- Fixed zSql leak and missing `sqlite3_finalize` in `vec0Update_Delete_ClearMetadata`
86+
- Fixed potential crash from uninitialized function pointers on early error in `vec0Update_Insert`
87+
- Fixed memory leak in `vec_static_blob_entriesClose` (internal rowids/distances arrays)
88+
89+
### Added
90+
91+
- **KNN filtering documentation** ([`fd69fed`](https://github.com/mceachen/sqlite-vec/commit/fd69fed))
92+
- New documentation explaining when filters are applied during vs. after KNN search
93+
- Metadata columns, partition keys, and distance constraints filter DURING search
94+
- JOIN filters and subqueries filter AFTER search (may return fewer than k results)
95+
- Documented workarounds: use metadata columns or over-fetch with LIMIT
96+
97+
### Infrastructure
98+
99+
- Added clang-tidy static analysis configuration ([`a39311f`](https://github.com/mceachen/sqlite-vec/commit/a39311f))
100+
- Expanded memory testing with UBSan/TSan support and multi-platform CI matrix ([`de0edf3`](https://github.com/mceachen/sqlite-vec/commit/de0edf3))
101+
- Fixed test infrastructure: `make test-all` target, auto-detect pytest, fix test-unit linking ([`c39ada1`](https://github.com/mceachen/sqlite-vec/commit/c39ada1))
102+
103+
## [0.3.2] - 2026-01-04
104+
105+
### Added
106+
107+
- **Memory testing framework** ([`c8654d0`](https://github.com/mceachen/sqlite-vec/commit/c8654d0))
108+
- Valgrind and AddressSanitizer support via `make test-memory`
109+
- Catches memory leaks, use-after-free, and buffer overflows
110+
111+
### Fixed
112+
113+
- **Memory leaks in KNN queries** ([`e4d3340`](https://github.com/mceachen/sqlite-vec/commit/e4d3340), [`df2c2fc`](https://github.com/mceachen/sqlite-vec/commit/df2c2fc), [`f05a360`](https://github.com/mceachen/sqlite-vec/commit/f05a360))
114+
- Fixed leaks in `vec0Filter_knn` metadata IN clause processing
115+
- Fixed leaks and potential crashes in `vec_static_blob_entries` filter
116+
- Ensured `knn_data` is freed on error paths
117+
118+
- **Memory leaks in vtab lifecycle** ([`5f667d8`](https://github.com/mceachen/sqlite-vec/commit/5f667d8), [`49dcce7`](https://github.com/mceachen/sqlite-vec/commit/49dcce7))
119+
- Fixed leaks in `vec0_init` and `vec0Destroy` error paths
120+
- Added NULL check before blob read to prevent crashes
121+
- `vec0_free` now properly frees partition, auxiliary, and metadata column names
122+
123+
- **Cosine distance with zero vectors** ([`5d1279b`](https://github.com/mceachen/sqlite-vec/commit/5d1279b))
124+
- Returns 1.0 (max distance) instead of NaN for zero-magnitude vectors
125+
126+
## [0.3.1] - 2026-01-04
127+
128+
### Added
129+
130+
- **Lua binding with IEEE 754 compliant float serialization** ([`1d3c258`](https://github.com/mceachen/sqlite-vec/commit/1d3c258))
131+
132+
- New `bindings/lua/sqlite_vec.lua` module for Lua 5.1+
133+
- `serialize_f32()` for IEEE 754 binary format
134+
- `serialize_json()` for JSON format
135+
- Example script in `examples/simple-lua/`
136+
- Incorporates [upstream PR #237](https://github.com/asg017/sqlite-vec/pull/237) with extensive bugfixes for float encoding
137+
138+
- **Safer automated release workflow** ([`6d06b7d`](https://github.com/mceachen/sqlite-vec/commit/6d06b7d))
139+
- `prepare-release` job creates a release branch before building
140+
- All builds use the release branch with correct version baked in
141+
- Main branch only updated after successful npm publish
142+
- If any step fails, main is untouched
143+
144+
### Fixed
145+
146+
- **Numpy header parsing**: fixed `&&``||` logic bug ([`90e0099`](https://github.com/mceachen/sqlite-vec/commit/90e0099))
147+
148+
- **Go bindings patch updated for new SQLite source** ([`ceb488c`](https://github.com/mceachen/sqlite-vec/commit/ceb488c))
149+
150+
- Updated `bindings/go/ncruces/go-sqlite3.patch` for compatibility with latest SQLite
151+
152+
- **npm-release workflow improvements**
153+
- Synchronized VERSION file with package.json during version bump ([`c345dab`](https://github.com/mceachen/sqlite-vec/commit/c345dab), [`baffb9b`](https://github.com/mceachen/sqlite-vec/commit/baffb9b) )
154+
- Enhanced npm publish to handle prerelease tags (alpha, beta, etc.) ([`0b691fb`](https://github.com/mceachen/sqlite-vec/commit/0b691fb))
155+
156+
## [0.3.0] - 2026-01-04
157+
158+
### Added
159+
160+
- **OIDC npm release workflow with bundled platform binaries** ([`f7ae5c0`](https://github.com/mceachen/sqlite-vec/commit/f7ae5c0))
161+
162+
- Single npm package contains all platform builds (prebuildify approach)
163+
- Simpler, more secure, works offline and with disabled scripts
164+
- Platform binaries: linux-x64, linux-arm64, darwin-x64, darwin-arm64, win32-x64, win32-arm64
165+
166+
- **Alpine/MUSL support** ([`f7ae5c0`](https://github.com/mceachen/sqlite-vec/commit/f7ae5c0))
167+
- Added linux-x64-musl and linux-arm64-musl builds
168+
- Uses node:20-alpine Docker images for compilation
169+
170+
### Fixed
171+
172+
- **MSVC-compatible `__builtin_popcountl` implementation** ([`fab929b`](https://github.com/mceachen/sqlite-vec/commit/fab929b))
173+
- Added fallback for MSVC which lacks GCC/Clang builtins
174+
- Enables Windows ARM64 and x64 builds
175+
176+
### Changed
177+
178+
- **Node.js package renamed to `@mceachen/sqlite-vec`** ([`fe9f038`](https://github.com/mceachen/sqlite-vec/commit/fe9f038))
179+
- Published to npm under scoped package name
180+
- Updated documentation to reflect new package name
181+
- All other language bindings will continue to reference upstream ([vlasky/sqlite-vec](https://github.com/vlasky/sqlite-vec))
182+
183+
### Infrastructure
184+
185+
- Updated GitHub Actions to pinned versions via pinact ([`b904a1d`](https://github.com/mceachen/sqlite-vec/commit/b904a1d))
186+
- Added `bash`, `curl` and `unzip` to Alpine build dependencies ([`aa7f3e7`](https://github.com/mceachen/sqlite-vec/commit/aa7f3e7), [`9c446c8`](https://github.com/mceachen/sqlite-vec/commit/9c446c8))
187+
- Documentation fixes ([`4d446f7`](https://github.com/mceachen/sqlite-vec/commit/4d446f7), [`3a5b6d7`](https://github.com/mceachen/sqlite-vec/commit/3a5b6d7))
188+
189+
-----
190+
191+
# Earlier releases are from https://github.com/vlasky/sqlite-vec
4192

5193
## [0.2.4-alpha] - 2026-01-03
6194

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
> - **Features:** Distance constraints, OPTIMIZE command, ALTER TABLE RENAME, GLOB/LIKE operators
2121
> - **Documentation:** Comprehensive error path coverage, KNN filtering behavior, production deployment guides
2222
>
23-
> Maintained by PhotoStructure Inc. Contributions welcome. See [CHANGELOG-mceachen.md](CHANGELOG-mceachen.md) for detailed changes.
23+
> Maintained by PhotoStructure Inc. Contributions welcome. See [CHANGELOG.md](CHANGELOG.md) for detailed changes.
2424
2525
An extremely small, "fast enough" vector search SQLite extension that runs
2626
anywhere! A successor to [`sqlite-vss`](https://github.com/asg017/sqlite-vss)

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.4.1
1+
1.0.0

0 commit comments

Comments
 (0)