Skip to content

Commit 61f87e2

Browse files
committed
fix(changelog): update changelog for API compatibility and enhancements in version 0.4.0
1 parent dba3cbd commit 61f87e2

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file.
44

55
## [0.4.0] - to be released
66

7+
API compatible with `node:sqlite` from Node.js v25.6.1.
8+
79
### Added
810

911
- **`enhance()` function** - Adds better-sqlite3-style `.pragma()` and `.transaction()` methods to any compatible database instance
@@ -13,19 +15,25 @@ All notable changes to this project will be documented in this file.
1315
- **Node.js test sync script** - `npm run sync:tests` downloads and adapts upstream Node.js SQLite tests for compatibility validation
1416
- **Percentile extension** - `SQLITE_ENABLE_PERCENTILE` now enabled, adding `percentile()`, `median()`, `percentile_cont()`, `percentile_disc()` SQL functions (Node.js v25+)
1517
- **Prepare options** - `db.prepare(sql, options)` now accepts per-statement options: `readBigInts`, `returnArrays`, `allowBareNamedParameters`, `allowUnknownNamedParameters` to override database-level defaults. **Note:** This is a Node.js v25+ feature; `node:sqlite` on v24 and earlier silently ignores these options.
18+
- **StatementColumnMetadata type** - `stmt.columns()` now returns richer metadata including `column`, `database`, `table`, and `type` properties alongside `name`
19+
- **SQLite 3.51.2** - Updated embedded SQLite from 3.51.1 to 3.51.2
1620

1721
### Changed
1822

1923
- **BREAKING**: Removed API extensions to achieve exact parity with `node:sqlite`:
2024
- Removed `stmt.finalize()` method (use database close for cleanup)
2125
- Removed `stmt.finalized` property
2226
- Removed `stmt[Symbol.dispose]` (still available on `DatabaseSync` and `Session`)
23-
- Removed `db.backup()` instance method (use standalone `backup(db, path)` function)
27+
- Removed `db.backup()` instance method (use standalone `backup(db, path)` function instead)
2428
- **BREAKING**: `Session.changeset()` and `Session.patchset()` now return `Uint8Array` instead of `Buffer` to match `node:sqlite` API
2529
- **BREAKING**: Defensive mode now defaults to `true` instead of `false` to match Node.js v25+ behavior. Use `{ defensive: false }` to restore old behavior.
2630

2731
### Fixed
2832

33+
- **Alpine Linux / musl stability** - Resolved native crashes on Alpine Linux by removing N-API reference cleanup from destructors that could corrupt V8 JIT state
34+
- **Session lifecycle management** - Fixed use-after-free, double-free, and mutex deadlock issues when databases are garbage collected before their sessions
35+
- **Worker thread stability** - Added proper cleanup hooks and exception handling for worker thread termination
36+
- **Callback error preservation** - `applyChangeset()` now correctly preserves the original error message when JavaScript callbacks throw
2937
- `createTagStore()` now throws errors with `code: 'ERR_INVALID_STATE'` property when database is closed, matching Node.js error format
3038

3139
## [0.3.0] (2025-12-16)

0 commit comments

Comments
 (0)