FoldRocket
Author: FoldRocket
Plugin URI: https://foldrocket.com

================================================================================
CHANGELOG (WordPress.org package)
================================================================================

Version 1.4.28 - 2026-11-06
--------------------------------------------------------------------------------
- UPDATE: The product is now FoldRocket across the plugin header, WordPress navigation, onboarding, settings, notices, documentation and all 11 interface languages
- UPDATE: The plugin slug, text domain, PHP namespace, REST namespace, database prefix, hooks, capabilities, CLI commands, JavaScript bootstrap and CSS prefix now use the FoldRocket and frkt identifiers
- UPDATE: The Free package installs in the foldrocket directory with foldrocket.php as the main plugin file

Version 1.4.27 - 2026-11-05
--------------------------------------------------------------------------------
- NEW: Shift plus the arrow keys extends or contracts the current media selection across grid and list views
- NEW: The Flags filter identifies attachments whose physical file is missing and refreshes their filesystem status when the filter is opened
- FIX: Media uploaded through the native WordPress media dialog is automatically added to the FoldRocket index
- FIX: Grid and list controls keep a stable position when switching views
- FIX: Smart Views load without repeated listing refreshes and the library no longer reserves an empty first grid cell
- FIX: The Free package preserves the WordPress media integration bridge so the FoldRocket sidebar appears in the native Media Library and media dialogs
- FIX: WordPress Plugin Check compatibility is improved through prepared queries, WordPress filesystem APIs, validated request handling and cleaner runtime packages
- UPDATE: The self-hosted Free package now receives updates through the FoldRocket custom updater without requiring a Pro license
- UPDATE: Index and scan library uses a clearer resumable background workflow with progress, interruption and dismissal states
- UPDATE: All 11 interface languages now include the complete UI catalog, including sorting and scan progress messages
- MINOR: Inspector spacing, mobile header controls, sorting controls and the upgrade banner are refined across supported viewports

Version 1.4.26 - 2026-11-05
--------------------------------------------------------------------------------
- NEW: Native WordPress media selection dialogs show the FoldRocket sidebar with Smart Views, colored folders, hierarchy and live counts
- NEW: Grid view offers three preview sizes, while grid and list cards show clearer ALT status, file weight, pixel dimensions and aspect ratio
- FIX: Background jobs use lease fencing, heartbeats, resource locks and bounded retries to prevent duplicate or stale work
- FIX: FoldRocket bundles its Action Scheduler runtime and keeps a durable WordPress cron fallback
- FIX: REST operations enforce object-level attachment permissions and safer capability checks
- FIX: The media sidebar and FoldRocket picker tab load reliably, keep a light skin and preserve native WordPress upload drag and drop
- FIX: Database migrations verify critical tables, columns and indexes after upgrades
- FIX: Large folder downloads run in bounded background batches with per-attachment access checks and one-time download tokens
- UPDATE: Library queries, queue indexes and full-text search are optimized for large media libraries and multisite isolation
- MINOR: Filter alignment, folder hierarchy spacing, sidebar margins and media-modal layouts are refined

Version 1.4.25 - 2026-11-03
--------------------------------------------------------------------------------
- NEW: The main FoldRocket navigation can collapse to an icon-only sidebar and remembers the chosen state
- NEW: The desktop inspector can be resized and remembers its width
- UPDATE: Inspector previews scale with the original image ratio and keep the complete image visible
- MINOR: Inspector controls and form spacing are refined across light and dark themes

Version 1.4.24 - 2026-11-03
--------------------------------------------------------------------------------
- NEW: The native WordPress Media Library adds a FoldRocket sidebar in grid and list views with folder colors, hierarchy and live counts
- MINOR: The native sidebar uses a bordered, top-aligned layout with improved spacing

Version 1.4.23 - 2026-11-02
--------------------------------------------------------------------------------
- NEW: Library and WordPress media picker filters support ordering by date, title and indexed file size
- FIX: Full-library indexing runs in resumable background batches instead of stopping after a partial import
- FIX: Explicit date ordering inside a folder works independently of its manual drag order
- UPDATE: Unchanged media reuse hashes and image decoding checks memory before processing originals
- MINOR: Free and Pro packages share the same release version

Version 1.0.0
--------------------------------------------------------------------------------
- NEW: Bricks. Virtual folders show in the Bricks media browser. Files stay in uploads.
- NEW: Library. Right-click a file to copy its URL or filename, download it, add it to a folder, open its details, or delete it
- NEW: Drag files onto each other inside a folder to set a custom order
- NEW: Folder colors. Select color next to Download zip paints the folder name in the sidebar
- NEW: Library. Download zip packs the files in the current folder and deletes the archive after the download
- NEW: Settings -> Import. Copy HappyFiles, FileBird, Real Media Library, and WP Media Folder folders into virtual folders without moving files
- FIX: Free no longer fatals on boot - Bricks media browser files ship in the free package
- FIX: REST requests work with plain WordPress permalinks, including query parameters and file uploads
- FIX: Folder updates report database write failures instead of returning a false success
- FIX: The Bricks folder integration no longer loads translations before WordPress is ready.
- FIX: The inspector no longer opens with the header and preview cut off
- FIX: Dragging a file into a folder, or onto another file to reorder it, no longer cancels the drag
- FIX: While reordering files inside a folder, the placeholder follows the pointer
- FIX: On a phone, scrolling the inspector no longer leaves a gap above the header
- FIX: On a phone, the library scroll stays above the bottom buttons and no longer leaves a gap above Folders and Filters
- FIX: On a phone, file checkboxes stay under the Folders and Filters bar while scrolling
- FIX: On a phone, each library walkthrough step stays fully visible, including the one that opens a file
- FIX: The folder color picker opens next to the Select color button
- FIX: Changing a folder color no longer requires permission to rename or delete folders
- FIX: The folder color picker stays readable in dark mode
- FIX: The media window tab uses the configured name, and FoldRocket when none is set
- FIX: On phone-width screens, the WordPress admin bar no longer covers the library header
- FIX: The upload dialog stays inside the screen on small viewports
- FIX: Moving a folder keeps its subfolders with it
- UPDATE: Dragging a file from the folder you are viewing onto another folder moves it out of the original folder
- UPDATE: On a phone, the inspector scrolls as one panel, starting from the preview
- UPDATE: On a phone, a horizontal swipe closes the inspector
- UPDATE: All media no longer reorders files while dragging. Custom order stays inside a folder
- MINOR: Context menu actions show an icon, and folders in that menu use their color
- MINOR: The FoldRocket mark is updated in the plugin and the WordPress menu
- MINOR: While dragging a file inside a folder, a placeholder shows where it will land
- MINOR: The file type menu fits its options without a scrollbar
- MINOR: On a phone, the file type filter is a native select
- MINOR: Dragging a file uses the move cursor
- MINOR: The setup wizard no longer shows a horizontal scrollbar on a desktop
- MINOR: Dragging a file shows a small thumbnail next to the cursor
- MINOR: Each folder in the sidebar shows a folder icon, and an open folder when it is selected
- MINOR: The folder toolbar no longer includes the Move menu
- MINOR: The folder toolbar button says Add Subfolder
- MINOR: On small screens, folders and the filters each open in their own layer
- MINOR: On small screens the filter layer hugs its content, and the two dates sit side by side with a label
- MINOR: On small screens the list view shows one file per row
- MINOR: On small screens, folder actions line up in two columns
- Move a folder by dragging it onto another folder, or onto All media to return it to the top level
- A folder cannot be moved into itself or into one of its subfolders
- Drag media onto a folder in the sidebar to assign it
- Nested virtual folders (subfolders), created from the folder toolbar
- Long folder and smart view names truncate cleanly in the sidebar
- Admin UI chrome is fully localizable across all interface languages
- After the setup wizard, a walkthrough explains folders, filters, upload, and settings, then opens one file
- On a phone, each walkthrough step stays above the bottom navigation
- On phones, the bottom navigation stays visible, follows dark mode, and hides item counts
- REST: viewing one attachment, running background jobs, and indexing the library require the matching permission. Bulk ALT checks that each attachment can be edited
- Global names and library tables use the frkt prefix. Existing frkt_* settings and tables are renamed on load
- First release: media library, virtual folders, filters, upload, and the media modal
- Admin interface languages: English, Italian, French, German, Spanish, Portuguese (Portugal), Portuguese (Brazil), Polish, Russian, Danish, and Dutch
- Tool language is in Settings -> Appearance. Save buttons follow the interface language
- Files stay in the uploads directory
- Background indexing uses Action Scheduler when it is available, otherwise WP-Cron
- Updating an attachment requires permission to edit that attachment
- Renaming, moving, or deleting a virtual folder requires the ability to edit others' posts
- Assigning media to a folder requires permission to edit each attachment
- Cancelling or retrying a background job requires administrator access
- Legacy aiml_* tables are removed only when they are empty and the matching frkt_* table already exists
