Changelog
All notable changes to CozyPrompts.
0.29.0 2026-03-15
Added
- Dark/Light mode — window title bar: The app window title bar now follows the dark/light theme toggle — switching to dark mode makes the title bar dark, light mode makes it light; persists across restarts via localStorage
- Trash / Recycle Bin: Deleted prompts and versions now move to a Trash instead of being permanently removed — accessible via the trash icon button in the header (shows a badge counter when items are present); restore individual prompts or versions with one click, or permanently delete them; "Empty Trash" clears everything at once
- Trash — Version restore when parent is deleted: If a version is restored from Trash but its parent prompt is also deleted, the version is automatically created as a new standalone prompt in the gallery — the original version remains intact in the parent prompt so it is also available when the parent is restored later
Fixed
- Trash — Permanent delete now removes all files: When permanently deleting a prompt, files belonging to soft-deleted iterations (versions that were in trash) were not removed; now all iteration files including trashed ones are cleaned up correctly
Added
- Lightroom — Display name uniqueness: Display names are now unique across all accounts — duplicate names are rejected at registration and when updating the profile, with a clear error message
- Lightroom — OAuth cancel handling: Clicking "Cancel" on a Google/OAuth consent screen no longer shows a success message or blocks the login button — the flow is silently aborted and the button remains clickable
Changed
- Lightroom: The community prompt sharing feature is now called "Lightroom" — all UI labels, tab name, and website updated accordingly (`cozyprompts.com/lightroom`)
Added
- Chrome Extension — Auto-refresh on archive switch: The companion extension now detects when the active archive changes in the desktop app and automatically reloads tags, collections, and prompts within ~2 seconds — no manual refresh needed
- Chrome Extension — Gallery auto-refresh on save: When a prompt is saved via the Chrome Extension, the gallery in the desktop app updates immediately without requiring a manual tab click — only triggers when the Prompts tab is active and no search filter is applied
- Chrome Extension — Auto-reconnect: When "CozyPrompts App not running" is shown, the extension now automatically reconnects as soon as the desktop app starts — no need to manually click Reconnect
- Chrome Extension — App language sync: The extension now uses the same language as the desktop app (DE/EN) — switching language in CozyPrompts settings is immediately reflected in the extension
- Chrome Extension — Full-panel drag & drop: The entire side panel is now a drop zone for prompts and images — the compact drop bar at the bottom has been removed
- Local AI — System Requirements per Plugin: Each plugin card in AI & Models now shows a collapsible "System Requirements" section with minimum VRAM, RAM, disk space, and GPU type — helps users check compatibility before downloading
- Local AI — Configurable Model Directory: New "Model Directory" section in AI & Models settings — change where model files are stored (e.g. to an external drive); "Move & Set Path" migrates all existing models to the new location automatically; "Reset" returns to the default AppData directory
- Local AI — FLUX.2 Klein 4B & 9B: Two new image models based on Black Forest Labs' FLUX.2 architecture; support both text-to-image and reference-based image editing; use a compact LLM (Qwen3-4B/8B) as text encoder instead of CLIP+T5; Klein 4B requires ~6 GB download, Klein 9B ~10 GB; VAE runs on CPU (`--vae-on-cpu`) for stability on Vulkan/Intel Arc; EDIT mode (reference image provided) automatically uses CPU-only sampling binary to avoid Vulkan crash on Intel Arc; main image is passed as primary reference (`
` in prompt), additionally pinned reference thumbnails as secondary; Strength slider (0.0–1.0) controls how closely the output follows the reference image; Strength slider now also appears when only the main image is loaded (not just when reference pins are present) - Local AI — img2img (SD 1.5 / Realistic Vision / DreamShaper / Openjourney): All four ONNX-based image models now support image-to-image generation; upload a reference image in Prompt Lab, set the Strength slider (0.0–1.0), and the model uses your image as a starting point while applying the prompt; requires `vae_encoder.onnx` in the model directory (downloaded as part of the model); falls back to txt2img silently if the encoder file is missing
- Local AI — Flux.1 Kontext Dev: New image model for reference-based image editing (marked "Coming Soon" — sd.cpp Vulkan EDIT mode not yet stable on Windows); shared support files are reused from Flux Schnell when installed
- Local AI — Real-ESRGAN 4x Upscaler: New AI plugin that upscales generated images 4x (e.g. 512px → 2048px) using Real-ESRGAN; available as a post-generate checkbox ("4x Upscaling") and as a standalone "4x Upscale" button for any loaded image in Prompt Lab; tile quality selector (Standard / Large / Maximum) controls quality vs. speed trade-off
- Local AI — Cancel Download: The cancel button in AI & Models now actually cancels the running download; partial files are removed and the plugin resets to "not installed" state
- Local AI — Download size display: Plugin sizes now show in GB when ≥ 1 GB (e.g. "3.4 GB" instead of "3440 MB"); download progress label shows downloaded/total in MB or GB (e.g. "1.2 GB / 3.4 GB") instead of just a percentage
Fixed
- Lightroom — Account system: Replaced mnemonic/BIP39 identity with a real email + password account system — users can now register, verify their email, log in, and reset their password via email link
- Lightroom — Thumbnail upload failed silently: Publishing a prompt to the Lightroom uploaded the listing but no thumbnail was visible — CORS preflight on `/api/upload` was rejected; thumbnail now uploads correctly
- Chrome Extension — Status label stuck on "Connecting...": Fixed a race condition where the polling interval (`checkArchiveChange`) would reset the status label back to "Connecting..." every 2 seconds by overwriting the `data-i18n` attribute — connection status now correctly shows the app version when connected
Changed
- Local AI — Image Generation — Vulkan cold-start: Instead of retrying automatically (which was unreliable), a clear warning toast "GPU initializing — please click again" is shown on first launch after app start; subsequent clicks work immediately
- Local AI — Image Generation — Phase display: During Flux generation the button label now shows the current phase (Loading model → Loading encoders → Encoding prompt → Sampling → Decoding image) instead of a static step counter that never updated
- Local AI — Image Model Selector: Model selector is now always visible (even with a single model installed) so you can see which model is active; disabled when only one model is installed
Removed
- Local AI — Flux.1-schnell CPU: Removed the Python/diffusers-based CPU fallback model (~14 GB) — it took 26+ minutes per image and required a separate Python environment (~4 GB); the GPU variant via sd.cpp is the recommended option
Added
- Local AI — Model-aware Generate Settings: Each image model now shows only the settings it actually supports — Flux hides Scheduler, Karras, Mixing Guard, and Deterministic (not applicable to sd.cpp); the negative prompt area is dimmed for Flux (ignored by flow matching); max resolution options are limited per model (e.g. only 512/768 for Flux)
- Local AI — Per-model Defaults: Switching models applies optimized defaults automatically — Realistic Vision: 25 steps / CFG 5.5 / Portrait 3:2; DreamShaper & Openjourney: 25 steps / CFG 7.0; Flux: 4 steps / Guidance 3.5 / Square 512
- Local AI — Prompt Chunking (SD 1.5 / RV / DreamShaper / Openjourney): Prompts longer than 75 tokens are automatically split into chunks, each encoded separately and concatenated — no more silent truncation at 77 tokens
- Local AI — Variable Resolution (SD 1.5 / RV / DreamShaper / Openjourney): Image dimensions are now passed through to the ONNX pipeline; any resolution supported by the format selector is generated correctly (dimensions rounded to nearest 64 px)
- Prompt Lab — Negative Preset: Openjourney: New built-in negative prompt preset for Openjourney style generation
- Prompt Lab — Negative Preset: DreamShaper v2: Improved DreamShaper negative prompt preset with `(bad_prompt:0.8)` weighting
- Local AI — AI & Models descriptions translated: All plugin descriptions in the AI & Models settings panel are now fully translated (DE/EN) via i18n; previously hardcoded German text
- Local AI — Image Format & Size Selector: New format picker in the generation settings dropdown — choose orientation (portrait / square / landscape), aspect ratio (3:2 / 4:3 / 16:9), and max resolution (512 / 768 / 1024 px); ratio row is hidden for square orientation; dimensions are rounded to the nearest 64 px for SD compatibility
- Local AI — Flux.1-schnell GPU: Install the Flux.1-schnell GPU plugin to generate images via Vulkan GPU acceleration (Intel Arc, AMD, NVIDIA) — significantly faster than CPU; uses stable-diffusion.cpp with Q4 quantization; Steps and Guidance are automatically set to Flux defaults (4 steps, Guidance 3.5) when the model is selected
- Prompt Lab — Negative Prompt Presets: Preset chips below the negative prompt field — click to append, × to delete; includes 6 built-in presets (Realistic Vision, DreamShaper, SD 1.5, Portrait, Qualität, Anime); save your own presets from the current negative prompt via the + button
- Local AI — Karras Spacing: New checkbox in image generation settings to enable Karras sigma spacing — concentrates denoising steps at low-noise levels for better detail and sharpness; available for both DDIM and DPM++ 2M schedulers
- Local AI — DPM++ Mixing Guard: New configurable threshold in image generation settings — controls when DPM++ 2M's second-order x0-mixing activates (default 0.7); higher values reduce artifacts at the cost of some detail
- Local AI — Cancel Generation / Translation: Click the spinner button during image generation or translation to cancel the running operation immediately
- Local AI — Generation Seed: After each image generation, the used seed is automatically written to the Seed field — enabling you to reproduce a similar result by re-generating with the same seed
- Local AI — Deterministic Mode: New "Deterministic (CPU)" checkbox in generation settings — forces CPU-only inference with deterministic compute for bit-exact reproducible results when using the same seed and prompt (slower than GPU/DirectML)
- Local AI — DreamShaper 8: Install the DreamShaper 8 plugin (~4 GB) for versatile, high-quality image generation — excellent for portraits, photorealistic scenes, and creative compositions; uses DirectML for GPU acceleration
- Local AI — Realistic Vision V5: Install the Realistic Vision V5 plugin (~2.1 GB) for photorealistic image generation — significantly better faces, portraits, and natural scenes compared to standard SD 1.5
- Local AI — Image Model Selector: When multiple image generation plugins are installed, a model selector appears in the generation settings panel to switch between them
- Local AI — Generation Settings: Steps, Guidance Scale, and Seed can now be configured per-generation via a settings dropdown in the Prompt Lab toolbar
- Local AI — Text-to-Image: Install the Stable Diffusion 1.5 plugin (~2 GB) to generate images from text prompts directly in Prompt Lab — no API key or internet connection needed; uses DirectML for GPU acceleration (Intel Arc, AMD, NVIDIA); generated images are placed directly in the image slot and can be saved via the normal Save / New Version flow
- Local AI — Semantic Search: Install the "Semantic Search" plugin (all-MiniLM-L6-v2, ~90 MB) to find similar prompts even when different words are used — results appear as a "Similar Prompts" section below regular search results
- Local AI — Translation: Install translation plugins (opus-mt-de-en / opus-mt-en-de, ~112 MB each) to translate prompts directly in Prompt Lab — no API key or internet connection needed; button auto-detects language and flips direction after translation
- Local AI — NLLB-200 Translation: Install the NLLB-200-distilled-600M plugin (~860 MB) for significantly higher translation quality across 200 languages — Meta's multilingual model outperforms opus-mt for complex prompts
- Local AI — Translation Model Selector: When multiple translation plugins are installed, a dropdown arrow appears next to the Translate button to choose which model to use
- Local AI — Plugin Manager: New "AI & Models" tab in Settings to download, manage and remove local AI plugins
- CozyPrompts: New Chrome Extension — browse your full prompt archive in a sidebar, save prompts and images via drag & drop, copy prompts to clipboard, auto-extract prompts from Midjourney, ChatGPT, and Claude.ai
Fixed
- Local AI — Image Generation: Generating images no longer freezes the application window — generation now runs fully asynchronously with step-by-step progress shown in the button (e.g. "3 / 20"); click the spinner button again to cancel mid-generation
- Local AI — Translation: Translation no longer freezes the application window — runs asynchronously with a live token counter in the button; click the spinner button again to cancel
- Local AI — Openjourney: Download now works correctly — fixed wrong HuggingFace repository URL and added missing tokenizer
- Lightroom → Admin → Deactivated tab: Navigating to the Deactivated tab directly no longer shows a stale author filter from a previous "Listings ↗" click
- Lightroom → Grid → Masonry layout after block: Removing a blocked user's cards from the masonry grid now correctly reflows remaining cards — `_reRenderAll()` now triggers masonry layout after card removal
- Lightroom → Admin → Author Filter: Clicking "Listings ↗" for a user in the Admin panel now correctly filters to show only that user's listings; previously all listings were shown despite the filter badge appearing
- Lightroom → Identity → Login: Restoring or creating a wallet identity no longer fails with "Invalid mnemonic" — replaced the broken GenosDB dependency with a self-contained BIP39/BIP32 implementation
- Lightroom → Publish: First-time publishing no longer fails with "Invalid auth token" — wallet registration now happens correctly on the first publish
Changed
- Lightroom: Listings now load from a central REST API instead of a P2P network — faster loads, no WebRTC connection needed
0.28.1 2026-03-01
Fixed
- Lightroom → Light Mode: Card backgrounds and borders now correctly use theme CSS variables; `--card-bg` and `--border-color` (undefined fallbacks) replaced with `--bg-secondary` and `--border`
- Lightroom → Masonry Grid → Search overlap: Cards hidden by search (`display: none`) were still included in masonry layout calculations, causing visible cards to stack on top of each other; hidden cards are now pushed off-screen and excluded from column height tracking
- Lightroom → Masonry Grid → Card overlap on initial load: Rapid per-card `requestAnimationFrame` layout calls during bulk render caused cards to be positioned with incorrect heights (images not yet loaded), making some cards invisible behind others; replaced with a debounced scheduler that runs layout only once after all cards are inserted
- Lightroom → Masonry Grid → Infinite scroll not working: Sentinel element was hidden via `display: none` in masonry mode, preventing the IntersectionObserver from ever firing; sentinel is now positioned as a 1×1px absolute element at the bottom of the masonry grid
- Lightroom → Deactivated listings visible: Listings with `isActive: false` were not filtered client-side on initial load — only the `updated` handler checked `isActive`; `isFiltered()` now correctly hides deactivated listings
0.28.0 2026-03-01
Added
- Lightroom → Masonry Grid: New masonry layout respects original image proportions instead of cropping to squares; enabled by default; toggle between masonry and square grid via toolbar button; preference saved per browser
- Lightroom → Thumbnail proportional resize: Uploaded thumbnails are scaled so the longest side is at most 800px, preserving the original aspect ratio — portrait and landscape images are no longer cropped to a square
- Lightroom → Report Feature: Logged-in users can report listings; each address can report a listing only once; listings are hidden locally once a configurable threshold is reached (default: 5 reports)
Fixed
- Lightroom → Publish → Anonymous listings possible after logout: After logging out, GenosDB kept an internal session alive, allowing listings to be published without an identity; publish is now blocked unless `mp_address` is present in localStorage
- Lightroom → Publish → Blocked IP continues publishing: When the upload server rejected the thumbnail with HTTP 403 (blocked IP) or 429 (rate limit), the listing was still published to the network without a thumbnail; publish is now aborted on these status codes
- Lightroom → Publish → Blocked IP could bypass check when sharing without image: Sharing a prompt without a thumbnail skipped the IP block check entirely; fixed
- Lightroom → Publish → Image URL double-encoded: `convertFileSrc()` was applied to already-converted URLs → HTTP 500; fixed
- Lightroom → Report button incorrectly disabled: Button showed `cursor: not-allowed` even when the user had not yet reported; fixed
- Lightroom → GenosDB error after identity switch: `TypeError` after login/logout; fixed by reloading grid after identity change
- Lightroom → "No prompts" message persists after unblock: Empty state was not removed when listings became visible again after a user was unblocked; fixed for app and web portal — `mp-empty` is now actively removed in `updateCount()` and `renderCard()` as soon as visible listings exist
0.27.1 2026-02-22
Fixed
- critical Bugfix: Lightroom shows shared prompts twice
0.27.0 2026-02-22
Added
- Lightroom → Thumbnail Hosting (Self-Hosted): Thumbnails are now uploaded to a self-hosted REST API on cozyprompts.com instead of Pinata/IPFS; the server converts images to WebP format and stores them under a UUID filename; only the filename is stored in GenosDB — full URLs are assembled at runtime from the `thumbnailMirrors` list in `marketplace-config.js`
- Lightroom → Multi-Mirror Fallback: `thumbnailMirrors` array in config defines an ordered list of thumbnail servers; the client tries each mirror in sequence on image load error — adding a new mirror requires only appending to the array, all listings benefit immediately; backward compatible with old listings that still have `thumbnailUrl`
- Lightroom → Infinite Scroll: All listings are buffered in memory via GenosDB; only the first 30 cards are rendered initially; an `IntersectionObserver` on a sentinel element at the grid bottom automatically renders the next 30 as the user scrolls; search works across the full buffer including non-rendered cards — applies to both desktop app and public portal
- Lightroom → Skeleton / Shimmer Loading: Thumbnail area shows a pulsing shimmer animation while the image loads; image fades in smoothly once loaded; applies to both desktop app and public portal
- Lightroom → Encrypted Prompts (AES-GCM): Prompt text and negative prompt are now encrypted with AES-GCM (Web Crypto API) before being stored in GenosDB — no plaintext prompt is ever written to the P2P network for new listings; old listings fall back to their stored `description` field for compatibility
- Lightroom → Blind Search: Search now covers the full prompt text without revealing it — the app decrypts locally in RAM for matching only; the decrypted text is never displayed during search; both desktop app and public web portal support this
- Lightroom → Search field in toolbar: A debounced search input is now part of the Lightroom grid toolbar; searches across title, tags, model, author name, and (encrypted) prompt text in real time; count badge shows "X / Y Prompts" when filtered
- Public Portal → Blind Search: `website/lightroom.html` includes the same AES-GCM crypto inline; search on the public portal also decrypts locally for matching — no server involved
- Lightroom → Publish View (Lab-style): "Prompt teilen" is now a fullscreen Lab-style view with image preview and upload, Tag autocomplete with chips, Model autocomplete, Negative Prompt field, Model, Seed — replaces the old narrow modal
- Lightroom → Publish → Image Upload: User can select an image for their listing directly from disk; the image from the active Lab entry is pre-filled automatically; a clear button removes it again
- Lightroom → Publish → Tag Autocomplete: Tags are now entered as chips with autocomplete suggestions — identical behaviour to Prompt Lab
- Lightroom → Publish → Model Autocomplete: Model field now shows autocomplete suggestions — identical to Prompt Lab
- Lightroom → Detail View (Lab-style): Detail view is now a fullscreen Lab-style layout with all fields editable (Prompt, Negative Prompt, Model, Seed, Tags, Collections)
- Lightroom → Detail View → Collections: Collections dropdown with autocomplete and chips, powered by the same `CollectionsHandler` used in Prompt Lab
- Lightroom → Detail View → Tag Autocomplete: Tag input with autocomplete and chip display — identical to Prompt Lab
- Lightroom → Detail View → "Open in Lab": Passes all edited field values AND the listing image to Prompt Lab in one click
- Prompt Lab → Video badge on iteration cards: Iterations and the main version that have a video now show a small ▶ badge overlay on their thumbnail in the timeline
- Prompt Lab → Video download: Download button now works for videos; opens a Tauri save dialog and copies the video file to the chosen path
- Prompt Lab → Reference overlay moved to top-right: Reference image thumbnails are now anchored at the top-right of the media area and expand downward as more references are added
- Prompt Lab → "Set as Favorite" / "Delete version" buttons in toolbar: Moved from per-chip action icons to the shared `lab-image-actions` toolbar; buttons are only visible when an iteration is active and not in create mode
- Prompt Lab → Gallery refresh on version actions: "Set as Favorite" and "Delete version" now immediately refresh the gallery in the background so the card thumbnail updates without requiring Labs to be closed
Changed
- Settings → Emoji cleanup: Removed all decorative emoji from section headers and button labels in the Actions, Backup, Updates, and Advanced tabs
- Settings → Archive info box: Active archive is now displayed as a styled info box in both the Backup and Advanced tabs
- Gallery → Video badge icon: Replaced HTML entity with an inline SVG play-triangle for the video badge on gallery cards
- Gallery → Removed "has-ref" badge: The chain-link badge indicating a linked reference prompt has been removed from gallery cards
- Gallery → Thumbnail priority for video entries: Gallery cards and Lab iteration chips now show the video thumbnail for entries that have a video, falling back to the image thumbnail only when no video is present
- Prompt Lab → "Set as Favorite" label: Renamed from "Set as main version" to "Set as Favorite" / "Als Favorit setzen" to match the chip label
- Bulk select → No gallery reload on toggle/selection: `toggleBulkMode()` and `toggleSelection()` now update card CSS classes directly in the DOM instead of triggering a full gallery reload
Fixed
- Public Portal → Peers online counter on iOS Safari: Counter was stuck at "1 online" after refresh; replaced with exponential backoff polling that runs until peers are actually found
- Public Portal → iOS Safari caching: Added `Cache-Control: no-cache, must-revalidate` meta tag so Safari fetches a fresh version on every refresh
- Gallery → Missing image warning: Console no longer spams warnings when a prompt references an image file that no longer exists on disk
- Prompt Lab → Video player layout: Video element now fills the media area naturally and native browser controls appear directly below the video content
- Prompt Lab → Lightbox always showing last image: Off-by-one errors when some iterations have no image; fixed
- Prompt Lab → "Set as Favorite" image not cleared: When promoting a video-only iteration to Favorite, the old main entry's image is now explicitly cleared
- Prompt Lab → "Set as Favorite" video thumbnail lost: Video `thumb` path is now transferred correctly when promoting an iteration
0.26.0 2026-02-17
Added
- Prompt Lab → Video Support: Prompts and iterations can now have a video (MP4, WebM, MOV, AVI, MKV, M4V) in addition to or instead of an image
- Prompt Lab → Unified media picker: Clicking the image/video placeholder opens a file dialog accepting both images and videos
- Prompt Lab → Drag & drop: File drops work for both images and videos on the gallery and inside the lab
- Backup/Export/Import → Full i18n: All progress messages, status updates, and error strings in backup, export, and import flows are now fully localised (6 languages)
Changed
- Prompt Lab → Placeholder text: Updated to "Drag image or video here or click" (i18n, both DE/EN)
- Prompt Lab → Version switch: Switching between versions now correctly renders the video or image for that version
Fixed
- Prompt Lab → "Delete image" button visible on video versions: Button is now hidden when a saved video is shown and no image exists for that version
- Prompt Lab → Old video thumbnail flashing: Poster attribute is now cleared immediately when a new video source is set
- Backup/Export → Video files now included: Full backup (ZIP), SQLite backup, and Prompts ZIP export now include video files
- Backup/Import → Video metadata preserved: All import paths now read and restore video paths from JSON; old backups without video data import cleanly
- SQLite Backup → Video cleanup on restore: Restoring a SQLite backup now cleans and extracts video files from the archive
0.25.0 2026-02-15
Added
- Settings → Archives → Open Folder: Each archive now has an open-folder button to reveal its directory in the file explorer
- Prompt Lab → Multi-Collection: Prompts can now be assigned to multiple collections simultaneously; chip-based picker with inline search and inline creation replaces the single-select dropdown
- Prompt Lab → Rating Reset: Explicit ✕ button next to rating stars resets rating to 0 (only visible when a rating is set)
- Prompt Lab → Delete saved image: New "Delete image" button removes the saved image of the current entry or iteration (with confirmation); physical files and DB reference are both cleaned up
- Prompt Lab → Image upload: Click on image placeholder or drag & drop works in all modes (not just create mode)
Changed
- Archive switch: Removed confirmation dialog for faster workflow
- Archive delete: Unavailable archives (e.g. disconnected USB) can now be deleted from the list
- Reference Picker: Consistent image sizes; selected state with accent border; empty state styling
- Prompt Lab → Clear image button: Refined style — circular, glass-morphism background, turns danger-red on hover
Fixed
- Prompt Lab → Rating display: Unfilled stars in version thumbnails no longer appear gold; only filled stars use the accent color
- Prompt Lab → Auto-focus: Removed automatic focus on prompt textarea when opening the Lab; ESC now works immediately
- Prompt Lab → Version label: Main version thumbnail badge was hardcoded "Haupt"; now i18n-based, renamed to "Favorit" / "Favorite"
- Search clear button: Hover state no longer shows a rounded background; icon color brightens on hover only
0.24.0 2026-02-12
Added
- 🎉 Multi-Archive Support: Complete multi-archive system for managing multiple independent prompt archives
- Settings → Archives: New tab for archive management
- Header Archive Switcher: Quick archive switching directly from header
Changed
- Settings modal expanded with new Archives tab
- Header layout includes archive switcher between theme toggle and update badge
0.23.3 2026-02-11
Fixed
- Removed Delete Templates button from Settings: Removed leftover "Delete Templates" button that was still in Settings UI after template system removal
- Backup List now shows all backups: Settings now displays all backup files (manual, automatic reset, and import backups) with colored type badges
- Update Modal Design: Made update modal more minimalistic - removed emojis, reduced font sizes, tightened spacing
- Settings Modal Improvements: Made close button sticky at top, removed all emojis, reduced font/spacing
- Settings Modal Padding: Fixed unintended `padding: 20px` on Settings header
- ESC Key Modal Hierarchy: ESC now closes modals in correct LIFO order (last opened closes first)
⚠️ BREAKING CHANGES
- Complete Template System Removal: The legacy template system has been completely removed from the application
0.23.2 2026-02-11
Added
- Update Install Modal: Design and Styling
- Update Badge in App Header
0.23.1 2026-02-10
Fixed
- First Beta Release with AutoUpdater: Release of the first beta version with update check
0.23.0 2026-02-10
Added
- JSON Export for Collections: Collections can now be exported individually as JSON (Settings → Data & Backup → JSON Exports)
- JSON Export for Prompt Builder: Prompt Builder (categories + blocks) can now be exported as JSON
- JSON Import with Replace/Add: When importing Collections, Templates and Prompt Builder, you can choose whether to replace or add data
Fixed
- JSON Export functions for Collections and Prompt Builder: Previously, JSON export only exported categories but no blocks. Now both are exported correctly.
0.17.0 2026-01-15
Added
- Multi-Separator System for Prompt Builder
- Improved Builder color palette