diff --git a/holoctl/CHANGELOG.md b/holoctl/CHANGELOG.md index 9ee51a7..d1fe91e 100644 --- a/holoctl/CHANGELOG.md +++ b/holoctl/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to holoctl follow [Keep a Changelog](https://keepachangelog. ## [Unreleased] +## [0.22.1] — 2026-06-16 + +### Fixed + +- **Vertical scroll restored on the focused ticket page** — the SSE swap wrapper (`#detail-content`) introduced with live spec authoring sat between `[data-detail-page]` and `.detail-grid`, breaking the flex height chain: as a plain block it had natural height, so `.detail-grid` never got a bounded height and `overflow-y:auto` on `.detail-main`/`.detail-rail` never engaged — long descriptions and activity logs were silently clipped with no scroll. `#detail-content` is now a growing flex column, so the grid reclaims the remaining height and the columns scroll independently again (#51). + ## [0.22.0] — 2026-06-15 ### Added diff --git a/holoctl/server/static/css/detail.css b/holoctl/server/static/css/detail.css index 612b842..5d7e40c 100644 --- a/holoctl/server/static/css/detail.css +++ b/holoctl/server/static/css/detail.css @@ -143,6 +143,21 @@ gap: 14px; } +/* The SSE swap target (#detail-content) sits between [data-detail-page] and + the grid (detail-sse.js replaces its innerHTML on live updates). It must + grow as a flex item AND be a flex column itself, so .detail-grid below it + reclaims the remaining height and .detail-main/.detail-rail scroll. Without + this the wrapper is a natural-height block, the grid never gets a bounded + height, and overflow-y:auto on the columns never engages — no vertical + scroll on the focused ticket page. */ +[data-detail-page] > #detail-content { + flex: 1; + min-height: 0; + display: flex; + flex-direction: column; + gap: 14px; +} + .detail-toolbar { flex-shrink: 0; display: flex; diff --git a/pyproject.toml b/pyproject.toml index 42c5a67..0b8e4c9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "holoctl" -version = "0.22.0" +version = "0.22.1" description = "Project operating system for Claude Code, with a portable bootstrap for other AI assistants" readme = "README.md" license = { file = "LICENSE" }