release: 5.0.1 - #236
Merged
Merged
Conversation
A patch: one fix, in two packages, closing the defect 5.0.0's own work uncovered. No API changed and no migration — `bun add @ultimat3/core@5.0.1` over 5.0.0 needs no edit. A live query no longer ships the raw table row, and no longer mis-orders a projected window (#230). A `ChangeEvent` carries the whole TABLE row and a live query's result set is whatever its `sql` returned; nothing bridged the two. The leak: every patch forwarded the change row unnarrowed, so a column the projection dropped went out on the socket the moment it CHANGED. The mis-ordering: `match()` decided position against the rows the WINDOW holds, so an `orderBy` on a column the projection omits measured a real value against nothing — every update read as a move, and an arriving row landed wherever `undefined` sorted. A patch row is now narrowed to the columns the query returned, learned from its own reads; a position the window cannot answer for is a `refill` rather than a guess; and a DELETE still patches incrementally, because it decides no position. One behaviour to know: a live query whose rows omit their sort key re-reads instead of patching. Correct and slower, and the fix is to project the key — `examples/dummy`'s `PostSummary` now carries `createdAt` for that reason, which also makes `a publish arrives as one incremental patch` true for the first time. Gate: `bun run verify` 14/18 (4 skipped at the framework root); `reference-app-gate` every pin holds. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yml Review profile: ASSERTIVE Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (45)
📝 WalkthroughWalkthroughThe release updates package versions, internal dependencies, framework and deployment metadata, example manifests, displayed documentation versions, and changelog entries from 5.0.0 to 5.0.1. Changes5.0.1 Release Alignment
Estimated code review effort: 1 (Trivial) | ~5 minutes ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
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.
A patch: one fix, in two packages, closing the defect 5.0.0's own work uncovered. No API changed and no migration —
bun add @ultimat3/core@5.0.1over 5.0.0 needs no edit.What it fixes
#230, in two halves with one cause. A
ChangeEventcarries the whole table row; a live query's result set is whatever itssqlreturned; nothing bridged the two.match()decides position against the rows the window holds, so anorderByon a column the projection omits measured a real value against nothing: every update read as a move, and an arriving row landed whereverundefinedsorted.Patch rows are now narrowed to the columns the query returned (learned from its own reads — a projection lives inside the
sqlclosure). A position the window cannot answer for is arefill. A delete still patches incrementally, because it decides no position.The one behaviour to know
A live query whose rows omit their sort key now re-reads instead of patching. Correct and slower; the fix is to project the key.
examples/dummy'sPostSummarycarriescreatedAtfor that reason — which also makesa publish arrives as one incremental patch, not a refetchtrue for the first time since it was written.Verification
bun run verify— 14 of 18, 4 skipped at the framework rootbun run scripts/reference-app-gate.ts— every pin holds, both appsbun run scripts/release.ts --check 5.0.1— 30 packages stampedbun install --frozen-lockfile— no changesCLAUDE.md's status table is not in this commit. It is restamped after the publish, from the registry, which is the rule #234 established — the file's own header says never to read a number in it as the installable one, and that only holds if the numbers were true when written.🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by CodeRabbit
Bug Fixes
Release