testsAndMisc/docs
Krzysztof kuhy Rudnicki 3ae53499e6 g29 shifter: detect PS4 mode (046D:C260) instead of failing silently
On the 2026-09-15 and 2026-09-17 boots the wheel enumerated as 046D:C260
(PS3/PS4 selector in PS4 position, bound by hid-generic). The BPF udev
rule, the ensure unit and its hotplug rule all keyed on C24F, so the unit
failed once with "no G29 found" and nothing was said; 1st/3rd stayed on
the firmware's bad decode until the selector was flipped a day later.

- fixes/g29_wheel_mode.sh (new, sourced): classify the HID bus as
  native/ps4/compat/absent; root-safe desktop notification via
  /run/user/*/bus + sudo -u.
- --ensure: absent -> exit 0; ps4/compat -> exit 1 + critical
  notification; native -> attach. --status prints the mode first.
- g29-shifter-bpf.service: Restart=on-failure, RestartSec=5min so a
  notification lost before the session bus exists at boot is re-sent.
- 99-g29-shifter-ensure.rules: also fires on C260.
- tests/test_fix_g29_shifter.bats: 13 tests against a fake sysfs tree.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NVfC2T6DyvCFqse9A99zef
2026-09-18 10:47:18 +02:00
..
explanations Re-point paths for the ~ reorganisation (home-tidy) 2026-09-11 20:50:19 +02:00
superpowers g29 shifter: detect PS4 mode (046D:C260) instead of failing silently 2026-09-18 10:47:18 +02:00
DOCS-agent-harness-evaluation-2026-08-18.md Re-point paths for the ~ reorganisation (home-tidy) 2026-09-11 20:50:19 +02:00
DOCS-app-split-recipes.md Adopt the four markdown namespaces and gate them 2026-08-24 15:55:46 +02:00
DOCS-device-owner-research.md Re-point paths for the ~ reorganisation (home-tidy) 2026-09-11 20:50:19 +02:00
DOCS-dns-filtering-parked.md Re-point paths for the ~ reorganisation (home-tidy) 2026-09-11 20:50:19 +02:00
DOCS-kcov-under-report.md Adopt the four markdown namespaces and gate them 2026-08-24 15:55:46 +02:00
DOCS-python-split-recipes.md Adopt the four markdown namespaces and gate them 2026-08-24 15:55:46 +02:00
DOCS-restructure-live-state.md Re-point paths for the ~ reorganisation (home-tidy) 2026-09-11 20:50:19 +02:00
DOCS-shared-checkout-safety.md Re-point paths for the ~ reorganisation (home-tidy) 2026-09-11 20:50:19 +02:00
DOCS-shell-split-harness.md Adopt the four markdown namespaces and gate them 2026-08-24 15:55:46 +02:00
DOCS-shell-split-recipes.md Adopt the four markdown namespaces and gate them 2026-08-24 15:55:46 +02:00
DOCS-shell-split-verification.md Adopt the four markdown namespaces and gate them 2026-08-24 15:55:46 +02:00
DOCS-syncyomi-restore-runbook.md Re-point paths for the ~ reorganisation (home-tidy) 2026-09-11 20:50:19 +02:00
mcp-shortlist.html docs: add MCP server security-triage shortlist 2026-07-17 19:16:31 +02:00