Skip to content

Cycle 8 research gate: build an evidence-backed controller improvement DAG #57

Closed

Description

@SYMBaiEX

Goal

Select a buildable, evidence-backed Cycle 8 wave for OpenController’s AI and gaming controller workflows. Convert the selected work into small issues with measurable acceptance criteria, named package/file ownership, and an explicit dependency DAG; defer upstream or untestable host work.

Research coverage (2026-10-05)

The Luna research swarm searched recent public GitHub issues/discussions, OpenAI Developer Community, Hacker News, SDL, Steam for Linux, Proton, Godot, Unity/Unity MCP, Linux gaming projects, controller tooling, and accessibility-oriented projects. Source findings are observations about the linked authors, not OpenController incidents or prevalence claims.

Fresh signals

Source Observed report and workaround Fit/confidence
Asahi-map #6, 2026-09-29 A systemd service opens /dev/uinput before udev applies access, exits after roughly 80 ms, and misses a later permission change. The thread suggests a static node, module preload, or bounded retry. Strong Linux helper fit; moderate evidence (one detailed report). OpenController already emits a static-node udev rule; first-open retry remains a distinct candidate.
Omarchy #8373, 2026-08-26 Steam sees a virtual pad while games receive no input because /dev/uinput remains root-owned mode 0600. The report suggests a systemd-tmpfiles permission rule. Good Linux diagnostics/docs fit; one report. A retry cannot fix persistent denial, so permission ownership must remain an explicit administrator choice.
Godot #105047, 2025-04-05; SDL #13177, 2025-06-05 with 2026 follow-up Reports describe stale axes/buttons after device loss/reconnect; workarounds include reconnecting or rebooting, and later Godot comments report a fix. Possible opt-in stale-control lease in core; medium repository fit and low-to-medium evidence because failures belong to input consumers/drivers. API and cleanup semantics need review.
Accessible-Chess #5, 2026-08-14; OpenAI game-development thread, 2026-02-16 One app requested user-owned aliases, conflict warnings, and keyboard recovery; a separate game demo added arrow/space bindings after a player could only use WASD. Possible user-configurable semantic action-map example/docs; low-to-medium evidence, good API fit. This SDK does not capture physical input or own a consuming app’s settings UI.
libvirtualhid #140, 2026-09-11 After Windows sleep/resume, a VHF device stopped working while its broker remained running; the author reports reboot was required. Exploratory Windows diagnostic opportunity; low confidence and not ready to build because OpenController’s VHF driver is a generated kit without a maintained signed test installation.
Quasar #348, 2026-09-23 A Steam app-container report describes swapped face buttons despite a standard browser mapping. Already tracked under existing OpenController issue #21; do not create a duplicate. Existing #9 tests OpenController report encoding but do not prove Steam/SDL consumer identity.

Related signals not selected for new issues

  • Steam for Linux #13665 is already in the Cycle 7 source log; Steam #11623 overlaps deferred helper readiness Wait for native helper readiness acknowledgement #46.
  • Maida #5 reports WebKitGTK without Gamepad.vibrationActuator; existing HID/native docs already say platform translation is conditional. Revisit only if a concrete docs gap remains after audit.
  • OpenAI forum game-player request, browser-use #4939, Unity MCP #1283, and HN computer-use latency reports mainly concern perception, screenshots, or model timing outside this SDK boundary.
  • macOS DriverKit approval limits are already stated in the doctor and setup docs. SDL/Steam physical-device mapping and haptics issues belong upstream unless OpenController-specific behavior is isolated.

Coverage gaps

Reddit requests returned HTTP 403. Some search-engine, official documentation, and accessibility-community endpoints also returned 403; Hacker News search had few directly actionable controller reports; Steam Community search was sparse; GitHub search rate-limited some follow-up queries. No first-party OpenController telemetry or user survey is available. Counts and replies in the reviewed issues are not prevalence estimates.

Gate checklist

