PRAXO-CORE 2.3.4¶
Released: 2026-10-24
This patch corrects the declared JSON Schema subset so validation no longer
silently accepts invalid values, and adds HTTP client failure-path coverage. It
changes no exported pkg/... declarations.
JSON Schema Semantics¶
- Typed schemas reject
nilinstead of treating it as absent data. integerrejects fractional numbers.enumapplies to numbers and booleans as well as strings.patternis a Go/RE2 regular expression, matching JSON Schema intent rather than the previous glob behavior.minLengthandmaxLengthcount Unicode code points instead of bytes.
The package remains a deliberately small subset. It ignores unsupported
keywords such as $ref, allOf, anyOf, oneOf, not,
additionalProperties, and format; a minimum or maximum of zero is treated
as unset. Use a full JSON Schema library when those keywords are required.
HTTP Client Coverage¶
New tests exercise GET retries on 5xx, non-idempotent POST behavior, cancellation during backoff, disabled response body bounds, request-header precedence, malformed JSON decoding, and base-URL path joining. This is test coverage for existing behavior, not a new retry contract.
Verification¶
- Full core tests, vet/build, Linux race/fuzz, staticcheck, and govulncheck.
- Three-platform tests and strict bilingual documentation build.
- Nine independent modules retain their Linux race and vulnerability checks.
- Exported declarations are unchanged from 2.3.3; the API snapshot differs only in the package documentation for the JSON Schema subset.
These checks do not establish production, deployed remote-peer, complete v2 IAM, instance-lease, LIMENORA reverse-ingress, or external benchmark validation.
Upgrade¶
go get github.com/axisvela/praxo-core/v2@v2.3.4
Use Go 1.26.10, the tested toolchain. No source migration is required from 2.3.3. Optional adapter versions are unchanged.
Release Tag¶
No signing key was configured for this release environment. The tag is annotated rather than cryptographically signed; checksums and an SBOM are published by the release workflow.