Skip to content

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 08 May 21:33
65aa179

1.0.0 (2026-05-08)

Features

  • 08-01: merge dispatcher outcomes into trigger response (c449ee4)
  • 08-01: seed trigger outcome defaults (ea97e9c)
  • 10-01: enrich [:deliveries, :plan] span with correlation metadata (7c8d68f)
  • 10-01: forward correlation opts in DeliveryPlanning (b1f27c6)
  • 10-01: persist correlation metadata in Delivery records (e4271f9)
  • 10-01: thread notification_key in dispatch_opts in Trigger (0284fb9)
  • 10-02: enrich Oban spans with correlation metadata (664de32)
  • 10-02: enrich Policy and Sync spans with correlation metadata (82bce64)
  • 12-01: unify oban planning and enqueue transaction (9b93ae2)
  • 14-02: add attempt_number and error_class columns to delivery attempts (957b92c)
  • 14-02: extend DeliveryAttempt schema with attempt_number and error_class (c9ad3a1)
  • 14-03: add Deliveries.exhaust_delivery/1 named helper (d94c1c1)
  • 14-04: extend record_attempt/2 with row lock + attempt_number + terminal convergence (04a74a8)
  • 14-04: plumb error_class end-to-end via Executor.classify/1 3-tuple (b5f5728)
  • 14-04: promote DeliveryAttempt.attempt_number to required field (38e0ca6)
  • 14-05: surface attempt_number and error_class in Traces (D-07) (53ff4b1)
  • 14-05: wire Oban retry contract in ObanWorker.perform/1 (b044e29)
  • 14-10: add classify/1 fallback and rewrite map_outcome_to_oban_return/4 catch-all (BL-02) (a90460e)
  • 16-01: add using macro to Notifier (57a6409)
  • 17-01: persist delivery orchestration contracts (d6f48d9)
  • 17-02: defer quiet-hours at planning time (217d57c)
  • 17-02: persist notifier orchestration declarations (b5a2634)
  • 17-03: expose deferred delivery explanations (eb2e5ee)
  • 17-03: gate dispatch on orchestration readiness (b4eae59)
  • 18-01: implement deferred resume row transitions (e546f77)
  • 18-02: schedule deferred resumes through oban (6fa8afe)
  • 18-03: explain resumed deferred delivery history (a663709)
  • 19-01: implement durable digest rule and bucket storage (eeec217)
  • 19-02: implement digest accumulation transaction (cc223c3)
  • 19-03: wire planner-side digest accumulation (64744c4)
  • 21-01: add durable rendering storage (d0fe75f)
  • 21-01: add notifier rendering normalization (2b31b14)
  • 21-02: persist render identity during trigger and planning (be55f85)
  • 21-04: persist rendered delivery payloads before dispatch (203bb2d)
  • 21-05: add preview rendering mix task (63b2864)
  • 21-05: add pure rendering preview api (629f196)
  • 21-template-versioning-rendering-contracts-03: add validated channel render dispatch (8e4211e)
  • 21.1-01: persist notification render channel declarations at trigger time (e0f1049)
  • 21.1-02: normalize preview boundary failures for invalid and unloaded notifiers (e07ec28)
  • 21.1-02: replace executable preview CLI inputs with JSON and shallow flags (295d495)
  • 22-01: add durable recovery row primitives (b97d97c)
  • 22-02: wire recovery through canonical dispatch (8bb160a)
  • 22-03: add recovery-aware trace analytics (04f678d)
  • 23-01: schedule digest flushes from durable buckets (52989c6)
  • 23-02: persist orchestration for recovery replay (84a2276)
  • 23-03: prove scheduled digest worker lifecycle (09b412a)
  • 23-04: handle perform-time delivery re-deferral (f294eb5)
  • 24-workflow-contracts-state-spine-01: add durable workflow contract storage (3ca153d)
  • 24-workflow-contracts-state-spine-02: persist workflow runs at trigger time (e7d0059)
  • 24-workflow-contracts-state-spine-03: link deliveries to persisted workflow state (c9d7aa0)
  • 25-01: normalize step progress rules and curate workflow outcomes (886ecdc)
  • 25-02: wire durable workflow progression engine into canonical convergence (33b2a36)
  • 25-03: wire thin workflow progression worker and due-run scheduling (74b341c)
  • 25-04: implement advance_after_wait/5 to close CR-01 wait_until loop (11455b2)
  • 26-01: handle terminal workflow tuples in progression worker (665a54a)
  • 27-01: add barebones SignalRouterWorker (739ffa9)
  • 27-01: add Signal model and Chimeway.Signal.track/4 API (4ab48f0)
  • 27-01: add State Spine columns to WorkflowRun (9b468aa)
  • 27-02: complete SignalRouterWorker.perform/1 implementation (6ab36b7)
  • 27-02: implement Chimeway.Workflows.route_signal/1 (b3a88d2)
  • 27-03: implement Workflows.explain/2 and list_traces/3 inspection API (a87ce63)
  • 27-07: route_signal filters by actor_id and clears suspended_until (06e2a87)
  • 29-01: add Chimeway.Rendering.Channel behaviour module (7b1f6fe)
  • 29-02: add adapter_module column to chimeway_delivery_attempts (05c6fbf)
  • 29-02: wire adapter_module field in DeliveryAttempt schema (e75acdd)
  • 29-03: implement Sms, Push, Chat channel render validators (e125425)
  • 29-04: boot validation for :channel_render_modules + adapter_module telemetry key (d792992)
  • 29-04: three-layer channel_module/1 with registry + telemetry once-flag (eb52ffa)
  • 29-05: add resolve_adapter/1 + persist adapter_module on attempt (e22a04b)
  • 29-05: thread adapter_module into [:dispatch, :sync, :stop] stop metadata (39146ec)
  • 29-06: expose adapter_module in explain_delivery output (1e3fa6b)
  • 29-07: channel-tag mailbox sends in Adapters.Test (D-23) (ccebe15)
  • 30-01: add provider_message_id to delivery_attempts for feedback correlation (fed5a52)
  • 30-01: define webhook ingestion contracts on Adapter behaviour (488f3a4)
  • 30-01: implement synchronous webhook boundary and async feedback worker (d9e8bcc)
  • 31-01: add tenant_id and actor_id to deliveries table (67985ca)
  • 31-02: emit signal on feedback processing (1251a88)
  • 32-01: populate WorkflowTransition.delivery_id from signal.payload in route_signal/1 (d77e097)
  • 32-02: extend Chimeway.Traces with webhook + workflow timeline projection (fa976ad)
  • 33-01: create chimeway_webhook_ingress migration + GREEN tests (6041acb)
  • 33-01: create Chimeway.Webhooks.Ingress Ecto schema (2e904dc)
  • 33-02: add Deliveries.fetch_delivery/1 non-raising sibling (2e65d7c)
  • 33-02: rewrite webhooks_test.exs for atomic-handoff contract (5bf0c40)
  • 33-02: rewrite Webhooks.process/4 to atomic Multi+Oban handoff (6587ee1)
  • 33-03: rewrite ProcessFeedbackWorker for ingress-driven, safe-noop model (4ca2258)
  • 33-03: rewrite worker test for ingress-driven contract + preserve webhooks.ex compat (77c92f4)
  • 33-04: add CacheBodyReader plug and fixture adapters (913424d)
  • 33-04: implement WebhooksController with raw-body flattening and status mapping (4379663)
  • 33-04: scaffold chimeway_demo_host sibling Mix project skeleton (4fd490a)
  • 33-04: wire mix verify.example alias and fix E2E test compilation (cc20a75)
  • 33-05: add dedup-convergence integration tests (T-33-DEDUP / D-05) (08d8de6)
  • add digest emission and explainability (570d47e)

