← Back

Changelog

All notable changes to CozyPrompts.

0.28.1 2026-03-01

Fixed

0.28.0 2026-03-01

Added

  • Marketplace → 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
  • Marketplace → 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
  • Marketplace → 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

  • Marketplace → 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
  • Marketplace → 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
  • Marketplace → Publish → Blocked IP could bypass check when sharing without image: Sharing a prompt without a thumbnail skipped the IP block check entirely; fixed
  • Marketplace → Publish → Image URL double-encoded: `convertFileSrc()` was applied to already-converted URLs → HTTP 500; fixed
  • Marketplace → Report button incorrectly disabled: Button showed `cursor: not-allowed` even when the user had not yet reported; fixed
  • Marketplace → GenosDB error after identity switch: `TypeError` after login/logout; fixed by reloading grid after identity change
  • Marketplace → "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: Marketplace shows shared prompts twice

0.27.0 2026-02-22

Added

  • Marketplace → 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`
  • Marketplace → 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`
  • Marketplace → 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
  • Marketplace → 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
  • Marketplace → 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
  • Marketplace → 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
  • Marketplace → Search field in toolbar: A debounced search input is now part of the Marketplace 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/marketplace.html` includes the same AES-GCM crypto inline; search on the public portal also decrypts locally for matching — no server involved
  • Marketplace → 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
  • Marketplace → 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
  • Marketplace → Publish → Tag Autocomplete: Tags are now entered as chips with autocomplete suggestions — identical behaviour to Prompt Lab
  • Marketplace → Publish → Model Autocomplete: Model field now shows autocomplete suggestions — identical to Prompt Lab
  • Marketplace → Detail View (Lab-style): Detail view is now a fullscreen Lab-style layout with all fields editable (Prompt, Negative Prompt, Model, Seed, Tags, Collections)
  • Marketplace → Detail View → Collections: Collections dropdown with autocomplete and chips, powered by the same `CollectionsHandler` used in Prompt Lab
  • Marketplace → Detail View → Tag Autocomplete: Tag input with autocomplete and chip display — identical to Prompt Lab
  • Marketplace → 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