{
  "package_type": "aio-update-package",
  "package_name": "All-in-One Communication System V15.7 Campaign Run Controls",
  "from_version": "15.6",
  "to_version": "15.7",
  "created_at": "2026-04-15T12:00:00Z",
  "run_repair": false,
  "file_count": 9,
  "files": [
    "README.md",
    "VERSION",
    "app/controllers/MessagesController.php",
    "app/models/Campaign.php",
    "app/models/QueueJob.php",
    "app/services.php",
    "app/views/messages/campaign_reports.php",
    "app/views/messages/report.php",
    "scripts/process_campaigns.php"
  ],
  "checksums_sha256": {
    "README.md": "9b8f6d2ee47d6c998762653067c3636e926ef94adbbcc11908b10ae150770f55",
    "VERSION": "c524f6a46ff5eaa6ba90d890f1e954422853d31399d2e9c12d19a4777c177aef",
    "app/controllers/MessagesController.php": "9e85a982a08e1d9f01c70c834f92f5448f7ea2f9df6addc74c59f3394622ed97",
    "app/models/Campaign.php": "81ada23962bc89ae4841cdfc67c7d996082aa365d4c81630d5fddd4ac3383c4d",
    "app/models/QueueJob.php": "7647f1c4a8b76ec421ea4e6f59c34db5e263d351198be7fb20f2505a28d59c9c",
    "app/services.php": "b06a438d14f130d827708183f63044236c6789a1418d5233a844dba52a9dcf17",
    "app/views/messages/campaign_reports.php": "e687c2c48685b96cea107ae1faa6bceac9f26d5cf68b8798279877b8caab7f90",
    "app/views/messages/report.php": "9c166fbef9a4d169ad9955ba591acc7f108cda3bf70c0a794cd68907524f4f18",
    "scripts/process_campaigns.php": "1d79309b307ab9a176b5ca35cb1aacd9fa84c2fdc15cef398a2fedb4b60704ad"
  },
  "notes": [
    "Adds Start, Pause, Stop, Restart, and Force Queue controls for active campaigns.",
    "Campaign processing now respects pause/stop state while a batch is running.",
    "Queue seeding now deduplicates campaign_process jobs created by cron and manual actions.",
    "Campaigns with failed recipients now finish in failed state instead of being mislabeled as sent.",
    "No database schema migration is required for this update."
  ]
}