<ul><li><strong>changelog.php</strong>: Removed broken <code>include('/classes/websites/websites.class.php')</code> — absolute path <code>/classes/...</code> does not exist on filesystem (Warning). Website class is autoloaded via spl_autoload_register; redundant <code>new Website()</code> was also overwriting the instance already created in index.php.</li><li><strong>changelog.php</strong>: Changed <code>count($nonSystemModules)</code> and <code>count($systemModules)</code> to <code>!empty()</code> — PHP 8 throws TypeError on count(null) if DB query returns null.</li><li><strong>changelog.php</strong>: Added <code>error:</code> callbacks on both AJAX calls (module changelog + platform changelog) — loading spinner stayed visible on network failure. Added try/catch on <code>$.parseJSON()</code> to prevent crash on malformed response.</li><li><strong>info.controller.php</strong>: Fixed CSRF bypass bug in <code>verifyToken()</code> — <code>&amp;&amp;</code> was <code>&amp;&amp;</code> instead of <code>||</code>. With AND: a request with <code>_token</code> present but wrong passed through unvalidated.</li><li><strong>info.controller.php</strong>: Fixed <code>showChangelogPlatformSingle()</code> — was always overwriting <code>$data['date']</code> with current time instead of formatting the stored DB date.</li><li><strong>info.controller.php</strong>: Removed duplicate <code>loadCustomAbout</code> route handler (lines 238-241 were exact copy of lines 232-237).</li><li><strong>index.php</strong>: Fixed undefined variable warning — <code>$startingmenu</code> was never defined in this scope; changed to <code>!empty($startingmenu ?? null)</code>.</li></ul>