Bug Fixes

  • 11-01: task 11-01-01 harden adapter config lookup (2cb5afb)
  • 11-01: task 11-01-02 keep explainability channels string-safe (0f6577d)
  • 12-01: guard oban dispatch base multi coercion (5fb177a)
  • 13-01: add category preference storage and lookup (74caae3)
  • 13-02: add policy settings storage and evaluation helpers (f931ca6)
  • 13-03: wire policy evaluation and dispatch suppression coverage (0363df4)
  • 14-10: update error_classes/0 test to include unknown_classification (BL-02 deviation) (c66c21a)
  • 14-11: WR-05/06/07 — order last_attempt by attempt_number, emit :cancelled timeline entry, update Explanation moduledoc (a900dae)
  • 14: CR-01 fix Traces.last_attempt_summary/1 nil handling (ce76ceb)
  • 14: IN-01 remove commented debug IO.inspect calls (47c7293)
  • 14: IN-02 correct comment about Ecto.Query import (21364bc)
  • 14: WR-01 use deterministic order for migration backfill (fbeebb5)
  • 14: WR-02 avoid TOCTOU gap in Oban worker dispatch (bffe56f)
  • 14: WR-03 normalize provider_response string key in record_attempt/2 (14f9605)
  • 14: WR-04 add timeline entry for manually-cancelled deliveries (287b8a5)
  • 17: harden orchestration planning follow-ups (40d05b9)
  • 18: stamp deferred transition timestamps (4ea8ec6)
  • 19: tighten digest rule matching and accumulation edges (5bd1b44)
  • 21: revise plans based on checker feedback (54d917d)
  • 22-04: restore recovery-only planning fallback (9fbf089)
  • 23-05: harden digest lookup identity boundaries (fb5ae6d)
  • 27-04: make phase 27 spine migration upgrade-safe (0e4d2bc)
  • 27-04: reject empty workflow run tenant ids (bb2b903)
  • 27-05: pass tenant ids through trigger workflow runs (03f3e84)
  • 27-05: thread tenant into initial workflow runs (6014765)
  • 27-06: declare the signal router queue everywhere (3a0ffd0)
  • 27-06: hold workflow signal locks through commit (9089f0d)
  • 27-06: honor trace limits in workflow inspection (8c738f1)
  • 29: correct Plan 07 wave to 5 (depends on Plan 06 at wave 4) (fce7b9b)
  • 29: revise plans based on checker feedback (7860bfe)
  • 31-01: pass tenant_id and actor_id in test and emission logic (7ec7594)
  • 33-06: handle :more branch in CacheBodyReader.read_body/2 (BL-01) (bdaa3db)
  • 34-02: align PII boundary fixture event_name to canonical chimeway.delivery.succeeded (c5a1335)
  • 34-02: align Scenario B fixture event_name to canonical chimeway.delivery.succeeded (d918024)
  • ci: format code, fix doc links, relax credo checks for release (7d0ed56)
  • phase-24: preserve persisted workflow step identity (5a61459)
  • use DATABASE_URL for repo config (4e90b94)