# MuseHub v0.2.0-nightly.3 Third nightly build, version-synced with `muse`. The headline fix is a systemic two-column scroll bug that affected every sidebar page in the app; three other real bugs (permission, wire-protocol, and identity-display) also landed. ## What changed - **Two-column scroll layout fixed across all 11 affected pages** (repo home, issues list/detail, proposal detail, explore, docs, muse-docs, blame, blob, profile). The right and left columns previously scrolled together instead of independently — root cause was `body { zoom: 1.25 }` breaking `position: sticky` and `100dvh` height math. Replaced every sticky-sidebar layout with a bounded-height flex/grid pattern where each column owns its own `overflow-y: auto`, matching the pattern already correct on the commit-detail page. All 49 frontend tests pass; verified live in a running docker container (musehub#84). - **Proposal actions (merge, request reviewer, remove reviewer) now correctly allow write/admin collaborators**, not just the literal repo owner — a permission-guard implementation in `proposals.py` had silently diverged from the correct, collaborator-aware guard already used in `issues.py` (musehub#135). - **`muse push` no longer silently substitutes `{}` for an unresolvable external delta-only parent snapshot** — this was a real clone-corruption path: a child commit's snapshot would be reconstructed against an empty manifest instead of the actual parent state. Fixed with a red-first TDD test proving the corruption, then the fix (musehub#134). - **Agent identity's `agent_model` field now reflects the most recently used model**, not the value frozen at first-ever provisioning — a stale genesis value was displayed even after an agent had long since switched models (issue #132). - **Release pruning now uses PEP 440-aware version sorting** instead of plain `sort -V`, which didn't understand PEP 440 precedence and was deleting the newest nightly instead of the oldest. Phases 1–2 (the pruning tool + wiring into `publish_muse_release.sh`) are live on `dev`; phase 3 (live re-verification against a real deploy) is intentionally held for a manual go-ahead (issue #128). - **`.museagent.md` migration** — same cross-repo fix as `muse` tonight; MuseHub's own agent config now lives in a tracked file, not the untracked `.muse/` directory (issue #78). ## Follow-ups filed, not blocking this nightly - **muse#84** — a `muse blame` false-attribution bug found while root-causing the scroll fix; not yet fixed. - **musehub#136** — investigate removing `body { zoom: 1.25 }` in favor of `rem`-based scaling; blocked on a spacing-token refactor. ## How the version number got picked Every commit's `sem_ver_bump` is computed structurally from an AST-level diff of changed public symbols, not typed by hand — see `docs/versioning.md`. This nightly's structural changes classify as PATCH.