fix: align split targeting with configured pane width

Use the configured agent pane width consistently in split target selection and avoid close+spawn churn by replacing the oldest pane when eviction is required.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
YeonGyu-Kim
2026-02-17 03:40:37 +09:00
parent b02721463e
commit da3f24b8b1
4 changed files with 55 additions and 23 deletions
@@ -57,11 +57,21 @@ export function canSplitPane(
}
export function canSplitPaneAnyDirection(pane: TmuxPaneInfo): boolean {
return pane.width >= MIN_SPLIT_WIDTH || pane.height >= MIN_SPLIT_HEIGHT
return canSplitPaneAnyDirectionWithMinWidth(pane, MIN_PANE_WIDTH)
}
export function getBestSplitDirection(pane: TmuxPaneInfo): SplitDirection | null {
const canH = pane.width >= MIN_SPLIT_WIDTH
export function canSplitPaneAnyDirectionWithMinWidth(
pane: TmuxPaneInfo,
minPaneWidth: number = MIN_PANE_WIDTH,
): boolean {
return pane.width >= minSplitWidthFor(minPaneWidth) || pane.height >= MIN_SPLIT_HEIGHT
}
export function getBestSplitDirection(
pane: TmuxPaneInfo,
minPaneWidth: number = MIN_PANE_WIDTH,
): SplitDirection | null {
const canH = pane.width >= minSplitWidthFor(minPaneWidth)
const canV = pane.height >= MIN_SPLIT_HEIGHT
if (!canH && !canV) return null