QA report: firecrawl/open-lovable at 69bd93b
Open Lovable's generation setup, validation, workspace tabs and style presets work, with no confirmed issues after the audit and a hand check.
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.
One finding said the model picker was stuck in a re-render loop. On a fresh boot of the same commit the picker changes model normally, so the finding was withdrawn.
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 | 0 |
| Withdrawn by the audit | 1 |
| Critical / high / medium / low | 0 / 0 / 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 withdrawn |
| 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
No confirmed issue to fix. The withdrawn finding and the reason are listed under Withdrawn findings.
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 |