Initial candidate shortlist

  1. Linux uinput first-open retry and persistent permission diagnostics (highest fit; split transient retry from administrator-owned permission changes if needed).
  2. Optional expiry lease for persistent controller state (safety value, but requires careful API and timer-race design).
  3. User-configurable semantic action-map example and boundaries (good SDK fit, limited external recurrence evidence).
  4. Windows VHF post-resume diagnostics (defer pending a maintained installed driver and host test path).

DAG and tracking

This gate belongs to Cycle 8 milestone 7. Candidate issues created from the review are blocked by this issue until the decision PR closes it. The recurring research/build/review/merge loop is tracked in #55. Project V2 creation remains blocked by missing integration Projects write access; use milestone 7, cycle-8 labels, and GitHub issue dependencies meanwhile.

Cycle 8 decision (2026-10-05)

Ranked build backlog

Rank Issue Decision User value, evidence, repository fit Cost and risk
1 #58 bounded Linux uinput first-open retry Selected Helps Linux users whose helper starts before /dev/uinput access settles. Two recent, detailed external reports describe distinct startup/access failures; one is transient. Direct fit in the C helper. Low/medium; bounded retry, deterministic helper coverage, no permission mutation.
2 #59 persistent uinput permission guidance Selected Helps users diagnose existing root-owned/restrictive device nodes. Same two reports, but the persistent case needs a separate remedy. Direct fit in doctor/docs. Low/medium; user-reviewed guidance only, no privileged writes. Independent of #58.
3 #61 semantic action-map example Selected Helps app/agent developers define alternative caller-owned input bindings for stable semantic actions. Two adjacent examples, with low-to-medium recurrence confidence. High API fit and a cheap, hardware-free runnable example. Low; no new API, input capture, settings UI, or host/game claims.
4 #60 opt-in persistent-state expiry lease Deferred Could limit stale persistent output, but cited reports concern consumer/driver disconnect state and later report an upstream fix; they do not demonstrate an OpenController failure or that an in-process lease solves it. Medium/high due timer, queue, cleanup, and error-precedence semantics. Revisit with a reproducible SDK-specific case or stronger product evidence.
5 #62 Windows post-resume health Deferred One VHF report was closed after the upstream project reported a fix. OpenController lacks a maintained installed-driver test path. Not currently buildable or verifiable; first establish driver/test ownership.

Selected DAG and build goal

The gate and DAG decision are recorded in roadmap PR #63. Once #63 merges and closes this gate, three implementation lanes may run in parallel:

flowchart TD
  G[Cycle 8 gate #57] --> D[Decision and ranking PR #63]
  D --> L[#58 bounded uinput retry]
  D --> P[#59 permission diagnosis and guidance]
  D --> A[#61 semantic action-map example]
  L --> R[Independent exact-head review and required checks]
  P --> R
  A --> R
  R --> M[Merge each ready PR; update roadmap and issue DAG]
  M --> N[Open Cycle 9 research gate]
  G -. deferred .-> X[#60 state expiry lease]
  G -. deferred .-> W[#62 Windows VHF health]
Loading

The selected implementation issues are intentionally parallel: their owned files and behavior do not depend on one another. Stack PRs only when a real code or file dependency exists. The decision PR is the shared prerequisite for all three lanes.

Gate checklist update

  • Rank opportunities by value, evidence, fit, cost, and risk; select bounded lanes and record deferrals.
  • Create evidence-backed issues with acceptance criteria, file ownership, labels, and milestone placement.
  • Set native blocked-by edges from this gate to the selected issues.
  • Record the selected DAG in the roadmap decision PR before implementation starts.

The public-web source log and coverage limits above remain the evidence record. These reports are examples, not prevalence estimates or OpenController incident reports.

Metadata

Metadata

Assignees

No one assigned

    Labels

    cycle-8Tracked work for OpenController AI and Gaming Improvement Cycle 8

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions