Files
zero-fucks-given/CHANGELOG.md
T
2026-09-02 12:40:49 +03:00

138 lines
6.5 KiB
Markdown

# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Added
### Changed
- Rebuilt the nine non-default layouts against the application's own data.
### Fixed
### 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 `<path>/` prefix, and the S3
service deletes the listed keys instead of passing that prefix to `deleteAll`.
- 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.
## [1.3.0] - 2026-08-28
### Added
- Added an `ApiException` base class whose self-handling renders module exceptions as
`{ message, code }` JSON responses, so exception classes no longer need registration in the
global HTTP exception handler.
- Added `@crux-kit/editor-tiptap`, a free, headless rich-text editor package built on TipTap. The `light` preset covers bold, italic, underline,
strikethrough, headings, lists, blockquote, text alignment, links, and undo/redo, reading and
writing content as plain HTML so it themes with the shared design-system tokens.
- Added the `InputTiptapEditor` composed form field.
- Added `useIntlDate` and `useIntlName` hooks under `apps/admin/src/app/i18n`, each returning a
formatter bound to the active UI language. Reading the language from context is what subscribes a
component to a language switch; components that read the `IntlDate`/`IntlName` singletons directly
### Changed
- Moved module generation fully server-side. The admin devtools now sends the raw generator config
(`{ name, table, generate, form, datatable }`) instead of pre-rendered source strings, and the
six frontend source builders were ported verbatim from the admin to
`apps/backend/app/services/module_generator`.
- Refactored `module_controller.ts` (~500 lines) into a thin HTTP controller delegating to focused
`module_generator` service modules: an orchestrator, schema-derived context building, naming and
DB-type helpers, a template renderer, and `builders/` + `writers/` subdirectories.
- Split the root `.env` into per-workspace env files (`apps/backend/.env`, `apps/admin/.env`,
`apps/web/.env`) so each app only ingests the variables it uses. Every `docker-compose.yml`
service now loads its own app's env file, and the admin (Vite) and web (Next.js) apps rely on
their frameworks' native env loading instead of custom root-file merging.
- Renamed cross-app URL env variables: `PAGE_MANAGER_API_URL` → `BACKEND_API_URL` in the web app
and `VITE_PAGE_MANAGER_WEB_URL` → `VITE_WEB_URL` in the admin app.
- File Manager exceptions now extend `ApiException`.
- Extracted the admin i18n context out of `I18nProvider` into `app/i18n/context.ts` and
`app/i18n/useLanguage.ts`, so components reach the active language through a side-effect-free
module instead of importing the provider and executing its module body.
- The selected language is now persisted to local storage as its code rather than as the whole
`Language` object.
### Fixed
- Fixed admin menu highlighting, which marked every ancestor entry active at once.
- Fixes the containing section staying collapsed when a sub-route is opened directly.
- Fixed backend functional test discovery: the `tests/**/*.spec.(ts|js)` globs in `adonisrc.ts`
are not valid for the native `fs.glob` used by Japa v5, so the suite silently ran zero tests.
- Fixed the backend `lint` script path (`../scripts` → `../../scripts`), which made
`npm run lint` fail before linting.
- Removed the stale Japa v1-era `@japa/spec-reporter` wiring from `tests/bootstrap.ts`; the
runner's built-in spec reporter is used instead.
- Renamed `app/exceptions/file_manager_exeptions.ts` to `file_manager_exceptions.ts`, fixing the
filename typo, and updated all imports.
### Removed
- Removed the root `.env` file.
## [1.2.0] - 2026-07-17
### Changed
- Moved AdonisJS ESLint and Prettier configuration packages and Japa test dependencies from the
root package manifest to the backend workspace so workspace-specific dependencies are owned by
`apps/backend`.
- Updated the Admin frontend architecture so global providers belong to the `app` composition
layer under `app/providers` instead of being modeled as a separate architectural layer.
## [1.1.0] - 2026-07-17
### Added
- Added image map editor for creating and editing interactive image map areas in the File Manager.
### Changed
- Migrated TypeScript from `5.8.3` to `7.0.2`
- Migrated AdonisJS from `6.x` to `7.3.5`
- Refactored admin module-generator source builders to compose imports and source sections through
shared source-file helpers while preserving the existing generation payload.
- Renamed module-generator builder classes and files from template-builder terminology to
source-builder terminology.
- Updated module-generator frontend documentation to reference the new source-builder names.
### Fixed
- Fix prettier one line import break sorting and class order
### Removed
- Removed "prettier-plugin-one-line-imports"
## [1.0.1] - 2026-06-30
### Fixed
- Resolved a circular dependency in language imports that could crash the admin app during language
initialization.
- Exposed the provider `languages` list through `I18nProvider` instead of importing the language
config directly in `UserDropdownMenu`.
- Updated language selection in `UserDropdownMenu` to use the provider-supplied `languages`
collection, preventing inconsistent state during rendering.