# chimeway v1.0.0 - API Reference

## Modules

- [Chimeway](Chimeway.md): Public entrypoint for notification triggering.

- [Chimeway.Adapter](Chimeway.Adapter.md): Behaviour contract for outbound delivery adapters.
- [Chimeway.Adapters.Logger](Chimeway.Adapters.Logger.md): Structured-log adapter that emits a tagged Logger.info line and always succeeds.
- [Chimeway.Adapters.Test](Chimeway.Adapters.Test.md): In-memory test adapter using process dictionary storage.
- [Chimeway.Deliveries](Chimeway.Deliveries.md): Context module for delivery planning, attempt recording, and status transitions.
- [Chimeway.Delivery](Chimeway.Delivery.md): Ecto schema for chimeway_deliveries — per-channel delivery record for a notification.

- [Chimeway.DeliveryAttempt](Chimeway.DeliveryAttempt.md): Ecto schema for chimeway_delivery_attempts — immutable append-only record of each
provider call for a delivery. No updated_at — attempts are never mutated.
- [Chimeway.DeliveryPlanning](Chimeway.DeliveryPlanning.md): Shared fanout planner used by all dispatch strategies.
- [Chimeway.Digests](Chimeway.Digests.md): Public digest-rule persistence API for durable rule lookup and storage.
- [Chimeway.Digests.Accumulation](Chimeway.Digests.Accumulation.md): Transactional digest accumulation for held canonical delivery rows.
- [Chimeway.Digests.DigestBucket](Chimeway.Digests.DigestBucket.md): Durable digest bucket storage keyed by rule, recipient, channel, grouping value, and window.
- [Chimeway.Digests.DigestMembership](Chimeway.Digests.DigestMembership.md): Auditable membership row linking one canonical delivery into one digest bucket.
- [Chimeway.Digests.DigestRule](Chimeway.Digests.DigestRule.md): Durable digest rule storage for stable identity, grouping mode, and window semantics.
- [Chimeway.Digests.Emission](Chimeway.Digests.Emission.md): Transactional digest emission for due buckets with durable membership resolution.
- [Chimeway.Dispatch](Chimeway.Dispatch.md): Behaviour contract for the dispatcher seam.
- [Chimeway.Dispatch.ChannelAdapterConfig](Chimeway.Dispatch.ChannelAdapterConfig.md): Resolves per-channel adapter config without creating atoms from runtime channel data.

- [Chimeway.Dispatch.DeferredResumeWorker](Chimeway.Dispatch.DeferredResumeWorker.md): Oban worker that resumes a deferred delivery row and enqueues the canonical
delivery performer in the same transaction.
- [Chimeway.Dispatch.DigestFlushWorker](Chimeway.Dispatch.DigestFlushWorker.md): Thin Oban worker that delegates due digest bucket execution to the emission service.
- [Chimeway.Dispatch.Executor](Chimeway.Dispatch.Executor.md): Shared adapter execution for sync and Oban worker dispatch paths.
- [Chimeway.Dispatch.Oban](Chimeway.Dispatch.Oban.md): Oban-backed dispatcher — satisfies `Chimeway.Dispatch` behaviour.
- [Chimeway.Dispatch.ObanWorker](Chimeway.Dispatch.ObanWorker.md): Oban worker that performs a single Chimeway delivery by delivery_id.
- [Chimeway.Dispatch.SignalRouterWorker](Chimeway.Dispatch.SignalRouterWorker.md): Oban worker that routes an incoming signal to all waiting workflow runs that are
suspended on the signal's `event_name` within the same tenant.
- [Chimeway.Dispatch.Sync](Chimeway.Dispatch.Sync.md): Synchronous dispatcher — runs the full delivery pipeline in the calling process.
- [Chimeway.Dispatch.WorkflowProgressionWorker](Chimeway.Dispatch.WorkflowProgressionWorker.md): Oban worker that wakes a due waiting workflow run by stable id.
- [Chimeway.Events.Event](Chimeway.Events.Event.md): Durable canonical event persisted before outbound side effects.

- [Chimeway.Inbox](Chimeway.Inbox.md): Inbox query and explicit lifecycle transition APIs.

- [Chimeway.Notifications.Notification](Chimeway.Notifications.Notification.md): Durable per-recipient in-app notification record.

- [Chimeway.Notifier](Chimeway.Notifier.md): Behaviour contract for notification definitions.
- [Chimeway.Orchestration.WindowMath](Chimeway.Orchestration.WindowMath.md): Pure time-window calculations for recipient-local orchestration decisions.

