Skip to content

fix(logviewer): line offset for error lines#9549

Open
camd wants to merge 1 commit into
masterfrom
camd/fix-logviewer-colors
Open

fix(logviewer): line offset for error lines#9549
camd wants to merge 1 commit into
masterfrom
camd/fix-logviewer-colors

Conversation

@camd
Copy link
Copy Markdown
Collaborator

@camd camd commented May 22, 2026

Bug 2041837

The viewer split the raw log with text.split('\n'), but the backend records error line_numbers via requests.iter_lines() (Python's bytes.splitlines()), which also breaks on bare CR (\r) and CRLF. Bare carriage returns (common in test progress output) are counted as line breaks by the parser but not by split('\n'), so every line after a \r drifts and the red error highlight lands a few lines off from the actual failure line.

Add a splitLogIntoLines() helper that splits on /\r\n|\r|\n/ to match the parser exactly, keeping displayed line numbers aligned with the recorded error line_numbers. Handling \r\n as one break also drops the stray trailing \r that CRLF logs left on every line.

… highlight offset

The viewer split the raw log with text.split('\n'), but the backend records
error line_numbers via requests.iter_lines() (Python's bytes.splitlines()),
which also breaks on bare CR (\r) and CRLF. Bare carriage returns (common in
test progress output) are counted as line breaks by the parser but not by
split('\n'), so every line after a \r drifts and the red error highlight lands
a few lines off from the actual failure line.

Add a splitLogIntoLines() helper that splits on /\r\n|\r|\n/ to match the
parser exactly, keeping displayed line numbers aligned with the recorded
error line_numbers. Handling \r\n as one break also drops the stray trailing
\r that CRLF logs left on every line.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@camd camd self-assigned this May 22, 2026
@camd camd requested a review from Archaeopteryx May 22, 2026 23:23
@codecov-commenter
Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.94%. Comparing base (6e680ff) to head (cb598fb).

Additional details and impacted files
@@           Coverage Diff            @@
##           master    #9549    +/-   ##
========================================
  Coverage   82.94%   82.94%            
========================================
  Files         613      613            
  Lines       35372    35374     +2     
  Branches     3208     3269    +61     
========================================
+ Hits        29338    29340     +2     
+ Misses       5880     5665   -215     
- Partials      154      369   +215     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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.

2 participants