Repository navigation
Description
Candidate status
Selected by Cycle 9 research gate #67, but blocked until Cycle 8 issue #58 closes and the Cycle 9 decision PR closes #67. This is a verified repository metadata mismatch; no independent user report demonstrates this exact OpenController failure.
Opportunity
Make ControllerAdapterCapabilities match the payloads actually emitted by configured native bridge adapters. NativeBridgeAdapter and NativeProcessBridgeAdapter currently advertise touchpad, gyro, and profile HID support without considering options that can suppress those payloads. Agents may select a backend based on a capability it is configured not to emit.
Repository evidence
- Audit baseline: main
e6d576987c9085a3377ce0e10791f56ce1994ada. packages/core/src/adapters/native-bridge.tsandnative-process.tsreturn static capability metadata, whilepackages/core/src/bridge/native.tsomits state, extensions, or profile HID data whenincludeState,includeExtensions, orincludeProfileHidReportdisables them.- Existing adapter capability tests cover default paths but not a configuration that suppresses every touchpad/motion-bearing output.
- The API describes adapter serialization support; it cannot establish what an operating system, browser, physical device, or game ultimately exposes.
External evidence and limits
- Ebitengine #3854, opened 2026-10-03, requests a vibration-availability query so a game can hide a rumble setting when unsupported.
- Steam for Linux #13601, opened 2026-09-10, reports working controls but no rumble through a SteamOS path.
- SDL #16237, opened 2026-09-03, reports live but invalid motion sensor values for a specific controller/driver path.
These are adjacent game-library or host reports, not evidence that OpenController caused those failures or that the metadata mismatch is prevalent.
Acceptance if selected later
- Capability booleans, supported commands, and advertised report/output formats reflect the configured adapter's emitted payloads when state, extensions, or profile HID reports are disabled.
- Tests cover default settings and a configuration with no touchpad/motion-bearing output.
- Documentation distinguishes SDK adapter serialization capability from OS, browser, device, and game support.
Non-goals
Do not detect physical-device or game support, query host APIs, change bridge protocol payloads, or claim to repair SDL, Steam, or game-library behavior.
Estimate: low to medium; primary risk is defining capability fields precisely across output combinations.
Cycle 9 acceptance refinement
- Cover both
NativeBridgeAdapterandNativeProcessBridgeAdapterwith their default output options and the fully suppressed combinationincludeState: false,includeExtensions: false, andincludeProfileHidReport: false. - Ensure capability booleans and advertised output/report formats do not claim touchpad, motion, or profile HID payloads the configured serializer omits.
- Keep
supportedCommandsaligned with accepted runtime actions; suppressing a payload channel does not itself make a command unsupported. - Document that this metadata describes OpenController adapter serialization capability, not OS, browser, device, Steam, or game support.
Activity