- [Chimeway.Policy](Chimeway.Policy.md): Dual-checkpoint policy engine for delivery suppression decisions.
- [Chimeway.Policy.Settings](Chimeway.Policy.Settings.md): Per-recipient policy settings for quiet hours and delivery caps.
- [Chimeway.Policy.Settings.Setting](Chimeway.Policy.Settings.Setting.md): Per-recipient policy settings for quiet hours and delivery caps.
- [Chimeway.Preferences](Chimeway.Preferences.md): Public context for notification preference management.
- [Chimeway.Preferences.CategoryPreference](Chimeway.Preferences.CategoryPreference.md): Per-recipient notification preference for a delivery category.
- [Chimeway.Preferences.NotificationPreference](Chimeway.Preferences.NotificationPreference.md): Per-channel notification preference for a recipient and notification key.
- [Chimeway.Rendering](Chimeway.Rendering.md): Normalizes notifier rendering declarations into one durable contract.

- [Chimeway.Rendering.Channel](Chimeway.Rendering.Channel.md): Behaviour contract for channel-specific render validation.
- [Chimeway.Rendering.Channels.Chat](Chimeway.Rendering.Channels.Chat.md): Validates the durable chat render contract.
- [Chimeway.Rendering.Channels.Email](Chimeway.Rendering.Channels.Email.md): Validates the durable email render contract.

- [Chimeway.Rendering.Channels.InApp](Chimeway.Rendering.Channels.InApp.md): Validates the durable in-app render contract.

- [Chimeway.Rendering.Channels.Push](Chimeway.Rendering.Channels.Push.md): Validates the durable push render contract.
- [Chimeway.Rendering.Channels.Sms](Chimeway.Rendering.Channels.Sms.md): Validates the durable SMS render contract.
- [Chimeway.Rendering.Preview](Chimeway.Rendering.Preview.md): Pure preview surface over the production rendering pipeline.

- [Chimeway.Repo](Chimeway.Repo.md)
- [Chimeway.Signal](Chimeway.Signal.md): Host-facing API boundary for submitting workflow progression signals.
- [Chimeway.Signals.Signal](Chimeway.Signals.Signal.md): Durable host-submitted progression signal.
- [Chimeway.Telemetry](Chimeway.Telemetry.md): Instrumentation façade for Chimeway telemetry spans.
- [Chimeway.Traces](Chimeway.Traces.md): Public query context for operator trace surfaces.
- [Chimeway.Traces.Explanation](Chimeway.Traces.Explanation.md): Structured explanation of a single delivery — the primary operator debugging artifact.
- [Chimeway.Trigger](Chimeway.Trigger.md): Orchestrates notifier triggering with deterministic recipient normalization.
- [Chimeway.Webhooks](Chimeway.Webhooks.md): Pure function boundary for synchronously ingesting and verifying inbound webhooks.
- [Chimeway.Webhooks.Ingress](Chimeway.Webhooks.Ingress.md): Durable inbound webhook fact: a verified provider callback has been received,
normalized, and queued for async processing. One ingress row per accepted
callback; duplicate provider retries with the same `(adapter_module,
provider_event_id)` collapse to the existing row via the partial unique index.
- [Chimeway.Webhooks.ProcessFeedbackWorker](Chimeway.Webhooks.ProcessFeedbackWorker.md): Oban worker that processes inbound webhook feedback from a durable ingress row.
- [Chimeway.Workflows](Chimeway.Workflows.md): Persistence helpers for durable workflow definitions and ordered step rows.
- [Chimeway.Workflows.Progression](Chimeway.Workflows.Progression.md): Durable workflow progression engine for Phase 25.
- [Chimeway.Workflows.ProgressionOutcome](Chimeway.Workflows.ProgressionOutcome.md): Pure mapper from canonical delivery facts to a curated workflow-facing outcome
vocabulary used by Phase 25 progression rules.
- [Chimeway.Workflows.WorkflowDefinition](Chimeway.Workflows.WorkflowDefinition.md): Durable workflow definition storage keyed by stable workflow identity.
- [Chimeway.Workflows.WorkflowRun](Chimeway.Workflows.WorkflowRun.md): Durable workflow run aggregate row anchored to one notification.
- [Chimeway.Workflows.WorkflowStep](Chimeway.Workflows.WorkflowStep.md): Ordered durable workflow step row linked to one workflow definition.
- [Chimeway.Workflows.WorkflowTransition](Chimeway.Workflows.WorkflowTransition.md): Append-only workflow transition row capturing state changes and reasons.

- Exceptions
  - [Chimeway.Dispatch.UnhandledOutcomeError](Chimeway.Dispatch.UnhandledOutcomeError.md): Raised by `Chimeway.Dispatch.ObanWorker` when `map_outcome_to_oban_return/4`
encounters a (outcome, error_class, status) shape that none of the documented
clauses match AND the in-band convergence guard cannot legally fire (delivery
is not in :failed status, or this is not the final attempt). This is the
loud-failure branch of the BL-02 fix — see Plan 14-10.

## Mix Tasks

- [mix preview.rendering](Mix.Tasks.Preview.Rendering.md): Previews notification rendering through the production library pipeline.
- [mix verify.published](Mix.Tasks.Verify.Published.md): Verifies that a specific chimeway version is published and accessible on hex.pm.

