const scrobbles = document.getElementById("recent-scrobbles"); const publications = document.getElementById("recent-publications"); const changelog = document.getElementById("recent-now"); const column = document.querySelector(".recent-column"); let userResized = false; let lastSetHeight = null; new ResizeObserver(([entry]) => { const observedHeight = Math.round(entry.contentRect.height); if (lastSetHeight !== null && observedHeight !== lastSetHeight) { userResized = true; column.style.height = "auto"; // NEW — release the lock so flow can push content down } }).observe(changelog); function syncHeights() { if (userResized) return; const gap = parseFloat(getComputedStyle(column).rowGap) || 0; const changelogFloor = parseFloat(getComputedStyle(changelog).minHeight) || 0; const naturalFloor = publications.offsetHeight + gap + changelogFloor; const targetColumnHeight = Math.max(naturalFloor, scrobbles.offsetHeight); const changelogHeight = targetColumnHeight - publications.offsetHeight - gap; lastSetHeight = Math.round(changelogHeight); changelog.style.height = `${changelogHeight}px`; column.style.height = `${targetColumnHeight}px`; } new ResizeObserver(syncHeights).observe(scrobbles); new ResizeObserver(syncHeights).observe(publications);