# MiniMax Converter — Changelog

> Release history. Tags indicate the kind of change: **[FEAT]** new feature, **[FIX]** bug fix, **[UI]** UX/visual improvement, **[DEPS]** dependency or build work.

Back to [home](https://minimax-converter.com/index.md).

## 2026-05-24 — Mix screen — resizable table view, ID3 tags, per-song waveform with playback cursor, click-to-seek

- **[FEAT]** **The Mix playlist is now a proper table** — Name, Key, Waveform, Duration columns. Drag any column divider in the header to resize Excel-style, or **double-click a divider** to auto-fit that column to its content. Duration is always pinned to the right; the queue position shows as `[N]` in front of the song name in the Name column.
- **[FEAT]** **Per-song key + waveform analysis.** Click **Analyse keys** and each song gets its detected key (e.g. `C`, `F#m`) and a 20-character mini-waveform rendered in the row. While playing, a `|` cursor scrolls through that song's mini-waveform showing playback position; **click anywhere on the waveform to seek** to that point. **Ctrl/Cmd + L** locates the currently-playing track in the list (selects + scrolls into view).
- **[FEAT]** **ID3 tags instead of filenames.** By default the playlist shows "Artist — Title" pulled from each file's tags. Tick **Show files** next to the Analyse button to see raw filenames instead. **Total duration** of the playlist is shown to the right of the toolbar so you know the whole mix length at a glance.
- **[FEAT]** **Folder drop + Add from URL.** Drop a folder onto the Mix screen and every supported audio file inside it gets recursively imported into the playlist (alphabetical per directory). **Right-click → Add from URL** downloads a single audio track via yt-dlp into your Downloads folder as VBR-V0 MP3 (max quality) and appends it to the playlist.

## 2026-05-23 — Audio screens — dynamic effect rack, marker editor, A/B sync, waveforms across the board

- **[FEAT]** **Audio Effects is now a dynamic rack.** Click **+ Add effect** and pick from 15 effects — Reverb, Delay / Echo, Chorus, Phaser, Distortion, Compressor, Limiter, Noise gate, Gain, Bitcrush, Highpass / Lowpass filters and three EQ bands. Each slot has its own sliders; remove with ✕, grab the ⇅ handle to drag a slot up or down to reorder the chain — an orange bar shows the live drop position while you drag.
- **[FEAT]** **Split by Silence got a visual marker editor.** Drop a file, click **Detect silence**, and orange vertical lines appear on the waveform at every detected break. Left-click + drag to move a marker, right-click a marker to delete it, right-click anywhere else on the waveform to add one. **A/B Compare** rebuilt with two stacked waveforms, **Mute A** / **Mute B** tickboxes, and one ▶ Play / ■ Stop driving a single mixed pipeline so both cursors stay in lockstep.
- **[FEAT]** **Channel Operations, Sample Rate / Bit Depth, and Reverse** all got the same waveform + Original A/B tickbox + Save / Save as as the other audio screens. Channel Operations gains an **Extract channels** mode that writes `{name}_LEFT` and `{name}_RIGHT` files; Reverse swaps direction at the mirror time so listening continues uninterrupted. Audiobook chapters removed — same job as Split by Silence.
- **[FIX]** Preview reliability fixes across the audio screens: chains of three or more effects no longer cut audio out, Sample Rate preview survives 8-bit, and Phaser / Chorus no longer kill the chain at the upper end of their slider ranges.

## 2026-05-23 — Mix screen — queue tracks, selection follows playback, cleaner auto-crossfade

- **[FEAT]** **Queue tracks in any order you like.** Right-click a row in the Mix list and pick **Queue Next** — a small number badge appears next to its name showing its place in line. Queue more songs and they renumber automatically. Right-click a queued row again to remove it. Keyboard shortcut **Alt+Q** toggles queueing on the highlighted row.
- **[FEAT]** **The currently playing track is always highlighted** in the list. Click any other row to move the highlight around — playback keeps going — and when one song ends the next track (the queue head if you've queued anything, otherwise the row below) takes the highlight automatically. You always see at a glance what's playing.
- **[FIX]** **Cleaner auto-crossfade.** Fixed an artifact where the outgoing song appeared to fade, briefly returned to full volume, then faded again before the next song came in. Transitions are now a single clean fade-out into the next track.

## 2026-05-22 — Audio More — new "Info" tool with spectrogram + transcode-detection verdict

- **[FEAT]** **Drop an audio file, click More → Info** and you get a Spek-style breakdown of the file: a colour-coded spectrogram (frequency on the vertical axis, time on the horizontal), the codec / claimed bitrate / sample rate / channels / duration / encoder tag from the header, the **actually detected high-frequency cutoff** measured from the audio content, and a coloured verdict line.
- **[FEAT]** **The verdict catches transcode-up fakes.** The classic case: a file that claims 320 kbps but has a brick-wall cutoff at 14 kHz — that's a re-encode from a much-lower-bitrate source, and the verdict flags it as "Likely transcoded from a lower bitrate than claimed" or "Heavy transcode" depending on how big the gap is. Lossless formats (FLAC, ALAC, WAV, etc.) short-circuit to "Lossless format — no transcoding concern".
- **[FEAT]** **Auto-analyses the file as soon as the screen opens** — usually about 2–3 seconds for a song-length file. No new dependencies; uses the audio tools already bundled with the app.

## 2026-05-21 — URL download — explicit "Treat as playlist" checkbox, default off

- **[UI]** **New "Treat as playlist" checkbox** right under the URL field on the URL Download screen. Tick it to download the whole playlist; leave it unchecked (the default) to just grab the one video the link points at.
- **[FIX]** **Share links from some sites no longer pull the whole playlist by accident.** When a share link comes from a video you were watching inside a playlist, the URL it gives you can carry a stray `&list=…` parameter. The old auto-detect treated that as a playlist intent and asked for confirmation, which users often clicked through and ended up with hundreds of songs. Single-video is now the guaranteed default; you opt in to playlist mode explicitly with the new checkbox.

## 2026-05-21 — Email→ODT no longer "corrupt"; Croatian fonts now bundled for PDF

- **[FIX]** **The `.odt` produced when an email has attachments now opens cleanly in LibreOffice.** The previous build embedded the attachments correctly inside the `.odt` package but didn't register them in the document's manifest — LibreOffice flags any unlisted package member as corrupt. The manifest now lists every embedded file with the right media type.
- **[DEPS]** **DejaVu Sans is now bundled inside the app.** The email→PDF converter uses it to render **čćšđž ČĆĐŠŽ**, Polish, Czech, Cyrillic etc. Previously we relied on the host system having the font installed — Linux is fine via the package dependency, but other platforms (and stripped-down Linux containers) could fall back to a Latin-1 font and turn extended characters into boxes. With the font shipped inside the app it just works everywhere.

## 2026-05-21 — Email→PDF/DOCX/ODT — attachments are now actually visible

- **[FIX]** **Attachments now show up next to the converted document.** The previous build was embedding them inside the file (in the PDF's native attachments tree, and inside the DOCX/ODT package), but most PDF viewers hide their Attachments pane by default and Word / LibreOffice don't surface arbitrary files from a document's package — so it looked like the embedding didn't work.
- **[FEAT]** **The attachments are now also saved as separate files** in a sibling folder named `<filename>_attachments/` right next to the generated document. The visible Attachments section at the end of the body tells you the path. Acrobat / Foxit / Sumatra users still get the in-PDF attachments pane as a bonus.

## 2026-05-20 — Choose Dependencies — mouse-wheel scrolling, aligned columns, taller dialog

- **[UI]** **Mouse-wheel scrolling now works everywhere in the Choose Dependencies dialog.** Previously the wheel only scrolled when the cursor was on the narrow margin around the rows; now it works no matter which row, checkbox or label you're hovering.
- **[UI]** **The rows line up properly now.** Package names sit in a fixed-width column on the left, descriptions start at the same x for every row, and the **Installed** badge sits cleanly on the right. Wrapped descriptions no longer drift across columns when a long package name like `libimage-exiftool-perl` pushes everything around.
- **[UI]** **The dialog itself is a bit taller and wider**, so the standard set of dependencies fits without scrolling on most monitors.

## 2026-05-20 — Drop a `.pst` / `.ost` — extraction now works out of the box

- **[DEPS]** **The Outlook mailbox library is now bundled.** Previously dropping a `.pst` or `.ost` file showed "PST/OST library not installed" because the underlying library wasn't shipped in the package. It now ships by default on Linux and macOS, so the messages, folders and attachments inside an Outlook mailbox extract straight away with no extra install step.

## 2026-05-20 — Email→PDF: attachments now actually embed, Croatian fonts render properly

- **[FIX]** **Email→PDF now actually embeds the attachments.** The previous build silently failed at the embed step, so the generated PDF was missing the `.zip` / `.docx` / image attachments even though the visible Attachments list said they were there. They now appear in Acrobat / Foxit / Sumatra's Attachments pane as expected.
- **[FIX]** **Email→PDF now renders Croatian, Polish, Czech, Cyrillic and other extended-Latin scripts.** Previously characters like **čćđšž ČĆĐŠŽ** came out as boxes because the PDF used a Latin-1-only font; the converter now uses DejaVu Sans (Liberation Sans / Arial / Calibri on platforms that don't ship it). The Linux package already ships `fonts-dejavu-core` as a dependency, so this just works after updating.
- **[UI]** **Extract button on the email drop screen is now just one word** ("Extract" / "Izvuci" / "Extraire" etc.) instead of the longer "Extract body + attachments" phrase.
- **[FIX]** **Dropping a `.pst` that fails early no longer crashes with an UnboundLocalError** for `pst_widgets`. The original error from the underlying library now surfaces normally. Same defensive fix applied to the `.olm` extraction path.

## 2026-05-20 — Drop an email — convert to PDF, DOCX or ODT with attachments embedded

- **[FEAT]** **New chooser screen when you drop `.eml` or `.msg` files.** Pick **.pdf**, **.docx**, **.odt** to convert the email to that format, **Extract** to do the original "dump body + attachments to a sibling folder" behaviour, or **Cancel**. Drop multiple emails at once and the chosen action runs across all of them in bulk.
- **[FEAT]** **Attachments are embedded INSIDE the generated document.** In PDFs they appear natively in Acrobat / Foxit / Sumatra's Attachments pane — any file type works, `.zip` included. In DOCX and ODT the attachments live inside the document's package; they're recoverable by renaming the file to `.zip` and unpacking. The body order is always headers, then the email content, then a visible "Attachments" section at the end that lists every attached file with its name and size — so you can see what's embedded even without opening the attachment pane.

## 2026-05-20 — Tools menu reorganized — new Security & Cryptography cascade, clearer category names

- **[UI]** **New *Security & Cryptography* cascade.** Hash calculator, HMAC, Password generator, Password hasher, Keypair generator, JWT, File encrypt/decrypt, Integrity monitor and OTP authenticator now live in one place — instead of being scattered across Create & Generate, Analyze & Validate and System & Config. If you're thinking "I need a hash / a key / an encrypted file / a token", that's where to look.
- **[UI]** **Categories renamed to match their contents.** *Analyze & Validate* → *Analyze & Inspect*, and it now actually contains only inspectors and calculators (Regex, Text stats, File magic, Strings, Diff, Compare folders, Folder size, Duplicates, Aspect ratio, Age, Tip). *File Tools* → *Files & Folders* and now holds only the action tools (Bulk rename, Lock finder, Secure delete, Watch folder). *Network Tools* → *Network*. *System & Config* → *System*.
- **[UI]** **Certificates now has Inspect / Convert / Generate sub-cascades**, restoring the structural grouping that the alphabetical sort had been flattening. Verify chain and Local CA stay as top-level entries. 3D meshes also promoted to its own sub-cascade under Convert & Format, mirroring the QR codes and Fonts pattern from last release.
- **[UI]** **Permissions and Favorites screens follow the new structure automatically** and can now check and uncheck every leaf tool, including the ones inside QR codes, Fonts, 3D meshes, and the Certificates sub-cascades.

## 2026-05-20 — Tools menu A–Z, QR + Fonts submenus, deeper Office strip, more polish

- **[UI]** **Tools menu now sorts alphabetically** by the translated label, so every cascade reads top-to-bottom in the current language. Switch language and the order updates automatically. New **QR codes** submenu under Create & Generate groups the QR generator with the WiFi / vCard / Email / Geo variants, and a new **Fonts** submenu under Convert & Format groups font convert / subset / specimen.
- **[FIX]** **Strip metadata on Word, Excel, PowerPoint and OpenDocument files now actually removes everything.** Previously the surface tags were cleared but the internal author / company / created / modified fields stayed inside the document package. The button now also rewrites those, so a clean copy comes out clean.
- **[FIX]** **The "drop anything here" home card no longer flashes underneath the progress bar** during mail and archive extraction. The transition is now clean — progress only.
- **[UI]** **The document `More…` screen now only shows tools that fit the files you dropped.** Drop a PDF and you'll see PDF tools; drop a .docx and you'll see DOCX tools; drop a mix and you'll see everything that applies to at least one of them.

## 2026-05-20 — One-click "Strip metadata" on every drop screen

- **[FEAT]** **New Strip metadata button on the audio, video, image and document drop screens.** Appears alongside the format buttons and the More button whenever at least one dropped file is in a metadata-bearing format — images (incl. raw), audio, video, PDF, Word / Excel / PowerPoint, OpenDocument and EPUB. Click it and the app asks "Do you want to remove all metadata from N selected files? This cannot be undone." Choose Yes and every supported file in the drop has its EXIF / IPTC / XMP / ID3 / author / company / GPS fields wiped in place; files in formats without supported metadata are silently skipped. Same dialog, same one-click flow across all four drop screens.

## 2026-05-20 — Final sweep — twenty-eight more tools across crypto, 3D, fonts, QR templates and every "More" screen

- **[FEAT]** **New misc tools in the Tools menu.** File encrypt / decrypt (AES-GCM with a passphrase, .mmcenc format), RSA / EC keypair generator (RSA 2048–4096, P-256, P-384, ed25519 → PEM), file integrity monitor (SHA-256 snapshot of a folder; later verify to spot any added / removed / changed file), 3D mesh converter (STL / OBJ / PLY / GLB / GLTF / 3MF with volume + surface area readout), font format converter (TTF ↔ OTF ↔ WOFF ↔ WOFF2), font subset (drop glyphs not used in a given text — shrinks web fonts massively), font specimen sheet PDF, and four new QR templates (WiFi auto-connect, vCard, Email / SMS / tel:, geo-location).
- **[FEAT]** **More additions to the existing "More" screens.** Image gains: PNG → multi-resolution ICO, Lyric / quote card image, Album art template, perspective correction (four-point), text annotation overlay, steganography hide / extract (LSB into PNGs), photo focus-stack (combines bracketed shots by sharpness), copy metadata file→file, SVG optimize, and PDF page → editable SVG. Video gains: stabilization, timelapse from a photo folder, and slideshow (photos + optional soundtrack + crossfades). Document gains: Excel formula audit, DICOM viewer + PNG export, MSG → PDF, and DOCX paragraph-level diff. With this release the entire "More" pattern is feature-complete across audio, video, image and document drop screens.

## 2026-05-19 — Image & Document Tools — closing out the "More…" pattern

- **[FEAT]** **Image drop screen — ten new tools behind "More…".** Format buttons + Compress stay on the drop screen; Resize, Meta, Archive, Filters, Remove BG, Upscale and Presentation move into the new Image Tools screen alongside ten new ones: Strip ALL metadata (privacy — wipes every EXIF / IPTC / XMP field), Strip GPS only (keeps camera info, drops location), Rename by EXIF date, Geotag photos from a GPX track, Color palette extractor (3–24 dominant colors with hex codes), Image to ASCII art, Image collage / contact sheet, Drop shadow (soft shadow for transparent PNGs), Bitmap to SVG vector trace, and HDR exposure fusion (combines bracketed exposures into one tone-mapped image).
- **[FEAT]** **Document drop screen — nine new tools behind "More…".** OCR PDF (adds a hidden text layer so Ctrl-F works on scanned PDFs — biggest user-value-per-line on this list), PDF table extractor (each table to a separate CSV), DOCX table extractor, PPTX text extractor (every slide's text to Markdown / .txt), Mail merge (CSV + DOCX template with `{{placeholders}}` → one DOCX per row), Flatten DOCX track changes (accepts every revision, drops comments, clean copy), iCal viewer / editor (list events, delete the ones you don't want, save a cleaned copy), vCard ↔ CSV converter, and Outlook MSG tools (convert to EML or extract all attachments).

## 2026-05-19 — Video Tools — fifteen new features behind a "More…" button

- **[FEAT]** **The same "More…" pattern from the audio update is now on the video drop screen.** One place for every non-conversion video action: Extract Audio, Extract Subtitles, Transcribe, Add Subtitle, and fifteen new tools. Highlights: Trim with seek sliders, Concat (lossless when codecs match), Animated GIF with palette optimization, Animated WebP, Extract single Frame, Screenshots every N seconds, Crop (W/H/X/Y), Rotate 90/180/270 and horizontal/vertical mirror, image Watermark overlay (corner picker + opacity), Reverse video (optionally with audio), Speed change from 0.25× to 4× with audio pitch preserved, Boomerang loop, Side-by-side compare (great for before/after demos), Subtitle burn-in with font-size and outline controls, and Color Grade (brightness / contrast / saturation / gamma). Image and document drop screens are next.

## 2026-05-19 — Audio Tools — nineteen new features in one place

- **[FEAT]** **New Audio Tools screen behind a "More…" button on the audio drop screen.** One place for every non-conversion audio action: ID3 Clear, Add Cover, Transcribe, Restore audio, plus nineteen new tools. Highlights: Normalize (LUFS levelling for broadcast/podcast), Trim with a seek slider, Concat with optional crossfade, Fade in/out, Pitch Shift (tempo preserved), Tempo Change (pitch preserved), an Effects rack (reverb / compressor / limiter), Loudness Analysis read-out, Channel Operations, Reverse, Sample-rate and bit-depth converter, Split by Silence, Waveform PNG renderer, Vinyl Declick, Cassette EQ emulator, A/B Comparator, Cassette J-card PDF maker, Album Metadata batch-fill, and an Audiobook Chapterizer that packs long files into M4B with chapters. The same "More…" pattern will roll out to video, image and document drop screens in upcoming releases.
- **[FEAT]** **Two new options on the Transcribe screen.** Tick **Translate to English** to make Whisper output English regardless of the spoken language — handy for foreign-language podcasts you want to read in English. Tick **Word-level timestamps** for one word per SRT cue, useful for karaoke captioning and tight subtitle alignment in video editors.

## 2026-05-19 — Live preview for the Custom preset — tune by ear before committing

- **[FEAT]** **Built-in player for the Custom preset on the Restore screen.** Tick Preview under the three sliders to reveal Play / Stop buttons, a position display, and a seek slider you can drag through the song. Audio starts within about a second of pressing Play and continues gaplessly through the rest of the file. Tick Real-time alongside Preview and any slider you move while it's playing applies to the next chunk a few seconds later — so you can audibly dial in denoise strength, treble lift, and the mains-hum notch without re-rendering the whole file. Music and Voice presets don't need a preview because their settings are fixed.

## 2026-05-19 — Voice preset is live — neural speech cleanup for podcasts, dictation, voice memos

- **[FEAT]** **Voice / spoken word preset works now.** It cleans up speech recordings — podcasts, dictation, interviews, lectures, cassette voice memos — using DeepFilterNet's neural noise suppression, then layers the same hum / rumble / treble fixes you get with the Music preset on top. Available on Linux, macOS (Intel + Apple Silicon), and Windows; the engine downloads automatically on first use (~27–39 MB depending on platform) and is cached for subsequent runs. If the download server is blocked, the app automatically falls back to the MiniMax mirror.
- **[UI]** **Description text on the Restore screen uses the full window width.** The intro and preset descriptions were wrapping into a narrow column with empty space on the right; they now stretch across the screen and fit on roughly two lines instead of four.

## 2026-05-19 — Audio Restore: clean up cassette, vinyl, and field recordings

- **[FEAT]** **New Audio Restore tool.** Removes tape and vinyl hiss, kills mains hum at 50 or 60 Hz plus its harmonics, and gently restores lost treble — useful for digitized cassettes, dubbed records, and field recordings. Pick the Music preset for a sensible default, or Custom for full control with three sliders (denoise strength, treble boost, and mains-hum notch). Reachable from Tools → Convert & Format → Restore audio, or directly via the new Restore button on the audio drop screen alongside Compress, ID3 Clear, Add Cover, and Transcribe.
- **[FEAT]** **Pick what to do next.** After restoring, choose Replace original file to overwrite the source in place (re-encoded to its original format if needed), or Save and convert to hand the cleaned-up audio to the regular format/quality picker and output to MP3, FLAC, or anything else.

## 2026-05-18 — Windows: works on locked-down machines + tidier desktop

- **[FEAT]** **Dependency wizard now has a fallback mirror.** On corporate Windows machines where the Microsoft Store is disabled or the package source is broken, the wizard used to dead-end with a "no packages found" error. It now automatically downloads each missing tool's installer from the MiniMax mirror and runs it silently, so the wizard finishes cleanly even on heavily locked-down boxes.
- **[UI]** **Cleaner desktop after the dependency wizard.** Some of the tools the wizard installs drop their own desktop shortcuts (LibreOffice alone adds seven). MiniMax now removes those automatically once the wizard finishes, so only the MiniMax Converter icon stays on your desktop. Your own shortcuts are never touched.
- **[FIX]** **URL downloads from some sites work again.** The playlist auto-detection added in 1.22.0 was making a second metadata request before the actual download, and some media sites' anti-bot rejected that pattern with HTTP 410 — breaking single-video downloads from them. The probe now only runs on sites where it's known to be reliable; everything else goes straight to the download path the app used before. Playlist downloads on supported sites are unchanged.
- **[FIX]** **Bundled yt-dlp is fresh on every build.** The yt-dlp inside earlier builds could be months old, causing downloads to fail with cryptic HTTP errors on any site whose extractor moved in the meantime. New builds now always ship with a current yt-dlp, and the in-app yt-dlp updater stays available for between-release fixes.

## 2026-05-17 — Bottom buttons stay visible on tall screens

- **[FIX]** **Close button no longer hides off the bottom edge.** Some of the taller tool screens — most visibly Create local CA — could clip the Close button just below the window when the system added a few pixels here and there. The window now reserves a touch more vertical room, and on the longest screens the Close (and other footer) buttons are anchored to the bottom so they can\'t be pushed off regardless of how much content sits above them.

## 2026-05-17 — macOS dark polish + Windows Lock Finder one-click install

- **[FIX]** **macOS dark mode — more widgets covered.** The previous fix only caught text input boxes. Numeric spinners, checkboxes, radio buttons, sliders, and the history dropdowns on Password Hasher / HMAC / JWT now also follow the app's own theme regardless of the macOS system appearance — no more stray dark outlines when macOS itself is dark but you've kept MiniMax light.
- **[FEAT]** **Windows Lock Finder — one-click install for handle.exe.** If the Sysinternals tool used to show which process has a file open isn't yet present, clicking Find lockers now offers to install it via winget on the spot — a tiny ~250 KB download. Power users can also opt it into the dependency wizard. The old "open this URL and figure it out" hint stays as a last-resort fallback.

## 2026-05-16 — macOS dark system theme: input borders no longer turn black

- **[FIX]** **macOS dark system theme.** When macOS itself was set to dark (System Settings → Appearance → Dark) but you kept MiniMax in its own light mode, every text input box and every history dropdown sat inside a thick black outline. The borders now track the app's own theme regardless of the OS chrome — light when the app is light, dark when the app is dark.

## 2026-05-16 — Windows: dependency wizard reliability fix

- **[FIX]** **Windows startup hang on first launch.** If the app was launched before any of its companion tools were installed, the dependency wizard could appear in an invisible window state and block startup forever — the process kept running at 0% CPU with no main window on screen. The wizard now waits for the main window to be mapped before appearing, and forces itself topmost and focused so it can't get stuck behind anything.

## 2026-05-15 — Folder Size polish: treemap tooltips, percentage progress, bulk-hash overhaul

- **[FEAT]** **Treemap hover tooltips.** Hovering any rectangle (no matter how tiny) instantly shows the folder name, size, and full path. Inline labels still appear on rectangles wide enough to fit the whole name on one line — never broken mid-word.
- **[FIX]** **Folder Size: real progress percentage.** The scan bar used to just sweep left-right. Now it counts directories in a fast first pass and ticks per-directory in the second, showing `Scanning N of M (pct%)` in the status line.
- **[FEAT]** **Bulk hash from Folder Size — algo picker + Save-As.** Click Bulk hash on any row to pick which algorithms to compute (MD5 / SHA-1 / SHA-256 / SHA-512 or all), then choose where to save the manifest CSV. Each file is read once, every selected hash updated in lockstep.
- **[FIX]** **Bulk dialogs respect the parent window.** Clicking Bulk on any tool no longer resizes the main window underneath. Cancel now both stops the run AND closes the dialog. The Cancel button hides itself once the run completes; only Close remains.
- **[FIX]** **Folder Size treemap accuracy.** The treemap now includes a neutral grey "(files here)" rectangle for loose files in each folder. Previously the visualisation only showed sub-folders, so a 32 GB folder whose sub-folders summed to 21 GB stretched the smaller folders to look bigger than they really were. The window also sizes to your screen instead of a hard-coded 960×720 that clipped the bottom row on smaller displays.
- **[FIX]** **Diff context menus.** Right-click on field A or field B for Paste / Copy / Save (replaces the inline Paste A / Paste B / Copy buttons). Right-click on the differences pane adds Paste A / Paste B at the bottom for routing the clipboard into either input from the output panel. `Ctrl-A` selects all in every text widget.
- **[FIX]** **Smaller papercuts.** Compare Fingerprints, Extract Public Key, and several other tools gained the right-click + drop-file pattern. Calendar picker in Timestamp Converter sizes to content. Barcode preview scales to fill the Preview frame. The Permissions-password prompt for history now only fires when you actually click the ▼ history button on a tool, not on every tool open.

## 2026-05-15 — Pro features overhaul: right-click everywhere, encrypted history, playlist downloads

- **[FEAT]** **Right-click anywhere.** Universal context menu across every tool — right-click any input or output for Copy, Paste, and Save as TXT / CSV / JSON. `Ctrl-A` selects all. Replaces the inline Copy and Paste buttons that used to clutter every tool's bottom row.
- **[FEAT]** **Recall what you ran last time — encrypted.** Eighteen tools (Base64, URL, Hash, Regex, JSON, HMAC, JWT, Password Hasher, WHOIS, DNS, TLS, HTTP, Wake-on-LAN, certificate viewers and more) gained a ▼ history button. Click it once per app run to unlock with your Permissions password — everything you do after that is saved with full context (key, hash, message, algorithm). The 🗑 trash icon wipes history instantly. Sensitive inputs never touch disk in plaintext.
- **[FEAT]** **Drop a file or folder.** Every tool that takes a path now shows a grey "Drop file here" or "Drop folder here" placeholder when empty and accepts dragged items from your file manager. The Browse picker still works for anyone who prefers clicking.
- **[FEAT]** **Playlist downloads.** Paste a supported playlist link and get a confirmation prompt with the item count before any bytes hit disk. The progress bar tracks the whole playlist while the status line shows `[M of N]` per file. Cancel mid-download and the current song finishes cleanly — whatever's already done hands off straight to the audio or video conversion screen as a batch.
- **[FEAT]** **Folder Size treemap + DNS / TLS / HTTP grading + much more.** Squarified treemap visualisation of any scanned folder, click to zoom in. DNS multi-resolver compare and bulk-domain lookup. Port Tester range scans like `80,443,8000-8010`. HTTP Headers A-to-F security grade + Copy cURL. TLS Inspector SSL-Labs-style grade. Color Picker image-palette extraction. Watch Folder extension filter + auto-route to the right converter. JWT JWKS endpoint fetcher. HMAC webhook-verify mode. Generate CSR profile templates. QR Generator WiFi / vCard / Email / SMS / Geo presets. Lorem Ipsum Bacon / Hipster / Pirate / Croatian variants. UUID v5 and v7. Timestamp multi-timezone + relative time. Linux Permissions setuid / setgid / sticky + umask calculator. Regex Tester live substitution preview. Password Generator passphrase mode.
- **[FIX]** **Polish.** Bulk dialogs no longer resize the main window when they open. The calendar picker in Timestamp Converter stopped ballooning past its content. Barcode preview scales up to fill the Preview frame instead of sitting tiny in the middle. Right-click menus and history popups dismiss properly on outside click on Linux. Drag-target placeholders survive external sets from the file picker without flicker.

## 2026-05-14 — Favorites menu, Diff overhaul, macOS-style close behaviour

- **[FEAT]** **Favorites menu (★).** Keep a personal shortcut list of your most-used tools in a top-level ★ menu. Pick which tools appear via System → ★ Favorites — same checkbox layout as the Permissions screen. The ★ menu hides itself when you have zero favourites.
- **[FEAT]** **Diff tool — major upgrade.** Word-level highlighting on changed lines so the eye lands on what actually shifted. Live diff as you type. Export the result as `.patch`, `.html`, or `.txt`, copy to clipboard, paste straight from clipboard into either side. New JSON and YAML modes compare parsed structures so reordered keys don't pollute the output. Auto-detects file encoding on load. Line numbers in side-by-side mode, scrollbars on the input panes, ignore-blank-lines and ignore-regex filters, expanded similarity stats.
- **[FEAT]** **Folder Diff drill-in.** Compare two folders, then double-click any differing file (or use the new *Diff selected file* button) to open it in the line-level Diff tool with both sides pre-loaded. Ignore patterns field above the tree — defaults to `__pycache__`, `node_modules`, `.git`, `.DS_Store`, `*.pyc`, `*.bak` so typical code-tree noise stays out.
- **[FEAT]** **System → Interface + Quit (macOS-style close).** Dark Mode, Resizable, and the new Iconify option all live on the Interface screen. Turn Iconify on and the X button minimises the window instead of quitting the app; *System → Quit* always actually exits. On Windows the title bar's Minimize button is hidden while Iconify is on, since X already does the same thing.
- **[FIX]** **Much faster first launch on Windows.** The first-run dependency check no longer blocks the main window from appearing — the window shows immediately, the check runs in the background. The 13 individual probes also run in parallel now instead of one-by-one. Subsequent launches were already fast; this is the first-launch experience that's improved.
- **[FIX]** **Home arrow on Windows 11 Croatian.** The big "drop anything here" arrow on the home card no longer shows as a question-mark box on Windows 11 with Croatian or other locales where the default font lacks that specific glyph. Drawn as canvas shapes now, so no font support is required.
- **[UI]** **Menu reorganisation.** About moved from System to Help (matches OS convention). Reinstall dependencies, Check for updates, and Update yt-dlp moved to Help — they're recovery actions, that's where users look. System → Settings now contains only Permissions; the rest moved to System → Interface or Help.
- **[UI]** **Drag-target placeholders.** Empty file and folder fields in Diff and Compare Directories show greyed-out hints ("drop file A", "drop folder A", and so on) in your selected language. Clears as soon as you click in, drop a file/folder, or pick one via the Browse button.

## 2026-05-13 — Fix: Password Hasher screen wouldn't open on Linux

- **[FIX]** Clicking Tools → Analyze → Password Hasher did nothing because one of the supporting libraries wasn't bundled in the Linux build, and the menu callback silently swallowed the import error. The library is now bundled correctly, and if any future dependency is ever missing the app will surface a clear error instead of doing nothing. The JWT screen got the same safety net.

## 2026-05-13 — PDF Sign — snappier signature handling, plus mouse-wheel scroll on Sign / Redact / Crop

- **[UI]** The mouse wheel now scrolls the page on the Sign, Redact, and Crop screens. Bare wheel scrolls vertically, hold Shift while scrolling for horizontal — same on Linux, Windows, and macOS.
- **[FIX]** Dropping a signature image onto a PDF, and then resizing it with the corner handles, is now dramatically faster. Big phone-camera photos that used to take a beat to drop now appear nearly instantly, and the resize gesture stays fluid at full mouse speed instead of stuttering on larger sources.

## 2026-05-12 — Fix: PDF Sign / Redact / Crop screens were running off the bottom of the screen

- **[FIX]** Dropping a PDF and choosing Sign, Redact, or Crop made the window grow to fit the page preview, but kept it pinned to the home window's original position. If that position was near the bottom of the screen, the enlarged window slid off the edge and the Save / Cancel buttons were clipped. The window now clamps its position so it always fits on the visible screen. Redact also got a bit of extra vertical breathing room so its top title and bottom button row never compete with the canvas for space.

## 2026-05-12 — Fix: "drop anything here" card was floating on top of every tool screen

- **[FIX]** The new home card from the previous release was leaking onto tool screens — open Regex Tester or Crontab Generator and the big grey "Drop anything here" panel was sitting on top of the actual tool. The card now correctly hides whenever any tool or operation screen is on-screen, and reappears the moment you return to the empty home state.

## 2026-05-12 — Home screen — permanent "drop anything here" card with arrow icon

- **[UI]** The empty home window used to be visually blank — the "drop anything here" message only appeared on hover. Now there's a rounded grey card centered in the window with a big **⬇** arrow and the translated drop-here label, visible whenever no tool screen is open. The card hides itself automatically during any operation flow and reappears the moment you Cancel / Close back to the empty home state. The hover tooltip stays as a secondary cue. Window also nudged up from 250×210 to 320×240 to give the card room to breathe.

## 2026-05-12 — Fix: three of the new security tools were unreachable in the menu

- **[FIX]** **Password Hasher**, **HMAC Generator**, and the merged **JWT** screen shipped in 1.19.0 but didn't actually appear in the Tools menu or the Permissions screen — a silent edit-tool conflict during release prep meant the catalog wiring for the Analyze & Validate group never got saved, so all three tools were code-complete but unreachable. The catalog entry is back in 1.19.1: hash_calculator → *password_hasher* → *hmac_generator* → text_statistics → regex_tester → *JWT (Decode / Sign / Verify)* → aspect_ratio → age_calculator. Local CA was unaffected (its certificates-group entry did land correctly) and is reachable as before.

## 2026-05-12 — Four new security tools — Password Hasher, HMAC Generator, JWT, Local CA

- **[FEAT]** **Password Hasher** under Analyze & Validate. Six modern algorithms (bcrypt, argon2id, argon2i, scrypt, PBKDF2-SHA256, PBKDF2-SHA512) plus 21 legacy formats for migrating away from old databases or verifying existing hashes — raw MD5/SHA, md5(pwd+salt) variants, crypt(3) DES/MD5/SHA-256/SHA-512, htpasswd APR1, LDAP {MD5}/{SMD5}/{SHA}/{SSHA}, NTLM, MySQL 3.x and 4.1+, PHPass (WordPress / phpBB), PostgreSQL md5(pwd+user). Two modes (Generate / Verify), per-algorithm parameter controls (rounds / time-cost / memory-cost / parallelism / salt placement), live hash breakdown of the result, and a clear "this format is cryptographically weak" warning whenever you pick a legacy algorithm.
- **[FEAT]** **HMAC Generator** under Analyze & Validate. Text or file input, 9 hash algorithms (MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA3-256, SHA3-512, BLAKE2b, BLAKE2s), three output formats (hex, base64, base64-URL). Key accepts text, hex, or base64 encoding. Common use cases: AWS Signature V4 request signing, webhook verification, JWT HS-family debugging.
- **[FEAT]** **JWT** under Analyze & Validate (replaces the old *JWT Decoder*). Mode toggle for *Decode* / *Sign* / *Verify*. Algorithms: HS256/384/512 (HMAC), RS256/384/512 (RSA PKCS#1 v1.5), ES256/384/512 (ECDSA P-256/384/521), PS256/384/512 (RSA-PSS), EdDSA (Ed25519), plus *none* for unsigned tokens (testing only, with a clear warning banner). Decode shows header / payload / signature without verifying; Sign produces a token from a JSON header + payload + secret-or-PEM-key; Verify accepts a token, key, and an expected-algorithms allowlist and tells you whether the signature is valid, the token is expired, or the key doesn't match.
- **[FEAT]** **Local CA** under Certificates — mkcert-style. Three-step screen: (1) generate or load a CA at a default per-platform path, key type RSA-2048 / ECDSA P-256 / Ed25519, default 10-year validity; (2) install the CA into the system trust store, either by copying the OS-specific command to the clipboard or by triggering an admin password prompt directly (osascript on macOS, pkexec on Linux, `Start-Process -Verb runAs` on Windows); (3) generate a leaf certificate for development hostnames with a Common Name + a list of Subject Alternative Names (default: `localhost`, `*.localhost`, `*.local`, `*.test`, `127.0.0.1`, `::1`), validity capped at 398 days per Chrome's leaf-cert rule. Drop the resulting `cert.pem` + `cert-key.pem` into any dev server and HTTPS just works in your browser, no scary warnings.

## 2026-05-12 — PDF sign, redact, crop — canvases no longer overshoot the screen on HiDPI

- **[FIX]** The three PDF editing screens — **Sign**, **Redact**, and **Crop** — sized their canvas with a hardcoded minimum floor (around 1050 px) that the app's HiDPI scaling factor then multiplied by 2x or more, pushing the canvas past the right-hand edge of the screen on high-DPI Linux and Windows laptops. The minimum floor is now also capped at 85 % of the actual screen width, so on HiDPI displays the canvas fits inside the window and the right-hand controls stay visible. Normal-density displays behave exactly as before. macOS was unaffected (its scaling factor was always 1.0).

## 2026-05-12 — Windows: one UAC prompt for all dependency installs, not one per installer

- **[FIX]** First-run Windows setup (and the menu's **Reinstall Dependencies** wizard) used to fire the install script without elevation, which meant Windows showed a separate UAC dialog for each of the eight or so tools that need admin to install — eight consecutive "do you allow this app to make changes" dialogs to click through. Now the app asks once up front: "Most of these installers need administrator approval. **YES** — grant admin rights once for the whole batch (one UAC prompt). **NO** — proceed without elevation; Windows will ask for approval separately for each installer." YES launches the install batch elevated, the subsequent `winget` calls inherit admin, and no further UAC dialogs appear. NO falls back to the old behaviour. Linux and macOS dependency flows are unaffected.

## 2026-05-11 — Fix: seven tool screens were oversized on HiDPI displays

- **[UI]** **JSON formatter**, **SQL formatter**, **regex tester**, **JWT decoder**, **crontab generator**, **file diff**, and **HTTP file-share** were opening at hardcoded large sizes that doubled or tripled on high-DPI Linux displays, briefly flashing windows wider than the screen before settling. All seven now size to their natural content the moment they open — no flash, no clipping, no oversized initial frame. The Read QR window already got this treatment in 1.17.1; this brings the same fix to every remaining screen that was using the old pattern.

## 2026-05-11 — Tasks menu — see what's running, switch back to live progress, cancel from anywhere

- **[FEAT]** When at least one long-running operation is in flight, a **Tasks (N)** entry appears on the menu bar — start an image upscale, drop a PDF, and the upscale doesn't disappear from view just because its progress screen was replaced. Click any task in the cascade to open a live viewer (progress bar, status, elapsed time) that polls the running thread; click **Cancel** to stop it without having to navigate back to the original screen first. The entry hides itself again the moment the last task is dismissed. Currently wired to image upscale, audio batch conversion, and video conversion; other long-running ops follow the same hook in upcoming patches.
- **[FEAT]** If a background task finishes while you're somewhere else, it doesn't hijack your current screen. The task sits in the menu as "*click to finish*", and the post-task prompt (typically the "delete originals?" question) only opens when you click **Finish**. If you were already on the task's progress screen when it completed, the prompt opens immediately — same UX as before. Cancel from the menu always confirms first ("Stop X? Any partial progress will be discarded."), since some of these tasks have already done meaningful work by the time you decide to stop.

## 2026-05-11 — UI polish — consistent button colours across the new tools, Read QR sizes to fit

- **[UI]** Cancel and Close buttons across every tool added in the recent batches (Permissions, the eleven Certificate screens, and the six File-ops screens) are now the canonical red instead of grey, so they match the rest of the app. Every Browse button in those same screens is now the same purple as the Read QR button on the main screen, with the same size and font. **Read QR** window no longer opens at an oversized hardcoded width-and-height — it now sizes to whatever its content needs and centres on the main window, which fixes the case where the dialog was visibly clipped on high-DPI displays.

## 2026-05-11 — Password generator — live strength meter (red / yellow / green)

- **[FEAT]** **Password generator** now has a coloured strength bar and word rating under the password field. Click **Generate** and the meter shows how good the new password is; or type / paste your own password into the field and the meter updates live on every keystroke — no separate "check my password" screen, the same widget serves both. The scoring is an entropy estimate based on which character classes are actually present (lowercase, uppercase, digits, symbols) and the length, knocked down by penalties for all-same-character passwords, sequential runs like `abcdef`, repeated character triplets, and a tiny blocklist of obvious top-of-list passwords. Buckets are very weak / weak / reasonable / strong / very strong, painted red, red, yellow, green, green.

## 2026-05-11 — Watch folder — also tracks subfolder creation and removal

- **[FEAT]** **Watch folder** now logs subfolder events alongside file events. When a subfolder is created anywhere in the watched tree it shows up with a `+`, and when one is removed it shows up with a `-`; subfolders are displayed with a trailing slash on the path so you can tell them apart from files at a glance. The intro line and the initial-snapshot count have been updated to reflect that both files and subfolders are tracked. Useful for catching installers and apps that scaffold whole directory trees, not just drop a couple of files.

## 2026-05-11 — Large / duplicate files — right-click Delete

- **[FEAT]** **Large / duplicate files** now has a **Delete** entry in the right-click menu on every file row, sitting alongside the existing Copy path and Open containing folder options. A confirmation prompt makes it clear the file is being permanently removed (not sent to the trash), and on success the row disappears from the results; if that leaves a duplicate group with only one file remaining, the whole group goes away too since one file alone isn't a duplicate any more.

## 2026-05-11 — Fix: five Tools screens were blank — text widget bug

- **[FIX]** **View Certificate Info**, **Fetch Remote Certificate**, **Extract Public Key**, **File Lock Finder**, and **Watch Folder** opened to an oversized empty window with no visible buttons or content. All five share the same scrollable text widget — and a missing import in the previous build meant building that widget threw an exception part-way through the screen, so everything after it (including the action buttons) never appeared. One-line import fix, all five screens now render and work as intended.

## 2026-05-10 — File Tools — duplicate / large finder, folder size, compare dirs, watch folder, lock finder, secure delete

- **[FEAT]** Four new **File Tools** entries for getting your bearings in a folder. *Large / duplicate files* walks a folder tree, groups by size, then hashes only size-collision groups to find true duplicates — or sort everything by size to see what's taking up space. *Folder size analyzer* rolls up bytes for every subfolder, biggest-first, so you can drill into the offenders. *Compare directories* recursively diffs two folder trees and shows what is only in A, only in B, present in both but different, and (optionally) identical. *Watch folder* polls a folder and logs every file that gets added, modified or removed, with timestamps — handy when you want to know exactly what an app is touching.
- **[FEAT]** Two more focused tools. *File lock finder* tells you which processes have a file (or any path inside a folder) currently open — uses the built-in `lsof` on Linux and macOS, and Sysinternals `handle.exe` on Windows (clear "install this" message if it's not on your PATH). *Secure delete* overwrites selected files with random bytes for a configurable number of passes (1, 3, 7 or 35) and then unlinks them, with a big honest yellow banner reminding you that on SSDs and modern filesystems (APFS, ZFS, btrfs, NTFS) wear-leveling and copy-on-write redirect those writes to new sectors, so for real SSD secrecy you want full-disk encryption from day one, not file overwrite — on traditional rotational HDDs it works as advertised.

## 2026-05-10 — Certificates — full toolkit for PEM, DER, PFX, CSR, self-signed, chain verify

- **[FEAT]** New **Certificates** submenu under **Tools** with eleven screens grouped into four sections. *Convert*: PEM ↔ DER (handles `.cer` and `.crt` too, with auto-detect on the input side), PFX/P12 → PEM extract (cert + private key + chain), and PEM + key → PFX bundle for Windows/IIS. *Inspect*: view certificate info (subject, issuer, SAN, validity, signature algorithm, public-key type, SHA-256 + SHA-1 fingerprints, days remaining), check expiry from a file or directly from a TLS `host:port` (colour-coded green/orange/red), extract public key, fetch a remote cert with optional SNI, and compare fingerprints — paste two strings in any format and the screen tells you MATCH or NO MATCH (colons and case are ignored).
- **[FEAT]** *Generate*: a short form (CN, SAN, organisation, country, optional state/locality/email, key size) produces a CSR plus its matching RSA private key, written to a folder you pick (private key marked read-only on Linux and macOS). The **self-signed** generator takes the same form plus a validity in days and writes a usable lab/test certificate alongside its key. *Verify chain*: drop the end-entity certificate, optionally an intermediate chain, and a root CA — the screen walks each link, checks the signature with the parent's public key, confirms the subject/issuer names match, and verifies every certificate is currently inside its validity window. Like every Tools entry, the whole submenu (or any individual screen inside it) can be hidden via the existing Permissions screen.

## 2026-05-10 — Permissions — password-gated control over which Tools are shown

- **[FEAT]** New **Permissions** screen under **System → Settings**. Hierarchical tree of every Tools-menu entry grouped by submenu (*Create & Generate*, *Convert & Format*, *Analyze & Validate*, *System & Config*, *Network Tools*, *File Tools*). Tick or untick individual tools or whole submenus. Disabled items disappear from the menu immediately on save; if a submenu is unticked all of its children are hidden; if every group is unticked the entire **Tools** menu disappears from the menu bar. Default is allow-everything, so existing setups behave exactly as before until you change something.
- **[FEAT]** The screen itself is password-protected. On first open you set a password (with a confirmation field and a clear warning that **there is no recovery option** — by design, otherwise a "forgot password" link would defeat the whole gate). Subsequent opens prompt for the password. A **Change Password** button on the screen lets you rotate it later. The verifier is stored encrypted in your config; the password itself is never written anywhere. Localised in all 16 supported languages.

## 2026-05-10 — Strings Extract — find-in-results bar with prev/next

- **[FEAT]** **Strings Extract** now has a find-in-results bar above the output: magnifier glyph, search box, up/down match buttons and a "3/12"-style counter. Every match is highlighted live as you type (yellow); the currently navigable match is orange and scrolls into view. **Enter** or **↓** jumps to the next match, **Shift+Enter** or **↑** jumps back — both wrap around. **Esc** clears the query. Re-running Extract on a different file keeps the search active and re-highlights against the new output. The glyphs used (▲ ▼) are basic Unicode geometry, so the buttons look identical on Linux, macOS and Windows.

## 2026-05-10 — Strings Extract — inline progress bar + cancel for big files

- **[UI]** **Strings Extract** used to freeze the whole window on a hundred-megabyte binary with no progress indication and no way to cancel — the scan ran on the UI thread. Now a small determinate progress bar lives right next to the "Ready" status text (no extra height — only visible while a scan is running) and the **Extract** button doubles as **Stop** in red while the scan is in flight. The actual scan runs on a background thread, so dropping a large file or hitting Extract no longer locks the rest of the UI.

## 2026-05-10 — File Tools — drag-and-drop now works on all four screens

- **[FIX]** Dropping a file onto the new **File Type Sniffer** said "unsupported file" — the app's global drop handler was intercepting first and didn't know what to do with arbitrary types. Same issue applied to **Bulk Rename**, **Diff** and **Strings Extract**. All four File Tools screens now accept dropped files directly: the sniffer adds them to its table (folders too — contents get listed), Bulk Rename adds files (and walks folders honouring the Recursive toggle), Diff loads side A from the left pane and side B from the right (drop two files on either pane and they fill A then B), Strings Extract sets the input path. No more "unsupported file" wall for tools that don't care what type the file is.

## 2026-05-10 — Bulk Rename — Apply/Undo stay visible when switching modes

- **[FIX]** In the new **Bulk File Rename** screen, switching to a mode with extra rows (Regex's hint line, Sequential's four fields, EXIF/mtime date prefixes…) pushed **Apply** and **Undo** below the window's bottom edge — they ended up half-clipped. The action buttons are now anchored to the bottom of the window, and the window itself re-fits its size whenever the mode panel grows so nothing falls off-screen.

## 2026-05-10 — New File Tools group — Bulk rename, Magic sniffer, Diff, Strings

- **[FEAT]** The **Tools** menu picks up a fourth submenu — **File Tools** — with four screens. **Bulk File Rename** handles dropping files or a folder (with optional recursion), 12 rename modes (find/replace literal or regex, prefix, suffix-before-extension, sequential numbering with template, UPPER/lower/Title case, strip or change extension, mtime date prefix, or EXIF date prefix for photos), a live preview Treeview that flags collisions in red and "would overwrite" warnings in amber, and an Undo button that reverts the last Apply. **File Type Sniffer** drops files and tells you what they actually are from their magic bytes — covers ~80 common formats (PDF, ZIP-family, PNG/JPEG/GIF/WebP, ELF/PE/Mach-O, RAR/7z/gzip/xz/zstd, MP3/FLAC/Ogg/MP4/Matroska, SQLite, MS Office binary, PEM, fonts…) and highlights any row where the declared extension doesn't match the detected type.
- **[FEAT]** **Diff** takes two text blobs — paste them, or pick files — and shows the differences in either **Unified** form (git-style red/green/blue) or **Side-by-side** (two synchronised-scroll panes with added/deleted/changed lines colour-coded and empty filler rows on the missing side). Ignore-whitespace and ignore-case toggles, configurable context lines, and a Swap A↔B button. Live-switch between display modes; no extra dependency, just stdlib `difflib`. **Strings Extract** rounds out the group: drop any binary, get every printable ASCII and UTF-16-LE run of at least N characters, optionally with byte offsets — the kind of forensics tool that pairs perfectly with the magic sniffer.

## 2026-05-10 — Network Discovery — granular copy actions in right-click menu

- **[UI]** The **Network Discovery** right-click menu now has individual **Copy IP**, **Copy MAC**, **Copy hostname**, **Copy vendor** and **Copy ports** entries — each operates on the selected rows (or the whole list if nothing is selected) and skips empty fields so the clipboard isn't padded with blanks for dead hosts. **Copy ports** on a single row gives you the bare port list; on multiple rows it formats each line as `<ip>: <ports>` so the output stays useful. **Copy all** and **Export to CSV** are unchanged.

## 2026-05-10 — Network Interfaces — horizontal scroll, right-click menu, export

- **[UI]** The **Network Interfaces** screen now has a horizontal scrollbar, so long IPv6 lists no longer get clipped at the right edge. Right-click any row for a context menu: **Copy name**, **Copy IPv4**, **Copy IPv6**, **Copy MAC** (each strips the `/prefix` so you get bare addresses ready to paste), then **Copy all** (TSV with headers, ready to drop into a spreadsheet) and **Export to CSV**. **Ctrl-A** (or **Cmd-A** on macOS) selects every row; the copy and export actions are selection-aware — if you have a few rows selected they're the only ones copied/exported, otherwise it does the whole list. Same shape as the Network Discovery menu, so the two screens feel consistent.

## 2026-05-10 — HiDPI row-overlap fix — applied app-wide, not per screen

- **[FIX]** The HiDPI row-spacing fix that landed with Network Discovery only kicked in once you opened that specific screen. If you opened the new **Network Interfaces** screen first, rows still overlapped — same symptom as the original bug. The row-height calculation now runs once at app startup so every table the app ever shows inherits it, regardless of which screen you open first.

## 2026-05-10 — Network Tools — five more (WHOIS, interfaces, email, ports, file-share)

- **[FEAT]** The **Network Tools** submenu picks up two more lookups and a network-state view. **WHOIS Lookup** takes a domain or IP and walks the IANA → RIR (or registrar) referral chain — no `whois` binary required. **Network Interfaces** lists every NIC on your machine with its type, state, IPv4/IPv6 addresses, MAC, MTU, and a green highlight on whichever interface holds the default route — works the same way on Linux, macOS and Windows. **Email Header Analyzer** takes a pasted blob of raw headers and gives you a clean summary, colour-coded SPF/DKIM/DMARC verdicts, the full Received-chain printed oldest-to-newest with per-hop time deltas, and a complete header dump.
- **[FEAT]** Two more practical tools complete the batch. **Port Tester** probes a single host:port over TCP or UDP, returns open / closed / filtered with response time and a banner read on TCP — quicker than spinning up the LAN scanner for one host. **HTTP File Share** pairs the stdlib HTTP server with a folder picker: pick a directory, pick a port, hit Start, and you get the LAN URL plus a QR code rendered inline ready to scan from your phone — Stop button cleanly shuts the server down. Cross-platform on Linux/Mac/Windows, localised into all 16 supported languages.

## 2026-05-10 — New Network Tools group — DNS, TLS, Public IP, HTTP, Wake-on-LAN

- **[FEAT]** The **Tools** menu now has a dedicated **Network Tools** submenu. The previous "Network Tools" entry has been renamed **Ports and Addresses** and lives there alongside **Network Discovery**. Two heavyweight new tools share the same group: **DNS Lookup** (A, AAAA, MX, NS, TXT, CNAME, SOA, PTR, SRV, CAA, plus an "ALL" aggregate, with a quick-pick resolver list — Cloudflare, Google, Quad9, OpenDNS — or any custom server you type) and **TLS Certificate Inspector** (any host:port, shows subject, issuer, SAN list, validity with a colour-coded days-remaining hint, signature algorithm, public-key info, and SHA-256 / SHA-1 fingerprints — works even on expired or self-signed certs).
- **[FEAT]** Three more handy tools round out the group: **Public IP / ISP** (auto-fetches your WAN-side IP plus country, region, city, ISP, ASN, coordinates and timezone), **HTTP Header Inspector** (GET/HEAD/OPTIONS, optional follow-redirects with the full hop chain visible, sortable response headers, body preview for successful GETs, and timing), and **Wake-on-LAN** (validates a MAC in any common format and sends a magic packet via UDP broadcast — twice, to defeat aggressive ARP filtering on some routers). Cross-platform on Linux/Mac/Windows. Localised into all 16 supported languages.

## 2026-05-09 — PDF signing — HiDPI window sizing

- **[FIX]** On HiDPI Linux displays (4K, scaled), the **PDF Sign** screen opened too small — the canvas clamped at the design-pixel value while the toolbar scaled with the rest of the app, leaving the whole screen looking shrunken next to every other view. Now the canvas size scales with the UI factor like the other screens, so the signing window matches the rest of the app on any DPI.

## 2026-05-09 — macOS first launch — no more blank dependency wizard

- **[FIX]** On the very first launch on Apple Silicon, the app would sit silent for several seconds while it probed for installed tools, then show the **Install Dependencies** wizard with a blank inside — title bar visible, no list, no buttons. The only way out was force-quit, reopen, and run **System → Reinstall Dependencies** from the menu. Now the app shows a small **"Checking dependencies..."** message during that probe, and the wizard renders correctly on the first launch — no more force-quit dance.

## 2026-05-09 — OTP — password required on every Load click

- **[FIX]** The unlock prompt for saved OTP accounts now fires on every **Load** click, not just the first one in a session. Previously, once you unlocked the list, the picker would reopen silently for the rest of the app run — handy, but it meant anyone with brief access to an unlocked window could read your secrets. The picker also re-locks the session as soon as it closes, so any later **Save** has to re-authenticate too.

## 2026-05-09 — OTP saved accounts now password-protected

- **[FEAT]** Saved OTP accounts are now locked behind a password you choose. The first time you save an account you'll be asked to set one; from then on, loading the list in a new session prompts to unlock it. The password is never stored — only a key derived from it is used to encrypt the data, so your saved accounts are protected against anyone who copies your config file. If you forget the password there's a **Reset all** button on the unlock screen (with a confirmation) — by design, there is no recovery path.

## 2026-05-09 — OTP saved accounts + Network Discovery "Alive only" toggle

- **[FEAT]** **OTP Authenticator** can now save and recall accounts. Two small icons next to the Account field: floppy disk to save the current secret under a name you choose (defaults to the account name), folder to open a picker with live search, click or Enter to load it back. Right-click an entry for **Rename** or **Delete**, or use the Delete button at the bottom. All saved entries are encrypted at rest, so scan a QR once and recall it from any future session in a single click.
- **[FEAT]** **Network Discovery** gets a quick **Alive only** checkbox right in the top bar, so you can hide every `[n/a]` dead row with one click instead of opening Settings. The checkbox stays in sync with the Display filter in Settings if you change it there.

## 2026-05-09 — Network Discovery — LAN scanner with vendor lookup

- **[FEAT]** New **Network Discovery** screen under **System & Config** scans your local network and lists every device it finds with IP, ping time, hostname, MAC address, vendor, and any open ports. It auto-detects your subnet on open and supports IPv4 ranges, hostname-to-IP lookup, IP+netmask, and a one-click **IPv6 (local link)** mode that lists every IPv6 neighbor at once. Cancel mid-scan, sort columns by clicking headers, and switch between showing all hosts, only alive ones, or only those with open ports.
- **[FEAT]** Right-click any result for a built-in toolbox: open the device in your **browser** or **FTP** client, jump into a **Telnet** or **SSH** session, run live **Ping** or **Traceroute** in an in-app window, look up the IP with **Whois** (no extra tools required), or geolocate it. **Copy IP** / **Copy all** for selected rows, and **Export to CSV** for the full list. Settings, the last-used range, and the device-vendor database are remembered between launches.

## 2026-05-07 — VBR for split-track album conversions + yt-dlp credit

- **[FIX]** When you split an album by its `.cue` sheet into individual tracks, the **VBR** checkbox now appears in the bitrate slider for MP3, M4A, AAC and OGG — matching the regular audio conversion screen. Pick a target bitrate, tick **VBR (better quality at the same size)**, and each track is encoded with variable bitrate instead of constant.
- **[DEPS]** **yt-dlp** is now credited in the open-source licenses list (in-app **About → Licenses** and on the website) alongside FFmpeg and the other engines that power the app.

## 2026-05-05 — macOS dependency installer — verify completion + reliable launch

- **[FIX]** The dependency installer used to launch Terminal and immediately mark setup as done, even if the install never actually started. If anything went wrong inside Terminal — a focus-stealing system prompt, network timeout, missing Xcode command-line tools, the user closing the window early — the app would happily say "all set" while nothing was on disk. The app now waits for a real completion signal from the install script and verifies each selected dependency actually resolves before declaring success.
- **[FEAT]** While the install runs, the app shows an **"Installing dependencies"** dialog with a "Re-check now" button (so you can confirm completion manually) and a "Cancel / install later" escape hatch. When everything resolves you get a proper "Installation Complete" confirmation; if anything is still missing afterwards, the dialog tells you exactly which packages didn't install so you can check Terminal for the error.
- **[FIX]** Switched the launch mechanism from AppleScript (`tell application "Terminal"`) to the standard `open` command on a `.command` script. AppleScript-based launches need Automation permission, which silently fails when denied or when macOS hasn't asked for it yet — that was another way the install could not-actually-start without the app noticing.

## 2026-05-05 — macOS first-launch fixes — SSL downloads + dependency wizard

- **[FIX]** On Intel Macs, downloads inside the app (the Whisper transcription model, AI weights, the version manifest) used to fail with a certificate-verify error because the bundled Python on macOS didn't trust the system root store. The app now ships its own bundled certificate store and points every HTTPS download at it, so model downloads work out of the box on Ventura and later.
- **[FIX]** The first-launch **Install Dependencies** wizard sometimes appeared as an empty window on macOS — title bar visible, but no content inside. You had to close it and reopen via **System → Reinstall Dependencies** to see the actual list. The wizard now forces a layout pass before sizing itself, so it renders correctly the first time too.

## 2026-05-04 — Whisper model download — live progress bar + Cancel

- **[FIX]** The Whisper transcription model download (from **System → Install Dependencies** and from the on-demand transcribe prompt) now shows a real-time progress bar that actually moves. Previously the bar was packed into the screen but the network read blocked the UI thread, so the bar appeared frozen at 0% for the entire download.
- **[FEAT]** The model download is now **cancellable**. Cancelling stops the transfer and removes the partial file, so a half-written model never gets mistaken for a complete one on the next launch. Works for the `.bin` model itself and, on Apple Silicon, for the matching Core ML encoder.

## 2026-05-04 — VBR option for MP3, M4A, AAC and OGG

- **[FEAT]** The audio quality screen now offers a **VBR (variable bitrate)** tickbox for MP3, M4A, AAC and OGG. Variable bitrate uses higher rates only when the audio actually needs them — typically smaller files at the same perceived quality. Default is on for OGG (Vorbis is variable-rate by design) and off for the others, so existing workflows aren't surprised by the upgrade.
- **[FEAT]** Works the same for every entry point — drop an audio file, extract audio from a video, or paste a URL into **Tools → Convert and Format → Download from URL**. The bitrate slider value becomes a quality target when the box is ticked, and the readout switches to "Quality: VBR (≈ N kbps avg)" so you can see what to expect.

## 2026-05-04 — System requirements page + macOS button polish

- **[FEAT]** New **System requirements** page on the website. Lists the minimum specs that get the app running and the recommended specs for smooth AI transcription, image upscaling, GPU video encoding, and parallel batch conversion — with notes on which features actually scale with hardware. Linked from the homepage's "Learn more" line and translated into all 16 languages.
- **[FIX]** **Download from URL** screen on macOS — the Audio, Video, and Back buttons now stay clearly readable while a download is in progress. They previously kept their saturated background while only the label text turned grey, which on Apple Silicon read as low-contrast and almost illegible. Disabled colored buttons now fade to a neutral grey across the whole app.
- **[UI]** The **Back** button on the URL download screen now matches the rest of the row visually instead of rendering as a generic native button. The URL and output-folder fields also stay legible during a download instead of going dark.

## 2026-05-03 — Whisper transcription model selector

- **[FEAT]** **Reinstall Dependencies** now offers a Whisper transcription model picker — base (smallest, fast), small (better accuracy), or medium (best for non-English). Default stays on base; pick a larger model if you want more accurate transcripts and don't mind the bigger download.
- **[FEAT]** The active model is a separate radio choice — you can keep multiple sizes installed and switch between them without re-downloading.
- **[UI]** On Apple Silicon, the matching Apple Neural Engine encoder is fetched alongside each model so transcription stays hardware-accelerated.

## 2026-05-02 — Add Subtitle to videos + visible drop zones for Cover and Subtitle

- **[FEAT]** New **Add Subtitle** button on the video conversion screen. Drop one or more subtitle files (`.srt`, `.vtt`, `.ass`, `.ssa`, `.sub`) onto the box, then choose whether to **Replace original file** or **Write new file**. The language code in the filename (e.g. `movie.en.srt`, `movie.hr.srt`) is read and tagged on the embedded track, so video players display the right language name in their subtitle menu. Works with MP4, M4V, MOV, MKV, and WebM.
- **[UI]** **Add Cover** and **Add Subtitle** screens now show a clear gray drop-zone box, matching the QR Reader. Click the box to open a file picker, or drag a file onto it — both work. Replaces the previous text-only "Drop here" prompt that gave you no visible target.

## 2026-05-02 — PDF → DOCX (Clean) rebuilt — fully editable Word documents

- **[FEAT]** **PDF → DOCX (Clean)** now uses a brand-new structural pipeline. The output is a fully editable Word document — real paragraphs you can arrow-key through, real Word tables with proper cells, real bulleted lists, and side-by-side text/image columns where the original had them. Replaces the older approach that wrapped every line in a clickable text box and made editing painful.
- **[FEAT]** **Charts, photos, and design accents come across in place.** Bar charts and diagrams from the source PDF are embedded as images at their original positions. Photos that had text wrapping around them keep that wrap on export. Corner decorations and footer bars sit in the background where they belong.
- **[UI]** **Italics, underlines, font colors, and bullet markers** all render as native Word formatting now. The result reads and edits like a hand-written document — not a faithful-but-frozen layout.

## 2026-04-30 — Download videos and audio from URLs

- **[FEAT]** **New "Download from URL" feature.** Drag a media-site tab onto the app — the URL is detected automatically. Or use **Tools → Convert & Format → Download from URL…** to paste a link by hand. Pick **Audio** or **Video** and the file flows into the standard audio/video conversion screen, so you keep all the usual format options (MP3/FLAC/WAV, MP4/MKV with hardware encoding, subtitle extraction). Around 1800 sites are supported.
- **[UI]** A legal notice appears the first time you download a URL each session — a clear reminder that you're responsible for the rights to anything you fetch. MiniMax Converter never hosts or redistributes content; it just helps your computer download links you paste.
- **[DEPS]** Site-specific download support is provided by an embedded engine (`yt-dlp`) that's frequently updated upstream. **Settings → Update yt-dlp** pulls the latest version into your user data folder, so you can stay current with site changes between app releases — no rebuild needed.

## 2026-04-30 — PDF conversion fixes & tighter Hybrid Settings dialog

- **[FIX]** **PDF → DOCX (Visual)** now converts every page of a multi-page document. Earlier builds left every page after the first looking blank.
- **[FIX]** **PDF → DOCX (Hybrid)** mode runs again. A startup error was preventing it from launching at all.
- **[FIX]** **PDF → DOCX (Clean)** now keeps your images. They were getting dropped or hidden behind the text in the previous build.
- **[DEPS]** Slimmed down the list of system packages required on Linux. PDF rendering is now handled by a bundled engine on every platform, so no extra installs are needed.
- **[UI]** The **Hybrid (Tables as Images)** settings dialog now fits its content cleanly. The form auto-centers and no longer leaves a wide empty border on high-DPI screens.

## 2026-04-29 — Add cover art to your music files

- **[FEAT]** **New "Add Cover" button on the audio screen.** Drop one or more `.mp3`, `.m4a`, or `.flac` files, click Add Cover, then drop the image. The cover gets embedded into each file in place. Any image format works — JPG/PNG go in directly; HEIC, WEBP, BMP, TIFF, GIF and the rest auto-convert to JPEG first. Batch drops processed file by file with a clear "added to N of M" summary at the end.

## 2026-04-29 — Smart CUE-pair detection

- **[FEAT]** **Drop the audio side of a CD rip and the app finds the `.cue` automatically.** If you drop a `.flac`, `.wav`, `.ape`, `.wv`, `.aiff`, `.mpc`, or `.tta` that has a matching `.cue` sheet next to it, you get a small choice screen — split into per-track files, or convert the whole album as one. `.bin` and `.iso` CD images auto-route to the split flow since they're unusable on their own.

## 2026-04-29 — Transcription now uses your GPU when available

- **[FEAT]** **Whisper transcription auto-detects your hardware and downloads the matching build.** On Apple Silicon Macs it uses the Neural Engine via Core ML; on Linux with NVIDIA cards it uses CUDA; on Linux with AMD or Intel GPUs it falls back to Vulkan; everywhere else it uses CPU. The first time you transcribe, the app prompts to download the build best suited to your machine and remembers the choice. Typical speed-up on Apple Silicon is 3–5× over CPU.

## 2026-04-29 — Drop folders, not just files

- **[FEAT]** **You can now drop entire folders onto the app** — they get scanned recursively and a summary screen shows what's inside, broken down by type. Pick any subset (audio, video, images, documents) to convert, or compress the whole tree as one archive. Hidden files and symlinks are skipped automatically; very large folders ask for confirmation before scanning.

## 2026-04-28 — Audio batches now run in parallel

- **[FEAT]** **Drop multiple audio files and conversions now run in parallel across your CPU cores** — leaving 2 cores free for the OS and UI so the rest of your machine stays responsive. The progress bar shows the aggregate across all in-flight files plus a counter of how many have finished, and the run is cancellable.

## 2026-04-28 — Remove BG on Windows: first-run crash fixed

- **[FIX]** On Windows, the very first run of **Remove Background** could crash before the AI model finished downloading. First-run now completes the same way it does on macOS and Linux.

## 2026-04-28 — AI Image Upscaling

- **[FEAT]** **Drop an image, pick 2&times;, 3&times;, or 4&times;, tick &ldquo;Use AI&rdquo;.** Two presets — one for photos, one for anime and illustrations. The first run downloads the AI model from our servers in the background; subsequent runs reuse it. Output lands next to the original.
- **[UI]** **Uses your GPU when available; CPU otherwise.** A 4&times; image takes seconds on a Vulkan-capable GPU (Windows / Linux / macOS); on CPU it takes longer and the dialog says &ldquo;Please wait, this will take some time&rdquo; up front. The progress bar climbs in real time, the run is cancellable, and at the end you get the standard &ldquo;delete originals?&rdquo; prompt.

## 2026-04-28 — Remove BG — smoother run, real progress, delete-originals prompt

- **[FIX]** **The progress bar now actually counts up.** It used to sit at 0% the whole way through and only flick to 100% at the very end — fine for big batches, useless for a single image. The bar climbs smoothly in real time now, the run is cancellable, and a counter shows which image of the batch is in flight. At the end you get the standard &ldquo;delete originals?&rdquo; prompt — same Yes/No screen the rest of the app uses, scoped to images that actually produced an output.

## 2026-04-27 — Smart setup — pick what to install

- **[FEAT]** **The dependency setup is now a tickbox list.** Each tool gets its own row with an Installed/Missing badge — already-installed items default off, missing items default on, and the heavy AI-only download stays unchecked unless you ask for it. After the first run-through the prompt doesn't pop up on every launch any more; **System &rarr; Settings &rarr; Reinstall Dependencies** always reopens it. All 16 languages.

## 2026-04-28 — macOS dialog buttons render correctly again

- **[FIX]** **Some secondary buttons in the dependency setup wizard had been rendering as the familiar black-rectangle artifact on macOS.** Now matches the rest of the dialogs — the bulk-toggle pair (*Select All* / *Deselect All*) paints with the same light-grey style every other secondary button uses across the app.

## 2026-04-27 — Background removal — Mac/Windows bundling fix + clearer error hints

- **[FIX]** **rembg's transitive package metadata is now properly bundled.** Mac ARM users were hitting `no package metadata was found for pymatting` when clicking **Remove BG** in the .app — rembg's transitive dependencies (`pymatting`, `pooch`, `jsonschema`) had their Python modules bundled but not their `.dist-info` directories, so `importlib.metadata.version()` failed at runtime. The same gap could have surfaced on Windows. Fix applied across all three build paths (Mac spec, both Windows specs, Linux .deb build script): explicit `collect_all()` for the four packages so their dist-info travels with the module code.
- **[UI]** **"rembg failed to load" dialog now gives OS-specific hints.** Previously the error message only mentioned the Linux fix (`libgomp1`/`libgl1`) — useful there but confusing on Mac and Windows. Now: Mac users get the venv-refresh command (`pip install --upgrade --force-reinstall rembg[cpu] onnxruntime`), Windows users get a pointer to the Visual C++ Redistributable, and Linux keeps the existing libgomp1/libgl1 hint. The base translation stays the same in all 16 languages — the OS-specific tail is appended at runtime.

## 2026-04-27 — More reliable whisper.cpp install on Windows

- **[FIX]** **whisper.cpp auto-download moved to our own CDN.** The first-time install of whisper-cli on Windows used to fetch from GitHub Releases (whose redirect chain through `objects.githubusercontent.com` has been intermittently flaky from various ISPs). The download now pulls a byte-identical mirror from `minimax-converter.com/models/` — same upstream zip, much more reliable network path. A SHA256 verify step runs before extraction so any mid-transfer corruption is caught client-side and the dialog reports the mismatch instead of leaving a half-installed binary in the user's app data folder.

## 2026-04-26 — Vocal isolation, real-time transcribe progress, window icon

- **[FEAT]** **Vocal isolation for transcription.** New **Isolate vocals (better lyrics)** tickbox on the Transcribe screen. When ticked, the app runs the MIT-licensed **KUIELAB MDX-Net** model (2nd place at ISMIR 2021's Music Demixing Challenge) to extract the vocal stem from the audio first, then feeds the vocals-only WAV to whisper. Drastically improves lyrics accuracy on songs with backing music. The ~30 MB model downloads on first use into a per-user cache (no re-download next time), runs locally via the onnxruntime that already ships for Remove BG, and adds zero new dependencies.
- **[FEAT]** **Real-time transcribe progress bar.** The progress bar used to sit at 0% until each file finished, then jump to 100%. It now parses whisper.cpp's live `[hh:mm:ss.mmm --> hh:mm:ss.mmm]` segment timestamps against the file's ffprobe duration, so it advances smoothly across both single-file and multi-file batches. Cancel now also `terminate()`s the running whisper subprocess instead of waiting for the current file to finish.
- **[FIX]** **Linux taskbar/dock icon.** The window decoration and taskbar were showing a generic gear icon instead of the MiniMax logo because Tk's `wm_class` and the `.desktop` file's `StartupWMClass` weren't matched. Both now report `MiniMaxConverter`. The .deb's postinst runs `gtk-update-icon-cache` + `update-desktop-database` so the icon appears on first launch instead of next login. Window `iconphoto()` now sets the in-window icon on all three OSes from the bundled PNG.
- **[FEAT]** **Remove BG marketing + auto-install.** Homepage gets a dedicated **Remove Background** feature card alongside Subtitles & Lyrics, plus a new how-to entry "How do I generate lyrics from a song or audio recording?" — both translated to all 16 site languages. In the app, when a source-mode run hits Remove BG without rembg installed, a Tk dialog offers a one-click pip install (drops `--user` when inside a venv). Same flow wired into the System &rarr; Settings &rarr; Reinstall Dependencies menu on mac/win/lin.
- **[DEPS]** **Licenses page refreshed.** The in-app Licenses modal and the bundled `licenses.json` now reflect what currently ships with the app — including the AI tools (`rembg`, `onnxruntime`), PDF libraries, document processors, archive support, calendar/contact parsers, 3D mesh and font tools. Descriptions + notes translated for all 16 languages. Mac and Windows .spec files fixed to bundle `rembg` / `onnxruntime` correctly via `collect_all()` instead of just hidden imports.

## 2026-04-26 — AEO pass: FAQ, How-to-use, schema, semantic HTML

- **[FEAT]** **New FAQ section + How-to-use section** on the homepage. The FAQ has 6 question/answer pairs covering the most-searched queries (free?, uploads?, formats?, PDF→Word?, batch?, transcribe?). The How-to-use section walks through PDF→Word, video→subtitles, batch conversion, and AI background removal with conversational, user-centered language. Both sections wrap their headings in `<h3>`s and pair with schema.org/Question microdata so AI search engines can extract structured Q&A pairs.
- **[UI]** **H2 headings rewritten as questions.** "Every format you'll ever need" → "What formats does MiniMax convert?". "More than a converter" → "What tools come built in?". "Get MiniMax" → "Where do I download MiniMax?". "One price. Yours forever." → "How much does MiniMax cost?". The aeo-agent.ai question-H2 score went from 1/6 to 7/7.
- **[UI]** **Schema markup + semantic HTML upgrade.** JSON-LD entity now declares `"@type": ["SoftwareApplication", "Product"]` with `category` and `brand` for both subtypes. Hero is now `<header>` instead of `<section>`; all page content wrapped in `<article>` inside `<main>`. New direct-answer `<p>` after the H1 with a 50-word product summary that AI search engines can extract verbatim.
- **[UI]** **Meta description, internal links, publication date.** Description trimmed from 300 chars to ~150 to fit Google's snippet display without truncation. Three prominent body-content internal links added to the at-a-glance card (User guide, Release notes, macOS install help) — strengthens topical authority for AI crawl. Footer gains a "Last updated" line with `<time datetime>` plus an `article:modified_time` meta tag.
- **[UI]** **~370 new translation strings × 16 languages.** Every new heading, question, answer, and label in the FAQ + How-to-use + Learn-more block translated into all 16 site languages so the homepage stays consistent across English, German, French, Spanish, Italian, Portuguese, Russian, Ukrainian, Polish, Dutch, Hindi, Japanese, Turkish, Croatian, Serbian, and Slovenian.

## 2026-04-26 — Whisper polish + Tahoe Tk fix

- **[FEAT]** **Transcribe format chooser:** after clicking Transcribe (now on both the audio and video screens, not just video), pick **Add timestamps** for an `.srt` with whisper segment timing, or **Lyrics form** for a plain `.txt` with one line per segment and a blank line on every silence longer than 2 seconds. Whisper's native `--output-txt` collapses everything onto one line — useless for songs, dictation, or any rhythmic speech. The new lyrics mode runs the engine to a temp `.srt` and post-processes verse breaks back in.
- **[FIX]** **Whisper hallucination suppression on music:** instrumental tracks were producing "MUSIC MUSIC MUSIC" loops because the default no-speech threshold (`0.6`) and log-probability threshold (`-1.0`) were too permissive. Tightened to `0.8` and `-0.5`, plus `--suppress-nst` drops `[Music]` / `(applause)` tokens. Real-speech transcription on podcasts and voice memos is unaffected.
- **[FIX]** **macOS 26 (Tahoe) Tk crash, real fix:** the locale env-var workaround from yesterday was belt-and-suspenders, not a real fix — the underlying nil-title bug is in Tk 8.6.15 itself, which Python.org's Python 3.12 bundles. macOS Tahoe added a stricter `NSAssertion` on `NSMenuItem` titles that 8.6.15 still trips. The build now patches the .app's bundled Tcl/Tk to 8.6.17 (from `brew install tcl-tk@8`) post-PyInstaller, with `install_name_tool` rpath fixup and an ad-hoc re-codesign. Cannot use Tk 9 — `tkinterdnd2`'s bundled `tkdnd` only loads under Tk 8.6.

## 2026-04-25 — Massive format expansion + AI image & speech tools

- **[FEAT]** **Documents and ebooks:** Apple iWork (`.pages`, `.key`, `.numbers`) via LibreOffice's iWork import filter; subtitles (`.srt` ↔ `.vtt` ↔ `.ass` ↔ `.ssa` ↔ `.sub` ↔ plain `.txt`) via ffmpeg + Python regex strip; Kindle ebooks (`.mobi`, `.azw3`, `.azw`) plus extended `.epub` targets via Calibre.
- **[FEAT]** **Auxiliary file types:** 3D meshes (`.stl`, `.obj`, `.ply`, `.glb`, `.gltf`, `.3mf`) interconvert + render to PNG preview via trimesh; fonts (`.ttf`, `.otf`, `.woff`, `.woff2`) via fontTools; calendar (`.ics`) and contacts (`.vcf`) → CSV/JSON for migration workflows; DICOM medical imaging (`.dcm`) upgraded to pydicom for proper compressed pixel data and multi-frame studies.
- **[FEAT]** **Vector graphics + GPS + Live Photos:** Microsoft EMF/WMF metafiles via Inkscape (Pillow couldn't read them at all); GPS data (`.gpx` ↔ `.kml` ↔ `.kmz` ↔ `.geojson` ↔ `.csv`, plus Garmin TCX/FIT) via GPSBabel; Apple Live Photos — drop a paired `.heic` + `.mov` with matching basename and the app routes the motion side through normal video conversion automatically.
- **[FEAT]** **Whisper transcription:** new **Transcribe** button on the video conversion screen runs whisper.cpp on each input, writing a sidecar `.srt`. Audio is extracted to 16 kHz mono WAV via ffmpeg; the 142 MB base model downloads on first use and is reused after. Cancellable through the existing video-conversion state.
- **[FEAT]** **Background removal:** new **Remove BG** button on the image conversion screen runs rembg's U2Net pipeline. Output is a PNG with alpha named `<source>_nobg.png`. The U2Net weights (~176 MB) are downloaded on first use.
- **[FEAT]** **Image upscaling:** new **Upscale** button with 2× / 4× picker. Uses Real-ESRGAN-ncnn-vulkan when present; soft-falls-back to PIL Lanczos so the button still works without the AI binary installed.
- **[UI]** **Reinstall Dependencies** (System → Settings) now offers the new tools too — calibre, gpsbabel, inkscape, and whisper-cpp on macOS via `brew`; calibre / GPSBabel / Inkscape on Windows via `winget`. New formula and cask families install in one batched call.

## 2026-04-25 — macOS fixes + auto-detected download sizes

- **[FIX]** **macOS:** clicking a video output format silently did nothing. Colored buttons on Mac use a custom `tk.Frame` subclass that didn't expose a `state` option; the click handler's `cget('state')` raised a `TclError` that Tk's Mac event loop swallowed, leaving every click ignored. The custom button now tracks its state and surfaces it through `cget`.
- **[FIX]** **macOS 26 (Tahoe):** intermittent `SIGABRT` during startup — Tahoe added a stricter `NSAssertion` on `NSMenuItem` nil titles, and Tk 8.6's console-window init was tripping it when the app was launched from Finder with no `LC_ALL` set. Forcing `en_US.UTF-8` before `import tkinter` sidesteps the crash.
- **[UI]** Download card sizes on the website are now fetched live from the server via HEAD requests on page load. Updating a build no longer requires hand-editing `index.html` or `translations.js` — the page reads `Content-Length` for each download URL and substitutes the MB number in place. Hardcoded values stay as the offline fallback.

## 2026-04-25 — PDF → DOCX visibility fix + visual sub-options

- **[FIX]** **PDF → DOCX (Visual mode)** no longer produces a blank page in Microsoft Word. The LibreOffice import filter places every text run in floating frames anchored behind a page-sized white rectangle — Word respected the z-order and hid everything. Output is post-processed to lift the frames in front of the page fill.
- **[FEAT]** New sub-screen after picking **Visual** when targeting `.docx` / `.doc`: choose **Keep as objects** (faithful layout, each line is its own text box) or **Clean** (reflows into normal editable paragraphs).
- **[UI]** Hybrid (tables as images), Extract Images, OCR mode, and the two image-arrangement screens now auto-size to their content like the rest of the app — no more clipped or oversized panels.

## 2026-04-25 — Subtitles + cancellable video conversion

- **[FEAT]** New **Extract Subtitles** button on the video conversion screen — appears only when the dropped file has text-based subtitles. One click writes sidecar `.srt` files next to the original (e.g. `Movie.eng.srt`, `Movie.fre.srt`) without touching the video.
- **[FEAT]** New **Extract subtitles** tickbox on the format selection screen — when ticked, every subtitle track from the source is written as a sidecar `.srt` alongside the converted video. Image-based subtitles (PGS, VOBSUB) are skipped — they need OCR to convert to text.
- **[FEAT]** **Cancel button** during video conversion. Click to terminate the running ffmpeg encode mid-file, drop the partial output, and stop processing remaining files. Already-finished outputs are kept.

## 2026-04-25 — Hardware encoding for video

- **[FEAT]** New **Try hardware encoding** tickbox on the video conversion screen. Auto-detects NVIDIA NVENC, AMD AMF, Intel QSV, VAAPI (Linux), and Apple VideoToolbox (macOS) and uses the first working encoder for H.264 output. Disabled with a "No supported GPU detected" hint when no probe succeeds.
- **[FEAT]** After picking a format, choose between **Quality (CRF)** and **Target bitrate** modes. Continuous slider with a live readout (CRF value or kbps), plus an estimated output size in bitrate mode — summed across all dropped files.
- **[FEAT]** If hardware encoding fails on a specific file (driver hiccup, unsupported pixel format), the worker automatically retries on CPU with `libx264` and surfaces a one-line notice at the end of the batch.
- **[UI]** Hardware-incompatible formats (AVI, WMV, FLV, WebM, GIF) grey out when the tickbox is on, so you can't accidentally pick a target with no HW path.

## 2026-04-24 — CUE sheet support

- **[FEAT]** Drop a `.cue` file to convert the referenced album. Pick **Single** to convert the whole album as one file, or **Tracks** to split each INDEX 01 segment into its own output with title, artist, album, and track-number metadata written to tags.
- **[FEAT]** Works with every CUE-referenced source format the app already reads — WAV, FLAC, MP3, APE, OGG, WV, TTA, AIFF, M4A — and outputs to any of the 17 audio formats with the usual bitrate / compression-level picker.
- **[FEAT]** Handles CUE files encoded in UTF-8, CP1251 (common Russian releases), Shift-JIS (Japanese releases), and Latin-1. If the referenced audio file was renamed, stem-matches a file with the same base name in the same folder.

## 2026-04-24 — Docs: tool list accuracy pass

- **[FIX]** Help page, `llms.txt`, `llms-full.txt`, and buy-panel feature list now accurately reflect the app's 28 built-in tools (previously rounded to "30+" and missed Random Number generator, Case Converter, Epoch Batch, Tip Calculator, Age Calculator in various places).
- **[FIX]** Removed doc references to Markdown Preview, Meta Tag Generator, and Linux Command Builder — those utilities aren't in the app.

## 2026-04-21 — Windows polish (post-launch fixes)

- **[FIX]** Windows: OTP Authenticator QR scanning now works — drag, drop, or click to browse a QR image from Google Authenticator, Microsoft Authenticator, Authy and similar apps.
- **[FIX]** Windows: the Reinstall Dependencies window now stays open so you can watch the installer's progress (previously flashed shut immediately).
- **[FIX]** Windows: "Winget not found" error no longer appears when winget is installed but not on the default PATH.

## 2026-04-21 — Arrange-pages screen + Windows fixes

- **[FEAT]** Windows version now available for download. Extract the .zip and run — no installer required.
- **[UI]** Arrange screen redesign: page list is sized to the longest filename, labeled buttons (Delete / Combine / Cancel replacing icon-only ones), preview turned on by default with the first page auto-selected, hover tooltips show full file paths.
- **[FEAT]** Drop more files into the arrange screen mid-session — new drops get appended to the page list and merge into the final output.
- **[FEAT]** PDF watermark removal: a new "Remove watermark" option on the Watermark screen with two methods — remove all annotations, or remove text by search. Live preview shows page 1 with the removal applied.
- **[FIX]** Windows: Tesseract-OCR user-level installs no longer trigger the "install dependency" prompt on every launch. Same hardening for ExifTool and 7-Zip.
- **[FIX]** Windows: the "bootstrap.ini is corrupt" dialog that blocked every LibreOffice-dependent conversion (PDF→DOCX, DOC↔X, etc.) is gone.
- **[FIX]** Image filter screen now sizes correctly on launch so the full controls column (filter, intensity, face smoothing, Save/Reset/Close) is visible.

## 2026-04-21 — Mixed-file drop combine + new document formats

- **[FEAT]** Drop any mix of documents, images, and PDFs — the app now offers to combine them into one PDF or one PPTX. Each input becomes one or more pages in the final output. Any files that can't convert are listed in a summary dialog afterwards (the rest still finish).
- **[FEAT]** New source formats: `.md` (Markdown), `.ipynb` (Jupyter Notebook), `.rst` (reStructuredText), `.adoc` (AsciiDoc), `.typ` (Typst), `.fb2` (FictionBook), `.opml`, `.org` (Org-mode). Each converts to PDF, DOCX, HTML, and more; Markdown additionally converts to PPTX.
- **[FEAT]** New legacy-office source formats: `.wpd` (WordPerfect), `.hwp` (Hangul), `.vsd`/`.vsdx` (Visio), `.wps` (Microsoft Works).
- **[FEAT]** PDF → PPTX conversion — imports each PDF page as a slide.
- **[FEAT]** Quality dropdown (72 / 150 / 300 DPI) on the presentation-creation screen controls slide-image resolution.

## 2026-04-20 — Audio output expansion + image conversion symmetry

- **[FEAT]** Audio output expanded from 7 to 17 formats. Added AAC, AIFF, AIF, AU, CAF, W64, AC3, WMA, WV (WavPack), TTA (TrueAudio).
- **[FEAT]** Every common raster image source now offers the full 12-target set — PNG, JPG, GIF, BMP, TIFF, WebP can all convert to each other and to 6 document formats + ICO.
- **[FIX]** Audio extraction from video containers (MKV → MP3, MP4 → M4A, etc.) no longer fails — the video stream is dropped instead of naively copied into an audio container.
- **[FIX]** macOS Tahoe menubar crash during conversions; color picker swatches.
- **[UI]** Main-menu window made smaller for a more focused drop-target appearance.

## 2026-04-19 — Window sizing rewrite + PDF conversion expansion

- **[UI]** Every screen now sizes itself to its content automatically — no more windows that looked wrong on different platforms.
- **[UI]** Flash-free screen transitions: the window is hidden during each transition and reappears at its final size, no intermediate flicker.
- **[FEAT]** PDF → TIFF, BMP, GIF image outputs. Each page becomes a separate image at 300 DPI with real per-page progress.
- **[FEAT]** PDF → Markdown. Preserves paragraphs and page breaks on text-based PDFs.
- **[FEAT]** Welcome modal for first-time users (dismisses itself, once per language).

## 2026-04-18 — macOS release + EUR pricing

- **[FEAT]** macOS version now available — separate Apple Silicon (ARM64) and Intel (x86_64) builds, standard .dmg installer with drag-to-Applications layout.
- **[FEAT]** "Buy License" button live — one-time €20 lifetime license for Windows and macOS (Linux stays free for non-commercial use).
- **[FEAT]** macOS download buttons translated into all 16 languages.
- **[FEAT]** Demo video link in the hero section.

## 2026-04-13 — 2026-04-15 — Cross-platform polish + macOS fixes

- **[UI]** Cross-platform UI scaling — Linux and Windows now render at macOS-equivalent sizes automatically.
- **[FEAT]** Dual-architecture macOS build (Apple Silicon + Intel) with a "Reinstall Dependencies" option under System → Settings for easy recovery.
- **[FIX]** macOS QR/barcode reading now works reliably in the packaged app.
- **[FIX]** macOS colored buttons no longer lose their color on hover or theme switch.
- **[FIX]** Image → HTML conversion now works correctly (was previously silently failing).
- **[FIX]** Right-click on PDF-sign canvases, sevenzip archive detection, DMG flow (all macOS).

## 2026-04-13 — Initial release (v1.0.0)

- **[FEAT]** 150+ file-format conversions across images, documents, PDFs, video, audio, and archives. Drag-and-drop batch conversion.
- **[FEAT]** 28 built-in tools organized into Create / Convert / Analyze / System submenus: QR generator, hash calculator, regex tester, JSON/SQL formatters, UUID/password generators, Linux permissions calculator, color picker, crontab generator, OTP authenticator, tip & age calculators, epoch-batch converter, and more.
- **[FEAT]** 16 languages with runtime switching.
- **[FEAT]** Full PDF toolkit — merge, split, rotate, sign, watermark, redact, encrypt/decrypt, OCR via Tesseract.
- **[FEAT]** Cross-platform: Linux, macOS, and Windows from a single codebase. Missing system tools are installed automatically on first launch.
