{
  "artifacts": [
    {
      "name": "bootloader",
      "offset": 0,
      "path": "bootloader.bin",
      "sha256": "ce733497031906a3db1ffacc8d57fb6cb4854ebb615435cf7df7185dbc578261",
      "size_bytes": 22272
    },
    {
      "name": "partition-table",
      "offset": 32768,
      "path": "partition-table.bin",
      "sha256": "ace02503447d0f470692e65fa76002f2d77a92dc81cd3813d8aa66718d716da9",
      "size_bytes": 3072
    },
    {
      "name": "firmware",
      "offset": 65536,
      "path": "firmware.bin",
      "sha256": "78e3c38b36cd4a1a75fd49c707f4796b522d03bfbc28fa4ca83c7c8b966cce73",
      "size_bytes": 1676960
    }
  ],
  "build_id": "conference-factory-3",
  "channel": "alpha",
  "created_at": "2026-09-17T20:29:22Z",
  "embedded_build": {
    "compile_date": "Sep 17 2026",
    "compile_time": "11:35:19",
    "elf_sha256": "99db5c6a766b5c036dbe742de129f1e2fca032ac1ab213b42e77d0aeb6f35a66",
    "idf_version": "v5.5.4",
    "project_name": "conference_badge",
    "project_version": "0082591-dirty"
  },
  "flash": {
    "erase_all": false,
    "frequency": "80m",
    "mode": "dio",
    "post_flash": {
      "clock_protocol": 1,
      "expected_build": "conference-factory-3",
      "fresh_clock_sync_required": true,
      "radios_off_required": true,
      "rtc_advancement_required": true,
      "storage_ready_required": true
    },
    "preserve_partitions": [
      "nvs",
      "otadata",
      "app1",
      "ffat",
      "coredump"
    ],
    "requires_partition_match": true,
    "write_set": [
      "bootloader",
      "partition-table",
      "firmware"
    ]
  },
  "hardware": {
    "chip": "esp32s3",
    "chip_id": 9,
    "flash_bytes": 16777216,
    "model": "M5Stack StopWatch",
    "psram_bytes": 8388608,
    "psram_mode": "opi"
  },
  "limitations": [
    "Alpha release: team testing is required before conference-wide deployment.",
    "This preservation update requires an exact existing partition-sector match; factory or unknown layouts need a separate reviewed migration.",
    "Only app0 is updated. OTA boot selection is preserved, so the installed build must be verified after restart.",
    "A fresh computer-clock sync and verified advancing RTC are required after flashing; the binary contains no provisioning timestamp.",
    "Real-phone captive setup, image save/edit and clock sync remain unqualified end to end; captive discovery has known iOS redirect and DNS compatibility gaps.",
    "Battery runtime and clock retention after complete battery exhaustion remain unqualified."
  ],
  "partition_table": {
    "layout": [
      {
        "flags": 0,
        "name": "nvs",
        "offset": 36864,
        "size_bytes": 20480,
        "subtype": 2,
        "type": 1
      },
      {
        "flags": 0,
        "name": "otadata",
        "offset": 57344,
        "size_bytes": 8192,
        "subtype": 0,
        "type": 1
      },
      {
        "flags": 0,
        "name": "app0",
        "offset": 65536,
        "size_bytes": 3145728,
        "subtype": 16,
        "type": 0
      },
      {
        "flags": 0,
        "name": "app1",
        "offset": 3211264,
        "size_bytes": 3145728,
        "subtype": 17,
        "type": 0
      },
      {
        "flags": 0,
        "name": "ffat",
        "offset": 6356992,
        "size_bytes": 10354688,
        "subtype": 129,
        "type": 1
      },
      {
        "flags": 0,
        "name": "coredump",
        "offset": 16711680,
        "size_bytes": 65536,
        "subtype": 3,
        "type": 1
      }
    ],
    "offset": 32768,
    "padding_byte": 255,
    "sector_sha256": "0bcf1787e46f4bf1ce9ad28bd22c2257e715987e913add5008c0265d3feb2fcd",
    "sector_size": 4096
  },
  "schema_version": 1,
  "source": {
    "artifact_source_verified": false,
    "branch": "codex/offline-conference-badge",
    "capture_scope": "packaging_worktree",
    "commit": "008259195fd45a2c383c10376c3a50eaa9c00680",
    "dirty": true,
    "note": "Commit, branch and dirty state describe the worktree at packaging time. They do not attest which uncommitted source produced the image; embedded build metadata is reported separately.",
    "status_sha256": "a47c17bc86564eb98c682160dbad040c4b417f4a663426a643c8083b460d4bf5"
  }
}
