Why: every time the vision validation loop returned skipped:true the chat panel logged the same hardcoded "(timeout or provider error)" string regardless of the actual cause — provider mismatch, HTTP error, upstream config issue. Now that the server (validate.ts) returns explicit skip reasons (e.g. "Vision validation is not supported for builtin providers"), the UI should surface them so the user can fix the right thing instead of guessing it's a timeout. What: ValidationResult gains an optional `skippedReason` field. validateDesignScreenshot fills it from response.json's `error` (or the HTTP status text on a non-OK response) and propagates it through the loop. The chat-panel status line now reads "[error] Analysis skipped (<reason>)" with the server-provided message clipped to 120 chars; falls back to the legacy string when no reason is present. 1070 / 1070 AI tests still pass; no test depended on the literal "timeout or provider error" string. |
||
|---|---|---|
| .. | ||
| public | ||
| server | ||
| src | ||
| CLAUDE.md | ||
| components.json | ||
| dev.ts | ||
| package.json | ||
| tsconfig.json | ||
| vite.config.ts | ||