{
  "document": "MDIS visual tool-validation evidence",
  "sourceCommit": "b275539ea53f70cb04466895853fe05c7fd62c86",
  "runId": "local-b275539ea5-20260907T172831Z",
  "scenarioName": "A visible changes request stops one release and its successor can deliver",
  "featureFile": "features/release-integration/release-document-feedback.feature",
  "scenarioTags": [
    "@VAL-REL-019",
    "@SR-197",
    "@UR-002",
    "@UR-025",
    "@UR-014",
    "@UR-017",
    "@RSK-007",
    "@RSK-022",
    "@MODULE:RELEASE",
    "VAL-REL-019",
    "SR-197",
    "UR-002",
    "UR-025",
    "UR-014",
    "UR-017",
    "RSK-007",
    "RSK-022",
    "MODULE:RELEASE"
  ],
  "status": "PASS",
  "scope": "Representative workflow; no client validation approval",
  "sourceInputs": {
    "step-report": {
      "sha256": "08d532391b37e2e391424b405b4b0c547b373b8847d3134fb54416acacdacf12"
    },
    "playwright-results": {
      "sha256": "2f6b90517c475c7270bf968216324ef8e1377ee16110ebae577d19cdd1f64d7d"
    },
    "candidate-images": {
      "sha256": "42ad1c6cbd867e923db348cb913a0d24276e9a1cfaff42231a6ebcfc61ae54b7"
    }
  },
  "steps": [
    {
      "index": 1,
      "title": "Introduce the participants",
      "actor": "Manufacturer",
      "gherkin": "Given the anchored-feedback participants use separate signed-in sessions",
      "status": "PASS",
      "expected": "Three independent sessions represent the manufacturer, its reviewer and an unrelated company.",
      "observed": "Three distinct browser contexts and selected context identities were verified.",
      "screenshot": "step-01.png",
      "sha256": "6f8a13db733b124c70605f5c1d77f254a777c6a869ddb086a762beb2cebcb649",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 2,
      "title": "Open the device dossier",
      "actor": "Manufacturer",
      "gherkin": "And I open the current multi-EO release device",
      "status": "PASS",
      "expected": "Open the existing AtlasView Multi-EO Release Monitor dossier.",
      "observed": "The recorded device URL opens in ui-v2; this starts from a seeded dossier.",
      "screenshot": "step-02.png",
      "sha256": "ec2ff6f9b75d44189aaedfbffc7cda20a8d3afac56dd3c0ec1678e9ac87c4a90",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 3,
      "title": "Inspect the device's connections",
      "actor": "Manufacturer",
      "gherkin": "And I open the device's access page",
      "status": "PASS",
      "expected": "Open Who receives it to inspect the device's economic operators.",
      "observed": "The current access surface is available for this device.",
      "screenshot": "step-03.png",
      "sha256": "bd9b87245d08e0e7cdc79659f2e517274eea76c1a29bc192ff7c8704abad6a8c",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 4,
      "title": "Connect the authorised representative",
      "actor": "Manufacturer",
      "gherkin": "And I add the authorised representative to this device",
      "status": "PASS",
      "expected": "Add the test authorised representative to the device.",
      "observed": "The representative is added through the current access surface. A connection alone is not a document grant.",
      "screenshot": "step-04.png",
      "sha256": "289ea778241a9ae8273d65699273c5ac61166e40971427d87fc030ac0638aa54",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 5,
      "title": "Return to the device",
      "actor": "Manufacturer",
      "gherkin": "And I go back to the device",
      "status": "PASS",
      "expected": "Return to the same device before preparing a change.",
      "observed": "The browser returns to the recorded device URL.",
      "screenshot": "step-05.png",
      "sha256": "fde3b698c8e3f16de67e044d35c4ec76aa68bb9d32f2e50731881d37f57f44a1",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 6,
      "title": "Start the release candidate",
      "actor": "Manufacturer",
      "gherkin": "And I start production version \"VAL-REL-019 automated review\"",
      "status": "PASS",
      "expected": "Create the named production-version draft using the current change flow.",
      "observed": "A new draft opens for VAL-REL-019 automated review.",
      "screenshot": "step-06.png",
      "sha256": "7ad5bbb87a81daf729cb1b923680888b32b366d259ed1d8b433dab88f00b9b29",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 7,
      "title": "Prepare two document revisions",
      "actor": "Manufacturer",
      "gherkin": "And I ensure the current release has two documents",
      "status": "PASS",
      "expected": "The release contains the product label and an unaffected multilingual eIFU.",
      "observed": "Two document revisions are available in the candidate. This is seeded test content.",
      "screenshot": "step-07.png",
      "sha256": "e24be9bdba14a8f7d11a42356623173cabde567719ece4a42bdfdafa66f5494c",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 8,
      "title": "Confirm release authority",
      "actor": "Manufacturer",
      "gherkin": "And I complete and confirm the current release authority",
      "status": "PASS",
      "expected": "Complete and confirm the current release-authority fields.",
      "observed": "The journey completes the release-authority controls before releasing.",
      "screenshot": "step-08.png",
      "sha256": "e24be9bdba14a8f7d11a42356623173cabde567719ece4a42bdfdafa66f5494c",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 9,
      "title": "Choose the delivery recipient",
      "actor": "Manufacturer",
      "gherkin": "And I configure the fresh anchored-feedback delivery",
      "status": "PASS",
      "expected": "Select the product-label revision for the test importer.",
      "observed": "The selection is saved through the UI; a fresh API read contains the target revision.",
      "screenshot": "step-09.png",
      "sha256": "6f4536fae9f966d3813ae831dc4272738cd42779d895dc0a8c75d49c1377ce71",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 10,
      "title": "Require the representative's approval",
      "actor": "Manufacturer",
      "gherkin": "And I configure the authorised representative as a blocking approver",
      "status": "PASS",
      "expected": "Configure the authorised representative as a blocking approver.",
      "observed": "The representative is selected as Approve before the release action.",
      "screenshot": "step-10.png",
      "sha256": "5a7abe503f3d838d9f48f08f5b993c0c05924d09e98e3fb05e6b19fc55703668",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 11,
      "title": "Release once",
      "actor": "Manufacturer",
      "gherkin": "And I release this tracked candidate once",
      "status": "PASS",
      "expected": "Submit this candidate once for its configured approval process.",
      "observed": "One Release action submits the candidate. The next step checks the waiting state.",
      "screenshot": "step-11.png",
      "sha256": "ad3eb271293d0b37288a48162e1110c993d3d1ce850aa1f8012a86296feb90dc",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 12,
      "title": "Wait for the blocking decision",
      "actor": "Manufacturer",
      "gherkin": "Then delivery is visibly waiting for its blocking decision",
      "status": "PASS",
      "expected": "Delivery must wait while the blocking approval is outstanding.",
      "observed": "The release visibly waits for approval; delivery has not activated.",
      "screenshot": "step-12.png",
      "sha256": "44d4743f8b2ff3502aeb03da1c1c85df43d38569e63cc18a239f13043aae92f0",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 13,
      "title": "Hand over to the reviewer",
      "actor": "Authorised representative",
      "gherkin": "When the authorised representative takes over the anchored-feedback review",
      "status": "PASS",
      "expected": "Continue in the representative's own authenticated session.",
      "observed": "The selected actor, user and context are checked against the representative's retained session.",
      "screenshot": "step-13.png",
      "sha256": "a5334987a901e96b3c645798878dcd68396c7042d5131f4369983c7bdc332a42",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 14,
      "title": "Open the exact approval request",
      "actor": "Authorised representative",
      "gherkin": "And I open the exact anchored-feedback approval from the work queue",
      "status": "PASS",
      "expected": "Open this release's request from the work queue.",
      "observed": "The exact tracked release is selected; Approve the release and Frozen release documents are visible.",
      "screenshot": "step-14.png",
      "sha256": "bacd4ad003186049c5e02a9dc2eb858f11c93e5570ae65643fc84f26e59c9f5c",
      "pixels": [
        1280,
        822
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 15,
      "title": "Anchor feedback to the PDFs",
      "actor": "Authorised representative",
      "gherkin": "And I open anchored feedback on the changed and unaffected PDFs",
      "status": "PASS",
      "expected": "Create region feedback on the label and separate page feedback on the unchanged eIFU.",
      "observed": "Both anchors were asserted in their respective document tabs; API responses bind each to its exact revision and approver.",
      "screenshot": "step-15.png",
      "sha256": "50ec3c75e4f8b31074d5bc8f46844fe8982dad4ddbd3eb5c47263c7d1ef7df3a",
      "pixels": [
        1280,
        1590
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 16,
      "title": "Request a correction",
      "actor": "Authorised representative",
      "gherkin": "And I request the anchored correction on the frozen release",
      "status": "PASS",
      "expected": "Record a changes request with a reason against the frozen candidate.",
      "observed": "The approval-decision response is retained for later identity and audit checks.",
      "screenshot": "step-16.png",
      "sha256": "a9959aa2b47e41f23528208ec61fd47d884dcce3589285f59d01a65b9892e893",
      "pixels": [
        1280,
        1053
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 17,
      "title": "Confirm the recorded decision",
      "actor": "Authorised representative",
      "gherkin": "Then the anchored-feedback approval decision is durably recorded",
      "status": "PASS",
      "expected": "The application must acknowledge the submitted decision.",
      "observed": "Decision recorded. is visible. Persisted decision attribution is checked again in step 36.",
      "screenshot": "step-17.png",
      "sha256": "932cfb0b3a079f721d9bddbad437efc3d7e2d8643e3fc2baa40d76372c6064d1",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 18,
      "title": "Return to the manufacturer",
      "actor": "Manufacturer",
      "gherkin": "When the Manufacturer resumes the anchored-feedback release",
      "status": "PASS",
      "expected": "Continue in the original manufacturer's session.",
      "observed": "The acting session changes back to the manufacturer without reusing the reviewer's context.",
      "screenshot": "step-18.png",
      "sha256": "44d4743f8b2ff3502aeb03da1c1c85df43d38569e63cc18a239f13043aae92f0",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 19,
      "title": "Reopen the stopped release",
      "actor": "Manufacturer",
      "gherkin": "And I reopen the tracked release",
      "status": "PASS",
      "expected": "Open the same tracked release after the changes request.",
      "observed": "The browser opens the retained release URL; the following step checks the feedback.",
      "screenshot": "step-19.png",
      "sha256": "663527b64d43743efe1799abe680f302d9c7d3b0d6439dc56070d8b8f62c952f",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 20,
      "title": "Read and answer the finding",
      "actor": "Manufacturer",
      "gherkin": "Then the Manufacturer discovers and answers the anchored feedback",
      "status": "PASS",
      "expected": "Find both threads, reply to the label finding and mark it addressed.",
      "observed": "The reply is stored and visible; the label thread is Addressed and the independent eIFU anchor remains visible.",
      "screenshot": "step-20.png",
      "sha256": "eb27a315b882a3d5aafba77b7d17cad9c27ff0575be8958ca94229a01ff78691",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 21,
      "title": "Start a correction successor",
      "actor": "Manufacturer",
      "gherkin": "When I start the supported further-release remedy",
      "status": "PASS",
      "expected": "Use the supported further-release path to correct the frozen attempt.",
      "observed": "A separate successor draft opens; the released attempt is not edited in place.",
      "screenshot": "step-21.png",
      "sha256": "d1594cda4733118c528f29617b826693f81359ae77f35e00180f593d7e1da273",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 22,
      "title": "Check the successor setup",
      "actor": "Manufacturer",
      "gherkin": "Then the successor keeps its approver editable and shows its saved audience counts",
      "status": "PASS",
      "expected": "Keep the approver editable and reconcile saved audience counts.",
      "observed": "The UI counts match the saved selection and the approver remains editable. Counts alone do not prove recipient identities.",
      "screenshot": "step-22.png",
      "sha256": "9b58f5b2cc896624cb4bb1f45960bbcf7fef20a994d7e5f6d54c6db26eb9a819",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 23,
      "title": "Replace the affected revision",
      "actor": "Manufacturer",
      "gherkin": "When I upload the corrected immutable successor revision",
      "status": "PASS",
      "expected": "Upload a corrected label while carrying the unaffected eIFU forward.",
      "observed": "Fresh release data identifies a new label revision and the unchanged eIFU revision.",
      "screenshot": "step-23.png",
      "sha256": "74dd3d7afa6ae739b4da2bfcceccc3dfe312ba686493f96ef5429a2ddb57264f",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 24,
      "title": "Select the corrected delivery revision",
      "actor": "Manufacturer",
      "gherkin": "And I keep the corrected revision in the configured delivery",
      "status": "PASS",
      "expected": "Explicitly select the corrected label for the importer.",
      "observed": "The current recipient picker saves the successor selection and fresh data confirms the corrected revision.",
      "screenshot": "step-24.png",
      "sha256": "b7771ba0abd13127265c472a3d5946719947078534a73ecd33ac2237fb845ce6",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 25,
      "title": "Release the successor once",
      "actor": "Manufacturer",
      "gherkin": "And I release this tracked candidate once",
      "status": "PASS",
      "expected": "Submit the corrected candidate through one Release action.",
      "observed": "The successor is submitted once; its approval state is checked next.",
      "screenshot": "step-25.png",
      "sha256": "5245da38bd931a5bb1260b5bca708e6c9e3969c6672ef5bd71c119b41af313d0",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 26,
      "title": "Wait again for approval",
      "actor": "Manufacturer",
      "gherkin": "Then delivery is visibly waiting for its blocking decision",
      "status": "PASS",
      "expected": "The correction must not bypass the blocking approval.",
      "observed": "The successor visibly waits for its blocking decision.",
      "screenshot": "step-26.png",
      "sha256": "63e91fd27f4340f7ee9359dd2a7240d0b5b9327d85d1b84962a89b33c6fb7b2b",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 27,
      "title": "Hand the correction to the reviewer",
      "actor": "Authorised representative",
      "gherkin": "When the authorised representative takes over the anchored-feedback review",
      "status": "PASS",
      "expected": "Continue in the same representative's independent session.",
      "observed": "The retained reviewer identity is checked before the successor review.",
      "screenshot": "step-27.png",
      "sha256": "932cfb0b3a079f721d9bddbad437efc3d7e2d8643e3fc2baa40d76372c6064d1",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 28,
      "title": "Open the successor approval",
      "actor": "Authorised representative",
      "gherkin": "And I open the exact anchored-feedback approval from the work queue",
      "status": "PASS",
      "expected": "Choose the exact successor from the work queue.",
      "observed": "The tracked successor's approval page and frozen documents are visible.",
      "screenshot": "step-28.png",
      "sha256": "e42002605c26087b84f67c7c538c62ce9c58eeca70969c48139fbd568b8dde43",
      "pixels": [
        1280,
        834
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 29,
      "title": "Review the carried finding",
      "actor": "Authorised representative",
      "gherkin": "Then the reviewer sees the carried finding without a stale anchor",
      "status": "PASS",
      "expected": "Keep feedback lineage while preventing a stale anchor on the replacement PDF.",
      "observed": "The reply and origin survive. The old region anchor is absent on the replacement; the unchanged eIFU keeps its own anchor.",
      "screenshot": "step-29.png",
      "sha256": "5dd7c97f5a41fb64f3583e249fabaada347889277b9a1fd92925de8576f94af8",
      "pixels": [
        1280,
        1590
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 30,
      "title": "Resolve the corrected finding",
      "actor": "Authorised representative",
      "gherkin": "When I resolve the carried anchored finding",
      "status": "PASS",
      "expected": "Resolve the carried label finding on the successor.",
      "observed": "The resolution request succeeds and the thread visibly reads Resolved.",
      "screenshot": "step-30.png",
      "sha256": "e6b6ec07d9178d54addb22c6e437bf1581762acd2783babeb821e4a949167f35",
      "pixels": [
        1280,
        1414
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 31,
      "title": "Approve the correction",
      "actor": "Authorised representative",
      "gherkin": "And I approve the anchored-feedback successor",
      "status": "PASS",
      "expected": "Approve and record the successor's decision.",
      "observed": "The reviewer submits the approval through Record decision. This is a synthetic test decision.",
      "screenshot": "step-31.png",
      "sha256": "fb0ec2f90fcd7838cb33273201a17d4d8acc27bfa800ae2c9cd501d9a1fdb411",
      "pixels": [
        1280,
        833
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 32,
      "title": "Confirm the approval was recorded",
      "actor": "Authorised representative",
      "gherkin": "Then the anchored-feedback approval decision is durably recorded",
      "status": "PASS",
      "expected": "Acknowledge the approved decision in the reviewer's view.",
      "observed": "Decision recorded. is visible; the exact persisted decision is checked in step 36.",
      "screenshot": "step-32.png",
      "sha256": "6d20219de5889bfe37d856a291d588ab08c7e3011fea8775b2bf1e7bf70f1586",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 33,
      "title": "Return to delivery oversight",
      "actor": "Manufacturer",
      "gherkin": "When the Manufacturer resumes the anchored-feedback release",
      "status": "PASS",
      "expected": "Return to the manufacturer's existing session after approval.",
      "observed": "The manufacturer takes over without another Release action.",
      "screenshot": "step-33.png",
      "sha256": "63e91fd27f4340f7ee9359dd2a7240d0b5b9327d85d1b84962a89b33c6fb7b2b",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 34,
      "title": "Reopen the successor",
      "actor": "Manufacturer",
      "gherkin": "And I reopen the tracked release",
      "status": "PASS",
      "expected": "Open the exact successor to inspect its final state.",
      "observed": "The retained successor URL opens in ui-v2.",
      "screenshot": "step-34.png",
      "sha256": "8a55c3b81588924708a81db4ac68a4497d2a7447ab23f556e84c96875af67ea3",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 35,
      "title": "Observe automatic delivery",
      "actor": "Manufacturer",
      "gherkin": "Then the tracked release is delivered without another Release action",
      "status": "PASS",
      "expected": "The blocking approval must activate delivery without a second release action.",
      "observed": "The tracked successor is delivered after approval. The manufacturer has not pressed Release again.",
      "screenshot": "step-35.png",
      "sha256": "8a55c3b81588924708a81db4ac68a4497d2a7447ab23f556e84c96875af67ea3",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 36,
      "title": "Reconstruct the retained history",
      "actor": "Manufacturer / automated API checks",
      "gherkin": "And fresh reads reconstruct the anchored-feedback release history",
      "status": "PASS",
      "expected": "Fresh reads must preserve both attempts, decisions, actors, feedback lineage and final delivery.",
      "observed": "Persisted identity, audit, decision and feedback checks pass. The picture shows the final UI; the database facts come from assertions.",
      "screenshot": "step-36.png",
      "sha256": "8a55c3b81588924708a81db4ac68a4497d2a7447ab23f556e84c96875af67ea3",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 37,
      "title": "Switch to an unrelated company",
      "actor": "Unrelated manufacturer",
      "gherkin": "When the unrelated Manufacturer takes over for the isolation check",
      "status": "PASS",
      "expected": "Use a separate company session for the isolation check.",
      "observed": "The acting session switches to the foreign manufacturer; the next steps test access refusal.",
      "screenshot": "step-37.png",
      "sha256": "d21cf4323ce1c6267dd15cbf063d77b2aedafe2ec16be088f0020029762441f5",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 38,
      "title": "Attempt foreign reads and writes",
      "actor": "Unrelated manufacturer / automated API checks",
      "gherkin": "And I try to read and mutate the exact anchored feedback",
      "status": "PASS",
      "expected": "An unrelated company must not read or mutate this feedback.",
      "observed": "The scenario executes direct read and mutation refusal checks using the foreign session.",
      "screenshot": "step-38.png",
      "sha256": "8a38bf9de49413e39e3d22305437ab82b635af64d191bbaa021014d22d428d16",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    },
    {
      "index": 39,
      "title": "Show the non-disclosing result",
      "actor": "Unrelated manufacturer",
      "gherkin": "Then the foreign anchored-feedback view is non-disclosing and has no lifecycle actions",
      "status": "PASS",
      "expected": "The foreign UI must disclose no protected feedback and offer no lifecycle actions.",
      "observed": "The non-disclosing view and absence of lifecycle controls are asserted. This is the final negative-control step.",
      "screenshot": "step-39.png",
      "sha256": "8a38bf9de49413e39e3d22305437ab82b635af64d191bbaa021014d22d428d16",
      "pixels": [
        1280,
        720
      ],
      "pdfViewport": [
        0,
        0,
        1280,
        720
      ]
    }
  ],
  "fullSuiteContext": {
    "sourceCommit": "ac571349833908a92626548a4ecc2e908e195763",
    "runId": "local-ac57134983-20260907T175944Z",
    "normal": {
      "passed": 70,
      "failed": 1,
      "skipped": 0
    },
    "auth": {
      "passed": 2,
      "failed": 0
    },
    "resultsSha256": "1711fbc78a1e695c444dc656b5fa5dece23c1cdfdffe693b56f7d8bee1284743",
    "authSummarySha256": "1ba8b1e4aa6897fe64a47dd154a3b2af1f287388362a2f7b3cf32d75e356a6b7"
  },
  "pages": 44,
  "pdfSha256": "79edb8c6d3bdc0ecc571c4a49ec13c9853953a54e91582845183e7a574fbcdd0",
  "htmlSha256": "216f029f23ba17cf7d44048cb846917d74b4911f15ee7f5a21c3fe748aed32e4"
}