Repository navigation
github.com/faustbrian/go-external-sort v1.0.0
1.0.0 - 2026-08-25
Changed
-
Exclude intentional nested modules from root local-proxy archives so local,
bootstrap, CI, and public module checksums describe the same source
boundary. -
Track the pinned documentation-tool lockfile so clean CI checkouts install
the exact validated cspell dependency. -
Reconcile standalone dependency checksums against deterministic current
module archives so CI, local verification, and release consumers resolve
identical content. -
Harden standalone documentation validation with deterministic spelling and
link checks, package-specific documentation gates, and repository-local
contributor guidance.
Changed
- Publish the module from its standalone
github.com/faustbrian/go-external-sortidentity while preserving its documented API and behavior.
Documentation
- Link the package README to the repository-wide Golib documentation portal.
Fixed
- Bind all temporary create, open, and removal operations to a revalidated
rooted directory handle so parent-path replacement cannot redirect cleanup
outside the configured storage root. - Bind encrypted records to a random per-store identity so ciphertext from a
different store is rejected even when callers reuse a key and the chunk,
ordinal, and record-size metadata match. - Allocate authenticated, process-unique nonce domains across concurrent stores
and return an owned cleanup handle when construction residue cannot be
removed immediately. - Reject overlapping and callback-reentrant lifecycle calls without racing,
deleting active iteration state, or weakening idempotent close semantics. - Reject whole-record truncation and trailing encrypted bytes instead of
accepting a shortened or extended chunk as complete, while reporting
underlying read failures as typed storage errors and sealing a store when
failed temporary-file cleanup would otherwise permit artifact accumulation.
Added
- Bounded lexicographic external sorting for caller-defined fixed-size records.
- Per-record AES-256-GCM temporary-storage encryption with authenticated chunk
and ordinal binding. - Explicit record, in-memory chunk, byte, and 64-file merge limits.
- Owner-only temporary storage, typed fail-closed errors, duplicate
preservation, deterministic cleanup, fuzzing, benchmarks, and exact
statement-coverage evidence. - Exact boundary and mutation coverage for resource ceilings, merge
termination, authenticated framing, cross-chunk substitution, nonce
consumption, and ordering helpers. - Hostile-filesystem, cross-store corruption, concurrent lifecycle, process
termination, bounded-resource, and merge-history fuzz campaigns, plus a safe
caller-owned Kubernetes cleanup runbook.
Release integrity
- Source commit:
b1ad3707517fae229fe0c10cf0d5f81daebd9adf - Exact-head CI: https://github.com/faustbrian/go-external-sort/actions/runs/32907572240
- Release dry-run: urn:sha256:77f1d4450dce66221ba28e3a857eb3d7875f8a39f208a2e719f4d8e79b99d9f1
- Assets include a CycloneDX SBOM, SLSA v1 in-toto provenance, and SSH-signed checksums.
Verify the checksum attestation with:
ssh-keygen -Y verify -f ALLOWED_SIGNERS -I brian@cline.sh -n golib-release -s SHA256SUMS.sig < SHA256SUMS