REPOSITORY SOURCE

skeletal-ci.json

docs/evidence/skeletal-ci.json

1{
2  "format": 1,
3  "recordedAt": "2026-10-25T00:52:57.201854+00:00",
4  "source": "260f7e46cc5ec99b71d6ad0b6abc2765376557af",
5  "url": "https://github.com/jasona/darkwind-web/actions/runs/40147682945",
6  "status": "completed",
7  "conclusion": "failure",
8  "jobs": {
9    "core": "success",
10    "browser (player)": "failure",
11    "container": "success",
12    "browser (probe)": "failure",
13    "browser (multiplayer)": "success"
14  },
15  "container": "Passed production image, skinned-panel compiler import, shared-room persistence and clean shutdown acceptance.",
16  "probe": {
17    "passed": 8,
18    "failed": 2,
19    "firstCompleteRun": "All checks passed, including nine exact skeletal reference comparisons and device reconstruction; retained in skeletal-ci-capabilities.json.",
20    "failures": [
21      "owned renderer works on the main thread and survives worker resize, device loss and restart",
22      "replay worker failure and cancellation release ownership and allow recovery"
23    ],
24    "finding": "Both tests exceeded their 120-second overall budget during a subsequent complete run. Their DOM snapshots show Reading the light with cycles 1 and 2 complete and cycle 3 active, not a reported worker deadline failure.",
25    "ownedRendererTrace": {
26      "firstRunClickMs": 9867.833,
27      "secondRunClickMs": 80798.313,
28      "elapsedBeforeSecondRunMs": 70930.48
29    },
30    "replayRecoveryTrace": {
31      "firstRunClickMs": 373015.981,
32      "secondRunClickMs": 426698.642,
33      "cancelClickMs": 481055.101,
34      "thirdRunClickMs": 481220.642,
35      "elapsedBeforeThirdRunMs": 108204.661
36    },
37    "contexts": [
38      "skeletal-ci-probe-replay-error.md",
39      "skeletal-ci-probe-retry-error.md"
40    ],
41    "correction": "Allocate two 90-second run checks plus 30 seconds of overhead (210 seconds) to the two-run test, and three plus overhead (300 seconds) to failure/cancel/recovery. Worker/renderer/replay operation deadlines and every acceptance assertion remain unchanged. Remote verification of the adjusted test budgets is pending."
42  },
43  "player": {
44    "passed": 11,
45    "failed": 1,
46    "finding": "The first recovered-world pixel poll exceeded 60 seconds. Its final page screenshot took 59979.495ms and returned without a Playwright error. Fonts completed within 6ms; most latency is after font readiness. Trace frames during the call show the recovery overlay at 310803.513ms and 339533.886ms, then the world at 368191.481ms. This establishes delayed visible presentation/capture, not its root cause.",
47    "screenshots": [
48      {
49        "call": "call@623",
50        "startMs": 289211.511,
51        "endMs": 298559.202,
52        "durationMs": 9347.690999999992,
53        "error": null
54      },
55      {
56        "call": "call@641",
57        "startMs": 302481.544,
58        "endMs": 305195.64,
59        "durationMs": 2714.0960000000196,
60        "error": null
61      },
62      {
63        "call": "call@653",
64        "startMs": 308193.953,
65        "endMs": 368173.448,
66        "durationMs": 59979.494999999995,
67        "error": null
68      }
69    ],
70    "context": "skeletal-ci-player-error.md",
71    "frames": [
72      {
73        "file": "skeletal-ci-player-during-capture.jpeg",
74        "timestampMs": 310803.513
75      },
76      {
77        "file": "skeletal-ci-player-middle.jpeg",
78        "timestampMs": 339533.886
79      },
80      {
81        "file": "skeletal-ci-player-late.jpeg",
82        "timestampMs": 368191.481
83      }
84    ],
85    "status": "Unresolved. No timeout or pixel criterion changed for this failure."
86  },
87  "priorCi": "animation-clips-ci.json"
88}
89