app.js is a THIN WRAPPER. No file over 777 lines.
Current app.js is 2214 lines — must be broken up before any new features merge.
CI will block PRs that violate this. Pre-commit hook catches it locally.
Install hook: git config core.hooksPath .githooks