Skip to content

feat!: harden Effect contracts, definitions, and docs - #9

Merged
julia-script merged 8 commits into
mainfrom
julia/effect-contracts-hardening
Aug 20, 2026
Merged

feat!: harden Effect contracts, definitions, and docs#9
julia-script merged 8 commits into
mainfrom
julia/effect-contracts-hardening

Conversation

@julia-script

@julia-script julia-script commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Summary

  • make public Effect error and service contracts honest across task execution, completion, decoding, scheduling, Redis, and CLI boundaries
  • split broad schema/util modules into focused task record, task event, engine record, MessagePack, retry schedule, and Redis readiness concepts
  • keep task, queue, worker, and scheduler definitions synchronous and runtime-free; validate programmer-authored invariants as defects at the first Effectful operation, before external work
  • use Effect-native clock, crypto, resource lifecycle, schema validation, semantic engine reasons, and scoped Redis/worker supervision
  • add the Fumadocs consumer site with separate tutorial, how-to, reference, and explanation content
  • compile every TypeScript documentation example against the source API, syntax-check shell examples, parse JSON examples, and validate links in CI
  • update canonical specs so future changes preserve pure definitions and deferred invariant checks
  • make the root package an explicit workspace member and validate the pending major changeset in pnpm check

Breaking changes

This intentionally favors clean APIs over compatibility. Public error channels, required services, module paths, TaskEngine layers, low-level task-attempt access, and several boundary error models have changed. Task, queue, worker, and scheduler constructors are pure descriptions; invalid programmer-authored definition values defect only when first consumed by an Effectful queue, worker, or scheduler operation.

Changeset

  • major: @effectmq/core
  • .changeset/clean-effect-contracts.md

Validation

  • pnpm check
  • pnpm test — 127 passed, 2 skipped
  • pnpm docs:build — 21 pages generated
  • documentation checks — 33 files, 27 TypeScript examples, 10 shell examples, 1 JSON example
  • changeset status@effectmq/core major release
  • git diff --check

Task.make now returns an Effect, but the soak harness passed that Effect directly to TaskQueue.make because scripts were excluded from TypeScript validation. Update the harness and live layers to current APIs, and add strict script typechecking to the quality gate.
@julia-script julia-script changed the title feat!: harden Effect contracts and architecture feat!: harden Effect contracts, definitions, and docs Aug 20, 2026
@julia-script
julia-script merged commit 7a17dd6 into main Aug 20, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant