ced4363d205e4c01adadcdb1792d8907b7afeda9
CI / php (push) Failing after 1m12s
Plan 3c: JavaScript frontend (storage.js, grid-editor.js, toolchain). Adds the Node toolchain (ESLint airbnb-base + Prettier) with a CI step, public/js/storage.js (bfStorage module for localStorage pre-fill and the home page's recent-scenarios list), public/js/grid-editor.js (battlefield grid interactions and JSON fetch save), public/assets/archetypes.json (the four ArchetypeTemplate definitions), four placeholder PNGs at public/assets/placeholders/, and updated <script> tags in home.php and team-editor.php and a data-scenario-id attribute + script tag in battlefield-editor.php. Also adds *.js and *.json to .gitattributes to enforce LF line endings on those file types. 196/196 tests pass; PHPStan level 6 clean; ESLint 0 errors; Prettier clean. Two fix commits were made during the per-task review loop: brief's URL parsing slice index in storage.js was off-by-one (slice(-2,-1) returned 'edit' instead of the id), and brief's buildScenarioJson emitted a nested objective shape that didn't match the backend's flat objectiveId/X/Y fields. Both were corrected.
Description
No description provided
535 KiB