Skip to content

feat: wrap engine logs by default, with a w toggle - #272

Merged
outofcoffee merged 5 commits into
mainfrom
feat/wrap-engine-logs
Oct 28, 2026
Merged

outofcoffee merged 5 commits into
mainfrom
feat/wrap-engine-logs

Conversation

@outofcoffee

Copy link
Copy Markdown
Collaborator

Engine logs in the serve view and the dashboard's node detail view now wrap long lines by default, with a w key to turn wrapping off — closing #267.

Summary

  • Log lines wider than the pane wrap onto continuation rows instead of being hard-cut, in both the serve view and the dashboard detail view. Wrapping is on by default; w toggles it and the header shows wrap: on/off beside the log's follow state.
  • w wrap joins the footer key help in both views.
  • New dashWrapLines/dashLogRows pair in dashboard_render.go beside dashClip: the pane expands its window's lines to rows and takes the last avail rows.
  • Metrics sections, tiles and the grid keep clipping — dashClip's cut is what keeps bar lines the shape of the frame.
  • OpenSpec change wrap-engine-logs with deltas to local-serving and fleet-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 way tail behaves 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 avoids ansi.CutWc with a non-zero left, which misbehaves on wide runes in the pinned charmbracelet/x/ansi; it cuts heads with TruncateWc and tails with TruncateLeftWc.

@outofcoffee outofcoffee added the enhancement New feature or request label Oct 26, 2026
@outofcoffee
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
outofcoffee force-pushed the feat/wrap-engine-logs branch from a3d5c52 to d07f8cf Compare October 28, 2026 01:05
@outofcoffee
outofcoffee enabled auto-merge (squash) October 28, 2026 01:05
@outofcoffee
outofcoffee merged commit 81175b1 into main Oct 28, 2026
5 checks passed
@outofcoffee
outofcoffee deleted the feat/wrap-engine-logs branch October 28, 2026 01:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: wrap engine logs by default

1 participant