fix(pager): keep Git colors in non-diff output for captured pager hosts - #703
Open
DanielCarmingham wants to merge 1 commit into
Open
fix(pager): keep Git colors in non-diff output for captured pager hosts#703DanielCarmingham wants to merge 1 commit into
DanielCarmingham wants to merge 1 commit into
Conversation
Captured pager hosts like LazyGit advertise TERM=dumb while rendering ANSI in their own panel. The diff path already knew this and routed those hosts to the static colored renderer, but non-diff input fell through to passthrough, which stripped SGR unconditionally. LazyGit's branch log therefore lost its per-branch palette and rendered in a single color. Reuse the existing isCapturedPagerHost detection to decide whether passthrough preserves ANSI style, so both paths draw the same conclusion from one predicate instead of a second heuristic.
Contributor
|
PR author is not in the allowed authors list. |
|
@DanielCarmingham is attempting to deploy a commit to the Modem Team on Vercel. A member of the Team first needs to authorize it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #702.
Captured pager hosts like LazyGit advertise
TERM=dumbwhile rendering ANSI in their own panel. Hunk already knows this for diffs —isCapturedPagerHostis what routes those hosts to the static colored renderer instead of launching the TUI. Non-diff input returnspassthroughbefore reaching that check, and passthrough stripped SGR unconditionally, so LazyGit's branch log rendered in a single color.This reuses that same predicate rather than adding a second heuristic: the fact that already tells the diff path "this host renders ANSI" now also decides whether passthrough preserves it.
#381 fixed the same symptom for interactive terminals via
pagePlainText, but captured hosts never reachpagePlainText—TERM=dumbsends them down passthrough first.Before / after
Same repo, same commit, same terminal size — only the pager binary differs.
Verification
bun run typecheckclean;bun testshows an identical failure set tomainon the same base (no regressions, +2 new passing tests)git log --graph --color=alwaysthroughhunk pager: 0 → 468 escape sequences under a LazyGit environment, and still 0 for a plainTERM=dumbterminal, so genuinely dumb terminals are unaffected