diff --git a/CHANGELOG.md b/CHANGELOG.md index 9bcdaa6..d222d73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ The format is based on Keep a Changelog, and this project adheres to Semantic Ve - Diff view: `.md` lines render as styled markdown (headings/bold/italic/code/lists/blockquotes/HRs) instead of raw source. A pre-rendering pass scans each `.md` file’s pre/post images so per-line styling has full block context (e.g. lines inside fenced code render verbatim) - 8 markdown themes (`bright`, `forest`, `sunset`, `ocean`, `neon`, `autumn`, `candy`, `mono`) with distinct colour palettes; press `[t]` to cycle - Kanban board uses the full terminal width: columns abut directly (no per-column margin, no inter-group separator, no internal padding) and the column floor drops to 12 cols so narrow terminals stop overflowing. Card secondary-row gutter tightens from 4 to 2 cols so descriptions have more room +- Kanban footer no longer wraps mid-word at narrow widths. Hints are packed as atomic chunks separated by ` · `, and footer width is now independent of cursor position — so moving between items with/without a worktree no longer shifts the board up/down (the “flicker”) - Add changes here. The first bullet under each release is used as the short “what’s new” message in the app’s update notice. ## 1.1.2 - 2026-04-19 diff --git a/src/screens/TrackerBoardScreen.tsx b/src/screens/TrackerBoardScreen.tsx index 90f88fb..c2c6b5b 100644 --- a/src/screens/TrackerBoardScreen.tsx +++ b/src/screens/TrackerBoardScreen.tsx @@ -694,11 +694,14 @@ export default function TrackerBoardScreen({ } // Column height = termRows minus all vertical chrome: - // 1 title row + 1 footer row + footerStatusRow (optional) + // 1 title row + footerRows + footerStatusRow (optional) // + 1 reserved by FullScreen (prevents terminal scroll) // + 1 margin (keeps content from touching the edge) + // footerRows is computed from the deterministic packing below so wrapped + // footers don't push the board off the bottom of the terminal. const footerStatusRow = proposalStatus ? 1 : 0; - const colHeight = Math.max(5, termRows - (4 + footerStatusRow)); + const footerRows = packFooterChunks(buildFooterChunks(), Math.max(20, termCols - 2)).length; + const colHeight = Math.max(5, termRows - (3 + footerStatusRow + footerRows)); // Group columns const planColIndices: number[] = []; @@ -948,6 +951,7 @@ export default function TrackerBoardScreen({ )} {!inputActive && (