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
| Metric | Count |
|---|
| Scenarios executed | 11 |
| Passed | 10 |
| Failed | 1 |
| Blocked | 0 |
| Findings raised | 1 |
| Issues after the audit | 1 |
| Withdrawn by the audit | 0 |
| Critical / high / medium / low | 0 / 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
| Scenario | Priority | Result | Issues |
|---|
| S1 Basic generation flow navigation | high | pass | none |
| S2 Advanced configuration generation flow | high | pass | none |
| S3 Validation of required URL/Search input | high | pass | none |
| S4 Iterative generation prompt submission | medium | pass | none |
| S5 Workspace tab toggling | medium | pass | none |
| S6 LLM model selection in workspace | medium | fail | F1 |
| S7 Create new sandbox action | medium | pass | none |
| S8 Download Vite app action | medium | pass | none |
| S9 Navigate back to landing page | low | pass | none |
| S10 Style preset mutual exclusivity | low | pass | none |
| S11 Re-apply last generation action | low | pass | none |
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
- 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
| Metric | Value |
|---|
| Scenarios | 10 passed, 1 failed, 0 blocked of 11 (34 planned steps) |
| Browser actions | 156 (30 clicks, 18 inputs, 24 navigations, 84 snapshots) |
| Screenshots | 31 (3 explore, 27 scenario, 1 critic), 27 captioned |
| Coverage | 2 pages, 2 forms, 3 flows, 6 console errors |
| Audit | 1 findings, 1 re-verified live, 0 confirmed, 0 promoted, 1 withdrawn |
| Model calls | 153 |
| Tokens | 625,558 input, 8,304 output, 15,491 thinking |
| Time | 8 min |
| Stage | Calls | Input | Output | Thinking | Seconds |
|---|
| explore | 23 | 98,526 | 1,990 | 1,695 | 81 |
| plan | 1 | 3,958 | 1,955 | 1,134 | 24 |
| test | 121 | 498,409 | 3,633 | 7,104 | 320 |
| critique | 7 | 23,090 | 529 | 5,263 | 69 |
| report | 1 | 1,575 | 197 | 295 | 4 |