Skip to content

fix: guard against undefined logicalLineInfo#15

Open
hyldmo wants to merge 1 commit intoremorses:mainfrom
hyldmo:hyldmo/fix-lineinfo-crash
Open

fix: guard against undefined logicalLineInfo#15
hyldmo wants to merge 1 commit intoremorses:mainfrom
hyldmo:hyldmo/fix-lineinfo-crash

Conversation

@hyldmo
Copy link
Copy Markdown

@hyldmo hyldmo commented Mar 22, 2026

Summary

  • logicalLineInfo can return undefined when the native text buffer view hasn't completed layout yet (e.g. during initial render or rapid pane switching)
  • renderSelf crashes with unhandled rejection on lineInfo.lineStarts.length
  • getScrollPositionForLine has the same issue

Fix

  • Wrap lineStarts.length access in renderSelf with if (lineInfo) guard
  • Use optional chaining (lineInfo?.lineStarts) in getScrollPositionForLine

🤖 Generated with Claude Code

…ollPositionForLine

The native `logicalLineInfo` getter can return undefined when the text
buffer view hasn't completed layout yet (e.g. during initial render or
rapid pane switching). This causes an unhandled rejection crash on
`lineInfo.lineStarts.length`.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@hyldmo
Copy link
Copy Markdown
Author

hyldmo commented Mar 22, 2026

This seems to happen somewhat intermittently, so it's a bit hard to trace down. However for some reason when i see it happening, it usually persists accross restarts (of my app that is). don't really have a repro, but this is the project i use it in: https://github.com/hyldmo/numux

hyldmo added a commit to hyldmo/numux that referenced this pull request Mar 23, 2026
The existing patch only covered src/ but Bun can resolve to dist/
in some setups. Also print stack traces instead of just messages
in unhandled rejection handlers.

Upstream: remorses/ghostty-opentui#15

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@hyldmo hyldmo reopened this Mar 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant