История коммитов

simba77
fix(install): push the installer request onto the request stack
simba77
fix(install): switch the language without jquery, which loads after the inline script
simba77
docs(agents): add the caching guide
simba77
feat(cache): add commands to clear and prune the application cache
simba77
refactor(cache): replace illuminate/cache with a tag-aware cache on symfony/cache
simba77
chore(docker): give composer a writable cache directory
Composer runs as www-data, whose home directory is owned by root, so every run
in the container warned that it could not create its cache and proceeded
without one.

COMPOSER_HOME now points at an explicit path that both image stages create and
chown after the user id is adjusted, and compose mounts a named volume over it
so the cache survives container recreation.
simba77
chore: raise the minimum php version to 8.4
The docker image already moved to 8.4; this brings the rest of the project in
line so the declared requirement, the CI matrix and the runtime checks agree.

- composer.json requires ^8.4 (lock file refreshed), the test workflow builds on
8.4 and the readme states it
- SystemChecker::MIN_PHP_VERSION was still 7.3 and the second installer step
duplicated the bound as literals; the checker is now the single source of
truth and the step reads from it
- phpstan baseline regenerated: the platform version appears in three ignored
patterns, the error count is unchanged
simba77
chore(docker): rename the compose project and dev domain to johncms
The stack ran under the johncms9 project name, which pinned the container names
and the local domain to the 9.x line.

- .env.example now ships johncms / johncms.loc
- the agent guides target the johncms.php-fpm container
- verify.sh reads COMPOSE_PROJECT_NAME from .env instead of hard-coding the
container name, and matches it exactly so a similarly named project on the
same host cannot be picked up by mistake
simba77
i18n(admin): translate the mail settings screen into russian
The 28 strings of the new screen, appended to ru.po without touching what was there, and the dictionary regenerated from it. The other languages come from Crowdin.
simba77
chore(i18n): regenerate the message templates
The templates had drifted from the sources: apart from the strings of the new mail settings screen, which land in the admin domain, every change is a line number.