Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Changed
- **Database schema initialization** — Switched from `SchemaUtils.create()` to `SchemaUtils.createMissingTablesAndColumns()` so new columns (like alias) are automatically added to existing tables on deployment without manual migration
- **Frontend dependencies** — Updated all frontend packages to their latest compatible (non-breaking) versions, including Cypress, Vitest, i18next, react-i18next, jsdom, PostCSS, autoprefixer, TailwindCSS, and vite-plugin-pwa, keeping the toolchain current and reducing the surface for known issues
- **Frontend Docker base image** — Bumped the frontend dev and production Dockerfiles from `node:20-alpine` to `node:24-alpine` so the container's npm major version matches local development (npm 11), and switched `npm ci` to `npm install` so the lock file is reconciled on every build, preventing npm-version lockfile drift from breaking the build

### Fixed
- **Flaky backend tests** — Resolved intermittent `PSQLException: Connection refused` errors in CI by fixing Testcontainers lifecycle mismatch (`@Container` moved to `companion object` for all `@TestInstance(PER_CLASS)` test classes) and disabling parallel test-class execution (`maxParallelForks = 1`) to prevent Exposed's global database registry from being overwritten mid-test by a concurrently running test class
- **Add-item timeout type** — Replaced the Node-specific `NodeJS.Timeout` type in the Add Item form with the browser-safe `ReturnType<typeof setTimeout>`, so the TypeScript build no longer depends on Node type definitions that don't belong in browser code
- **Docker frontend build** — Regenerated `package-lock.json` with npm 10 so the `node:20-alpine` image's `npm ci` no longer fails with an out-of-sync error; npm 11 had omitted esbuild's per-platform optional binary entries that npm 10 requires

## [6.3.0] - 2026-03-30

Expand Down
6 changes: 3 additions & 3 deletions frontend/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Development Dockerfile for React frontend
FROM node:20-alpine
FROM node:24-alpine

WORKDIR /app

# Copy package files first for better caching
COPY package.json package-lock.json ./

# Install dependencies
RUN npm ci
# Install dependencies (regenerate the lock file each build to stay in sync)
RUN npm install

# Copy source code
COPY . .
Expand Down
6 changes: 3 additions & 3 deletions frontend/Dockerfile.prod
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Production Dockerfile for React frontend with Nginx serving
FROM node:20-alpine AS builder
FROM node:24-alpine AS builder

WORKDIR /app

# Copy package files
COPY package.json package-lock.json ./

# Install dependencies
RUN npm ci
# Install dependencies (regenerate the lock file each build to stay in sync)
RUN npm install

# Copy source code
COPY . .
Expand Down
Loading
Loading