REPOSITORY SOURCE

surface-materials-ci.json

docs/evidence/surface-materials-ci.json

1{
2  "format": 1,
3  "recordedAt": "2026-10-24T23:57:40.627257+00:00",
4  "source": "8b51363b17be492aefb81ccdb510f39a77d2f902",
5  "url": "https://github.com/jasona/darkwind-web/actions/runs/40143937451",
6  "status": "completed",
7  "conclusion": "failure",
8  "jobs": {
9    "core": "success",
10    "container": "success",
11    "browserProbe": "success",
12    "browserMultiplayer": "success",
13    "browserPlayer": "failure"
14  },
15  "player": {
16    "passed": 11,
17    "failed": 1,
18    "test": "graphics recovery preserves the world, releases held movement and bounds repeated losses",
19    "failure": "Timeout 60000ms exceeded while waiting on the predicate",
20    "location": "tests/browser/player.spec.ts:178, first replacement pixel check",
21    "artifact": {
22      "name": "playtest-evidence-player",
23      "id": 12579978249,
24      "trace": "test-results/player-graphics-recovery-p-c6bff--and-bounds-repeated-losses/trace.zip"
25    },
26    "trace": {
27      "readyObservedMs": 311030.977,
28      "screenshotCall": "call@647",
29      "screenshotStartMs": 311107.402,
30      "screenshotEndMs": 385819.689,
31      "screenshotDurationMs": 74712.287,
32      "screenshotResult": "binary buffer; no error on screenshot call",
33      "pixelResult": "No post-replacement pixel statistics returned before the poll deadline",
34      "frame": "surface-materials-ci-recovery.jpeg",
35      "lateFrameTimestampMs": 385825.139,
36      "earlierFrame": {
37        "timestampMs": 347091.956,
38        "image": "surface-materials-ci-recovering.jpeg",
39        "observation": "Recovery dialog still visible with no restored world at this screencast frame, after DOM had reported ready."
40      }
41    },
42    "finding": "The late trace frame shows the recovered world, after the pixel poll deadline. An earlier screencast frame still shows the recovery dialog despite DOM readiness. Screenshot call exceeded the surrounding pixel poll budget. The cause of the capture/compositor stall remains unproven; eventual visibility does not establish timely visual recovery or a passing recovery test.",
43    "action": "Retain failure evidence and run the complete current suite; do not extend deadlines or claim a runtime fix without evidence."
44  },
45  "container": "Production-only surface import and both notice HTTP routes passed. The prior container notice failure is resolved on this recorded commit."
46}
47