Skip to content

RapidReady v0.6.2

Latest

Choose a tag to compare

@on370 on370 released this 09 Nov 20:02

RapidReady v0.6.2: RAW + JPEG Stacking, Editorial Rights & Metadata Sidecars, and Capture Date Honesty

RapidReady 0.6.2 introduces intelligent 1:N RAW + JPEG stacking with instant 1:1 sensor-zoom variant comparison, comprehensive non-destructive editorial metadata and rights management via companion sidecars (.rrdata & .xmp), capture date honesty with 1-click archive relocation, improved onboarding, and subfolder grid sorting.

Key Achievements

  • Intelligent 1:N RAW + JPEG stacking grouping mother RAWs and derivative JPEGs into single virtual tiles with responsive badges and zero CTSP overhead.
  • Instant zero-latency variant comparison (J) in Loupe View with 1:1 sensor-zoom point and pan position preservation.
  • Non-destructive editorial metadata management writing Artist, Copyright, Usage Terms, Title, and Description to .rrdata and .xmp sidecars.
  • Dedicated Inspector Editorial Card with inline editing and multi-photo batch assignment.
  • Capture date honesty with absolute date overrides, relative time-shifts, and 1-click archive relocation for corrected photos.
  • Global master metadata presets in Settings with dynamic {year} copyright macro resolution per photo capture date.
  • Protected Import Step 2 metadata and date overrides for analog scans and specific shoots with amber warning indicators.
  • Improved onboarding with an expandable and collapsible navigation sidebar featuring 1-word labels and a dedicated footer toggle.
  • Subfolder grid sorting and Loupe View folder navigation via ↑ and ↓.
  • Fast non-blocking asynchronous trash deletion on macOS via native NSFileManager without AppleScript Finder freezes (v0.6.1).
  • Comprehensive companion sidecar deletion removing both .rrdata and .xmp files when deleting photos (v0.6.1).
  • Fail-safe React <AppErrorBoundary> preventing black-screen crashes with instant 1-click diagnostic interface recovery (v0.6.1).
  • Bulletproof Loupe View deletion stability eliminating TypeError: undefined preloader crashes via safe index clamping (v0.6.1).
  • Derived safeActiveIndex and dynamic forward index shifts preventing selection drift during batch deletion (v0.6.1).
  • Navigation key scroll lock (↑, ↓, ←, →) preventing unintended browser default scrolling on the folder tree (v0.6.1).
  • File-watcher ghost event suppression for .rrdata/.xmp sidecars and hidden system file filtering (v0.6.1).
  • Universal Adobe XMP (.xmp) sidecar engine with non-destructive read-modify-write and 3 configurable sync modes (v0.6.0).
  • Conflict resolution via filesystem modification timestamps (mtime) as Single Source of Truth (SSoT) (v0.6.0).
  • Dual XMP naming convention support: Adobe Standard STD and darktable DT with companion JPEG collision protection (v0.6.0).
  • Native bidirectional compatibility for darktable color labels and hierarchical tags (v0.6.0).
  • Configurable external RAW developer launcher (R / Shift+R) supporting RapidRAW, darktable, Lightroom Classic, System Default, or Custom Applications (v0.6.0).
  • Zero-I/O lazy on-demand import duplicate detection recognizing pre-existing archive files during SD card scanning without background library hashing (v0.6.0).
  • Full rendering and EXIF metadata extraction for reverse-layout Capture One DNGs lacking embedded JPEGs (v0.6.0).
  • Archive catalog deletion reconciliation eliminating ghost directories in folder trees upon sync (v0.6.0).

RAW + JPEG Stacking & Seamless Variant Switching

  • Virtual 1:N Stacking Engine (LibraryCenter.tsx, GridThumbnailItem.tsx): Automatically pairs mother RAW files with companion JPEGs in the same folder as well as direct development subfolders (e.g. ./LR/, ./Export/, ./JPG/) into a single virtual tile. The physical directory structure and underlying high-speed cache remain 100% untouched ($0%$ CTSP overhead).
  • Responsive Stack Badges: Kacheln display compact format badges (RAW + JPG, RAW + LR/JPG, RAW +N JPG). Subfolder names dynamically truncate based on current tile width, while the full directory path remains visible via hover tooltips.
  • 1:1-Zoom Point Preservation (J / </kbd>): Rapidly cycle through all variants of a stack in Loupe View with zero latency. Unlike conventional viewers, RapidReady maintains the exact 100% sensor-zoom crop and pan coordinates when switching variants (resetZoomKey), making optical sharpness and grain comparisons effortless.
  • Synchronous Culling & Differentiated Deletion: Star ratings, pick/reject flags, color labels, and tags sync across all stack members. When deleting, a safety modal offers granular options (delete entire stack, RAW only to save space, or specific derivatives only).

Editorial Metadata, Rights Management & Capture Date Honesty

  • 100% Non-Destructive Companion Sidecars (.rrdata & .xmp): Atomically writes Artist (artist), Copyright (copyright), Usage Terms (usage_terms), Title (title), and Description (description) to companion .rrdata and Adobe .xmp sidecars without modifying a single byte of your original RAW or JPEG files.
  • Inspector Editorial Card: Dedicated collapsible inspector card with an inline pencil editor and multi-photo batch assignment for rapid editorial attribution across large photo selections.
  • Capture Date Honesty & Time-Shift: Non-destructively adjust capture dates using relative time shifts (+/- seconds, ideal for unsynchronized camera clocks or timezone offsets) or absolute date overrides (for digitized film scans).
  • 1-Click Archive Relocation: If a corrected capture date no longer matches its parent folder structure (e.g. 2023/2023-08), clicking „In passenden Ordner umziehen“ safely moves the image and its companion sidecars into the corresponding year/month directory.
  • Global Master Metadata & Dynamic {year} Token: Define persistent defaults for Photographer, Copyright, and Rights in Settings. The {year} macro is evaluated dynamically per photo against its true capture date, guaranteeing accurate copyrights even across mixed-year SD cards.
  • Protected Import Step 2 Overrides: Pre-populate editorial metadata or override shoot titles and capture dates directly during ingest. Protected by prominent amber warning chips and automatic toggle resets when switching import sources to prevent accidental misattribution.
  • For detailed architecture and best practices, see the Metadata & Date Management Guide.

Subfolder Grid Sorting & Loupe Folder Navigation

  • Relative Subfolder Sorting: Group and sort photos in the library grid by their relative subfolders within date structures.
  • Vertical Folder Navigation in Loupe View: Navigate smoothly to the previous or next archive folder directly from Loupe View using ↑ and ↓.

Fast Non-Blocking macOS Trash Deletion & Sidecar Cleanup (v0.6.1)

  • Native NSFileManager Integration (system_cmds.rs): Replaced synchronous AppleScript Finder events (DeleteMethod::Finder) with Cocoa's NSFileManager.trashItemAtURL (DeleteMethod::NsFileManager). Bypasses /usr/bin/osascript sub-process overhead, executing batch deletions in milliseconds.
  • Tokio Thread Protection: All heavy filesystem and SQLite catalog pruning tasks run inside tauri::async_runtime::spawn_blocking, ensuring Tokio worker threads remain entirely free to serve rr-image:// tile requests and UI events.
  • Complete Sidecar Purging: When photos are deleted, RapidReady now automatically locates and removes both .rrdata (get_sidecar_path) and .xmp (find_existing_xmp_path) companion files from disk.

Fail-Safe React Error Recovery (<AppErrorBoundary>) (v0.6.1)

  • App-Wide Error Protection: Added <AppErrorBoundary> wrapping <App /> in main.tsx and <LoupeViewer /> in LibraryCenter.tsx.
  • Diagnostic Error Card: If an unhandled DOM or lifecycle error occurs, the window never turns black. Instead, it surfaces a dark diagnostic card with the exact error message and component stack trace.
  • One-Click Recovery: Includes an „Oberfläche wiederherstellen“ button that switches view mode safely back to Grid, clears selections, and restores the UI without restarting the application.

Loupe View Deletion Stability & Safe Index Synchronization (v0.6.1)

  • Preloader Null-Check & Clamping: Eliminated TypeError: undefined is not an object in LoupeViewer.tsx by clamping index lookups (idx0 = Math.min(activeImageIndex, displayedImages.length - 1)) and verifying element existence across all lookahead and buffer lookups.
  • Derived safeActiveIndex: Introduced an always-valid derived index in LibraryCenter.tsx passed synchronously to LibraryGrid, LoupeViewer, FullscreenViewer, and keyboard shortcut handlers.
  • Forward Index Shift: Updated removeImages in libraryStore.ts to shift activeImageIndex forward by the exact number of deleted preceding images, ensuring selections follow surviving items smoothly.
  • Automatic Grid Fallback: Automatically switches view mode to Grid when all images in the active scope are deleted.

Folder Tree & Keyboard Navigation Ergonomics (v0.6.1)

  • Navigation Key Scroll Lock: Added e.preventDefault() to all photo navigation shortcut handlers (↑, ↓, ←, →, J, K), preventing browsers from triggering unwanted default scrolling on the folder tree when it was previously focused.
  • Stable Tree Viewport: Removed disruptive scrollIntoView auto-scrolling from TreeView during grid navigation.
  • Ghost Event Suppression: Suppressed false-positive sidecar-updated events by checking that both sidecar and target image exist before emitting events. Filtered .DS_Store and non-archive files from deletion logs.

