# CPalius CMF 2.1.4

**Released:** 2026-09-22 · **Channel:** stable · **Critical:** yes

Turkish: [2.1.4-tr.md](2.1.4-tr.md)

2.1.3 mapped `translation_group_id` on forum topics but did not apply the
column during `cp:update`. This hotfix adds the Doctrine migration that should
have shipped with it, and applies pending module `.sql` files even when
`module.json` did not move.

## What's new

**Forum topic translation groups actually land on the database.** Dual-gate:
`Version20260922140000` runs in `cp:update`, and the Forum SQL file runs even
if the module version was already current.

**Pending module SQL is no longer tied to a manifest bump.** A core zip that
drops a new `.sql` next to an unchanged `module.json` still applies it.

**BanGuard survives a stale prod container.** Constructor order matches the
2.1.2 compiled service (ban, security, twig), with access as an optional
fourth argument.

## Upgrade notes

**If 2.1.3 already 500s the forum,** this update adds the missing column.
You can also run the ALTER by hand, then empty `cp-core/var/cache/prod/`
(leave the folder).

**If you deploy by FTP rather than through the panel,** clear
`cp-core/var/cache/prod/` after uploading — leave the folder, empty its
contents.

## Known limits

**Sites that never ran 2.1.3 skip nothing.** The migration is guarded: a
column or index that already exists is left alone.
