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

Eyevinn / go-608 / 30572736758
84%
main: 84%

Build:
Build:
LAST BUILD BRANCH: release/v0.8.0
DEFAULT BRANCH: main
Ran 30 Jul 2026 06:58PM UTC
Jobs 1
Files 35
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

30 Jul 2026 06:57PM UTC coverage: 84.38% (+0.1%) from 84.275%
30572736758

Pull #70

github

tobbee
fix(cue): coalesce roll-up and paint-on into one cue per scroll step

Roll-up and paint-on write straight to the displayed screen, so every byte pair
changed it and Segment cut a cue -- roughly one cue per two characters, each
lasting a single frame. Measured on the same text: pop-on 1 cue, paint-on 6,
roll-up 14 for two lines.

SegmentOptions.Coalesce now defaults to CoalesceStructural, which cuts only at a
structural event -- a scroll, an erase, a jump to another row, an overwrite --
and not while text is merely being added to a row. Roll-up yields one cue per
scroll step and paint-on one per write burst, which is what SPEC.md 8.2,
cue/doc.go and cue/segment.go had all promised without the code doing it.
CoalesceNone (go608-extract -per-change) keeps the per-change rendering: it is
faithful to what a viewer sees, and the only mode needing no lookahead, which
matters if extraction ever has to run live.

A period's cue starts at its first change and carries the screen as of its last,
so the completed caption is displayed from when its first characters appeared.
Stamping it at completion would leave the typing interval in a gap.

Coalescing is gated on the caption mode, carried by the new TimedScreen.Mode
from the new Decoder.Mode(). By screen alone a pop-on caption replaced by a
longer one is indistinguishable from a line being typed, so an unguarded rule
would silently merge two distinct captions -- there is a test for exactly that.
TimedScreen.Mode's zero value is pop-on, which never coalesces, so a producer
that does not set it keeps the old behaviour.

Growth means the screen gained content in exactly one place, so adding a row
counts: a two-line paint-on caption is one cue showing both lines, which is what
is on screen. Two rows changing at once cannot be typing -- one byte pair writes
at most two characters on one row -- so that cuts.

The existing roll-up and paint-on Segment tests never set a mode, so they were
really exercising pop-on; they n... (continued)
Pull Request #70: cue: coalesce roll-up and paint-on into one cue per scroll step

67 of 74 new or added lines in 4 files covered. (90.54%)

3479 of 4123 relevant lines covered (84.38%)

0.97 hits per line

Uncovered Changes

Lines Coverage ∆ File
5
94.44
-5.56% cue/segment.go
2
73.76
0.17% cmd/go608-extract/main.go
Jobs
ID Job ID Ran Files Coverage
1 30572736758.1 30 Jul 2026 06:58PM UTC 35
84.38
GitHub Action Run
Source Files on build 30572736758
  • Tree
  • List 35
  • Changed 5
  • Source Changed 0
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #70
  • PR Base - main (#30572594191)
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