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

jhheider / penknife / 29281566581
76%

Build:
DEFAULT BRANCH: main
Ran 13 Jul 2026 08:14PM UTC
Jobs 1
Files 34
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

13 Jul 2026 08:13PM UTC coverage: 76.182% (+0.01%) from 76.168%
29281566581

push

github

web-flow
fix: don't hang the render thread on macOS online-only files (#44)

penknife launched to a blank alt-screen with a blinking cursor and would
not respond to q or Ctrl-C. The event loop was never reached: App::new
computes a sync glyph for every tracked file, reading each one with
read_to_string, *before* the first terminal.draw. On a Dropbox/iCloud
root (macOS File Provider) some files are "online-only" placeholders
(SF_DATALESS, zero data blocks); read() on one forces an on-demand
download and blocks until the provider materializes it -- forever when
the provider is offline. One such file froze startup with no way to quit.

Add fsutil::is_dataless, which checks SF_DATALESS via metadata() (a stat,
which does *not* materialize the file). The passive read paths now skip
placeholders instead of forcing a download:

- status glyphs: a dataless tracked file reports Synced (it can't have
  been edited locally without materializing; the remote poll still flags
  RemoteNewer later, same as a resident synced file);
- preview: shows an "online-only" hint; opening in $EDITOR still
  downloads on demand.

macOS-gated; a no-op elsewhere (Linux/Windows clients keep full local
copies). penknife now draws immediately and stays fully usable offline,
never forcing a cloud download while browsing.


Claude-Session: https://claude.ai/code/session_01PykYTubrtTh4te2xg71JJS

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

16 of 18 new or added lines in 2 files covered. (88.89%)

98 existing lines in 2 files now uncovered.

7152 of 9388 relevant lines covered (76.18%)

27.15 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
87.02
-0.02% crates/penknife/src/app/view.rs

Coverage Regressions

Lines Coverage ∆ File
64
87.02
-0.02% crates/penknife/src/app/view.rs
34
0.0
0.0% crates/penknife/src/main.rs
Jobs
ID Job ID Ran Files Coverage
1 29281566581.1 13 Jul 2026 08:14PM UTC 34
76.18
GitHub Action Run
Source Files on build 29281566581
  • Tree
  • List 34
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29281566581
  • f00f3e18 on github
  • Prev Build on main (#29220478949)
  • Next Build on main (#29281833392)
  • Delete
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