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

jhheider / penknife / 29220478949
76%

Build:
DEFAULT BRANCH: main
Ran 13 Jul 2026 02:55AM UTC
Jobs 1
Files 33
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 02:54AM UTC coverage: 76.168% (+0.3%) from 75.908%
29220478949

push

github

web-flow
fix: copy-after-fresh-push race + reuse a warm gist client (#41)

* fix: copy-after-fresh-push race + reuse a warm gist client

Pressing `c` on a not-yet-synced file (copy-URL right after a push)
copied the URL correctly but the status line reverted to a stale
"Pushed …" message, and separately every gist op paid a cold TLS
handshake because it built a fresh client per request.

- Track in-flight pushes in `pending_pushes`; `do_copy_url` queues the
  copy onto the running push instead of spawning a second, racing one,
  and `do_sync_up_for` debounces a duplicate non-force push (which
  would otherwise create two gists for one fresh file).
- Skip the intermediate "Pushed" status when a queued copy in the same
  handler is about to supersede it with "Copied".
- Reuse one warm `GistClient` (now `Clone`, sharing a reqwest
  connection pool) across all operations instead of a cold pool per
  request, keeping the API connection alive between pushes/pulls.
- Give penknife-gist and penknife-backend their own crates.io READMEs;
  hoist the app README onto the penknife crate.
- Bump penknife 0.2.1->0.2.2, penknife-gist/penknife-backend 0.2.0->0.2.1.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PykYTubrtTh4te2xg71JJS

* docs: drop em-dashes from the new crate READMEs (style check)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PykYTubrtTh4te2xg71JJS

---------

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

70 of 84 new or added lines in 4 files covered. (83.33%)

334 existing lines in 4 files now uncovered.

7143 of 9378 relevant lines covered (76.17%)

26.97 hits per line

Uncovered Changes

Lines Coverage ∆ File
11
63.19
2.67% crates/penknife/src/app/gist.rs
3
38.15
-0.47% crates/penknife/src/app/mod.rs

Coverage Regressions

Lines Coverage ∆ File
167
63.19
2.67% crates/penknife/src/app/gist.rs
68
62.02
0.09% crates/penknife/src/app/files.rs
58
38.15
-0.47% crates/penknife/src/app/mod.rs
41
77.81
0.0% crates/penknife-gist/src/client.rs
Jobs
ID Job ID Ran Files Coverage
1 29220478949.1 13 Jul 2026 02:55AM UTC 33
76.17
GitHub Action Run
Source Files on build 29220478949
  • Tree
  • List 33
  • Changed 5
  • Source Changed 5
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29220478949
  • c320de85 on github
  • Prev Build on main (#28851117080)
  • Next Build on main (#29281566581)
  • 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