{
  "status": "PASS",
  "started": "2026-10-24T13:30:38.188Z",
  "finished": "2026-10-24T13:32:21.589Z",
  "environment": {
    "platform": "win32",
    "release": "10.0.26300",
    "arch": "x64",
    "automation": "Playwright headless actual Chrome/Edge binaries; not physical keyboard or mobile device"
  },
  "sourceAfter": {
    "apps/workbench/main.jsx": "53d304c1160847dba454477e22abc8c3807c4c991b7c3d32a5a4bb63257cd95d",
    "apps/workbench/style.css": "e06c32ee219f6a2da0b875998063c98ac9376ae3130e114098061ea36db75f87"
  },
  "cases": [
    {
      "name": "open-pdf",
      "lang": "ko",
      "channel": "chrome",
      "width": 1440,
      "height": 1000,
      "browserVersion": "155.0.8059.80",
      "started": "2026-10-24T13:30:38.540Z",
      "checks": [
        {
          "label": "Edited maker is marked dirty",
          "status": "PASS",
          "time": "2026-10-24T13:30:42.392Z"
        },
        {
          "label": "Opening the confirmation does not alter the current draft/history/preview",
          "status": "PASS",
          "time": "2026-10-24T13:30:42.634Z"
        },
        {
          "label": "Cancel keeps current inputs, images, preview and undo/redo availability",
          "status": "PASS",
          "time": "2026-10-24T13:30:42.690Z"
        },
        {
          "label": "Undo after cancellation recovers the preceding image",
          "status": "PASS",
          "time": "2026-10-24T13:30:43.536Z"
        },
        {
          "label": "Redo after cancellation restores the exact draft and preview",
          "status": "PASS",
          "time": "2026-10-24T13:30:44.414Z"
        },
        {
          "label": "Explicit replacement closes confirmation",
          "status": "PASS",
          "time": "2026-10-24T13:30:44.965Z"
        },
        {
          "label": "Explicit replacement opens the selected document",
          "status": "PASS",
          "time": "2026-10-24T13:30:44.967Z"
        },
        {
          "label": "New document starts with no prior-document undo",
          "status": "PASS",
          "time": "2026-10-24T13:30:44.969Z"
        },
        {
          "label": "Opened file starts clean",
          "status": "PASS",
          "time": "2026-10-24T13:30:44.970Z"
        }
      ],
      "screens": [
        {
          "stage": "01-unsaved",
          "file": "evidence/replacement-safety/after/open-pdf-01-unsaved.png",
          "sha256": "88152a78d3d5046d55417a766c060b126ac205c788006641e85f9301f0feb20d"
        },
        {
          "stage": "02-confirmation",
          "file": "evidence/replacement-safety/after/open-pdf-02-confirmation.png",
          "sha256": "55aca92cf0104e302e419c8f79ffb33044a3cfeca19ef8eff725f272e7278059"
        },
        {
          "stage": "03-cancel-preserved",
          "file": "evidence/replacement-safety/after/open-pdf-03-cancel-preserved.png",
          "sha256": "b7bc8746141d41ceb71c6eee7fe1b23fb9ebe7058aab4dcb3c65f63c0f1c9fa0"
        },
        {
          "stage": "04-replaced",
          "file": "evidence/replacement-safety/after/open-pdf-04-replaced.png",
          "sha256": "619f896c404f8993b41a3a5241318a00a56fda4f2ba12476959f56af19d7debc"
        }
      ],
      "downloads": [],
      "dialogs": [],
      "attempts": {
        "cancel": 1,
        "continueWithoutSaving": 1
      },
      "status": "PASS",
      "finished": "2026-10-24T13:30:45.014Z",
      "route": "open-pdf"
    },
    {
      "name": "open-project",
      "lang": "ko",
      "channel": "chrome",
      "width": 1440,
      "height": 1000,
      "browserVersion": "155.0.8059.80",
      "started": "2026-10-24T13:30:45.459Z",
      "checks": [
        {
          "label": "Edited maker is marked dirty",
          "status": "PASS",
          "time": "2026-10-24T13:30:49.237Z"
        },
        {
          "label": "Opening the confirmation does not alter the current draft/history/preview",
          "status": "PASS",
          "time": "2026-10-24T13:30:49.501Z"
        },
        {
          "label": "Cancel keeps current inputs, images, preview and undo/redo availability",
          "status": "PASS",
          "time": "2026-10-24T13:30:49.555Z"
        },
        {
          "label": "Undo after cancellation recovers the preceding image",
          "status": "PASS",
          "time": "2026-10-24T13:30:50.417Z"
        },
        {
          "label": "Redo after cancellation restores the exact draft and preview",
          "status": "PASS",
          "time": "2026-10-24T13:30:51.284Z"
        },
        {
          "label": "Explicit replacement closes confirmation",
          "status": "PASS",
          "time": "2026-10-24T13:30:52.060Z"
        },
        {
          "label": "Explicit replacement opens the selected document",
          "status": "PASS",
          "time": "2026-10-24T13:30:52.063Z"
        },
        {
          "label": "New document starts with no prior-document undo",
          "status": "PASS",
          "time": "2026-10-24T13:30:52.065Z"
        },
        {
          "label": "Opened file starts clean",
          "status": "PASS",
          "time": "2026-10-24T13:30:52.066Z"
        }
      ],
      "screens": [
        {
          "stage": "01-unsaved",
          "file": "evidence/replacement-safety/after/open-project-01-unsaved.png",
          "sha256": "eeed33aba50241d7f234961dd33fbea566b75e4a55a1b194bfa0229f6ab63deb"
        },
        {
          "stage": "02-confirmation",
          "file": "evidence/replacement-safety/after/open-project-02-confirmation.png",
          "sha256": "692c6556771196ed7078585e7dfe7cdb2ab507c1f80406cd18414c6b00533247"
        },
        {
          "stage": "03-cancel-preserved",
          "file": "evidence/replacement-safety/after/open-project-03-cancel-preserved.png",
          "sha256": "739553e114941ef2f89d5871e38e31c27a7fd1145a21a82df70dc7e09675c8c7"
        },
        {
          "stage": "04-replaced",
          "file": "evidence/replacement-safety/after/open-project-04-replaced.png",
          "sha256": "99c0ad790862eb8995dd09755e325bbbb6eaee11aee53ea081f6122179d3a0d4"
        }
      ],
      "downloads": [],
      "dialogs": [],
      "attempts": {
        "cancel": 1,
        "continueWithoutSaving": 1
      },
      "status": "PASS",
      "finished": "2026-10-24T13:30:52.156Z",
      "route": "open-project"
    },
    {
      "name": "drop-pdf",
      "lang": "ko",
      "channel": "chrome",
      "width": 1440,
      "height": 1000,
      "browserVersion": "155.0.8059.80",
      "started": "2026-10-24T13:30:52.600Z",
      "checks": [
        {
          "label": "Edited maker is marked dirty",
          "status": "PASS",
          "time": "2026-10-24T13:30:56.455Z"
        },
        {
          "label": "Opening the confirmation does not alter the current draft/history/preview",
          "status": "PASS",
          "time": "2026-10-24T13:30:59.873Z"
        },
        {
          "label": "Cancel keeps current inputs, images, preview and undo/redo availability",
          "status": "PASS",
          "time": "2026-10-24T13:30:59.933Z"
        },
        {
          "label": "Undo after cancellation recovers the preceding image",
          "status": "PASS",
          "time": "2026-10-24T13:31:00.802Z"
        },
        {
          "label": "Redo after cancellation restores the exact draft and preview",
          "status": "PASS",
          "time": "2026-10-24T13:31:01.662Z"
        },
        {
          "label": "Explicit replacement closes confirmation",
          "status": "PASS",
          "time": "2026-10-24T13:31:05.491Z"
        },
        {
          "label": "Explicit replacement opens the selected document",
          "status": "PASS",
          "time": "2026-10-24T13:31:05.494Z"
        },
        {
          "label": "New document starts with no prior-document undo",
          "status": "PASS",
          "time": "2026-10-24T13:31:05.497Z"
        },
        {
          "label": "Opened file starts clean",
          "status": "PASS",
          "time": "2026-10-24T13:31:05.500Z"
        }
      ],
      "screens": [
        {
          "stage": "01-unsaved",
          "file": "evidence/replacement-safety/after/drop-pdf-01-unsaved.png",
          "sha256": "67616b140832ce9e16cdd2be0b94324bd5862f037c33f204c78bc70ea25b36d8"
        },
        {
          "stage": "02-confirmation",
          "file": "evidence/replacement-safety/after/drop-pdf-02-confirmation.png",
          "sha256": "035eb47c5635edd089359d0ce61c5f655e9106837406d70d69e0304cd57b1bfd"
        },
        {
          "stage": "03-cancel-preserved",
          "file": "evidence/replacement-safety/after/drop-pdf-03-cancel-preserved.png",
          "sha256": "958cbdb2a1833e1b7d61968de747e6ad03400fab80fdf82a74006153c811bd39"
        },
        {
          "stage": "04-replaced",
          "file": "evidence/replacement-safety/after/drop-pdf-04-replaced.png",
          "sha256": "619f896c404f8993b41a3a5241318a00a56fda4f2ba12476959f56af19d7debc"
        }
      ],
      "downloads": [],
      "dialogs": [],
      "attempts": {
        "cancel": 1,
        "continueWithoutSaving": 1
      },
      "status": "PASS",
      "finished": "2026-10-24T13:31:05.563Z",
      "route": "drop-pdf"
    }
  ],
  "confirmationScreenshot": "evidence/replacement-safety/after/open-pdf-02-confirmation.png",
  "preservedScreenshot": "evidence/replacement-safety/after/open-pdf-03-cancel-preserved.png",
  "scope": "Each path has one cancellation sequence (including undo/redo preservation) and one explicit continuation sequence after the fix, using controlled title/caption/image edits. Browser automation, not a customer incident or physical keyboard test."
}