Skip to content

Archived Brief

This brief has been completed and is retained as a build record.

BRIEF: B-OPS-CRON-01

Cron Job Inventory + Migration to Cloudflare Workers

Date: 20 March 2026
Operator: Tim + Pace
Priority: Last job tonight — drop after B-ENRICH-KN-01 is confirmed running


SURFACE

Cloudflare Workers cron triggers — account e5a9830215a8d88961dc6c80a8c7442a
Mac Mini (source — being decommissioned for scheduled jobs)

DO NOT TOUCH

  • Any running Workers or D1 databases
  • Do not remove anything from Mac Mini until Tim confirms the cloud equivalent is verified working

BACKGROUND

We are on Workers Paid ($5/mo). Cron trigger limit is now 250 (was 5 on free). All scheduled jobs currently running on the Mac Mini via crontab and/or launchd should move to Cloudflare Workers cron triggers. Goal: Mac Mini is no longer required for any scheduled execution. If it goes down, nothing breaks.


PHASE 1 — INVENTORY (do this first, report back before touching anything)

Run the following on the Mac Mini and produce a simple report:

# 1. crontab entries
crontab -l

# 2. launchd agents
launchctl list | grep -i ucca

# 3. LaunchAgents plists
ls ~/Library/LaunchAgents/

# 4. Any shell scripts with schedules
find ~/projects/ucca-project -name "*.sh" | xargs grep -l "cron\|schedule\|interval" 2>/dev/null

Report back as a table:

Job name What it does Current schedule Script/command
... ... ... ...

Stop here. Tim reviews and confirms which jobs migrate.


PHASE 2 — MIGRATION (after Tim approval)

For each approved job:

  1. Write a Cloudflare Worker with equivalent logic
  2. Add cron trigger in wrangler.toml:
    [triggers]
    crons = ["0 * * * *"]  # adjust schedule per job
    
  3. Deploy and verify it fires on schedule (check logs in Cloudflare dashboard)
  4. Run both Mac Mini and Worker in parallel for one full cycle to confirm output matches
  5. Remove from Mac Mini crontab/launchd only after parallel verification passes
  6. Add entry to ops.ucca.online cron registry block

KNOWN CANDIDATES (likely — confirm in inventory)

  • Backup job (cf-backup.sh) — currently runs on Mac Mini, backs up to Google Drive
  • VOCSTATS session refresh (if scheduled)
  • Backup heartbeat KV ping

Note on backup Worker: the backup job writes to Google Drive via rclone. rclone won't run inside a Worker — this one needs to be rewritten to use Google Drive API directly, or keep the backup triggered from Mac Mini but have the Worker send the trigger signal. Flag this if it's an issue.


DEFINITION OF DONE

  • Inventory table produced and reviewed by Tim
  • All approved jobs running as Workers cron triggers
  • Parallel verification completed for each job
  • Mac Mini crontab/launchd entries removed
  • ops.ucca.online cron registry updated
  • Mac Mini confirmed no longer required for scheduled execution