Release v0.3.25
Release 0.3.25
Changelog
Fixed
- Dashboard import modal: AJAX import submit now follows redirects reliably and navigates back to the dashboard index after successful imports, avoiding a stuck modal state on
302responses. - Dashboard item list: item rows are rendered in deterministic tree order (parent/children traversal with sibling sort by
position, thenid) so visual ordering matches stored positions. - Dashboard table UX: item
positionis displayed under the parent label to make ordering/debugging easier. - Tests: migration command integration assertion for
--dumpoutput is now robust to Symfony console note line-wrapping.
Changed
- Performance (N+1 reduction):
- menu copy now clones items from a preloaded flat list in two passes (no recursive
getChildren()lazy traversal), - descendant id resolution for item edit uses preloaded menu items + in-memory BFS,
- import post-processing clears link fields for parents with children using an in-memory
hasChildrenmap (no per-item lazychildren->count()), - export-all loads items for all menus in a single repository query and groups in memory.
- menu copy now clones items from a preloaded flat list in two passes (no recursive
Full Changelog: v0.3.24...v0.3.25