Explore/GitHub Agent Apps Campaign/firecrawl/open-lovable
AI app builderSandbox, from sourcesucceeded

firecrawl/open-lovable

firecrawl/open-lovableat 69bd93b

Open-source AI app builder by Firecrawl that clones or re-imagines a website from a URL. Run from its repository in the DeepQA sandbox.

Tested byDeepQA Teamfromfirecrawl/open-lovableat 69bd93bonSep 20, 2026

Run #1model gemini-balanced (vertex)took 9m

10 of 11 scenarios passed, 1 failed, no issues after the audit.

Share on X
firecrawl/open-lovable in the browser during the run

By the numbers

10 of 11
scenarios passed, 1 failed
156
browser actions
31
screenshots
153
model calls
8.3
minutes
11
scenarios
10
passed
1
failed
0
blocked
0
issues

Walkthrough

Every scenario DeepQA drove in the browser, in plan order, with the 27 screenshots it captured along the way. A passing scenario is evidence too.

  1. S1
    Basic generation flow navigation

    3 steps, 3 screenshots

    pass
    S1-1.png
    S1 · Basic generation flow navigation
    S1-4.png
    S1 · Basic generation flow navigation
    S1-7.png
    S1 · Basic generation flow navigation
    • Opened home page and prepared to enter the target URL.
    • Entered https://example.com into the URL input and revealed the Scrape Site button and options.
    • Clicked Scrape Site and successfully navigated to http://127.0.0.1:3000/generation.
    • Navigated to http://127.0.0.1:3000/, typed https://example.com into the URL input, clicked 'Scrape Site', and successfully navigated to http://127.0.0.1:3000/generation.
  2. S2
    Advanced configuration generation flow

    7 steps, 2 screenshots

    pass
    S2-1.png
    S2 · Advanced configuration generation flow
    S2-8.png
    S2 · Advanced configuration generation flow
    • Entered URL 'https://example.com' which revealed the advanced generation configuration options including brand styles toggle, style presets, model selector, and additional instructions.
    • Navigated to http://127.0.0.1:3000/ and verified initial state.
    • Entering a URL reveals the advanced configuration options including the 'Extend brand styles' toggle switch, style preset buttons ('Glassmorphism', 'Neumorphism', 'Brutalism', 'Minimalist', 'Dark Mode', 'Gradient Rich', '3D Depth', 'Retro Wave'), LLM Model Combobox, and Additional Instructions textarea.
    • Interacted with the 'Extend brand styles' toggle, selected the 'Glassmorphism' style preset, and filled in 'Make the hero section full height' into the additional instructions textarea without any application errors or crashes.
  3. S3
    Validation of required URL/Search input

    3 steps, 2 screenshots

    pass
    S3-1.png
    S3 · Validation of required URL/Search input
    S3-8.png
    S3 · Validation of required URL/Search input
    • Loaded home page with an empty 'Enter URL or search term...' input and submit button.
    • Clicking the scrape/search button with empty and whitespace inputs prevented navigation to the generation page and remained on the home page.
    • Verified on http://127.0.0.1:3000/ that clicking the scrape button with an empty input prevents form submission and stays on the home page.
    • Verified that submitting whitespace-only input via button click or Enter key also prevents navigation to /generation.
  4. S4
    Iterative generation prompt submission

    3 steps, 3 screenshots

    pass
    S4-2.png
    S4 · Iterative generation prompt submission
    S4-5.png
    S4 · Iterative generation prompt submission
    S4-7.png
    S4 · Iterative generation prompt submission
    • Navigated to /generation page where the workspace prompt input is available.
    • Typed 'Add a dark mode toggle' into the workspace prompt textarea and clicked the submission button.
    • Prompt textarea cleared immediately, added user message to the feed, showed generation indicators, and rendered sandbox authorization error gracefully.
    • Navigated to http://127.0.0.1:3000/generation and entered 'Add a dark mode toggle' in the workspace prompt textarea.
    • Submitted the prompt using the 'Re-imagine Site' button.
    • The prompt input cleared immediately, user prompt was added to the chat history, progress indicators ('Creating sandbox while I plan your app...', 'Starting AI generation...') were displayed, and missing credential error ('Failed to create sandbox: Unauthorized, please check your credentials. - authorization header is missing') was handled and displayed gracefully without application crash.
  5. S5
    Workspace tab toggling

    4 steps, 3 screenshots

    pass
    S5-2.png
    S5 · Workspace tab toggling
    S5-4.png
    S5 · Workspace tab toggling
    S5-6.png
    S5 · Workspace tab toggling
    • Navigated to /generation page where Code and View tab buttons are present and sandbox preview shows initial prompt.
    • Clicked the Code tab button; the preview placeholder was hidden and the code workspace view was displayed.
    • Clicked the View tab button; the main panel switched back to the sandbox preview view showing 'Start chatting to create your first app'.
    • The Code tab and View tab toggle smoothly between code workspace view and sandbox preview view without crashing or freezing.
  6. S6
    LLM model selection in workspace

    3 steps, 2 screenshots

    fail
    S6-2.png
    S6 · LLM model selection in workspace
    S6-9.png
    S6 · LLM model selection in workspace
    • Navigated to /generation page where the LLM model combobox defaults to google/gemini-3-pro-preview.
    • Navigated to /generation page where the LLM model selection combobox is present with default value google/gemini-3-pro-preview.
    • Attempted to interact with the LLM model combobox to change the AI model to anthropic/claude-sonnet-4-2025 or openai/gpt-5.
    • The combobox does not open and selection cannot be registered because elements are continuously remounting in a rapid re-render loop.
  7. S7
    Create new sandbox action

    2 steps, 2 screenshots

    pass
    S7-2.png
    S7 · Create new sandbox action
    S7-4.png
    S7 · Create new sandbox action
    • Navigated to /generation page where the 'Create new sandbox' button is visible.
    • Clicked 'Create new sandbox' and observed an explicit credentials error message in the chat/log UI ('Failed to create sandbox: Unauthorized, please check your credentials. - authorization header is missing').
    • The 'Create new sandbox' button is active and responsive on /generation.
    • Clicking 'Create new sandbox' triggered the sandbox creation request and explicitly displayed the expected unauthorized/credentials error in the UI without crashing.
  8. S8
    Download Vite app action

    2 steps, 2 screenshots

    pass
    S8-2.png
    S8 · Download Vite app action
    S8-4.png
    S8 · Download Vite app action
    • Navigated to /generation page where 'Download your Vite app as ZIP' button is visible in disabled state when no files/sandbox exist.
    • Observed 'Download your Vite app as ZIP' button has disabled attribute, correctly preventing download actions when no sandbox files exist without crashing the page.
    • The /generation page renders the 'Download your Vite app as ZIP' button in a disabled state when no sandbox/files are available.
    • The button cleanly prevents interaction via standard HTML disabled attribute without causing page crashes or unexpected errors.
  9. S9
    Navigate back to landing page

    2 steps, 2 screenshots

    pass
    S9-2.png
    S9 · Navigate back to landing page
    S9-4.png
    S9 · Navigate back to landing page
    • Navigated to /generation page and observed 'Generate a new website' link pointing to root '/'.
    • Clicked 'Generate a new website' link and successfully returned to the landing page at http://127.0.0.1:3000/.
    • The 'Generate a new website' link on /generation successfully navigated back to the landing page at http://127.0.0.1:3000/.
  10. S10
    Style preset mutual exclusivity

    3 steps, 4 screenshots

    pass
    S10-4.png
    S10 · Style preset mutual exclusivity
    S10-6.png
    S10 · Style preset mutual exclusivity
    S10-8.png
    S10 · Style preset mutual exclusivity
    S10-11.png
    S10 · Style preset mutual exclusivity
    • Clicked Brutalism style preset to select it.
    • Clicked Dark Mode style preset, deselecting Brutalism and selecting Dark Mode.
    • Navigated to http://127.0.0.1:3000/ and entered a URL to reveal the style preset options.
    • Clicked 'Style Preset: Brutalism', which became selected.
    • Clicked 'Style Preset: Dark Mode', which became actively selected while Brutalism was deselected.
    • Confirmed that style presets maintain mutual exclusivity as only one preset is active at a time.
  11. S11
    Re-apply last generation action

    2 steps, 2 screenshots

    pass
    S11-2.png
    S11 · Re-apply last generation action
    S11-7.png
    S11 · Re-apply last generation action
    • Navigated to /generation; 'Re-apply last generation' button is present but initially disabled when no generation has occurred.
    • Submitted prompt 'Create a simple counter app'; generation failed with 'Failed to create sandbox: Unauthorized', and 'Re-apply last generation' button remained disabled.
    • Navigated to /generation; 'Re-apply last generation' button is rendered in disabled state as expected when no prior generation output exists.
    • Submitted generation prompt to attempt creating a generation, which halted due to sandbox authorization requirements, keeping 'Re-apply last generation' disabled.

