Repository navigation
feat: wrap engine logs by default, with a w toggle - #272
Merged
Merged
Conversation
outofcoffee
marked this pull request as ready for review
October 26, 2026 17:05
Log lines wider than the pane were cut, silently losing the tail of long engine output (issue #267). Both views now wrap by default — hard at the display column, terminal-style — with a shared dashLogRows expander counting pane rows while retention and scrolling stay line-based; w toggles wrapping off and back on and the header names the state.
outofcoffee
force-pushed
the
feat/wrap-engine-logs
branch
from
October 28, 2026 01:05
a3d5c52 to
d07f8cf
Compare
outofcoffee
enabled auto-merge (squash)
October 28, 2026 01:05
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.
Engine logs in the serve view and the dashboard's node detail view now wrap long lines by default, with a
wkey to turn wrapping off — closing #267.Summary
serveview and the dashboard detail view. Wrapping is on by default;wtoggles it and the header showswrap: on/offbeside the log's follow state.w wrapjoins the footer key help in both views.dashWrapLines/dashLogRowspair indashboard_render.gobesidedashClip: the pane expands its window's lines to rows and takes the lastavailrows.dashClip's cut is what keeps bar lines the shape of the frame.wrap-engine-logswith deltas tolocal-servingandfleet-client.Closes #267
Implementation details
Retention and scrolling stay line-based (
logBudget,detailLogCapacity,logBehind) — only the pane counts rows at draw time — so a wrapped line scrolls in and out whole, the waytailbehaves on a terminal. The wrapper breaks at exact display columns (hard, not on words: log lines are data and often carry no spaces), keeping wide clusters whole on the next row, and avoidsansi.CutWcwith a non-zeroleft, which misbehaves on wide runes in the pinnedcharmbracelet/x/ansi; it cuts heads withTruncateWcand tails withTruncateLeftWc.