From aae77ebc276770f779508ab35f79e4a7977bc9ef Mon Sep 17 00:00:00 2001 From: Igor Martyniuk Date: Mon, 31 Aug 2026 15:43:21 +0300 Subject: [PATCH] docs: update changelog for v1.3.1 --- CHANGELOG.md | 24 ++++++++++------- apps/admin/package.json | 2 +- apps/backend/package.json | 2 +- apps/web/package.json | 2 +- package-lock.json | 26 +++++++++---------- package.json | 2 +- .../design-system/editor-tiptap/package.json | 2 +- packages/design-system/keenicon/package.json | 2 +- packages/hooks/package.json | 2 +- packages/services/intl-date/package.json | 2 +- packages/services/intl-name/package.json | 2 +- packages/services/local-storage/package.json | 2 +- packages/types/package.json | 2 +- packages/utils/package.json | 2 +- 14 files changed, 39 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 161abf1..7434513 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,24 +13,28 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ### Fixed -- Fixed File Manager operations on directories without a `.keep` marker. A directory a file was - 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 - back to the prefix holding any entry instead of relying on the marker alone. +### Removed + +## [1.3.1] - 2026-08-31 + +### 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 (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 `/` prefix, and the S3 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 `apps/web/node_modules` in an anonymous volume, so the bind mount no longer shadows the dependencies installed in the image. -### Removed - ## [1.3.0] - 2026-08-28 ### Added diff --git a/apps/admin/package.json b/apps/admin/package.json index 66fc7c2..72599ae 100755 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -1,7 +1,7 @@ { "name": "@crux-kit/admin-app", "private": true, - "version": "1.3.0", + "version": "1.3.1", "type": "module", "scripts": { "dev": "vite", diff --git a/apps/backend/package.json b/apps/backend/package.json index 61ca8a4..c683d2d 100755 --- a/apps/backend/package.json +++ b/apps/backend/package.json @@ -1,6 +1,6 @@ { "name": "@crux-kit/backend", - "version": "1.3.0", + "version": "1.3.1", "private": true, "type": "module", "license": "UNLICENSED", diff --git a/apps/web/package.json b/apps/web/package.json index a15a2b6..e26a377 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -1,6 +1,6 @@ { "name": "@crux-kit/web-app", - "version": "1.3.0", + "version": "1.3.1", "private": true, "scripts": { "dev": "next dev", diff --git a/package-lock.json b/package-lock.json index 8242883..c3f4b70 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "crux", - "version": "1.3.0", + "version": "1.3.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "crux", - "version": "1.3.0", + "version": "1.3.1", "license": "UNLICENSED", "workspaces": [ "apps/*", @@ -44,7 +44,7 @@ }, "apps/admin": { "name": "@crux-kit/admin-app", - "version": "1.3.0", + "version": "1.3.1", "dependencies": { "@crux-kit/editor-tiptap": "*", "@crux-kit/hooks": "*", @@ -210,7 +210,7 @@ }, "apps/backend": { "name": "@crux-kit/backend", - "version": "1.3.0", + "version": "1.3.1", "license": "UNLICENSED", "dependencies": { "@adonisjs/auth": "^10.1.0", @@ -788,7 +788,7 @@ }, "apps/web": { "name": "@crux-kit/web-app", - "version": "1.3.0", + "version": "1.3.1", "dependencies": { "@crux-kit/hooks": "*", "@crux-kit/intl-date": "*", @@ -24085,7 +24085,7 @@ }, "packages/design-system/editor-tiptap": { "name": "@crux-kit/editor-tiptap", - "version": "1.3.0", + "version": "1.3.1", "dependencies": { "@crux-kit/utils": "*", "@tiptap/core": "^3.29.2", @@ -24103,12 +24103,12 @@ }, "packages/design-system/keenicon": { "name": "@crux-kit/keenicon", - "version": "1.3.0", + "version": "1.3.1", "devDependencies": {} }, "packages/hooks": { "name": "@crux-kit/hooks", - "version": "1.3.0", + "version": "1.3.1", "dependencies": { "@crux-kit/types": "*" }, @@ -24116,7 +24116,7 @@ }, "packages/services/intl-date": { "name": "@crux-kit/intl-date", - "version": "1.3.0", + "version": "1.3.1", "dependencies": { "@crux-kit/types": "*" }, @@ -24124,7 +24124,7 @@ }, "packages/services/intl-name": { "name": "@crux-kit/intl-name", - "version": "1.3.0", + "version": "1.3.1", "dependencies": { "@crux-kit/types": "*" }, @@ -24132,17 +24132,17 @@ }, "packages/services/local-storage": { "name": "@crux-kit/local-storage", - "version": "1.3.0", + "version": "1.3.1", "devDependencies": {} }, "packages/types": { "name": "@crux-kit/types", - "version": "1.3.0", + "version": "1.3.1", "devDependencies": {} }, "packages/utils": { "name": "@crux-kit/utils", - "version": "1.3.0", + "version": "1.3.1", "dependencies": { "@crux-kit/types": "*" }, diff --git a/package.json b/package.json index 5fb826b..8753a0a 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "crux", - "version": "1.3.0", + "version": "1.3.1", "private": true, "type": "module", "license": "UNLICENSED", diff --git a/packages/design-system/editor-tiptap/package.json b/packages/design-system/editor-tiptap/package.json index d9269fc..5c0d2aa 100644 --- a/packages/design-system/editor-tiptap/package.json +++ b/packages/design-system/editor-tiptap/package.json @@ -1,6 +1,6 @@ { "name": "@crux-kit/editor-tiptap", - "version": "1.3.0", + "version": "1.3.1", "type": "module", "types": "src/index.ts", "private": true, diff --git a/packages/design-system/keenicon/package.json b/packages/design-system/keenicon/package.json index 4ee286e..cf142ce 100755 --- a/packages/design-system/keenicon/package.json +++ b/packages/design-system/keenicon/package.json @@ -1,6 +1,6 @@ { "name": "@crux-kit/keenicon", - "version": "1.3.0", + "version": "1.3.1", "type": "module", "types": "src/index.ts", "private": true, diff --git a/packages/hooks/package.json b/packages/hooks/package.json index 5c4f1a0..8edfa42 100644 --- a/packages/hooks/package.json +++ b/packages/hooks/package.json @@ -1,6 +1,6 @@ { "name": "@crux-kit/hooks", - "version": "1.3.0", + "version": "1.3.1", "type": "module", "types": "src/index.ts", "private": true, diff --git a/packages/services/intl-date/package.json b/packages/services/intl-date/package.json index 8fb4ddb..2af7d4b 100755 --- a/packages/services/intl-date/package.json +++ b/packages/services/intl-date/package.json @@ -1,6 +1,6 @@ { "name": "@crux-kit/intl-date", - "version": "1.3.0", + "version": "1.3.1", "type": "module", "types": "src/index.ts", "private": true, diff --git a/packages/services/intl-name/package.json b/packages/services/intl-name/package.json index b8281f7..ecb9b6e 100755 --- a/packages/services/intl-name/package.json +++ b/packages/services/intl-name/package.json @@ -1,6 +1,6 @@ { "name": "@crux-kit/intl-name", - "version": "1.3.0", + "version": "1.3.1", "type": "module", "types": "src/index.ts", "private": true, diff --git a/packages/services/local-storage/package.json b/packages/services/local-storage/package.json index 31bbe53..a348fc5 100644 --- a/packages/services/local-storage/package.json +++ b/packages/services/local-storage/package.json @@ -1,6 +1,6 @@ { "name": "@crux-kit/local-storage", - "version": "1.3.0", + "version": "1.3.1", "type": "module", "types": "src/index.ts", "private": true, diff --git a/packages/types/package.json b/packages/types/package.json index 9dfe9fc..efc447c 100755 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@crux-kit/types", - "version": "1.3.0", + "version": "1.3.1", "type": "module", "types": "src/index.ts", "private": true, diff --git a/packages/utils/package.json b/packages/utils/package.json index 85f45c4..d2c2c47 100755 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@crux-kit/utils", - "version": "1.3.0", + "version": "1.3.1", "type": "module", "types": "src/index.ts", "private": true,