Issues

Findings that survived the Critic's audit. Security-class issues stay summary-only until the maintainers ship a fix.

highwithdrawnfunctionalF1 · S6

LLM Model Combobox fails to open or change selection due to continuous re-rendering loop on /generation

I navigated to /generation and attempted to select a different model in the LLM Model combobox. The action timed out or failed because the combobox element is continuously unmounting and remounting (evidenced by changing refs on each snapshot), rendering the dropdown inoperable. The page reported 3 console errors during the scenario.

Expected

The LLM Model combobox should open a dropdown menu and allow selecting an alternative model (e.g. anthropic/claude-sonnet-4-2025), visibly updating the selection.

Actual

Clicking or interacting with the LLM Model combobox fails because the page enters a continuous component re-render cycle (following a sandbox creation authorization failure), unmounting and remounting DOM elements repeatedly so the dropdown menu cannot open or retain focus.

Repro · 3 steps
  1. Navigate to http://127.0.0.1:3000/generation
  2. Click on the LLM model selection combobox
  3. Attempt to select a different model from the options

Environment limitations

These failures came from the test environment, not from the application: a credential the sandbox does not hold, a demo nobody may write to, a resource it cannot reach. They are not counted as issues.

  • S1 could not exercise this: Sandbox creation fails due to missing API credentials. The sandbox initialization fails with an unauthorized error because the required authorization header is missing. The audit recorded the test environment as the cause, so it is not counted as an issue.

Critic audit

An adversarial second pass over every finding before it reaches the report.

1
findings reviewed
1
re-verified live
1
withdrawn
  • F1withdrawn

    Checked by hand in Chrome on 2026-09-19 on a fresh local boot of the same commit: selecting another model changes the value, updates the URL and the control stays mounted. The failure was the test harness, not the app.

  • The claim of a continuous re-render loop on the /generation page in S6 is contradicted by S4, S5, and S7, which experienced no such freezing.
  • Sandbox and AI generation features could not be fully exercised during this run due to missing API credentials in the test environment.
  • F1 was withdrawn by hand after a check in a real browser: Checked by hand in Chrome on 2026-09-19 on a fresh local boot of the same commit: selecting another model changes the value, updates the URL and the control stays mounted. The failure was the test harness, not the app.

Report

QA report: firecrawl/open-lovable at 69bd93b

A continuous re-render loop on the generation page prevents users from opening or changing the LLM model selection.

The test run evaluated eleven scenarios across basic and advanced generation setup, input validation, workspace tab toggling, style presets, iterative prompt submissions, and sandbox export actions.

A single high-severity issue was confirmed in the workspace: the LLM model combobox cannot be opened or adjusted because the component enters a continuous re-render cycle, repeatedly unmounting and remounting DOM elements.

Live sandbox initialization and full end-to-end AI code generation could not be fully exercised during this run due to missing API authorization credentials in the test environment.

Run summary
MetricCount
Scenarios executed11
Passed10
Failed1
Blocked0
Findings raised1
Issues after the audit1
Withdrawn by the audit0
Critical / high / medium / low0 / 1 / 0 / 0

Target: http://127.0.0.1:3000 · Testing level: deep_feature · Stack: node / pnpm (next)

Issues

No issues stood after the audit.

Environment limitations

These failures came from the test environment, not from the application: a credential the sandbox does not hold, a demo nobody may write to, a resource it cannot reach. They are not counted as issues. They record what this run could not exercise.

  • S1 could not exercise this: Sandbox creation fails due to missing API credentials. The sandbox initialization fails with an unauthorized error because the required authorization header is missing. The audit recorded the test environment as the cause, so it is not counted as an issue.
Withdrawn findings

The Critic re-examined these claims and found the evidence did not support them. They are kept here rather than deleted.

  • LLM Model Combobox fails to open or change selection due to continuous re-rendering loop on /generation (S6, high): Checked by hand in Chrome on 2026-09-19 on a fresh local boot of the same commit: selecting another model changes the value, updates the URL and the control stays mounted. The failure was the test harness, not the app.
Scenario results
ScenarioPriorityResultIssues
S1 Basic generation flow navigationhighpassnone
S2 Advanced configuration generation flowhighpassnone
S3 Validation of required URL/Search inputhighpassnone
S4 Iterative generation prompt submissionmediumpassnone
S5 Workspace tab togglingmediumpassnone
S6 LLM model selection in workspacemediumfailF1
S7 Create new sandbox actionmediumpassnone
S8 Download Vite app actionmediumpassnone
S9 Navigate back to landing pagelowpassnone
S10 Style preset mutual exclusivitylowpassnone
S11 Re-apply last generation actionlowpassnone
The audit

