Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ All notable changes to this project will be documented in this file.

### Fixes

- Fix input bar bottom padding lost on desktop due to Tailwind v4 `padding-block` cascade overriding `pb-safe`; align chat Send button height with workspace
- Fix voice session immediately disconnecting with WebSocket 1007 by replacing `sendClientContent` with `sendRealtimeInput` to avoid mixing input modes
- Fix workspace intent bar erroring on simple questions / read-only queries instead of showing response text
- Fix bottom bar button/input height mismatch on desktop (Send and Mic buttons now match input height at sm+ breakpoint)
Expand Down
4 changes: 2 additions & 2 deletions app/dashboard/chat.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1271,7 +1271,7 @@ export function Chat({ chatId }: ChatProps) {

{/* Input bar — hidden when mobile voice dock is active */}
{!showMobileVoiceDock && (
<div className="glass-elevated input-glow border-t px-4 py-4 pb-safe sm:px-6 lg:px-8">
<div className="glass-elevated input-glow border-t px-4 pt-4 pb-safe sm:px-6 lg:px-8">
<form
onSubmit={(e) => {
e.preventDefault();
Expand Down Expand Up @@ -1305,7 +1305,7 @@ export function Chat({ chatId }: ChatProps) {
<Button
type="submit"
disabled={!input.trim() || isBusy}
className="min-h-[44px] min-w-[44px]"
className="min-h-[44px] min-w-[44px] sm:min-h-9 sm:min-w-9"
>
<span className="hidden sm:inline">Send</span>
<span className="sm:hidden">Go</span>
Expand Down
32 changes: 17 additions & 15 deletions app/globals.css
Original file line number Diff line number Diff line change
Expand Up @@ -690,21 +690,23 @@
}

/* ── Safe area insets for iOS (all sides) ──────────────────────────── */
.pt-safe {
padding-top: env(safe-area-inset-top, 0px);
}
.pb-safe {
padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
}
.pl-safe {
padding-left: env(safe-area-inset-left, 0px);
}
.pr-safe {
padding-right: env(safe-area-inset-right, 0px);
}
.px-safe {
padding-left: env(safe-area-inset-left, 0px);
padding-right: env(safe-area-inset-right, 0px);
@layer utilities {
.pt-safe {
padding-top: env(safe-area-inset-top, 0px);
}
.pb-safe {
padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
}
.pl-safe {
padding-left: env(safe-area-inset-left, 0px);
}
.pr-safe {
padding-right: env(safe-area-inset-right, 0px);
}
.px-safe {
padding-left: env(safe-area-inset-left, 0px);
padding-right: env(safe-area-inset-right, 0px);
}
}

/* ── Liquid Glass frosted backdrop ─────────────────────────────────── */
Expand Down
2 changes: 1 addition & 1 deletion components/dashboard/quick-actions-panel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ export function QuickActionsPanel() {
</div>

<ScrollArea className="min-h-0 flex-1">
<div className="space-y-6 px-4 py-4 pb-safe sm:px-6">
<div className="space-y-6 px-4 pt-4 pb-safe sm:px-6">
{grouped.map(({ category, actions }, catIdx) => {
const meta = CATEGORY_META[category];
const CatIcon = meta.icon;
Expand Down
2 changes: 1 addition & 1 deletion components/dashboard/voice-controls.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,7 @@ function MobileVoiceDock({
isDemo?: boolean;
}) {
return (
<div className="glass-elevated relative z-10 flex flex-col gap-2 border-t px-4 py-3 pb-safe animate-voice-dock-enter">
<div className="glass-elevated relative z-10 flex flex-col gap-2 border-t px-4 pt-3 pb-safe animate-voice-dock-enter">
<ConnectionIndicator state={connectionState} sidecarStatus={sidecarStatus} mobile />

{/* Compact layout: affect | visualizer | mic | visualizer | volume */}
Expand Down
2 changes: 1 addition & 1 deletion components/workspace/intent-bar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ export function IntentBar({

{/* Input bar — hidden when mobile voice dock is active */}
{!showMobileVoiceDock && (
<div className="glass-elevated input-glow border-t px-4 py-4 pb-safe sm:px-6 lg:px-8">
<div className="glass-elevated input-glow border-t px-4 pt-4 pb-safe sm:px-6 lg:px-8">
<form
onSubmit={(e) => {
e.preventDefault();
Expand Down
64 changes: 64 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading