mirror of
https://github.com/block/buzz.git
synced 2026-11-05 00:41:28 +00:00
Polish Huddle voice controls (#4694)
## Summary - add a visible Stop control for interrupting agent speech - make push-to-talk available by default while preserving manual mute controls - refine agent management, muted audio states, drawer layering, and return navigation - suppress duplicate notification sounds for Huddle messages ## Why Huddles could trap users behind long agent speech, hide useful agent controls, and leave temporary Huddle state visible after the call. The drawer also regressed when the terminal substrate began painting behind the rounded app surface. ## Validation - `just desktop-ci` - focused Huddle Playwright coverage for the drawer, speech interruption, agent picker, and leave navigation --------- Signed-off-by: kenny lopez <klopez4212@gmail.com> Signed-off-by: Wes <wesbillman@users.noreply.github.com> Co-authored-by: Wes <wesbillman@users.noreply.github.com> Co-authored-by: Carl <c7ebe626f000404285d3686e1dc74cc07cc60a9754a150041ba132e14bd3e2ec@buzz.block.builderlab.xyz>
This commit is contained in:
@@ -20,6 +20,7 @@ import {
|
||||
import {
|
||||
playNotificationSound,
|
||||
resolveSlotSound,
|
||||
shouldPlayNotificationSound,
|
||||
} from "@/features/notifications/lib/sound";
|
||||
import type { Channel, RelayEvent } from "@/shared/api/types";
|
||||
|
||||
@@ -31,6 +32,7 @@ export function useAppShellDesktopNotifications({
|
||||
notificationSettings,
|
||||
openSearchHit,
|
||||
pubkey,
|
||||
silentChannelIds,
|
||||
}: {
|
||||
channels: Channel[];
|
||||
enabled: boolean;
|
||||
@@ -41,6 +43,7 @@ export function useAppShellDesktopNotifications({
|
||||
hit: import("@/shared/api/types").SearchHit,
|
||||
) => Promise<unknown>;
|
||||
pubkey?: string;
|
||||
silentChannelIds?: ReadonlySet<string>;
|
||||
}) {
|
||||
const handleChannelNotification = React.useEffectEvent(
|
||||
(_channelId: string, event: RelayEvent) => {
|
||||
@@ -80,7 +83,9 @@ export function useAppShellDesktopNotifications({
|
||||
},
|
||||
}).then((didSend) => {
|
||||
if (!didSend) return;
|
||||
playNotificationSound(resolveSlotSound(notificationSettings, "dm"));
|
||||
if (shouldPlayNotificationSound(channel.id, silentChannelIds)) {
|
||||
playNotificationSound(resolveSlotSound(notificationSettings, "dm"));
|
||||
}
|
||||
void requestDockBounce();
|
||||
});
|
||||
},
|
||||
@@ -126,9 +131,11 @@ export function useAppShellDesktopNotifications({
|
||||
},
|
||||
}).then((didSend) => {
|
||||
if (!didSend) return;
|
||||
playNotificationSound(
|
||||
resolveSlotSound(notificationSettings, "thread_reply"),
|
||||
);
|
||||
if (shouldPlayNotificationSound(channelId, silentChannelIds)) {
|
||||
playNotificationSound(
|
||||
resolveSlotSound(notificationSettings, "thread_reply"),
|
||||
);
|
||||
}
|
||||
void requestDockBounce();
|
||||
});
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user