Skip to content

Fix Audio Haptics toggle, rename Haptics to HD Haptics, add controller mock#1

Merged
LordVicky merged 1 commit into
mainfrom
fix-audio-haptics-toggle
Jul 8, 2026
Merged

Fix Audio Haptics toggle, rename Haptics to HD Haptics, add controller mock#1
LordVicky merged 1 commit into
mainfrom
fix-audio-haptics-toggle

Conversation

@LordVicky

@LordVicky LordVicky commented Jul 8, 2026

Copy link
Copy Markdown
Owner

Summary

  • Fix "Audio Haptics can't be turned off": the header switch labeled "Audio Haptics" only toggled the panel view (setAudioHapticsOpen), not the feature, so users could never disable audio-reactive haptics. It now enables/disables audioReactiveHapticsEnabled and syncs the panel open state.
  • Firmware ack best-effort: persisting the setting and stopping the host mirror engine no longer depend on the SET_AUDIO_REACTIVE_HAPTICS ack, which no-ops (and throws) when the DSP is already at 0 and settings_revision doesn't advance — previously leaving the host audio-helper-linux.mjs mirror running after a disable.
  • Rename "Haptics" → "HD Haptics" (selector, card header, Overview slider, summary, status text, aria-labels); "Rumble" and "Audio Haptics" stay distinct and the nav tab name is unchanged.
  • Add MockCompanionTransport (gated by DS5_BRIDGE_MOCK_CONTROLLER=1) so layout-check/visual-smoke UI scripts render the app connected without real hardware.

Testing

  • npx vitest run — 227 passing (incl. new mock-companion-transport and app-behavior tests)
  • tsc typecheck clean
  • Verified end-to-end via Playwright: app launches connected with the mock, Audio Haptics switch enables/disables and opens/closes the panel; also hardware-confirmed the disable stops the host mirror.

Note

The full layout-check.mjs still trips on a pre-existing startup-tutorial "Continue In 5" countdown gate, unrelated to these changes.

…r mock

The header switch labeled "Audio Haptics" only toggled the panel view
(setAudioHapticsOpen), not the feature, so users could never disable
audio-reactive haptics. It now enables/disables audioReactiveHapticsEnabled
and syncs the panel open state (toggleAudioHapticsFeature).

Also make the firmware SET_AUDIO_REACTIVE_HAPTICS command best-effort:
persisting the setting and reconciling the host mirror engine no longer
depend on the firmware ack, which no-ops (and throws) when the DSP is
already at 0 and settings_revision does not advance -- previously leaving
the host audio-helper mirror running after a disable.

Rename the user-facing "Haptics" label to "HD Haptics" (selector, card
header, Overview slider, summary, status text, aria-labels), keeping
"Rumble" and "Audio Haptics" distinct and the nav tab name unchanged.

Add MockCompanionTransport (gated by DS5_BRIDGE_MOCK_CONTROLLER=1) so the
layout-check and visual-smoke UI scripts can render the app in its
connected state without real hardware.
@LordVicky
LordVicky force-pushed the fix-audio-haptics-toggle branch from 8463771 to 0cecd4a Compare July 8, 2026 09:30
@LordVicky
LordVicky merged commit 70b3859 into main Jul 8, 2026
@LordVicky
LordVicky deleted the fix-audio-haptics-toggle branch July 8, 2026 09:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant