docs: update changelog for v1.3.1
This commit is contained in:
+14
-10
@@ -13,24 +13,28 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Fixed File Manager operations on directories without a `.keep` marker. A directory a file was
|
### Removed
|
||||||
uploaded into, or one that exists in the bucket but was not created through the app, was listed
|
|
||||||
but could not be renamed, deleted or resolved (`E_DIR_NOT_FOUND`); directory existence now falls
|
## [1.3.1] - 2026-08-31
|
||||||
back to the prefix holding any entry instead of relying on the marker alone.
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed Web Studio site settings rejecting empty optional fields. The backend bodyparser converts
|
||||||
|
empty strings to `null`, so a cleared menu title, footer copyright or legal path failed
|
||||||
|
validation; those fields are now optional in the vine schema (stored without the key) and the
|
||||||
|
admin maps them back to empty strings via `SiteSettingsMapper`.
|
||||||
|
- Backend validation errors on the settings page no longer disappear silently: the shared 422
|
||||||
|
handler skips them expecting the caller to map field errors, which the page never did. Structured
|
||||||
|
field errors are now set on the matching form inputs, the tab holding the first error is opened,
|
||||||
|
and message-only 422s surface as a toast.
|
||||||
- Fixed renaming or deleting a folder destroying sibling folders whose name shares its prefix
|
- Fixed renaming or deleting a folder destroying sibling folders whose name shares its prefix
|
||||||
(renaming `aa` overwrote and then deleted `aab`). Drive strips the trailing slash off a listing
|
(renaming `aa` overwrote and then deleted `aab`). Drive strips the trailing slash off a listing
|
||||||
prefix, so a directory's contents are now filtered on the real `<path>/` prefix, and the S3
|
prefix, so a directory's contents are now filtered on the real `<path>/` prefix, and the S3
|
||||||
service deletes the listed keys instead of passing that prefix to `deleteAll`.
|
service deletes the listed keys instead of passing that prefix to `deleteAll`.
|
||||||
- Moving, copying and deleting a folder now follow the listing pagination token, so folders holding
|
|
||||||
more than 1000 objects are no longer processed only in part.
|
|
||||||
- Fixed `getEntry` raising a bare `Error` (HTTP 500) for a path that is neither a file nor a
|
|
||||||
directory; it now raises the `E_DIR_NOT_FOUND` 404.
|
|
||||||
- Fixed the web container running against the host's `node_modules`: the `web` service keeps
|
- Fixed the web container running against the host's `node_modules`: the `web` service keeps
|
||||||
`apps/web/node_modules` in an anonymous volume, so the bind mount no longer shadows the
|
`apps/web/node_modules` in an anonymous volume, so the bind mount no longer shadows the
|
||||||
dependencies installed in the image.
|
dependencies installed in the image.
|
||||||
|
|
||||||
### Removed
|
|
||||||
|
|
||||||
## [1.3.0] - 2026-08-28
|
## [1.3.0] - 2026-08-28
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@crux-kit/admin-app",
|
"name": "@crux-kit/admin-app",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@crux-kit/backend",
|
"name": "@crux-kit/backend",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"license": "UNLICENSED",
|
"license": "UNLICENSED",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@crux-kit/web-app",
|
"name": "@crux-kit/web-app",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
|
|||||||
Generated
+13
-13
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "crux",
|
"name": "crux",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "crux",
|
"name": "crux",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"license": "UNLICENSED",
|
"license": "UNLICENSED",
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
"apps/*",
|
"apps/*",
|
||||||
@@ -44,7 +44,7 @@
|
|||||||
},
|
},
|
||||||
"apps/admin": {
|
"apps/admin": {
|
||||||
"name": "@crux-kit/admin-app",
|
"name": "@crux-kit/admin-app",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@crux-kit/editor-tiptap": "*",
|
"@crux-kit/editor-tiptap": "*",
|
||||||
"@crux-kit/hooks": "*",
|
"@crux-kit/hooks": "*",
|
||||||
@@ -210,7 +210,7 @@
|
|||||||
},
|
},
|
||||||
"apps/backend": {
|
"apps/backend": {
|
||||||
"name": "@crux-kit/backend",
|
"name": "@crux-kit/backend",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"license": "UNLICENSED",
|
"license": "UNLICENSED",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@adonisjs/auth": "^10.1.0",
|
"@adonisjs/auth": "^10.1.0",
|
||||||
@@ -788,7 +788,7 @@
|
|||||||
},
|
},
|
||||||
"apps/web": {
|
"apps/web": {
|
||||||
"name": "@crux-kit/web-app",
|
"name": "@crux-kit/web-app",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@crux-kit/hooks": "*",
|
"@crux-kit/hooks": "*",
|
||||||
"@crux-kit/intl-date": "*",
|
"@crux-kit/intl-date": "*",
|
||||||
@@ -24085,7 +24085,7 @@
|
|||||||
},
|
},
|
||||||
"packages/design-system/editor-tiptap": {
|
"packages/design-system/editor-tiptap": {
|
||||||
"name": "@crux-kit/editor-tiptap",
|
"name": "@crux-kit/editor-tiptap",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@crux-kit/utils": "*",
|
"@crux-kit/utils": "*",
|
||||||
"@tiptap/core": "^3.29.2",
|
"@tiptap/core": "^3.29.2",
|
||||||
@@ -24103,12 +24103,12 @@
|
|||||||
},
|
},
|
||||||
"packages/design-system/keenicon": {
|
"packages/design-system/keenicon": {
|
||||||
"name": "@crux-kit/keenicon",
|
"name": "@crux-kit/keenicon",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"devDependencies": {}
|
"devDependencies": {}
|
||||||
},
|
},
|
||||||
"packages/hooks": {
|
"packages/hooks": {
|
||||||
"name": "@crux-kit/hooks",
|
"name": "@crux-kit/hooks",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@crux-kit/types": "*"
|
"@crux-kit/types": "*"
|
||||||
},
|
},
|
||||||
@@ -24116,7 +24116,7 @@
|
|||||||
},
|
},
|
||||||
"packages/services/intl-date": {
|
"packages/services/intl-date": {
|
||||||
"name": "@crux-kit/intl-date",
|
"name": "@crux-kit/intl-date",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@crux-kit/types": "*"
|
"@crux-kit/types": "*"
|
||||||
},
|
},
|
||||||
@@ -24124,7 +24124,7 @@
|
|||||||
},
|
},
|
||||||
"packages/services/intl-name": {
|
"packages/services/intl-name": {
|
||||||
"name": "@crux-kit/intl-name",
|
"name": "@crux-kit/intl-name",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@crux-kit/types": "*"
|
"@crux-kit/types": "*"
|
||||||
},
|
},
|
||||||
@@ -24132,17 +24132,17 @@
|
|||||||
},
|
},
|
||||||
"packages/services/local-storage": {
|
"packages/services/local-storage": {
|
||||||
"name": "@crux-kit/local-storage",
|
"name": "@crux-kit/local-storage",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"devDependencies": {}
|
"devDependencies": {}
|
||||||
},
|
},
|
||||||
"packages/types": {
|
"packages/types": {
|
||||||
"name": "@crux-kit/types",
|
"name": "@crux-kit/types",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"devDependencies": {}
|
"devDependencies": {}
|
||||||
},
|
},
|
||||||
"packages/utils": {
|
"packages/utils": {
|
||||||
"name": "@crux-kit/utils",
|
"name": "@crux-kit/utils",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@crux-kit/types": "*"
|
"@crux-kit/types": "*"
|
||||||
},
|
},
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "crux",
|
"name": "crux",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"license": "UNLICENSED",
|
"license": "UNLICENSED",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@crux-kit/editor-tiptap",
|
"name": "@crux-kit/editor-tiptap",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"types": "src/index.ts",
|
"types": "src/index.ts",
|
||||||
"private": true,
|
"private": true,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@crux-kit/keenicon",
|
"name": "@crux-kit/keenicon",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"types": "src/index.ts",
|
"types": "src/index.ts",
|
||||||
"private": true,
|
"private": true,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@crux-kit/hooks",
|
"name": "@crux-kit/hooks",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"types": "src/index.ts",
|
"types": "src/index.ts",
|
||||||
"private": true,
|
"private": true,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@crux-kit/intl-date",
|
"name": "@crux-kit/intl-date",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"types": "src/index.ts",
|
"types": "src/index.ts",
|
||||||
"private": true,
|
"private": true,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@crux-kit/intl-name",
|
"name": "@crux-kit/intl-name",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"types": "src/index.ts",
|
"types": "src/index.ts",
|
||||||
"private": true,
|
"private": true,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@crux-kit/local-storage",
|
"name": "@crux-kit/local-storage",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"types": "src/index.ts",
|
"types": "src/index.ts",
|
||||||
"private": true,
|
"private": true,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@crux-kit/types",
|
"name": "@crux-kit/types",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"types": "src/index.ts",
|
"types": "src/index.ts",
|
||||||
"private": true,
|
"private": true,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@crux-kit/utils",
|
"name": "@crux-kit/utils",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"types": "src/index.ts",
|
"types": "src/index.ts",
|
||||||
"private": true,
|
"private": true,
|
||||||
|
|||||||
Reference in New Issue
Block a user