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

FROSADO / onecloudriver / 31961261219
78%

Build:
DEFAULT BRANCH: main
Ran 16 Aug 2026 05:24PM UTC
Jobs 1
Files 46
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 Aug 2026 05:19PM UTC coverage: 77.735% (+0.3%) from 77.473%
31961261219

push

github

web-flow
feat(graph): implement QuickXorHash and content-integrity verification (#32) (#90)

* feat(graph): implement QuickXorHash and content-integrity verification (#32)

Adds the QuickXorHash algorithm (rclone/namazso port, BSD-0 + MIT
licenses preserved) and wires it into the content pipeline:

- Download verification: GetItemContentStream hashes the stream and
  rejects a body that does not match the server quickXorHash.
- Cache verification on Open: read-only opens hash the cached content
  and re-download on mismatch (no server hash = skipped, defensive).
- Delta content-change detection: applyDelta keeps the cache when the
  local bytes already match the remote quickXorHash.

No new external dependencies (stdlib hash only).

Closes #32

🤖 Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>

* fix(graph): silence gosec G115 on deliberate byte truncation in QuickXorHash

The checkSum byte conversions are intentional low-byte truncations defined
by the QuickXorHash spec, not overflow bugs. Annotate them with #nosec and
collapse the repetitive length-XOR into a loop so the Security Audit
(gosec -severity=high) passes.

Closes #32

🤖 Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>

* docs: require local security audit (gosec) before pushing (#32)

`make lint-all` does not run standalone gosec, so a gosec finding (e.g. G115
on a type conversion) can pass locally and block the Security Audit CI job.
Document `make security-audit` (or `gosec -quiet -severity=high ./...`) as a
mandatory local check alongside build/test-unit/lint-all.

Closes #32

🤖 Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>

---------

Co-authored-by: Codebuff <noreply@codebuff.com>

127 of 147 new or added lines in 6 files covered. (86.39%)

2 existing lines in 1 file now uncovered.

4022 of 5174 relevant lines covered (77.73%)

2862.1 hits per line

Uncovered Changes

Lines Coverage ∆ File
8
78.52
-0.96% internal/fs/content_cache.go
8
82.01
-0.7% internal/fs/drive_item_node.go
2
78.97
0.47% internal/fs/delta.go
2
86.67
internal/graph/hashes.go

Coverage Regressions

Lines Coverage ∆ File
2
84.91
-3.77% internal/graph/children.go
Jobs
ID Job ID Ran Files Coverage
1 31961261219.1 16 Aug 2026 05:24PM UTC 46
77.73
GitHub Action Run
Source Files on build 31961261219
  • Tree
  • List 46
  • Changed 5
  • Source Changed 0
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • e0b30ef8 on github
  • Prev Build on main (#31949858667)
  • Next Build on main (#31970991424)
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