Skip to content

release: 5.0.1 - #236

Merged
sebyx07 merged 1 commit into
mainfrom
release/5.0.1
Aug 20, 2026
Merged

release: 5.0.1#236
sebyx07 merged 1 commit into
mainfrom
release/5.0.1

Conversation

@sebyx07

@sebyx07 sebyx07 commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

A patch: one fix, in two packages, closing the defect 5.0.0's own work uncovered. No API changed and no migrationbun add @ultimat3/core@5.0.1 over 5.0.0 needs no edit.

What it fixes

#230, in two halves with one cause. A ChangeEvent carries the whole table row; 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 per-subscriber gate cannot help — it decides whether a row is delivered, never which of its columns.
  • The mis-ordering. match() decides 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.

Patch rows are now narrowed to the columns the query returned (learned from its own reads — a projection lives inside the sql closure). A position the window cannot answer for is a refill. 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's PostSummary carries createdAt for that reason — which also makes a publish arrives as one incremental patch, not a refetch true for the first time since it was written.

Verification

  • bun run verify — 14 of 18, 4 skipped at the framework root
  • bun run scripts/reference-app-gate.ts — every pin holds, both apps
  • bun run scripts/release.ts --check 5.0.1 — 30 packages stamped
  • bun install --frozen-lockfile — no changes

CLAUDE.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


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Summary by CodeRabbit

  • Bug Fixes

    • Improved live-query projections and ordering.
    • Restamped the status table using the latest registry data.
  • Release

    • Released version 5.0.1 across the platform.
    • Updated deployment configuration, examples, and documentation to reflect the new version.

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>
@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 16d00469-5237-4d6c-b212-c626160413ff

📥 Commits

Reviewing files that changed from the base of the PR and between cd5a0bd and 5cffef2.

⛔ Files ignored due to path filters (1)
  • bun.lock is excluded by !**/*.lock, !**/bun.lock
📒 Files selected for processing (45)
  • CHANGELOG.md
  • docker/helm/Chart.yaml
  • dummy/social-media-clone/package.json
  • dummy/social-media-clone/packages/i18n/package.json
  • examples/dummy/apps/admin/package.json
  • examples/dummy/apps/web/package.json
  • examples/dummy/package.json
  • examples/dummy/packages/core/package.json
  • examples/dummy/packages/db/package.json
  • examples/dummy/packages/domain/package.json
  • examples/dummy/packages/i18n/package.json
  • examples/dummy/packages/mcp/package.json
  • examples/dummy/packages/ui/package.json
  • framework.manifest.json
  • packages/action/package.json
  • packages/admin/package.json
  • packages/ai/package.json
  • packages/auth/package.json
  • packages/cache/package.json
  • packages/cli/package.json
  • packages/core/package.json
  • packages/create-ultimate/package.json
  • packages/db/package.json
  • packages/entity/package.json
  • packages/flags/package.json
  • packages/http/package.json
  • packages/i18n/package.json
  • packages/jobs/package.json
  • packages/mail/package.json
  • packages/manifest/package.json
  • packages/mcp/package.json
  • packages/money/package.json
  • packages/policy/package.json
  • packages/pwa/package.json
  • packages/query/package.json
  • packages/realtime/package.json
  • packages/render/package.json
  • packages/schema/package.json
  • packages/scraping/package.json
  • packages/seo/package.json
  • packages/storage/package.json
  • packages/testing/package.json
  • packages/time/package.json
  • packages/ui/package.json
  • wiki/_Footer.md

📝 Walkthrough

Walkthrough

The 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.

Changes

5.0.1 Release Alignment

Layer / File(s) Summary
Release notes
CHANGELOG.md
The changelog adds unreleased and dated 5.0.1 entries for the live-query and status-table changes.
Package manifest alignment
packages/*/package.json
All package versions and internal @ultimat3 dependency versions are updated to 5.0.1.
Example dependency alignment
dummy/**/package.json, examples/dummy/**/package.json
Dummy applications and packages now reference the 5.0.1 dependencies.
Release metadata and displayed versions
framework.manifest.json, docker/helm/Chart.yaml, wiki/_Footer.md
The framework manifest, Helm chart, and wiki footer use the 5.0.1 release version. The manifest build identifier also changes.

Estimated code review effort: 1 (Trivial) | ~5 minutes

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/5.0.1

Comment @coderabbitai help to get the list of available commands.

@sebyx07
sebyx07 merged commit 7b136cb into main Aug 20, 2026
36 of 37 checks passed
@sebyx07
sebyx07 deleted the release/5.0.1 branch August 20, 2026 16:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant