Conversation
Add the v0.5.0 hardening release focused on correctness, API stability, serialization safety, and performance predictability. Highlights: - add type-test gate with dedicated tsconfig and CI wiring - implement column-scoped index invalidation for updates - avoid dirtying unrelated equality/sorted/unique indexes on non-indexed updates - keep deletes broadly dirtying row-position-sensitive indexes - harden serialization/deserialization validation - introduce numeric wire-format version independent from package version - reject malformed serialized metadata, corrupted payloads, and serialized indexes - wrap restore-time reconstruction failures as COLQL_INVALID_SERIALIZED_DATA - add deterministic mutation/index/serialization fuzzer - extend QueryInfo and explain diagnostics additively - mark unstable diagnostic surfaces as internal - add CodSpeed benchmark cases for no-rebuild vs lazy-rebuild paths - update README/docs with v0.5 behavior, serialization policy, type gate, and release checklist
Merging this PR will improve performance by ×3.9
Performance Changes
Comparing |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR implements the v0.5.0 Trust & Stability Hardening release for ColQL.
The focus is not feature expansion, but improving correctness confidence, API stability, serialization safety, and performance predictability before moving closer to v1.0.0.
What changed
Type/API stability
test:typesgate.tsconfig.type-tests.json.onQueryAPIs.Column-scoped index invalidation
Serialization hardening
COLQL_INVALID_SERIALIZED_DATA.NaN,Infinity, and-Infinitynumeric payloads.Correctness testing
Observability and diagnostics
QueryInfo.selectedIndextoQueryExplainPlan.explain()non-executing and non-rebuilding.@internalcomments.Benchmarks and docs
Serialization compatibility note
v0.5.0 introduces a hardened serialization format with an independent numeric wire-format version.
Serialized snapshots created with v0.4.x are not guaranteed to be compatible with v0.5.0.
Serialized indexes remain unsupported and are rejected during restore.
Validation
npm test— passed, 69 files / 238 testsnpm run test:types— passednpm run build— passednpm run bench:codspeed— passednpm --cache /private/tmp/colql-npm-cache pack --dry-run— passedTarball contents confirmed:
LICENSEREADME.mddist/index.d.mtsdist/index.d.tsdist/index.jsdist/index.mjspackage.jsonColQL remains a process-local, in-memory query engine and is not positioned as a database replacement.