Changelog
1.4.0 - 2026-10-10
What's Changed
Added
- laravel/ai 1.x support: the AI Studio now works with both
laravel/ai^0.11and^1.0. Token usage is read from either shape:promptTokens/completionTokensin 0.x andinputTokens/outputTokensin 1.x, including the newImageUsage. - Suggests
spaanproductions/laravel-ai-usagefor tracking the tokens and cost of every laravel/ai call in a dashboard with budgets. - CI now runs the test matrix against both laravel/ai majors.
Changed
- Bookkeeping can no longer fail the feature. Token usage, model name and cost estimation are now rescued without being reported. If recording them fails, a generated image is still marked ready and an improved prompt is still applied.
Full Changelog: https://github.com/spaanproductions/laravel-switchbot-frame/compare/1.3.0...1.4.0
1.3.0 - 2026-08-30
What's Changed
Added
- Per-conversation cost in the history sidebar — each conversation now shows its estimated spend next to the timestamp (loaded with a single aggregated
withSumquery, no N+1). - Total spend card — a card in the AI Studio header sums the estimated cost across all of your conversations.
- Rename conversations — hover a history row and click the pencil to rename it inline (Enter saves, Escape cancels; max 120 characters).
All cost UI only appears when cost estimation is enabled (switchbot.ai.cost_estimation.enabled).
Fixed
- CSS build drift check: pinned Tailwind to an exact version and rebuilt the standalone stylesheet so a fresh
npm installreproducesdist/switchbot-frame.cssdeterministically.
Full Changelog: https://github.com/spaanproductions/laravel-switchbot-frame/compare/1.2.1...1.3.0
1.2.1 - 2026-08-30
What's Changed
Fixed
- HEIC files are selectable again on macOS. 1.2.0's
accept="image/jpeg,image/png,image/webp"greyed out.heicin the desktop file picker (no desktop browser auto-converts HEIC); both upload inputs are back toaccept="image/*".
Added
- In-browser HEIC → JPEG conversion. iPhone
.heicphotos are now transcoded to JPEG in the browser — a small interceptor lazy-loads theheic2any(libheif-WASM) decoder on the first HEIC pick and hands Livewire a JPEG — so they work in both the Gallery and AI Studio with no server-side image dependency (the optimizer stays pure GD). A "Converting HEIC…" indicator shows during conversion. - The compiled JS now ships alongside the CSS: served by
ScriptControlleratroute('switchbot.assets.js', ['asset' => 'app'])and publishable topublic/vendor/switchbot/under theswitchbot-frame-assetstag.
Notes
- If JavaScript is disabled or a strict host Content-Security-Policy blocks the WebAssembly, a HEIC is rejected with a clear validation message instead of a 500. Strict CSPs should allow
script-src 'wasm-unsafe-eval'.
Full Changelog: https://github.com/spaanproductions/laravel-switchbot-frame/compare/1.2.0...1.2.1
1.2.0 - 2026-08-30
What's Changed
Fixed
- HEIC uploads no longer 500 in the AI Studio composer. The upload thumbnail called Livewire's
temporaryUrl()unconditionally, which throwsFileNotPreviewableExceptionfor extensions outsidepreview_mimes(e.g..heic) — crashing the render before themimesrule could reject the file. The preview is now guarded withisPreviewable(), matching the Gallery component.
Changed
- Upload pickers now accept only supported formats. Both the AI Studio and Gallery file inputs use
accept="image/jpeg,image/png,image/webp"instead ofimage/*. On iOS/Safari this nudges the OS to auto-convert HEIC → JPEG on selection, so most iPhone photos "just work"; anything still HEIC gets a clear validation error rather than a crash. - Bumped the optional
laravel/aidev dependency from^0.9to^0.11.0.
Internal
- Added a GitHub Actions CI pipeline (PHPUnit tests, PHPStan/larastan, php-cs-fixer, and a standalone CSS build check) plus Dependabot. (#1)
- Added a regression test covering non-previewable start-image uploads.
Full Changelog: https://github.com/spaanproductions/laravel-switchbot-frame/compare/1.1.0...1.2.0
1.1.0 - 2026-07-18
AI Image Studio
Generate and edit frame art with AI, right from the admin page — powered by the optional laravel/ai (https://github.com/laravel/ai) package.
- 🎨 Create with AI — describe a frame, or start from an uploaded/library photo, then refine it conversationally
- ✏️ Edit with AI on any library image, and Improve prompt to expand a short idea into a rich one
- 🖼️ Save to library with optimize presets (Vivid, Balanced, Soft, Grayscale — configurable)
- 💬 Browsable, shareable conversation history with retry on failures
- 💸 Optional, experimental token & cost tracking (LiteLLM price sheet)
Fully opt-in (install laravel/ai + enable in config) — the frame gallery works exactly as before without it. Supports Laravel 12 & 13.
Full Changelog: https://github.com/spaanproductions/laravel-switchbot-frame/compare/1.0.0...1.1.0
1.0.0 - 2026-07-18
Full Changelog: https://github.com/spaanproductions/laravel-switchbot-frame/commits/1.0.0
Een fout gevonden of een vraag? Maak een issue aan op GitHub.