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

nshkrdotcom / sinter / fc522c68bd08de89b33c7e3ab06438c1bf2bc2d8
69%

Build:
DEFAULT BRANCH: main
Ran 28 Dec 2025 05:04AM UTC
Jobs 1
Files 11
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

28 Dec 2025 05:03AM UTC coverage: 65.751% (-3.3%) from 69.1%
fc522c68bd08de89b33c7e3ab06438c1bf2bc2d8

push

github

nshkrdotcom
Release v0.1.0: Big-bang refactor for safety, nested schemas, and JSV

This release represents a comprehensive architectural refactor of Sinter
to make it safe for untrusted inputs, expressive for nested schemas, and
compliant with modern JSON Schema standards.

Core Changes
------------

Schema field names are now stored internally as strings by default. This
prevents atom table exhaustion when validating untrusted JSON payloads
while maintaining ergonomic atom-based DSL definitions that normalize
automatically.

Introduced nested object schema support via Schema.object/1 helper and
the {:object, field_specs} type. This enables precise validation of
structured nested data with per-field constraints and accurate JSON
Schema generation.

Replaced ex_json_schema with JSV 0.13.1 for JSON Schema validation.
Added dual-draft support with Draft 2020-12 as default and Draft 7 for
provider-specific schemas (OpenAI, Anthropic).

New Modules
-----------

Sinter.JSON provides encode/decode helpers combining the transform
pipeline with Jason for request/response handling.

Sinter.Transform implements key aliasing, format application, and
sentinel value handling for outbound payloads.

Sinter.NotGiven provides tri-state semantics distinguishing omitted
fields from explicit nil values, mirroring Python SDK patterns.

Bug Fixes
---------

Fixed required/default ordering so defaults apply before required field
checks, allowing required fields with defaults to pass validation.

Fixed validate_many/3 base path ordering which previously reversed
indices due to incorrect list prepending.

Added NimbleOptions validation for constraint values to reject invalid
option types like min_length: "10" at schema definition time.

Provider JSON Schema generation now applies additionalProperties: false
recursively through nested objects, not just at the root level.

New Features
------------

Added built-in format types: :date, :datetime, :uuid, :null, and
{:nullable, type} with ISO... (continued)

175 of 261 new or added lines in 9 files covered. (67.05%)

10 existing lines in 4 files now uncovered.

622 of 946 relevant lines covered (65.75%)

4321.28 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
3
89.92
-1.67% lib/sinter.ex
5
44.44
lib/sinter/not_given.ex
6
45.45
lib/sinter/json.ex
6
87.36
-5.18% lib/sinter/schema.ex
7
0.0
0.0% lib/sinter/dspex.ex
8
86.21
-2.07% lib/sinter/json_schema.ex
10
75.61
lib/sinter/transform.ex
16
82.35
-11.76% lib/sinter/validator.ex
25
74.58
-13.89% lib/sinter/types.ex

Uncovered Existing Lines

Lines Coverage ∆ File
1
0.0
0.0% lib/sinter/dspex.ex
2
86.21
-2.07% lib/sinter/json_schema.ex
2
82.35
-11.76% lib/sinter/validator.ex
5
74.58
-13.89% lib/sinter/types.ex
Jobs
ID Job ID Ran Files Coverage
1 fc522c68bd08de89b33c7e3ab06438c1bf2bc2d8.1 28 Dec 2025 05:04AM UTC 11
65.75
GitHub Action Run
Source Files on build fc522c68bd08de89b33c7e3ab06438c1bf2bc2d8
  • Tree
  • List 11
  • Changed 6
  • Source Changed 0
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • fc522c68 on github
  • Prev Build on main (#ECA3A0FD...)
  • Next Build on main (#3A16437C...)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc