Releases: faustbrian/go-scheduler
Release list
github.com/faustbrian/go-scheduler v1.0.0
1.0.0 - 2026-08-25
Changed
-
Refresh the reviewed zero-mutant identity for the extracted lease package
without weakening the exact mutation contract. -
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.
Documentation
- Correct stale package, standalone, and authoritative-source links in public
documentation.
Documentation
- Link the package README to the repository-wide Golib documentation portal.
Changed
-
Publish the module from its standalone
github.com/faustbrian/go-scheduleridentity while preserving its documented API and behavior. -
Make fuzz-target discovery portable to minimal CI runners without ripgrep.
-
Replace obsolete owned-module pseudo-version pins with the monorepo's local
v0.0.0source-proxy coordinates; release tooling continues to emit exact
v1.0.0dependency versions. -
Deep-copy nested schedule parameters when compiling a registry so caller
mutations cannot alter compiled execution input. -
Classify task-lease heartbeat failures deterministically before canceling the
managed execution. -
Bound the initial history-buffer allocation independently from its accepted
maximum capacity. -
Strengthen lease-store conformance checks and exact scheduler, adapter, CLI,
HTTP, telemetry, and lifecycle boundary coverage. -
Restore immutable main pseudo-version pins for every owned dependency so the
current scheduler source resolves from a clean external module. -
Release managed execution capacity before completing an occurrence so
single-worker catch-up does not reject the next cooperative execution. -
Require owned sibling modules at local
v0.0.0; clean external consumers
pin each module to an exact main pseudo-version. -
Upgrade gRPC to 1.82.1 to remove the reachable
GO-2026-6061
vulnerabilities. -
Pin unpublished owned modules to exact resolvable
mainrevisions so clean
scheduler consumers no longer require nonexistentv0.1.0tags. -
Refresh owned-module checksums against the final consolidated archives.
-
Normalized standalone module metadata against the canonical owned dependency
graph, including complete checksums for clean consumer resolution.
Added
- Composable application-owned pause controls with process-local state,
per-schedule exemptions, fail-closed lookups, and typed skipped events. - A deterministic registry overview API that combines immutable definitions
with each enabled schedule's next run for caller-owned control surfaces. - A distinct
After/EventFinishedexecution boundary and background
metadata while retainingCompletedfor every scheduling decision. - Laravel-compatible
OnOneServer,WithoutOverlapping, and
RunInBackgroundcontrols with independent mutex TTLs, managed asynchronous
lifecycle reporting, and CLI bulk overlap-lock cleanup. - Laravel-compatible frequency helpers from seconds through yearly schedules,
plus weekday, recurring time-window, and skip constraints that compose with
existing environment and timezone options. Runner.RunFromfor bounded startup catch-up that transitions into the
continuous schedule loop without losing an occurrence between both phases.- Configurable overlap-lease heartbeat intervals with construction-time TTL
safety validation. schedulerservicelifecycle composition that stops scheduling, drains active
executions before owned facilities close, and applies the existing schedule
correlation semantics to every occurrence.- PostgreSQL lease stores and migrations can target an explicit caller-owned
schema while preserving the public-schema default. - code-defined versioned schedules with deterministic timezone-aware timing
- fenced memory, PostgreSQL, and Valkey 9 lease adapters
- bounded missed-run and overlap decisions
queue,idempotency,log, andtelemetryintegration- HTTP and CLI inspection and fenced recovery surfaces
- bounded history, hooks, fake clock, and lifecycle observability
- explicit definition, registry, catch-up, and occurrence-scan resource limits
- task-lease heartbeats and safe overlap-replacement capability contracts
- public cron compiler with typed expression and time-zone errors
- rollout-stable coordination identity across revision and timing changes
- bounded lease calls, callbacks, and managed non-cooperative executions
- complete Gregorian-cycle cron search for non-leap century boundaries
- multi-replica, crash-window, and live backend fault conformance suites
- threat model, rollout and crash matrices, and benchmark release baseline
- bounded runner observer registration
Release integrity
- Source commit:
8ae204d9b2164887fef2121c8ee2e37cd56cf117 - Exact-head CI: https://github.com/faustbrian/go-scheduler/actions/runs/32918210191
- Release dry-run: urn:sha256:af589eef96725034385b83eb0439aa7b022b9c70da98073ddb54cd257667c7e3
- 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