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

Doubak / doubak-data-specs / 36
54%

Build:
DEFAULT BRANCH: main
Ran 30 Aug 2026 11:27AM UTC
Jobs 1
Files 2
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 Aug 2026 11:24AM UTC coverage: 53.285% (-0.03%) from 53.315%
36

push

github

MewX
feat: 校验器把完整性与合规性分开,并真的核一遍 content_sha256

bundle 一旦产出就冻结,所以合规性错误里有一部分**永远修不掉**:实测 24 份
真实档案里有 4 份因为一个早已修好的生产者 bug 永远报 45 个错。混在一列里,
那 45 条会把一条真的字节损坏挤到屏幕外面——而一个永远有内容的失败列表就是
一个没人看的失败列表。这正是这个校验器一直没人跑的原因。

于是分两类,退出码也分两类:

    0  干净
    1  只有合规性错误(字节是好的,某句声明不合规范)
    2  有完整性错误(这些字节不是它自称的那些)

`!= 0` 仍然是「有问题」,与从前一致;`--integrity-only` 让合规性错误照常打印
但不影响退出码。健康档案上完整性恒为零,所以它可以当硬门槛用。

顺带补上 `content_sha256` 的核对。这个字段**每一行都有,而在此之前谁也没读过
它**——规范要求写、没有任何一处校对的字段,等于没有要求。新增反例
`content-hash-mismatch` 造的是一个**自洽的**生产者 bug(段没动、manifest 里
index 的哈希已经跟着改过),那正是从前完全看不见的形状。

`empty-payload-marked-ok` 现在会额外报一条 content_sha256 不符——那份夹具本来
就是把哈希改成空串造出来的,同一句谎被两条检查分别看见,不是两个毛病。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E6dxwcUi4rM3dcKdsqx9xm

34 of 67 new or added lines in 1 file covered. (50.75%)

219 of 411 relevant lines covered (53.28%)

0.53 hits per line

Uncovered Changes

Lines Coverage ∆ File
33
76.57
-4.86% bundle/v1/validate.py
Jobs
ID Job ID Ran Files Coverage
1 36.1 30 Aug 2026 11:27AM UTC 2
53.28
GitHub Action Run
Source Files on build 36
  • Tree
  • List 2
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • b10e8b40 on github
  • Prev Build on main (#35)
  • Next Build on main (#37)
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