The Critic reviewed 1 finding and re-verified 1 of them live in the browser, replaying the reported steps on a fresh page.

  • The claim of a continuous re-render loop on the /generation page in S6 is contradicted by S4, S5, and S7, which experienced no such freezing.
  • Sandbox and AI generation features could not be fully exercised during this run due to missing API credentials in the test environment.
What to fix first
  1. Fix the re-render loop on /generation following sandbox authorization failures so the LLM model combobox remains interactive (F1).
Coverage and caveats

In scope: Landing page form validation and submission; Style presets and model selection configuration; Navigation between landing page and generation workspace; Workspace tab toggling (Code vs View); Workspace refinement prompt submission; Workspace utility actions (Download, Re-apply, New Sandbox).

Not covered: Validation of the actual generated code or live sandbox preview content; Authentication flows for external API keys.

  • External API keys (e.g., Firecrawl, E2B) are likely missing as per intake notes, meaning actual sandbox creation may trigger 500/Unauthorized errors in the console. Testing focuses on UI affordances, graceful error rendering, and application state rather than successful backend generation.
  • Form submission from the landing page navigates to /generation even if the background generation process fails.
By the numbers
MetricValue
Scenarios10 passed, 1 failed, 0 blocked of 11 (34 planned steps)
Browser actions156 (30 clicks, 18 inputs, 24 navigations, 84 snapshots)
Screenshots31 (3 explore, 27 scenario, 1 critic), 27 captioned
Coverage2 pages, 2 forms, 3 flows, 6 console errors
Audit1 findings, 1 re-verified live, 0 confirmed, 0 promoted, 1 withdrawn
Model calls153
Tokens625,558 input, 8,304 output, 15,491 thinking
Time8 min
StageCallsInputOutputThinkingSeconds
explore2398,5261,9901,69581
plan13,9581,9551,13424
test121498,4093,6337,104320
critique723,0905295,26369
report11,5751972954

Run log

stagecallstokenstime
Explore23102.2k1m 21s
Plan17k24s
Test121509.1k5m 20s
Critique728.9k1m 9s
Report12.1k4s
Total153649.4k8m 19s
Intake
Explore
Plan
Test
Critique
Report
  • 00:48:18Zexploreexplore started
  • 00:56:49ZexploreExplored / (6 controls, 0 forms)
  • 00:56:49ZexploreExplored /generation (9 controls, 0 forms)
  • 00:56:49ZexploreExplored /settings (0 controls, 0 forms)
  • 00:56:49ZexploreMapped 2 pages, 2 forms, 3 flows in 23 turns.
  • 00:56:49Zexploreexplore completed in 81s.
  • 00:56:49Zplanplan started
  • 00:56:49ZplanPlanned 11 scenarios (3 high, 5 medium, 3 low).
  • 00:56:49Zplanplan completed in 24s.
  • 00:56:49Ztesttest started
  • 00:56:49ZtestS1 executed (pass)
  • 00:56:49ZtestS2 executed (pass)
  • 00:56:49ZtestS3 executed (pass)
  • 00:56:49ZtestS4 executed (pass)
  • 00:56:49ZtestS5 executed (pass)
  • 00:56:49ZtestS6 executed (fail), 1 finding
  • 00:56:49ZtestS7 executed (pass)
  • 00:56:49ZtestS8 executed (pass)
  • 00:56:49ZtestS9 executed (pass)
  • 00:56:49ZtestS10 executed (pass)
  • 00:56:49ZtestS11 executed (pass)
  • 00:56:49ZtestExecuted 11 scenarios: 10 passed, 1 failed, 0 blocked, 1 finding.
  • 00:56:49Ztesttest completed in 320s.
  • 00:56:49Zcritiquecritique started
  • 00:56:49ZcritiqueReviewed 1 findings; 1 possible defect spotted in passed scenarios.
  • 00:56:49ZcritiqueRe-verified F1: reproduced.
  • 00:56:49ZcritiqueAudit complete: 1 confirmed, 0 withdrawn, 0 promoted, 1 re-verified live.
  • 00:56:49Zcritique1 failure came from the test environment rather than the application. It is reported as an environment limitation, not an issue.
  • 00:56:49Zcritiquecritique completed in 69s.
  • 00:56:49Zreportreport started
  • 00:56:49ZreportReported 1 issue (0 critical, 1 high, 0 medium, 0 low) from 1 finding.
  • 00:56:49Zreportreport completed in 4s.

Put an agent team on your next pull request.

Connect a repo, dispatch a Run, and read an audited, evidence-backed report the same day.