Initial release.
Added
Mutare.Oban.WorkerReturn(:oban_worker_return) — swapsperform/1
return values for other valid Oban returns (:ok/{:ok, v}→
{:error, :mutare};{:error, reason}→:ok/{:cancel, reason};
{:cancel, reason}→{:error, reason}/:ok;{:snooze, s}→:ok;
legacy{:discard, reason}→:ok/{:cancel, reason}and bare
:discard→:ok). Behaviour-gated: fires only insideOban.Worker/
Oban.Pro.Workermodules, and reaches branch tails via
return_replacements. Declaresrequired_modules/0, so a run where Oban
is not loadable aborts loudly instead of silently producing no mutants.Mutare.Oban.Enqueue(:oban_enqueue) — rewritesMyWorker.new(args, opts)
enqueue options (direct, aliased, or piped):max_attempts: n→1(n ≠ 1),
and dropsunique:,schedule_in:, andscheduled_at:.- Report notes on every mutant naming what a survivor leaves unasserted.
- Ignore-variant labels on both families, so
# mutare:ignore[oban_worker_return:ok]/
# mutare:ignore[oban_enqueue:unique]can suppress one kind of mutant. Mutare.Oban.all/0for splicing both families into a:mutatorslist.