1587d1cdf3
added 3256 more. - danilo: _merged/ is 8 KB — basically empty. merge_all likely ran concurrently (multiple file uploads trigger multiple rebuilds without a lock in --no-build mode), causing a race where shutil.rmtree(merged_acts) from one run wiped what another run was writing. Two fixes: serialize --no-build rebuilds with the same lock, and add a "Rebuild" button to the admin page. Root causes fixed: 1. merge_all race condition — --no-build rebuilds now hold _rebuild_lock, same as full builds 2. The SSE rebuild-trigger bug (already fixed earlier) was brut's original cause