daily ops infrastructure

Your tasks.
Rolled forward.
Never forgotten.

DayRoll gives you three tasks a day. Finish them or they roll. But it goes further than that: every step is logged, every failure is surfaced, every retry is visible. This is a daily ops tool built for people who care about reliability over polish.

execution.log
">09:00:01 daily_job.start()
">09:00:01 task.roll_unfinished(prev_date=2026-05-25)
">09:00:02 task.roll_complete(rolled=2, kept=1)
">09:00:02 email.check_unfinished() -> 2 remaining
">09:00:03 email.send() -> RETRY 1/3 (timeout)
">09:00:08 email.send() -> OK (retry backoff=5s)
">09:00:09 job.complete(status=PARTIAL_SUCCESS)
PENDING
RUNNING
SUCCESS
PARTIAL_SUCCESS
FAILED
BLOCKED

Every state transition is logged. Every failure triggers a retry with backoff. If a step fails completely, the app falls back and continues — you always know what broke and what's still running.

3 tasks, max

Hard cap forces prioritization. Done or rolled — no infinite backlog.

Auto-roll at midnight

Unfinished tasks carry forward. Nothing disappears. Everything surfaces.

@

One daily email

Reminder fires at your fixed time if tasks are unfinished. Sends once. Retries on failure.

Execution history

Every step, every retry, every status. Full audit trail, not just "completed".

failure modes

Designed to break gracefully

email.send() → RETRY

Transient timeout? Retry up to 3 times with exponential backoff (2s, 4s, 8s). Falls back after max retries, logs the failure, continues.

job.schedule() → SKIP

Scheduled job misses its window? Mark BLOCKED, surface in the log, run on next available slot. Never silently drop a job.

db.write() → ROLLBACK

Partial failure mid-transaction? Roll back cleanly. The task state is preserved. No corrupted half-write states.

task.roll() → PARTIAL

Some tasks roll, some don't (e.g. already completed). Status is PARTIAL_SUCCESS. Full visibility into what worked and what didn't.

Most apps hide what breaks. DayRoll shows you — every retry, every fallback, every state transition. This is what ops-grade reliability looks like in a daily tool.

Spec it. Build it. Watch it run. Fix what fails. Repeat.