REPOSITORY SOURCE

controller-acceptance.json

docs/evidence/controller-acceptance.json

1{
2  "sourceBase": "19ea69d9ed455ee047b0b380c4eb1f8979d798d7",
3  "sourceSha256": {
4    "packages/input/gamepad.ts": "a85e5f151466f3cde0c5d180e346125caa5234a2c643b224aef0d5cf3fe05b6b",
5    "games/darkwind/gamepad.ts": "4d21d7edc98c06c75334666191486b0ea736e69f41b84bf723df06023cecf477",
6    "apps/player/gamepad.ts": "743d12520a70e925fdc19026d5b872074dbc641959589333a2a0f74b821a9085",
7    "apps/player/main.ts": "ffad1416379de2df97d2460ae25c813d76e390d6888aff69c04684eea588d61e",
8    "apps/player/style.css": "4fbed1d274cacc1b916976eebe2e8284e016a54a2094185e960f97900dd6f71b",
9    "tests/gamepad.test.ts": "2e5892f28f86416ca472c704aa02d0454d98b33933e27892c7fc828001286185",
10    "tests/browser/gamepad.spec.ts": "6735883f0e1c40b451400298b796be2e461fa155ac401266f004e5203ca3a5c7"
11  },
12  "preview": "garden-ferry.4 (unchanged)",
13  "headless": {
14    "passed": 385,
15    "failed": 0
16  },
17  "checks": {
18    "typescript": "passed",
19    "importBoundaries": 82,
20    "productionClientBuild": "passed in isolated browser server"
21  },
22  "browser": {
23    "combined": {
24      "stats": {
25        "startTime": "2026-10-25T05:44:59.564Z",
26        "duration": 49574.533,
27        "expected": 3,
28        "skipped": 0,
29        "unexpected": 1,
30        "flaky": 0
31      },
32      "cases": [
33        {
34          "title": "rebound controls move and jump, reject conflicts, update hints and survive reload",
35          "status": "expected",
36          "results": [
37            "passed"
38          ]
39        },
40        {
41          "title": "rebound interaction and chat remain playable while focus and reconnect release held keys",
42          "status": "expected",
43          "results": [
44            "passed"
45          ]
46        },
47        {
48          "title": "invalid and unwritable control storage keep defaults and session rebinding usable",
49          "status": "expected",
50          "results": [
51            "passed"
52          ]
53        },
54        {
55          "title": "controller drives real simulation, menus and safe neutral rearming through disconnect and focus loss",
56          "status": "unexpected",
57          "results": [
58            "failed"
59          ]
60        }
61      ]
62    },
63    "finalController": {
64      "stats": {
65        "startTime": "2026-10-25T05:46:38.450Z",
66        "duration": 14320.116,
67        "expected": 1,
68        "skipped": 0,
69        "unexpected": 0,
70        "flaky": 0
71      },
72      "cases": [
73        {
74          "title": "controller drives real simulation, menus and safe neutral rearming through disconnect and focus loss",
75          "status": "expected",
76          "results": [
77            "passed"
78          ]
79        }
80      ]
81    },
82    "distinctJourneysAccepted": 4
83  },
84  "corrections": [
85    "Analog unit assertion uses a numerical tolerance for floating-point rescaling.",
86    "The controller browser test now asserts the existing Your satchel. heading.",
87    "Final controller pass also verifies the explicit focus outline and D-pad slider adjustment."
88  ],
89  "visualReview": "Controller guide inspected at 1280 x 1000; full guide, status, mapping and return button visible.",
90  "limits": [
91    "Controller snapshots are simulated in browser acceptance; physical USB/Bluetooth Xbox/PlayStation hardware remains unverified.",
92    "Standard mapping only; controller remapping, deadzone preferences, vibration and touch remain open.",
93    "Keyboard remains necessary for text and keyboard rebinding; audio activation may require a native mouse/keyboard gesture.",
94    "No world/save/network protocol changes or deployment."
95  ]
96}
97