Skip to content

Release v2.1.13

Choose a tag to compare

@github-actions github-actions released this 24 Sep 15:29
· 119 commits to main since this release

Release 2.1.13

Changelog

Added

  • DashboardMenuWorkerStateSubscriber: at the start of every main request, clears MenuRepository, MenuTreeCacheInvalidator, and MenuUrlResolver memos (and optional dev DashboardMenuDataCollector / MenuQueryCounter), and resets the menu entity manager when a previous request closed it. Bundle-owned state stays correct in FrankenPHP worker mode even with reset_kernel: false / without services_resetter. Cache versions are read once per request from the shared PSR-6 pool, so bumps from other workers are seen on the next request.
  • Docs: docs/FRANKENPHP-WORKER-AUDIT.md — full worker-mode audit (scenarios A/B) and remediation notes.

Fixed

  • MenuUrlResolver: the href memo is keyed by the current Request object (WeakMap), so hrefs computed from one request's locale, route params, host or service resolver can no longer leak into the next request when no reset runs. Items without id (dynamic links) and calls without a request are no longer memoized (removes the spl_object_id() collision risk).
  • QA: fixed PHPStan findings (0 errors at level 8); src/Form is analysed again (no longer excluded).

Notes

  • Hosts that disable Symfony's service resetter under worker mode must still clear the Doctrine identity map between requests (application responsibility). Use a shared cache pool (e.g. Redis) across workers so tree-cache version bumps propagate.

Full Changelog: v2.1.12...v2.1.13