Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,45 @@ All notable changes to wirelog are documented in this file.

### Documentation

## [0.53.0] - 2026-07-31

### Added

### Changed

### Deprecated

### Removed

### Fixed

- **Query-mode snapshot correctness** (#929, #930): snapshots after input
changes or retractions no longer reuse stale materialized derived state that
could emit phantom or duplicate tuples and suppress valid
stratified-negation results. Completed evaluation state is now tracked
separately, bulk inserts force full recomputation, and full recomputation
resets each stratum and rule frontier.
- **Static string literal interning** (#932, #933): plan generation now
pre-interns static filter, projection, and aggregate literals. Those plan
literals now stay consistent in paired Easy read and delta sessions
regardless of which evaluates first, preventing downstream host-row
mismatches and `UNKNOWN` failures.
- **Relation-name buffer lifetime** (#931, #934): pending insert and remove
evaluation now retains the session-owned canonical relation name, so callers
and FFI bindings can reuse or release their relation-name buffer after the
API call returns without silently losing `step()` or snapshot deltas.
- **CRDT release performance gate** (#935): the gate now validates the final
`result` relation instead of optimizer-sensitive aggregate snapshot rows,
while retaining aggregate counts as diagnostics. The corrected post-#914
full-snapshot evaluation had a 36,303 ms nine-run median, establishing a
38,120 ms gate target.

### Performance

### Security

### Documentation

## [0.52.0] - 2026-06-28

### Added
Expand Down
23 changes: 22 additions & 1 deletion docs/MIGRATION.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,33 @@
# Migration Guide

**Last Updated:** 2026-06-28
**Last Updated:** 2026-07-31

This document describes breaking changes, opt-in features, and migration
steps for each significant Wirelog release. Entries are ordered newest first.

---

## 0.52 -> 0.53

Version `0.53.0` is a correctness-focused release after `0.52.0`. It does
not change the public API, ABI, or source compatibility.

- **Query-mode snapshots now discard stale derived state** (#929): input
changes and retractions no longer leave materialized IDB state that can
produce duplicate or phantom tuples. Corrected evaluation may also produce
stratified-negation-derived rows that a stale phantom tuple previously
suppressed.
- **Static program string literals are pre-interned** (#932): applications no
longer need to manually pre-intern literals used by program filter,
projection, or aggregate expressions to keep paired Easy read and delta
sessions aligned. This correction is limited to those static plan literals;
raw symbol IDs are not a general stable contract across sessions or runs
when hosts intern arbitrary strings in different orders.
- **Pending relation names are session-owned** (#931): FFI integrations no
longer need to cache the relation-name buffer between an insert or remove
call and the following `step()` or snapshot. Keeping that buffer alive
remains safe, but is no longer required.

## 0.51 -> 0.52

Version `0.52.0` is a correctness-focused release after `0.51.0`. Two
Expand Down
2 changes: 1 addition & 1 deletion meson.build
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
project(
'wirelog',
'c',
version: '0.52.99',
version: '0.53.0',
license: 'LGPL-3.0-or-later',
meson_version: '>=0.62.0',
default_options: [
Expand Down
Loading