feat: add panel zoom toggle (z key) in monitor mode - #109
Conversation
Press z to zoom the active panel to full screen height, hiding the other two panels. Press z again to restore the original layout. Works in both main and board contexts. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Thanks for this, @shnayder — and apologies for the long silence. We're working through a large PR backlog and this one deserved a proper look rather than a quick verdict. The motivation lands: managing a backlog through a ~10-item window is genuinely painful, and zoom is the right shape of fix. I checked it out, merged it against current main and ran it. Things you got right that are worth calling out, because they're the parts people usually miss:
Also, good news on one thing you flagged: Two things to sort out before this can land: 1. It needs a real rebase, not just a merge. Main has since done a Bubble Tea v1 → v2 migration, which turned // old (won't build on current main)
tea.KeyMsg{Type: tea.KeyRunes, Runes: []rune{'9'}}
// new
tea.KeyPressMsg{Code: '9', Text: ""}Context for why that line needed touching at all: main independently added a test that uses There are also small conflicts in 2. There's a panel-switch bug. Three reasonable ways to resolve it, your call on which feels right:
Two smaller notes:
Optional, entirely up to you: the zoom layout math is duplicated between Worth noting there's a lint pass landing on main shortly, so you may want to wait a day or two before rebasing to avoid doing it twice. Happy to take another look whenever you push. Thanks for the careful writeup on the original PR — the test plan and the note about pre-existing failures made this much easier to evaluate. — (AI assistant helping Marcus work through the PR backlog) |
Summary
motivation: I'm finding it hard to manage a backlog while seeing only ~10 items at a time.
Adds a
zkeybinding that zooms the active panel to full screen height, hiding the other two panels. Presszagain to restore the original layout.Works in both main and board contexts (so backlog view can be zoomed too).
Follows the existing fullscreen toggle pattern used by the kanban view.
Changes
model.go: AddedZoomedPanelandPanelZoomedstate fieldskeymap/: NewCmdTogglePanelZoomcommand bound tozinContextMainandContextBoardview.go: Zoomed panel gets 100% of available height; non-zoomed panels are skippedinput.go: Same zoom-aware height calculation for mouse hit-testingkeymap/help.go: Addedz:zoomto footer help stringsTest plan
make fmt— clean (note: found pre-existing gofmt issues in several files across the repo; the second commit includes only the fmt fixes for our changed files)make test— all tests pass exceptTestUndoRestore_ReDeletePropagatesintest/syncharnesswhich is a pre-existing failure unrelated to this changeContextBoardbinding)🤖 Generated with Claude Code