Skip to content

Commit dbb254b

Browse files
committed
fix: langfuse MockObservation crash, mobile preview mockup overflow, and early preview loading
- Fix MockObservation.start_span/start_generation using positional param that mismatched callers using name= keyword arg (crashed all agent runs when Langfuse disabled) - Reduce iPhone/Android mockup screenWidth from 300→250 and tighten padding so the phone frame fits within the viewport without bottom cutoff - Show mobile preview (QR code + phone mockup) while agent is still running so Expo bundler can start loading earlier - Add Inngest dev server to docker-compose.dev.yml for local development
1 parent 551dcce commit dbb254b

File tree

4 files changed

+26
-8
lines changed

4 files changed

+26
-8
lines changed

backend/services/langfuse.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ def update(self, **_kwargs) -> "MockObservation":
2525
def end(self, **kwargs) -> None:
2626
pass
2727

28-
def start_span(self, _name: str, **_kwargs) -> "MockObservation":
28+
def start_span(self, name: str = "", **_kwargs) -> "MockObservation":
2929
return MockObservation()
3030

31-
def start_generation(self, _name: str, **_kwargs) -> "MockObservation":
31+
def start_generation(self, name: str = "", **_kwargs) -> "MockObservation":
3232
return MockObservation()
3333

3434
def event(self, name: str, **kwargs) -> None:

docker-compose.dev.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,14 @@ services:
1515
- ENV_MODE=local
1616
- REDIS_URL=redis://redis:6379
1717
- PYTHONUNBUFFERED=1
18+
- INNGEST_DEV=1
19+
- INNGEST_BASE_URL=http://inngest:8288
20+
- INNGEST_SERVE_ORIGIN=http://backend:8000
1821
depends_on:
1922
redis:
2023
condition: service_healthy
24+
inngest:
25+
condition: service_started
2126
networks:
2227
- dev-network
2328
dns:
@@ -47,6 +52,17 @@ services:
4752
- 8.8.8.8
4853
- 8.8.4.4
4954

55+
# Inngest Dev Server (local function invocation)
56+
inngest:
57+
image: inngest/inngest:latest
58+
ports:
59+
- "8288:8288"
60+
environment:
61+
- INNGEST_LOG_LEVEL=info
62+
networks:
63+
- dev-network
64+
command: inngest dev -u http://backend:8000/api/inngest
65+
5066
# Redis
5167
redis:
5268
image: redis:8-alpine

frontend/src/components/thread/app-preview-side-panel.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,13 @@ export function AppPreviewSidePanel({
8787
const { onOpen } = useModal();
8888

8989
// Show loading screen when agent is actively building OR no preview URL available
90-
// But prioritize showing preview if URL exists and agent isn't actively modifying code
90+
// For mobile: show preview early (QR code + phone mockup) even while agent runs,
91+
// since Expo bundler needs time and the QR code is useful immediately
92+
const isMobileApp = project?.app_type === 'mobile';
9193
const shouldShowLoadingScreen =
9294
(!previewUrl.previewUrl ||
93-
agentStatus === 'running' ||
94-
agentStatus === 'connecting') &&
95+
(agentStatus === 'running' && !isMobileApp) ||
96+
(agentStatus === 'connecting' && !isMobileApp)) &&
9597
(activeMainTab === 'preview' || !previewUrl.previewUrl);
9698

9799
// Switch to preview tab when loading starts if user is on code tab

frontend/src/components/thread/components/MobilePreviewTab.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,17 +101,17 @@ export const MobilePreviewTab: React.FC<MobilePreviewTabProps> = ({
101101
return (
102102
<div className="h-full overflow-y-auto flex flex-col lg:flex-row bg-zinc-50 dark:bg-background">
103103
{/* Phone Preview Area */}
104-
<div className="flex-1 flex items-center justify-center p-8 lg:p-12 relative">
104+
<div className="flex-1 flex items-center justify-center p-4 lg:p-6 relative min-h-0">
105105
{/* Background Pattern */}
106106
<div className="absolute inset-0 bg-grid-zinc-200/50 dark:bg-grid-zinc-800/20 [mask-image:radial-gradient(ellipse_at_center,black,transparent_75%)] pointer-events-none" />
107107

108108
<div className="relative z-10 transform transition-transform duration-500 hover:scale-[1.02]">
109109
{selectedPlatform === 'ios' ? (
110-
<IPhoneMockup screenWidth={300} screenType="island">
110+
<IPhoneMockup screenWidth={250} screenType="island">
111111
{renderMockupContent()}
112112
</IPhoneMockup>
113113
) : (
114-
<AndroidMockup screenWidth={300}>
114+
<AndroidMockup screenWidth={250}>
115115
{renderMockupContent()}
116116
</AndroidMockup>
117117
)}

0 commit comments

Comments
 (0)