advanceSlide now sets src and waits for onload on the next slot directly — no preloading, no transitionend, no setTimeout. Local files load in milliseconds so preloading is unnecessary complexity that was causing the slideshow to stall. Also adds ?v=<mtime> cache-busting to the app.js script tag so Chromium always picks up new JS after a deploy. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>