Universal Adobe XMP (.xmp) & RapidRAW (.rrdata) Sidecars (v0.6.0)

  • Non-Destructive Read-Modify-Write Engine: Atomically updates ratings, picks, rejects, color labels, tags, GPS coordinates, and orientations via temp-file write and rename (.tmp -> rename). Strictly preserves all foreign XML tags, attributes, and RAW development blocks (such as Lightroom crs:* parameters, darktable history stacks, and RapidRAW adjustments).
  • Three Configurable Sidecar Modes:
    • RapidRAW Native (.rrdata) (Default): Writes native .rrdata with automatic fallback to .xmp if only an XMP exists.
    • Dual-Sync (.rrdata + .xmp) (Hybrid): Writes changes synchronously to both .rrdata and .xmp for seamless transitions between RapidRAW, Lightroom, and darktable.
    • Standard XMP (.xmp): Writes directly to .xmp (updating existing .rrdata if present) with read fallback to .rrdata.
  • Filesystem mtime Single Source of Truth (SSoT): When both .rrdata and .xmp exist for an image, RapidReady automatically resolves conflicts in favor of the file with the most recent modification timestamp (mtime).
  • Dual XMP Naming Conventions: Configurable in Settings between Adobe Standard STD (<stem>.xmp, e.g. DSC001.xmp) and darktable DT (<file>.<ext>.xmp, e.g. DSC001.ARW.xmp), with automatic per-extension naming whenever companion JPEGs exist.
  • Inspector Sidecar Badges: Compact header indicators ([ .rrdata ], [ .xmp ], [ .rrdata · .xmp ]) with interactive tooltips clarifying the authoritative SSoT source based on mtime.
  • NAS-Safe Bulk Sidecar Sync: On-demand synchronization tool in Settings to reconcile existing archives (20k+ files) between .rrdata and .xmp with a live progress bar and pause/resume/cancel controls (ScanController).

Configurable External RAW Developer Launcher (v0.6.0)

  • Target Application Selector: Choose between RapidRAW (Default), darktable, Adobe Lightroom Classic, System Default, or a Custom Application (.app on macOS, .exe on Windows).
  • Dynamic UI Labels & Shortcuts: Context menus, toolbar popovers, import completion buttons, and shortcut references dynamically display the target app name and key combination (e.g. „In darktable öffnen (Shift+R)“ vs. „In RapidRAW öffnen (R)“).
  • Truncate & Layout Protection: 5-column button grid in Settings with hover tooltips and dynamic explanation text. All UI labels and shortcut badges use text truncation and flex protection (min-w-0 truncate + shrink-0) to ensure long custom application names never obscure shortcut badges.
  • Dedicated In-App Help Chapter (HelpRawDevelopers.tsx): Comprehensive guide in the Help modal covering end-to-end integration, recommended sidecar modes per tool, darktable library.db XMP refresh tips, and guidance on darktable's default 1-star import behavior.

Lazy On-Demand Import Duplicate Detection (v0.6.0)

  • Zero-I/O Archive Duplicate Detection: Photos already existing in a photo archive (e.g. imported prior to RapidReady) are automatically recognized as already_imported = true when scanning an SD card or source directory.
  • 100% CTSP Compliance: Eliminates background disk hashing during library browsing. During source scanning, pre-filters files by exact byte size and lazily computes 64 KB head hashes only for matching candidates, caching results permanently in import_index.db.
  • Special thanks to community contributor @DanieGu for suggesting the import duplicate detection backfill mechanism!

Capture One & Reverse-Layout DNG Support (v0.6.0)

  • Reverse TIFF Layout Support: Added decoding for DNG files where IFD0 sits near the end of the file (e.g. exported from Capture One 23 Windows from Sony ILCE-6700).
  • ImageIO RAW Fallback: Enabled Apple ImageIO RAW decoding fallback for uncompressed sensor CFA files lacking embedded JPEGs.
  • Letterbox Border Filtering: Filtered transparent letterbox borders in thumb_rs to prevent false 404 preview errors.

Archive Deletion Reconciliation (v0.6.0)

  • Ghost Directory Cleanup: Added removed_dirs tracking to ArchiveDeltaResult and reconcile_directory_files.
  • Automatically identifies and purges externally deleted folders and orphaned photos upon folder refresh or archive delta sync, eliminating ghost folders in the directory tree.

Download & Installation

macOS (Apple Silicon & Intel)

  1. Download RapidReady_0.6.2_universal.dmg.
  2. Open the .dmg and drag RapidReady into your Applications folder.
  3. First Launch Note: If macOS Gatekeeper shows a warning because RapidReady is an open-source project without a paid developer certificate, run this command once in Terminal:
    xattr -cr /Applications/RapidReady.app
    (Or right-click RapidReady.app in Applications and select Open).

Windows (x64)

  1. Download RapidReady_0.6.2_x64-setup.exe.
  2. Run the installer (no administrator privileges required).
  3. SmartScreen Note: Click More info and then Run anyway if prompted by Windows SmartScreen.