Repository navigation
Version Packages (alpha) - #2145
Open
github-actions[bot] wants to merge 1 commit into
Open
github-actions[bot] wants to merge 1 commit into
github-actions[bot] wants to merge 1 commit into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
github-actions
Bot
force-pushed
the
changeset-release/main
branch
3 times, most recently
from
November 5, 2026 01:17
3235ebc to
f2a5c73
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 5, 2026 01:46
f2a5c73 to
9e9fb1b
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 5, 2026 09:35
9e9fb1b to
a14f943
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
2 times, most recently
from
November 5, 2026 10:26
d34a54d to
9709db4
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 5, 2026 10:28
9709db4 to
738b8f9
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 5, 2026 10:42
738b8f9 to
d6c5433
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 5, 2026 11:15
d6c5433 to
5d8ef4e
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 5, 2026 11:20
5d8ef4e to
b870e72
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 5, 2026 11:28
b870e72 to
69347a5
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 5, 2026 11:32
69347a5 to
5fe01ac
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 5, 2026 11:53
5fe01ac to
718df74
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 5, 2026 12:24
718df74 to
af4c3a1
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 5, 2026 13:02
af4c3a1 to
bfafa49
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 5, 2026 22:14
a79802b to
e5c68f2
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 5, 2026 23:11
e5c68f2 to
5b375ce
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 6, 2026 00:20
5b375ce to
823b59c
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 6, 2026 02:06
823b59c to
5b20729
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
3 times, most recently
from
November 6, 2026 04:51
54b64b3 to
838c5ba
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 6, 2026 05:15
838c5ba to
36e623d
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 6, 2026 06:41
36e623d to
089a641
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 7, 2026 05:21
089a641 to
7c60faf
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 7, 2026 05:52
7c60faf to
d5ac424
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
5 times, most recently
from
November 7, 2026 09:32
23bf9ea to
7fc68a5
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 7, 2026 13:15
7fc68a5 to
fe1c6d6
Compare
This branch was successfully deployed
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.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
mainis currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, runchangeset pre exitonmain.Releases
@opensaas/stack-auth@0.44.0-alpha.6
Minor Changes
#2201
0933b4bThanks @dependabot! - Upgrade to Prisma ORM 8.0.0-rc.22 and theprismaCLI to 8.0.0-rc.30The stack's date and time columns are unchanged:
timestamp()andcalendarDay()keep reading and writing ISO strings, andcontract.jsonis byte-identical. Prisma ORM now refuses to run from two installed copies, so every@prisma/orm-*package and theprismaCLI must move together:{ "dependencies": { "@prisma/orm-postgres": "8.0.0-rc.22" }, "devDependencies": { "prisma": "8.0.0-rc.30" } }Then run
pnpm generateand commit what it writes. A project usingragPluginor another pgvector declaration gets a new head formigrations/pgvector/: runprisma db migrateon each database to move the pack's marker.Patch Changes
8bbaeaeThanks @borisno2! - Auth adapterupdateandincrementOnenow throwAuthWhereErroron an emptywhereinstead of silently no-oping (completes #1980).@opensaas/stack-cli@0.44.0-alpha.6
Minor Changes
#2201
0933b4bThanks @dependabot! - Upgrade to Prisma ORM 8.0.0-rc.22 and theprismaCLI to 8.0.0-rc.30The stack's date and time columns are unchanged:
timestamp()andcalendarDay()keep reading and writing ISO strings, andcontract.jsonis byte-identical. Prisma ORM now refuses to run from two installed copies, so every@prisma/orm-*package and theprismaCLI must move together:{ "dependencies": { "@prisma/orm-postgres": "8.0.0-rc.22" }, "devDependencies": { "prisma": "8.0.0-rc.30" } }Then run
pnpm generateand commit what it writes. A project usingragPluginor another pgvector declaration gets a new head formigrations/pgvector/: runprisma db migrateon each database to move the pack's marker.Patch Changes
#2142
bb87f3bThanks @borisno2! - Fix the dev loop readingaccessWideninginstead of theaccessChangesthe Prisma CLI reports, so access changes now count as destructive and reach the plan id and--allow.#2196
80c9ac0Thanks @borisno2! - Fixopensaas devfreezing on stale config after a failed load;db update --plan <id>now refuses a plan the current config no longer wants.#2205
dec240bThanks @borisno2! - Render the admin's Sign Out control only with anonSignOuthandler, instead of a button that only redirected, warn the user if the handler rejects, and reload an admin page restored from the back-forward cache.The feature generator now emits
signOutActionand tells you to pass it asonSignOut.#2209
4a8b631Thanks @borisno2! - Fixopensaas generatefailing with "gen is not defined" when a config uses thecuidid strategy and no list usesuuid7,cuid2orupdatedAt#2146
28650edThanks @borisno2! -opensaas generatenow refuses to write live artifacts while anopensaas devloop is running for the project, so a parked destructive change is no longer promoted over the loop's database.Updated dependencies [
eaeee36,0933b4b,357f9bb,ddb9e8c,0dd7eb4,4a8b631,fa03c43,a854243,af04b65,ca51e67]:@opensaas/stack-core@0.44.0-alpha.6
Minor Changes
#2201
0933b4bThanks @dependabot! - Upgrade to Prisma ORM 8.0.0-rc.22 and theprismaCLI to 8.0.0-rc.30The stack's date and time columns are unchanged:
timestamp()andcalendarDay()keep reading and writing ISO strings, andcontract.jsonis byte-identical. Prisma ORM now refuses to run from two installed copies, so every@prisma/orm-*package and theprismaCLI must move together:{ "dependencies": { "@prisma/orm-postgres": "8.0.0-rc.22" }, "devDependencies": { "prisma": "8.0.0-rc.30" } }Then run
pnpm generateand commit what it writes. A project usingragPluginor another pgvector declaration gets a new head formigrations/pgvector/: runprisma db migrateon each database to move the pack's marker.#2232
fa03c43Thanks @borisno2! - A field'sreadrule now denies when it reaches for a relation the row does not carry, closing a count, acombineof counts or an absent relation making a rule fail open.This changes what rules see. A relation the read did not deliver whole — not included, narrowed by the caller with
where,limit,offset,orderBy,selector a nestedinclude, or reduced to counts with no rows — is withheld, and reading it denies that rule. A foreign key's rule takes the same decision on the same rows as every other rule on the row.TypeErrorof reading it, likeitem.logs.length, denies rather than failing the read, so the admin item view renders where it showed "Item not found". The section says it can't be shown, and the list view shows no count, rather than a false empty or0.null, so!item.owner?.bannedno longer grants underinclude('owner').nullon a to-one with no foreign key set is a real answer. The inverse side of a one-to-one has no column to tell the two apart, so a rule reading it denies whenever the related list's access can leave a row out, even where there is no row. Rules that never read a relation, like an ownership check, are unaffected.itemis now row-dependent, soselectandwherecan no longer open it.itemdenies on a row withholding any relation, and a rule that writes throughitemdenies and changes nothing. UsetoSorted()rather thansort()on a relation.Patch Changes
#2217
eaeee36Thanks @borisno2! - Fixcreate,updateanddeletethrowing or returning a wrong value on a list whose computed field declares a relation inneeds; a write now returns that field exactly asfirst()does.#2218
357f9bbThanks @borisno2! - Fix optional JSON, select and text admin fields not clearing tonull;json()now refuses anullfor a NOT NULL column with an error on the field.A hook on an optional text field now receives
null, not'', when it's emptied in the admin, so an=== ''check no longer fires. Guard withtypeof value === 'string', not?., which turnsnullintoundefinedand silently drops the write.#2195
ddb9e8cThanks @borisno2! - RootupdatelocksFOR NO KEY UPDATE, fixing the deadlock between racers that insert a child and update its parent.A transaction that then needs
FOR UPDATEon that row, or changes a column in a unique index, can now deadlock with a racer holding its foreign-key lock (ADR-0078).#2208
0dd7eb4Thanks @borisno2! - Fix a caller-shapedcombine()rows branch, or an MCPcountbesidetake: 0, bypassing a relationship's ownreadrule and revealing the count.A
combine()with a rows branch now strips as the plain include does.#2209
4a8b631Thanks @borisno2! - Fixopensaas generatefailing with "gen is not defined" when a config uses thecuidid strategy and no list usesuuid7,cuid2orupdatedAt#2143
a854243Thanks @borisno2! - MCPwhererelation predicates into a list withmcp.enabled: false,mcp.tools.read: falseor denied query access are now refused as an unknown key.#2211
af04b65Thanks @borisno2! - Fix admin lists emptying on a sort the column cannot take: sorting now follows the ORM's ownorderanswer per column, andorderByrefuses a virtual or multi-column field as aValidationError.A failed list read now shows an error state rather than the first-run empty state.
#2239
ca51e67Thanks @borisno2! - Anupdate/deleteoperation rule and a fieldupdaterule that reach for a relation the write did not deliver now deny instead of reading absence as permission (#2233). A rule that enumeratesitem(spread,Object.keys) on a list with a relationship denies too.@opensaas/stack-rag@0.44.0-alpha.6
Minor Changes
#2201
0933b4bThanks @dependabot! - Upgrade to Prisma ORM 8.0.0-rc.22 and theprismaCLI to 8.0.0-rc.30The stack's date and time columns are unchanged:
timestamp()andcalendarDay()keep reading and writing ISO strings, andcontract.jsonis byte-identical. Prisma ORM now refuses to run from two installed copies, so every@prisma/orm-*package and theprismaCLI must move together:{ "dependencies": { "@prisma/orm-postgres": "8.0.0-rc.22" }, "devDependencies": { "prisma": "8.0.0-rc.30" } }Then run
pnpm generateand commit what it writes. A project usingragPluginor another pgvector declaration gets a new head formigrations/pgvector/: runprisma db migrateon each database to move the pack's marker.@opensaas/stack-tiptap@0.44.0-alpha.6
Minor Changes
#2222
97a9e88Thanks @borisno2! - The admin now works by keyboard: relationship pickers are ARIA comboboxes, sort headers are buttons, every control is named, and a failed submit focuses the first error.FieldRendererpasses each field anidthat is unique to the form, so a create drawer and the form under it can share a field name. A built-in field's control no longer hasidequal toname, so a host's#titleselector or<label htmlFor="title">stops matching it.nameis unchanged, so select with[name="title"].A custom field should use
idfor its control, and tie its error and help text with the new helpers from@opensaas/stack-ui/fields. After a failed submit the form focuses the control markedaria-invalid:Also new:
fieldLabelIdandfieldValueIdfor a button control named by its label and shown value,TableSortButtonfrom@opensaas/stack-ui/primitives, anddisabledandauxiliaryonComboboxItem.ComboboxEmptyis now a status line to keep mounted besideComboboxList, passingnullwhen there is nothing to say.File and image fields holding a file now show a Replace control, which carries the field's label and error. The Radix dialog, popover and select packages are pinned exactly so they share one focus and dismiss stack, which is what lets a picker or date popover work inside a drawer.
Patch Changes
bd03766Thanks @dependabot! - Move every@tiptap/*dependency to^3.32.2together, so the package resolves a single@tiptap/coreand its editor commands type-check@opensaas/stack-ui@0.44.0-alpha.6
Minor Changes
#2201
0933b4bThanks @dependabot! - Upgrade to Prisma ORM 8.0.0-rc.22 and theprismaCLI to 8.0.0-rc.30The stack's date and time columns are unchanged:
timestamp()andcalendarDay()keep reading and writing ISO strings, andcontract.jsonis byte-identical. Prisma ORM now refuses to run from two installed copies, so every@prisma/orm-*package and theprismaCLI must move together:{ "dependencies": { "@prisma/orm-postgres": "8.0.0-rc.22" }, "devDependencies": { "prisma": "8.0.0-rc.30" } }Then run
pnpm generateand commit what it writes. A project usingragPluginor another pgvector declaration gets a new head formigrations/pgvector/: runprisma db migrateon each database to move the pack's marker.#2232
fa03c43Thanks @borisno2! - An unknown relationship count no longer reads as zero: the list view renders no number for a relation a rule withholds, and the item page says the section can't be shown rather than "No related rows yet".RelationshipTableClienttakes anunavailableprop for that state.#2212
bea32adThanks @borisno2! - Item forms refuse to submit while a field holds input it can't commit, and focus the first invalid fieldJSON, decimal and bigInt fields holding text that doesn't parse, and a password that isn't confirmed, now stop the submit with nothing written. A third-party field can do the same with the new
useFieldValidityhook, and shows its own error:The hook is optional, so existing fields need no change.
#2222
97a9e88Thanks @borisno2! - The admin now works by keyboard: relationship pickers are ARIA comboboxes, sort headers are buttons, every control is named, and a failed submit focuses the first error.FieldRendererpasses each field anidthat is unique to the form, so a create drawer and the form under it can share a field name. A built-in field's control no longer hasidequal toname, so a host's#titleselector or<label htmlFor="title">stops matching it.nameis unchanged, so select with[name="title"].A custom field should use
idfor its control, and tie its error and help text with the new helpers from@opensaas/stack-ui/fields. After a failed submit the form focuses the control markedaria-invalid:Also new:
fieldLabelIdandfieldValueIdfor a button control named by its label and shown value,TableSortButtonfrom@opensaas/stack-ui/primitives, anddisabledandauxiliaryonComboboxItem.ComboboxEmptyis now a status line to keep mounted besideComboboxList, passingnullwhen there is nothing to say.File and image fields holding a file now show a Replace control, which carries the field's label and error. The Radix dialog, popover and select packages are pinned exactly so they share one focus and dismiss stack, which is what lets a picker or date popover work inside a drawer.
#2259
f2af7cbThanks @borisno2! - Refresh the admin list table: a column picker, density, page sizes, a toolbar sort control and cards on phones?columns=title,status,viewssets the visible columns, in order. The toolbar's Columns menu writes it.ListViewresolves it on the server (newvisibleColumnsprop, whichAdminUIfills from the URL), so a to-many count in an added column is read and correct. Unknown names are ignored, a columninitialColumnsnames is accepted even outside the list's fields, and Field Visibility still applies. A pick that lands back on the default set drops?columns=.opensaas-list-density(DENSITY_STORAGE_KEY) like the theme choice, and rendered comfortable on the server. When this browser refuses to store a choice (private mode, quota, blocked site data), the density and theme choices still apply for the page.?pageSize=outside those as its own pressed option. The default stays 50 and the?pageSize=cap stays 200.md, rows render as labelled cards with no sideways scrolling. This replaces the sticky Actions column in the list view.DropdownMenuprimitive on@radix-ui/react-dropdown-menu, exported from@opensaas/stack-ui/primitives.ListViewgainsurlControls, whichAdminUIsets: it says the page reads?columns=and?pageSize=back, and without itListViewoffers neither control.ListViewClientgainsavailableColumns,defaultColumns,columnsChosenandpageSizeControl; the Columns menu renders only whenavailableColumnsis supplied, and the rows-per-page control only whenpageSizeControlis set. New slots:list-view-toolbar,list-view-sort,list-view-columns,list-view-density,list-view-table(withdata-density),list-view-pagination,list-view-page-size, anddropdown-menu-*on the primitive's rendered parts.Patch Changes
#2218
357f9bbThanks @borisno2! - Fix optional JSON, select and text admin fields not clearing tonull;json()now refuses anullfor a NOT NULL column with an error on the field.A hook on an optional text field now receives
null, not'', when it's emptied in the admin, so an=== ''check no longer fires. Guard withtypeof value === 'string', not?., which turnsnullintoundefinedand silently drops the write.#2238
2ae9247Thanks @borisno2! - Fix the singleton editor showing a set to-one relationship as empty, and stop logging an error for a singleton with a required field and no row yet.#2205
dec240bThanks @borisno2! - Render the admin's Sign Out control only with anonSignOuthandler, instead of a button that only redirected, warn the user if the handler rejects, and reload an admin page restored from the back-forward cache.The feature generator now emits
signOutActionand tells you to pass it asonSignOut.#2219
9a87cfaThanks @borisno2! - Make the admin usable at phone width: belowmdthe sidebar moves to a drawer behind a menu button andmaintakes the full width.loading.tsxshould now render the newAdminLoading, which shares that frame.#2230
ad45bd0Thanks @borisno2! - Item forms setnoValidateand read the browser's constraint check themselves, so a failed submit focuses the first error, with its message on the field.#2211
af04b65Thanks @borisno2! - Fix admin lists emptying on a sort the column cannot take: sorting now follows the ORM's ownorderanswer per column, andorderByrefuses a virtual or multi-column field as aValidationError.A failed list read now shows an error state rather than the first-run empty state.
#2231
5177197Thanks @borisno2! - Fix date pickers showing every date one column right of its weekday: the calendar's weeks now start on Monday and its header is derived from the grid.#2237
75c6df4Thanks @borisno2! - A successful save through a redirecting server action no longer shows "NEXT_REDIRECT" as an error (fixes #2227).create-opensaas-app@0.4.0-alpha.4
Patch Changes
#2144
8bbaeaeThanks @borisno2! - Refresh templates for the latest stack release.#2217
eaeee36Thanks @borisno2! - Refresh templates for the latest stack release.#2201
0933b4bThanks @dependabot! - Scaffold projects on Prisma ORM 8.0.0-rc.22 and theprismaCLI 8.0.0-rc.30.#2196
80c9ac0Thanks @borisno2! - Refresh templates for the latest stack release.#2143
a854243Thanks @borisno2! - Refresh templates for the latest stack release.#2141
2f287d5Thanks @borisno2! - Refresh templates for the latest stack release.#2218
357f9bbThanks @borisno2! - Refresh templates for the latest stack release.#2230
ad45bd0Thanks @borisno2! - Refresh templates for the latest stack release.#2195
ddb9e8cThanks @borisno2! - Scaffold against the stack release with the root update lock fix.#2205
dec240bThanks @borisno2! - The with-auth template wires a real sign-out into the admin UI.#2202
bd03766Thanks @dependabot! - Refresh templates for the latest stack release.#2219
9a87cfaThanks @borisno2! - Refresh templates for the latest stack release.#2208
0dd7eb4Thanks @borisno2! - Stamp the stack version carrying thecombine()read-rule fix into new projects.#2209
4a8b631Thanks @borisno2! - Fixopensaas generatefailing with "gen is not defined" when a config uses thecuidid strategy and no list usesuuid7,cuid2orupdatedAt#2232
fa03c43Thanks @borisno2! - Templates pick up the read-rule fix for withheld relations.#2142
bb87f3bThanks @borisno2! - Refresh templates for the latest stack release.#2236
384e007Thanks @borisno2! - Scaffolds write an allowed-buildspnpm-workspace.yaml, and ignored build scripts no longer abort setup on current pnpm.#2212
bea32adThanks @borisno2! - Refresh templates for the latest stack release.#2211
af04b65Thanks @borisno2! - Fix admin lists emptying on a sort the column cannot take: sorting now follows the ORM's ownorderanswer per column, andorderByrefuses a virtual or multi-column field as aValidationError.A failed list read now shows an error state rather than the first-run empty state.
#2222
97a9e88Thanks @borisno2! - Templates pick up the admin's keyboard and labelling fixes.#2231
5177197Thanks @borisno2! - Refresh templates for the latest stack release.#2198
1a6333fThanks @borisno2! - Refresh templates for the latest stack release.#2259
f2af7cbThanks @borisno2! - Refresh templates for the latest stack release.@opensaas/stack-storage@0.44.0-alpha.6
Patch Changes
#2141
2f287d5Thanks @borisno2! - Refuse whitespace and control characters in stored file/image urls, closing"/\t/host"resolving to another host.#2198
1a6333fThanks @borisno2! - Fix stored XSS where a malformed declared type such astext/html xpassed the active-content check; one strict parser now serves the check and the stored extension, and a malformed or browser-sniffed type (unknown/unknown,application/unknown,*/*) is stored asapplication/octet-stream.text/xsland the remaining WHATWG JavaScript essences are now refused by default, andisActiveMimeTypereturnstruefor a non-empty type that is not a usable essence.@opensaas/stack-storage-s3@0.44.0-alpha.6
No changes in this release.
@opensaas/stack-storage-vercel@0.44.0-alpha.6
No changes in this release.