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

nagayon-935 / kuroko / 29510272491
85%
main: 83%

Build:
Build:
LAST BUILD BRANCH: fix/audit-findings
DEFAULT BRANCH: main
Ran 16 Jul 2026 03:15PM UTC
Jobs 1
Files 12
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

16 Jul 2026 03:12PM UTC coverage: 84.784% (+2.0%) from 82.817%
29510272491

Pull #2

github

nagayon-935
fix: model logger's line buffer as terminal columns, not bytes

- change Logger.lineBuf from []byte (indexed by byte) to []rune (indexed
  by display column, one slot per terminal cell), matching how a real
  terminal's cell grid works; wide East Asian runes now occupy two
  consecutive cells (the rune itself, then a wideContinuation
  placeholder), decoded via the new internal/textwidth package
- decode incoming PTY bytes into full UTF-8 runes before writing them
  into lineBuf (accumulating partial multi-byte sequences across both
  processLine calls and Write() boundaries via the new runeBuf field),
  instead of writing raw bytes one at a time
- add renderLine to reassemble a column-indexed cell slice back into text,
  used wherever the committed line is handed to SplitPrompt/redact/file
  output

Previously, backspace (\b) and CSI C/D/P moved the cursor by one *byte*
per unit, but readline and every real terminal move it by one *display
column* per unit. A Japanese character is 2 columns wide but 3 UTF-8
bytes, so erasing or overwriting one via the column-correct number of
backspaces (2) landed mid-encoding and wrote invalid UTF-8 into the log.
The column-indexed cell model makes lineCol actually mean what readline's
own cursor movements assume it means.

Also fixes two comparisons (`len(l.savedLine) > end`) that implicitly
assumed lineCol was a byte count equal to the committed line's byte
length; they now compare rendered byte lengths directly
(`len(l.savedLine) > len(out)`), which is correct regardless of whether
the line contains multi-byte characters.
Pull Request #2: fix: audit-driven hardening of PTY/signal handling, viewer scrolling, and logger multi-byte support

210 of 227 new or added lines in 7 files covered. (92.51%)

3 existing lines in 2 files now uncovered.

1861 of 2195 relevant lines covered (84.78%)

92.62 hits per line

Uncovered Changes

Lines Coverage ∆ File
7
90.19
-0.67% internal/logger/logger.go
5
68.39
10.11% internal/session/session.go
3
89.43
0.35% internal/viewer/viewer.go
2
81.92
7.96% internal/viewer/selector.go

Coverage Regressions

Lines Coverage ∆ File
2
68.39
10.11% internal/session/session.go
1
81.92
7.96% internal/viewer/selector.go
Jobs
ID Job ID Ran Files Coverage
1 29510272491.1 16 Jul 2026 03:15PM UTC 12
84.78
GitHub Action Run
Source Files on build 29510272491
  • Tree
  • List 12
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #2
  • PR Base - main (#28575309232)
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