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

.
docs: bump the documentation submodule
.
chore: ignore .DS_Store
.
fix(install): push the installer request onto the request stack
.
fix(install): switch the language without jquery, which loads after the inline script
.
docs(agents): add the caching guide
.
feat(cache): add commands to clear and prune the application cache
.
refactor(cache): replace illuminate/cache with a tag-aware cache on symfony/cache
.
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.
.
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
.
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