feat(frontend): shared pod-wide test audio

Make the "Test audio" connectivity check pod-wide instead of local to the
publisher. Shared on/off state is derived from the presence of the podman-beat
track across participants (self-syncing on join/leave). Any participant can
stop it: the owner unpublishes directly; non-owners send a new additive
BEAT_STOP data message that the owner honors. Drives the button label, status
line, and status waveform for everyone, and guards against rapid-double-click
double-publish and mid-start unmount leaks.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Kartikeya
2026-06-27 23:39:34 -07:00
parent e0757088ef
commit 7269098ea3
4 changed files with 230 additions and 24 deletions
+3 -1
View File
@@ -10,7 +10,9 @@ export type DataMessage =
| { type: 'HERMES_MESSAGE'; message: HermesMessage }
| { type: 'VOICE_CUE'; text: string }
| { type: 'ACK'; interventionId: string; status: InterventionStatus; note?: string }
| { type: 'GIT_REPORT'; report: LocalGitReport };
| { type: 'GIT_REPORT'; report: LocalGitReport }
/** Any participant → the current test-audio owner: stop publishing the shared beat. */
| { type: 'BEAT_STOP' };
/** A targeted teammate/project-channel notification from the Hermes action layer. */
export interface HermesMessage {