<ul><li><strong>CRITICAL FIX</strong>: fetchComments() undefined array key causing PHP Warnings prepended to JSON, breaking JSON.parse() — JS pageerror on every page load. Fixed by initializing retdata[data] = [] and count = 0 before conditional, plus null-coalesce on useridkey_fk.</li><li><strong>HIGH FIX</strong>: Duplicate id=pending_portlet on both NEEDS APPROVAL and BANNED POST portlets. BANNED POST portlet renamed to id=banned_portlet. Duplicate ID broke restriction show/hide JS logic.</li><li><strong>HIGH FIX</strong>: Bare alert() call on camera icon click in Update Post modal (newsfeedjs.php line 332). Blocking browser dialog fired on every image upload attempt. Removed.</li><li><strong>MEDIUM FIX</strong>: All 4 avatar img tags in jsfunction.php lacked onerror handlers. Posts with acctid_fk=0 return profile_pic: null causing broken images. Added onerror fallback and null-coalesce on all avatar images.</li><li><strong>MEDIUM FIX</strong>: val.name and comments.name used without null guards in table renderers — added Unknown fallback on all display points.</li><li><strong>PERF FLAG</strong>: activeAcctDetails() called 3x per row in get_postDetails() — 2 DB queries each = up to 354 queries for 59 posts. Recommend pre-caching before render loop.</li><li>All 6 AJAX endpoints: 0 PHP errors, all valid JSON. CRUD passes. 0 JS console errors.</li></ul>