• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

nagayon-935 / mping / 30064435438
89%
main: 89%

Build:
Build:
LAST BUILD BRANCH: feat/group-table-sections
DEFAULT BRANCH: main
Ran 24 Jul 2026 03:31AM UTC
Jobs 1
Files 40
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

23 Jul 2026 03:33PM UTC coverage: 89.316%. First build
30064435438

Pull #51

github

nagayon-935
feat: render only the visible row window in the Ping Monitor table

update() called SetCell for every target row every tick regardless of tableMaxRows (10), even though tview only draws the visible viewport — at 100+ targets this meant 1000+ TableCell allocations per tick for rows nobody could see.

Add visibleRowWindow(offsetRow, totalDataRows), applied to all three render paths (flat, group, compact) in Pass 2 — table_renderer.go's rowCount stays the full logical total unchanged, so input_handler.go's scroll math (maxOffset) is unaffected by how few rows actually get SetCell'd. Pass 1 (GetView, alert/log tracking) is deliberately NOT windowed: an off-screen host's loss/alert state must still be tracked and logged even while scrolled away from it.

Group-aware rendering windows by table-row index into groupRowMap, not target index, since a group header row doesn't correspond to any target — a header that falls inside the window must still render even when most of that group's members don't.

Risk: SetOffset (scroll) changes what's visible independent of any data change, but rows outside the previous window were never rendered — without a synchronous re-render, a scroll could show blank rows until the next tick (worse now that perf/dirty-redraw-gate can skip ticks for up to 1s when nothing changed). Fixed by having input_handler.go call a new forceUpdate callback (wired to tr.update in tui.go) immediately after every SetOffset, with rowRenderMargin as a small additional safety net.

Adds direct render-window tests (including the group-header-off-window edge case), an end-to-end 100-target scroll smoke test, and a benchmark documenting Pass 2's windowed cost at a large scrolled offset.
Pull Request #51: perf+feat: land getview-consolidation / dirty-redraw-gate / table-virtualization stack onto main

131 of 131 new or added lines in 10 files covered. (100.0%)

5091 of 5700 relevant lines covered (89.32%)

768.43 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30064435438.1 24 Jul 2026 03:31AM UTC 40
89.32
GitHub Action Run
Source Files on build 30064435438
  • Tree
  • List 40
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #51
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc