Skip to content

fix(viewer): preserve receive statistics during redraw - #2112

Open
timothyanderson096-ocdealcheck wants to merge 1 commit into
hardbyte:mainfrom
timothyanderson096-ocdealcheck:fix/viewer-redraw-statistics-1407
Open

timothyanderson096-ocdealcheck wants to merge 1 commit into
hardbyte:mainfrom
timothyanderson096-ocdealcheck:fix/viewer-redraw-statistics-1407

Conversation

@timothyanderson096-ocdealcheck

Copy link
Copy Markdown

Summary of Changes

Scrolling or resizing the CAN viewer currently reprocesses each displayed frame as a new reception, increasing its count and resetting its receive interval. Repaint rows through the existing sorting=True rendering path so redraw preserves receive counts, intervals and retained Message objects. Subsequent genuine receptions continue to update them normally.

Related Issues / Pull Requests

Type of Change

  • Bug fix
  • New feature
  • Documentation update
  • Refactoring
  • Other

Checklist

  • I have followed the contribution guide.
  • I have added tests as appropriate.
  • I have added a news fragment.
  • All checks and tests pass (tox).

Additional Notes

The three new regressions fail on the original implementation; all 7 viewer tests pass with the fix, including an independent rerun. They cover repeated redraw, keyboard scrolling and resize through the viewer's run loop, standard/extended IDs, message identity and subsequent genuine reception.

Configured lint, five mypy targets and strict documentation/doctests pass (tox -e lint,type,docs,py313). The full suite reports 506 passed, 29 subtests passed, 98 skipped and 28 multicast failures. All 28 failure identities match the unchanged base: the environment has no usable multicast interface (errno 19). The all-checks checkbox remains unchecked for that reason.

Curses uses the existing mocked test infrastructure. Real terminal/mouse-wheel behavior, physical CAN and the full OS/interpreter matrix were not validated. Existing byte-highlighting history is outside the count/interval/latest-message guarantee of this fix.

Tested revision: 2c18a068b63f3120895a16e76ce371ca474b8216 (Linux, CPython 3.13.16).

Prepared with AI assistance and reviewed independently by another agent.

Timothy Anderson — Spotted Ridge Engineering / OC Labs · GDN (Global Decision Network)
Engineering evidence

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ⚠️ Failed 2026-10-24T23:54:49.209587Z
We couldn’t complete this review. Comment @codex review to try again.
2c18a06 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

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.

can.viewer increments count and reset dt when scroll is used

1 participant