Files
smartdb/changelog.md

124 lines
6.0 KiB
Markdown

# Changelog
## 2026-04-05 - 2.5.9 - fix(rustdb-storage)
run collection compaction during file storage initialization after crashes
- Triggers compaction for all loaded collections before starting the periodic background compaction task.
- Helps clean up dead weight left from before a crash during startup.
## 2026-04-05 - 2.5.8 - fix(rustdb-storage)
detect stale hint files using data file size metadata and add restart persistence regression tests
- Store the current data.rdb size in hint file headers and validate it on load to rebuild KeyDir when hints are stale or written in the old format.
- Persist updated hint metadata after compaction and shutdown to avoid missing appended tombstones after restart.
- Add validation reporting for stale hint files based on recorded versus actual data file size.
- Add regression tests covering delete persistence across restarts, missing hint recovery, stale socket cleanup, and unique index enforcement persistence.
## 2026-04-05 - 2.5.7 - fix(repo)
no changes to commit
## 2026-04-05 - 2.5.6 - fix(repo)
no changes to commit
## 2026-04-05 - 2.5.5 - fix(repo)
no changes to commit
## 2026-04-05 - 2.5.4 - fix(package)
bump package version to 2.5.3
- Updates the package metadata version by one patch release.
## 2026-04-05 - 2.5.3 - fix(rustdb-commands)
restore persisted index initialization before writes to enforce unique constraints after restart
- load stored index specifications from storage when creating command context index engines
- rebuild index data from existing documents so custom indexes are active before insert, update, and upsert operations
- add @push.rocks/smartdata as a runtime dependency
## 2026-04-05 - 2.5.2 - fix(rustdb-indexes)
persist created indexes and restore them on server startup
- Save index specifications to storage when indexes are created.
- Remove persisted index metadata when indexes are dropped by name, key spec, or wildcard.
- Rebuild in-memory index engines from stored definitions and existing documents during startup.
## 2026-04-05 - 2.5.1 - fix(docs)
update project documentation
- Modifies a single documentation-related file with a minimal text change.
- No source code, API, or package metadata changes are indicated in the diff summary.
## 2026-04-05 - 2.5.0 - feat(storage)
add offline data validation and strengthen storage/index integrity checks
- adds a `--validate-data <PATH>` CLI mode to run offline integrity checks on storage directories
- introduces storage validation reporting for headers, checksums, duplicate ids, tombstones, and stale or orphaned hint entries
- pre-checks unique index constraints before insert, update, upsert, and findAndModify writes to prevent duplicate-key violations before storage changes
- validates hint files against data files during collection load and rebuilds indexes from data when hints are stale
- ensures new data files always receive a SMARTDB header and persists fresh hint files after successful compaction
- cleans up stale local Unix socket files before starting the TypeScript local server
## 2026-04-05 - 2.4.1 - fix(package)
update package metadata
- Adjusts package manifest content with a minimal one-line change.
## 2026-04-05 - 2.4.0 - feat(rustdb)
add restore and periodic persistence support for in-memory storage
- Restore previously persisted state during startup when a persist path is configured.
- Spawn a background task to periodically persist in-memory data using the configured interval.
- Warn when running purely in-memory without durable persistence configured.
## 2026-04-04 - 2.3.1 - fix(package)
update package metadata
- Adjusts a single package-level metadata entry in the project configuration.
## 2026-04-04 - 2.3.0 - feat(test)
add integration coverage for file storage, compaction, migration, and LocalSmartDb workflows
- adds end-to-end tests for file-backed storage creation, CRUD operations, bulk updates, persistence, and index file generation
- adds compaction stress tests covering repeated updates, tombstones, file shrinking behavior, and restart integrity
- adds migration tests for automatic v0 JSON layout detection, v1 conversion, restart persistence, and post-migration writes
- adds LocalSmartDb lifecycle and unix socket tests, including restart persistence, custom socket paths, and database isolation
## 2026-04-04 - 2.2.0 - feat(storage)
add Bitcask storage migration, binary WAL, and data compaction support
- add TypeScript storage migration from legacy JSON collections to the v1 Bitcask binary format before starting the Rust engine
- replace the legacy JSON WAL with a binary write-ahead log plus shared binary record and KeyDir infrastructure in rustdb-storage
- introduce data file compaction with dead-record reclamation and tests, and add the bson dependency for BSON serialization during migration
## 2026-04-02 - 2.1.1 - fix(package)
update package metadata
- Adjusts a single package metadata entry in package.json.
## 2026-04-02 - 2.1.0 - feat(smartdb)
add operation log APIs, point-in-time revert support, and a web-based debug dashboard
- records insert, update, and delete operations with before/after document snapshots in the Rust oplog
- adds management and TypeScript APIs for metrics, oplog queries, collection browsing, document browsing, and revert-to-sequence operations
- introduces new debugserver and debugui package exports with bundled browser assets served through typedserver
## 2026-03-26 - 2.0.0 - BREAKING CHANGE(core)
replace the TypeScript database engine with a Rust-backed embedded server and bridge
- adds a Rust workspace implementing wire protocol handling, commands, storage, indexing, aggregation, sessions, and transactions
- switches the TypeScript package to lifecycle orchestration via RustDbBridge and @push.rocks/smartrust
- removes previously exported TypeScript internals such as query, update, index, transaction, session, WAL, checksum, and router utilities
- updates build/test tooling and package metadata to compile and ship Rust binaries
## 2026-03-26 - 1.0.1 - fix(repo)
no changes to commit
## 2026-03-26 - 1.0.0 - project
Initial release
- Project initialized